(完整版)量程手动切换数字电压表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计题目:量程手动切换的数字电压表一.要求:
利用单片机AT89C51与ADC0809设计一个数字电压表,能够测量量程为0~5V、0~2.5v、0~1v、0~500mv、0~100mv之间直流电压值,能连续,稳定显示所测电压,手动切换量程,要求3位数码显示,测量精度1%(量程0~5v精度为2%),能脱机稳定工作,但要求使用元器件尽量少。二.目的:
掌握A/D 的使用,了解单片机整个开发过程。
三.设计方案:
按系统功能要求,决定控制系统采用AT89C51单片机,A/D转换采用ADC0809。系统除能确保实现的要求的功能外,还可以方便地进行其它功能的扩展。数字电压表系统设计方案框图如图所示:
数字电压表系统设计方案图
1.硬件选择:
AT89C51、ADC0809、74LS74、SN74LS245、CD4066、LM358、SW-DIP5(开关)、LM2596芯片各1个,共阳LED数码管、PNP三极管、二极管1N4148各3个,12MHZ晶振、10K可调电位器1个,220Ω的电阻8个,4.7kΩ的电阻3个,1kΩ的电阻2个,90kΩ的电阻3个,990kΩ的电阻一个,490kΩ的电阻1个,40kΩ的电阻1个,10kΩ的电阻1个,发光二极管1个,30pF左右的电容2个,470uF的电容1个,220uF的电容1个,0.1uF的电容1个,33uH的电感1个。2.实现原理:
8路输入模拟信号数值显示电路由A/D转换,数据处理及显示控制等组成,A/D转换由集成电路0809完成。0809具有8路模拟输入端口,地址线(23~25脚)可决定对哪一路模拟输入作A/D转换。第22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存;6脚为测试控制,当输入一个2us宽高电平脉冲时,就开始A/D转换;7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平;9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出;10脚为0809的时钟输入端,利用单片机30脚的六分频晶振信号再通过74LS74二分频得到1MHZ的时钟。单片机的P1,P3.0~P3.3端口作为三位LED数码管显示控制,P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制。
3.电路各元器件的分析:
a.数码管和电阻,二极管:
数码管为共阳极型数码管.
数码管的A,B,C,D,E,F,G,H为片选信号;一片控制一个数码管。将三个数码管的A和A,B和B,C和C,D和D,E和E,F和F,G和G分别连接,形成三个数码管串联.而三个数码管的公共端分别和AT89S51的P3.0,P3.1,P3.2三个引脚连接,由这三个引脚控制三个数码管的位选.而P0口则控制灯亮的数字.因为是共阳极所以加三极管进行驱动,使公共端为高电平.而为了防止数码管的电压反回芯片,遭成显示数字抖动有鬼影则在电阻旁加一个二极管进行消隐.
数码管后接八个200Ω的电阻,起限流作用。
数码管有一定的允许功耗,最大正向直流,最大反向电压,若超此过耗,则会使数码管发热,损坏.
PNP型三极管产生驱动作用,为共阳极型数码管的公共端提供高电平。4.7kΩ电阻是为了将基极电压拉下,防止电压大于二极管负端电压从而使数码管的显示数字产生鬼影。
二极管也起消隐作用。
b. SN74LS245:
74LS245作为缓冲器,驱动器使用.
控制G非输入A 输出Q
H X 高阻
L L L
L H H
它将从89S51中接收到数据进行缓冲后送入数码管显示.
c.AT89C51:
AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元. AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器,保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。它的引脚图如图所示.
d.A/D0809:
0809为A\D转换芯片.
该部分电路主要实现待测电压值的模数转换功能,是本设计的主要模块。通过外围电路各类参数调整,实现正确的电压转换范围。通过芯片各类使能端的置高或者置低来实现数据的转换输出。针对单片机编程来实现A/D转换功能,再将输出数据存入寄存器中。只要再调用计算子程序和显示子程序便可实现待测电压值的显示。
ADC0809功能有八位分辨率,最大不可调误差小于±1LSB,单一+5V供电,模拟输入范围为0-5V.具有锁存三态输出,输出与TTL兼容。功耗为15MW。不必进行零点和满度调整。转换速度取决于芯片的时钟频率。
IN0-IN7:8路输入通道的模拟量输入端口。
D0-D7:8位数字量输出端口。
START,ALE:START为启动控制输入端口,ALE为地址锁存控制信号端口。这两个信号端口亦可连结在此一起,当通过软件输入一个正脉冲,便立即启动模/数转换。
EOC,OE:EOC为转换结束信号脉冲输出端口,OE为输出允许控制端口。这两个信号端口亦可连结在一起,表示模/数转换结束。OE端的电平由低变高,打开三态输出锁存器,将转换结果的数字量输出到数据总线上。
VREF(+)、VREF(-)、VCC、GND:VREF(+)、VREF(-)为参考电压输入端;VCC为主电源输入端,GND为接地端。一般VREF (+)与VCC接在一起,VREF(-)与GND接在一起。
CLK:时钟输入端。
ADD A、ADD B、ADD C:8路模拟开关的三位地址选通输入端,以选择对应的输入通道。