简易数字电压表设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简易数字电压表设计
————————————————————————————————作者:————————————————————————————————日期:
摘要
根据8051单片机的内部结构特点本文提出以MCS-51单片机为核心的电压测量系统。该系统以8051和ADC0809核心内件,能够在单片机的控制下监测八路的输入电压值,用8位串行A/D转换器进行0-5V量程自动转换,并且测量的电压值可通过三位数码管显示同时用一位数码管显示选择通道。整个系统的设计过程中主要采用了模块化的设计方法,完成了硬件电路的设计及软件程序的编写,还详细的给出了相关的硬件框图和软件流程图,通过最终硬件电路的调试,使该系统能够在要求的条件下达到正常的测量及显示功能。单片机8051是整个系统的核心,实现输入端的分路选择,模数转换后数据的处理及在数码管上数据的显示等功能。正文着重给出了软硬件系统的各部分电路,介绍了该系统的工作原理,MCS-51单片机特点,8051的功能和应用,ADC0809的功能和应用等。
关键词:MCS-51单片机;8051 ;ADC0809;数码管
目录
1总体设计 (2)
2硬件设计及其工作原理 (2)
2.1数字电压表主要器件 (2)
2.1.1 单片机AT89C51 (2)
2.1.2 芯片ADC0808 (4)
2.2数字电压表电路设计 (5)
2.2.1处理器电路 (5)
2.2.2 A/D转换电路 (6)
2.3控制电路 (7)
2.4显示电路 (7)
2.5整体电路图设计 (8)
3数字电压表软件设计 (8)
3.1程序总体设计 (8)
3.2程序各个模块设计 (10)
3.2.1主程序 (10)
3.2.2外部中断0服务程序 (11)
3.2.3外部中断1服务程序 (11)
3.2.4显示子程序和延时子程序 (12)
3.2.5制表程序 (13)
4 PROTEUS仿真及数据测试 (13)
5总结 (14)
附录1程序清单 (15)
简易数字电压表设计
1 总体设计
本设计主要以ATMEL公司生产的AT89S51为主控芯片来实现简易数字电压表的基本功能:
1.可以测量0~5V范围内的8路直流电压值。
2.在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V~5.00V,1位LED数码管显示路数,8路分别为0-8。
3.测量最小分辨率为0.02V。
设计中以8个滑动变阻器来模拟输入的电压信号,经ADC0809模数转换芯片处理,通过三个路数选择开关来确定将哪路采集数据送入单片机中处理,进而通过数码管显示出相应的电压测量值
2 硬件设计及其工作原理
2.1 数字电压表主要器件
本次课程设计是以AT89C51单片机为控制核心,以A/D转换器ADC0808为数据采样系统,实现被测电压的数据采样;用共阴数码管显示结果的简易数字电压表,能够实现8路0.00~5.00V的直流电压,最小分辨率为0.02V。
2.1.1 单片机AT89C51
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图1所示:
图1 AT89C51单片机引脚图
AT89C51引脚介绍:
4个8位的I/O引脚,P0,P1,P2,P3
P0口(P0.0-P0.7):8位双向三态I/O口线,既可作普通I/O口,也可作数据/低8位地址总线。
P1口(P1.0-P1.7):8位准双向三态I/O口线,作普通I/O口。
P2口(P2.0-P2.7):8位准双向三态I/O口线,既可作普通I/O口,也可作数据/高8位地址。
P3口(P3.0-P3.7):8位准双向三态I/O口线,既可作普通I/O口,另外每个引脚还有第二个功能。如下表所示:
表1 P3口引脚第二个功
端口引脚第二功能
P3.0 RXD
P3.1 TXD
P3.2 INT0
P3.3 INT1
P3.4 T0
P3.5 T1
P3.6 WR
P3.7 RD
P3口还接收一些用于闪烁存储器编程和程序校验的控制信号。
RST:复位输入。当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。
ALE/PROG:当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE以时钟震荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。这个位置后只有一条MOVX和MOVC指令ALE才会被应用。此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。
PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的PSEN 信号不出现。
EA/VPP:外部访问允许。欲使中央处理器仅访问外部程序存储器,EA 端必须保持低电平。需要注意的是:如果加密位LBI被编程,复位时内部会锁存EA端状态。如EA端为高电平,CPU则执行内部程序存储器中的指令。闪烁存储器编程时,该引脚加上+12V的编程允许电压VPP,当然这必须是该器件是使用12V编程电压VPP。
XTAL1:震荡器反相放大器及内部时钟发生器的输入端。
XTAL2:震荡器反相放大器的输出端。
VCC:电源电压
GND:地
2.1.2 芯片ADC0808
本电路采用芯片ADC0808来进行模数转换。其引脚图如图2所示。
图2 ADC0808引脚图