基于89c51单片机的数字电压表设计
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
评论