基于89c51单片机的数字电压表设计
0引言
数字电压表是诸多数字化仪表的核心与基础,电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,这有别于传统的以指针加刻度盘进行读数的方法,避免了读数的视差和视觉疲劳。目前数字万用表的内部核心部件是A/D转换器,转换器的精度很大程度上影响着数字万用表的准确度,本文AID转换器采用ADC0809对输入模拟信号进行转换,控制核心AT89c51N对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号。
1数字电压表硬件电路设计
硬件电路设计主要包括:89C51单片机系统,~D转换电路,显示电路。测量最大电压为5V,显示最大值为5.00V.图l是数字电压表硬件电路原理图。
1.1 89C51单片机系统和显示电路
由于单片机体积小、重量轻、价格便宜,所以本系统采用89C51单片机,其原理图如图1所示。
89C51内部有4KB的EEPROM,128字节的RAM,所以一般都要根据系统所需存储容量的大小来扩展,ROM和RAM.本电路/EA接高电平,没有扩展片外ROM和RAM.
89C51的P1、P3.0~P3.3端口作为四位LED数码管显示控制。P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。P0端口作0809的A/D转换数据读入用,P2端口用作0809的A/D转换控制。
1.2 A/D转换电路

图1数字电压表电路原理图
A/D转换由集成电路0809完成。0809具有8路模拟信号输入端口,地址线(23~25脚)可决定对哪一路模拟信号进行A/D转换。22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个21xs宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。10脚为0809的时钟输入端,利用单片机30引脚的六分频晶振频率再通过14024二分频得到1MHz时钟。
数字电压表系统的软件设计
主程序和A/D转换测量程序流程图如图2所示。

2.1初始化程序
系统上电,初始化程序将70H~77H内存单元清0,P2口置0.系统默认为循环显示8个通道的电压值,当进行一次测量后,将显示每一通道的A/D转换值,每个通道显示时间为1s.70H~77H内存单元存放采样值,78H~7BH内存单元存放显示数据,依次为个位、十位、百位、通道标志位。
2.2 A/D转换子程序
A/D转换子程序用来控制对0809/k路模拟输入电压的A/D转换,并将对应的数值存入70H~77H内存单元。
2.3示子程序
显示子程序采用动态扫描实现四位数码管的数值显示。测量数据在显示时需转换成BCD码放在78H~7BH内存单元中,其中7BH存放通道标志数。
R3作为8路循环控制,R0用作显示数据指针。
3结论
数字电压表可以测量0~5的8路电压值。89C51为8位处理器,当0809输入电压为5.00V时,输出数据为255(FFH)。因此最大分辩率为O.0196V(5/255)。如要获得更高的精度要求,应采用12位、13位的A/D转换器。数字电压显示可能有偏差,可以通过校正0809的基准电压来解决,或者用软件编程来校正测量值。
本系统用单片机89C51构成数字电压表控制系统,具有精度高、速度快、性能稳定和电路简单且工作可靠等特点,具有很好的使用价值。
参考文献:
[1].AT89c51datasheethttp://www.dzsc.com/datasheet/AT89c51_810155.html.
[2].ADC0809datasheethttp://www.dzsc.com/datasheet/ADC0809_123186.html.
[3].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
[4].BCDdatasheethttp://www.dzsc.com/datasheet/BCD_1225719.html
- 在应用可编程测控网络设计(03-15)
- 基于AT89C51单片机的微型可编程控制器(04-23)
- 基于AT89C51单片机的量程自切换频率计(01-25)
- 基于AT89C51单片机的十进制计算器系统设计(06-29)
- 基于单片机的智能计步器设计(09-20)
- 可编程逻辑器件与单片机在双控制器中的设计(06-04)
