傅少琪 宣鑫璐 郦泱泱 魏丽娜 冯家龙
绍兴文理学院 浙江 绍兴 312000
摘 要:本文介绍了一种基于单片机的简易数字电压表的设计。该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。A/D转换主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片AT89C51来完成,其负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着ADC0808芯片工作。该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字电压表可以测量0-4V、0-2V、0-200mV的3路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。
关键词:单片机;数字电压表;A/D转换
在科技研究中,电压表的使用越来越为广泛,我们也总想把电压表变得更为简易,方便使用,于是我们设计了一个简易数字电压表,希望通过各个模块进行实现。最终确定利用555定时器设计一个多谐振荡器作为时钟信号,并通过不断的实践实现了程序的设计问题。
1 方案原理框图
多路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路组成,由于ADC0808在进行A/D转换时需要有CLK信号,本试验中ADC0808的CLK直接由555多谐振荡电路提供1kHz的方波。由于ADC0808的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256*VREF) ADC0808采用逐次逼近法转换,把模拟电压转换成16进制的D,由于是对直流电压0~5V进行采集,所以D对应的电压为V0,我们的目的就是要把V0显示在LED显示器上。
2 部分单元电路设计与计算说明
2.1 数码管显示电路
本次设计选择的量程有0~2V、0~200mV和0~4V,根据不同的量程设置小数点的位置。根据ADC0808芯片输出到单片机的电压值模拟量转换成数字量,将采集的数字量*1.96即可将二进制数转换成可读的电压值,得到四位的电压值,通过取余、整除等运算方式即可分离出四位电压值,通过位码与段码选取实现数码管的显示,加上延时函数可使数码管显示稳定,无明显波动。
2.2 量程报警电路
量程报警电路中,当未选择量程、同时选择多个量程或者超出量程时,蜂鸣器发出警报,LED灯发光,同时数码管清零。蜂鸣器与LED警报灯分别连接到51单片机的P2^3和P2^7端口,当上述情况发生时,将P2^3和P2^7端口置1,蜂鸣器与LED同时工作,同时将数码管四位都置零,实现当出现未选择量程、同时选择多个量程或者超出量程这三种情况时的报警功能。
2.3 量程选择开关电路
量程开关电路,将三个开关的输出端分别连接到P1^4、P1^5、P1^6,通过控制开关来选择P1三个端口的高低电平,以此来控制ADC0808芯片的ADD三个端口进行选通信号的操作,不同的量程输入电压信号选择不同的输入端口,避免信号的混乱。
2.4 5V稳压电源
5V直流稳压电源电路,将有效电压值为220V的交流电先通过整流桥整流,将整流后的电压通过7805芯片稳压到5V电压,作为输出电压给芯片供电,同时接到滑动变阻器作为ADC0808输入端的输入电压。
2.5 555多谐振荡器
555多谐振荡器电路图,为ADC0808提供1KHZ的方波。振荡周期:T=T1+T2=0.7(R1 +2R2)C,振荡频率: F=1/T,占空比D=(R1+R2)/(R1+2R2)。
3 具体电路图
4 结论
通过仿真可以得知当选择0~2V和0~4V量程时,测得电压与实际输入电压相差较小,误差均为0.05%,当选择0~200mV量程时,测得电压与实际输入电压相差较大,误差达到2%,这主要是由于选择量程较小,电压表精度不够导致。并且在整个电路的设计过程中,重要的是各个单元电路的连接及电路的细节设计上。
参考文献:
[1]李广弟.单片机基础.[M]北京:北京航空航天出版社,2021.7
[2]苗红霞.单片机实现数字电压表的软硬件设计[j].河海大学常州分校学报,2002,(03)
[3]谭浩强.C语言程序设计(第二版)[M].北京:清华大学出版社,2005.12
[4]刘瑞新.单片机原理及应用教程[M].北京:机械工业出版社,2003.7(6)