数字电压表的设计制作
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P2.0 P2.1 P2.2 P2.3
21 1K×4 22 23 24
P3.0 10 P3.1 11 P3.2 12 P3.3 13 P3.4 14 P3.5 15 P3.6 16 P3.7 17
Vcc ADC0809
Vcc
12 Vref+ IN0 26 11 Vcc CLOCK 10
START 6
数码管显示采集的电压值。
实物照片
三 任务二知识讲解
1.ADC0809芯片知识与使用方法
ADC0809是一种有8路模拟输入、8位并行数字输出的逐次逼近式A/D器件。
性 能
ADC0809主要技术指标和特性 (1) 分辨率:8位; (2) 转换时间:取决于芯片的时钟频率,转 换1次所需时间; (3) 单一电源:+5V; (4) 模拟输入电压范围:单级性为0~+5V。
管显示0-9
红色语句是依据电路连接定 义的,定义这些语句是便于程 序书写。
uint volt; //电压值测定值 sbit LW1=P2^3; sbit LW2=P2^2; sbit LW3=P2^1;
sbit LW4=P2^0;//定义数码管位选脚
sbit CLK=P1^4;
sbit START=P1^5;
调用显示程序
2
项目源程序:
#include<at89x51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code
led[10]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码
学习指南
案例引入 预备知识讲解 电子实物制作与检测 参考与消化示例程序并完成项目程序 总结与提高
二 案例引入
设计数字电压表,设计要求如下:
1.要求分别采用两种不同模数转换的芯片ADC0809、TLC2543实现设计数 字电压表。
2.设计的数字电压表可以测量0~5V范围内的输入电压值,并且通过4位LED
sbit EOC=P1^6;
sbit OE=P1^7;//定义ADC0809各脚
3
红色语句严格依据芯片工作 过程书写。
//函数名:ADC() //功能:数模转换程序 //调用函数: //输入参数: //输出参数: //说明:将转换好的测定值保存在变量volt中 /******************************************/ void ADC() {
2.引脚介绍
8路输入端 启动转换信号 转换结束信号 输出允许信号 时钟输入端,决定 转换速率,时频率 50~800kHz
输入选择 控制端
地址锁存允许信号 数据输出端
注意:理解这些管脚的作用对
理解程序语句非常有帮助!
3.ADC0809工作过程
START
1
START
2
EOC
3
OE
4百度文库
上升沿
启动信号
保持低电平
高电平信号 高电平信号
下降沿
工作分为4大步 每步工作内容
如图所示
START(6脚)为转换启动信 号。当START为上升沿时,所 有内部寄存器清零;下降沿时, 开始进行A/D转换
在转换期间,START应保持低电 平。
当EOC变为高电平时,转换结束
当OE变为高电平时,输出数据
a b c d e f g dp LED1 LED2 LED3 LED4
17 D0
ALE 22
14 D1
EOC 7
15 D2
OE 9
17 D3 Vref- 16
18 19
D4 D5
A 25 B 24
20 D6
C 23
21 D7 GND 13
电压 测试端
单片机最小系统
ADC0809电压采集显示电路
单片机P2口的低4位接4个1K电阻,4个PNP三极管,作为数码管的位码输出,P0口 与74LS245的A1~A8相连,B1~B8串个300欧姆的电阻,作为数码管段码输出。
START=0; START=1; START=0;//ad开始转换 while(EOC==0); //等待转换结束 OE=1; volt=P3;//取走转换值 OE=0;//输出转换结束 volt=volt*196;//转换值处理 }
将P3口得到的A/D转换值通过计算公式转换为正确的电压值,这是因为项目的满量 程为5V,转换分辩率为8位即最大值是255,5/255=196mV,即1代表196mV。
4.电路连接图
显示电路
RESET
Vcc 40
+ 22μF/50V C1
R1
9
200Ω
R2 1KΩ 20
AT89C51 Vcc RST Vss
C2 30pF 18 XTAL1
12MHz
19 XTAL2 C2 30pF
5 6 7 8
P1.4 P1.5 P1.6 P1.7
Vcc
74LS245
P0.0 39 2 A1 Vcc 20
采用T0定时器中断方式产生ADC0809所需要的CLK信号,CLK为时钟输入信号线,它的取值
范围为10KHz~1280KHz,我们这里取值50KHz。根据定时器的计算公式可得
TH0=TL0=0XF6。
开始
开中断总开关
TMDO赋初值
主程序流程图揭示程序 工作过程
T0赋初值 允许T0中断
T0启动位置位 调用模数转换程序
ADC0809的D0~D7与P3口相接,采集的数据通过P3口传送给单片机。P1.4~P1.7 作为ADC0809的控制信号端,控制ADC0809的采集工作。
5.程序分析
1
在程序设计时,由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK 是接在单片机的P1.4端口上,也就是要求从P1.4端口能够输出CLK信号供ADC0809使用。
设计制作数字电压表
一 时钟设计学习要求
项目所需掌握的理论知识
• MSC51系列单片机定时器/计数器中断、动态扫描、A/D转换相关 知识等。
• ADC0809各管脚功能、TLC2543各管脚功能 • C51程序语言中for语句、do while语句运行规则,使用方法
完成项目所锻炼的能力
• 掌握定时器/计数器的定时程序的编写。 • 掌握定时器中断方式的编写 • 掌握ADC0809以及TLC2543数据采集的编程能力。
P0.1 38 3 A2 DIR 1
P0.2 37 P0.3 36
4 5
A3 A4
P0.4 35 6 A5
P0.5 34 7 A6
P0.6 33 8 A7
P0.7 32 9 A8
19 10
G GND
B1 18 300×8 B2 17 B3 16 B4 15 B5 14 B6 13 B7 12 B8 11