一、简易数字电压表的设计l.功能要求简易数字电压表可以测量0~5V的8路输入电压值,并在四位LED数码管上轮流显示或单路选择显示。测量最小分辨率为0.019V,测量误差约为土0.02V。2.方案论证按系统功能实现要求,决定控制系统采用AT89C52单片机,A/D转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便地进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。数字电压表系统设计方案框图如图1-1。3.系统硬件电路的设计简易数字电压测量电路由A/D转换、数据处理及显示控制等组成,电路原理图如图1-2所示。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脚的六分频晶振频率再通过14024二分频得到1MHz时钟。单片机的P1、P3.0~P3.3端口作为四位LED数码管显示控制。P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制。4.系统程序的设计(1)初始化程序系统上电时,初始化程序将70H~77H内存单元清0,P2口置0。(2)主程序在刚上电时,系统默认为循环显示8个通道的电压值状态。当进行一次测量后,将上电复位串行通信电源电路图1-1数字电压表系统设计方案AT89C51P0P2P1P3ADC0809LED显示器显示每一通道的A/D转换值,每个通道的数据显示时间为1s左右。主程序在调用显示子程序和测试子程序之间循环,主程序流程图见图1-3。(3)显示子程序显示子程序采用动态扫描法实现四位数码管的数值显示。测量所得的A/D转换数据放在70H~77H内存单元中,测量数据在显示时需转换成为十进制BCD码放在78H~7BH单元中,其中7BH存放通道标志数。寄存器R3用作8路循环控制,R0用作显示数据地址指针。(4)模/数转换测量子程序模/数转换测量子程序用来控制对ADC0809八路模拟输入电压的A/D转换,并将对应的数值移入70H~77H内存单元。其程序流程见图1-4。5.调试及性能分析(1)调试与测试采用WaveE2000编译器进行源程序编译及仿真调试,同时进行硬件电路板的设计制作,烧好程序后进行软硬件联调,最后进行端口电压的对比测试,测试对比表见表1-1。表中标准电压值采用UT56数字万用表测得。从表中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02V以内,这与采用8位A/D转换器所能达到的理论误差精度相一致,在一般的应用场合可完全满足要求。表1-1简易数字电压表与“标准”数字电压表对比测试表图1-2数字电压表电路原理图AT89C51显示通道百位十位个位单路/循环通道选择模拟输入(0-5V)abcdefghabcdefghabcdefghabcdefgh1P1.02P1.13P1.24P1.35P1.46P1.57P1.68P1.79RST10RXD11TXD12INT015T113INT114T016WR17RD18XTAL220Vss19XTAL1P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732EA31ALE30P2.728PSEN29P2.627P2.526P2.425P2.324P2.223P2.122P2.021Vcc4017D014D115D28D318D419D520D621D79OE6START22ALE23C24B25AIN026IN127IN228IN31IN42IN53IN64IN75CLOCK10Vcc11VREF+12GND13VREF-16EOC75V5V5V5V5V171485VADC0809742441G2G1402410uF4.7Kx412MHz510x81Kx28.2K30Px28550x4图1-3主程序流程初始化调用A/D转换子程序调用显示子程序开始标准值/V0.000.150.851.001.251.751.982.322.65简易电压表测得值/V0.000.170.861.021.261.762.002.332.66绝对误差/V0.00+0.02+0.01+0.02+0.01+0.01+0.02+0.01+0.01标准值/V3.003.453.554.004.504.604.704.8l4.90简易电压表测得值/V3.0l3.473.564.014.524.624.724.824.92绝对误差/V+0.01+0.02+0.01+0.01+0.02+0.02+0.02+0.01+0.02(2)性能分析●由于单片机为8位处理器,当输入电压为5.00V时,输出数据值为255(FFH),因此单片机最大的数值分辨率为0.0196V(5/255)。这就决...