基于单片机数字电压表的方案设计书Word格式.docx
《基于单片机数字电压表的方案设计书Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机数字电压表的方案设计书Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
3、系统程序的设计…………………………………………………………………11
3.1、初始化程序………………………………………………………………11
3.2、主程序……………………………………………………………………11
3.3、显示子程序………………………………………………………………11
3.4、A/D转换测量子程序…………………………………………………11
4、调试与性能分析…………………………………………………………………12
4.1、调试与测试………………………………………………………………12
4.2、性能分析…………………………………………………………………13
5、结语……………………………………………………………………………14
6、单片机汇编程序清………………………………………………………………14
参考文献………………………………………………………………………………21
致谢……………………………………………………………………………………22
附录……………………………………………………………………………………22
(*****************2010届电子信息工程技术专业,*********)
摘要:
数字电压表的诞生打破了传统电子测量仪器的模式和格局。
它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成的测量误差事件。
数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。
数字电压表把电子技术、计算技术、自动化技术的成果与精密电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电压表标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。
本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC0809。
系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。
简易数字电压测量电路由A/D转换、数据处理、显示控制等组成。
关键词:
单片机;
AT89C52;
A/D转换;
ADC0809;
数据处理
DesignofDigitalVoltageMeterbasedonSingle-chipMicrocomputer
******
(2010YearStudentofElectronicsandInformationEngineeringMajorof********************************************)
Abstract:
Thebirthofdigitalvoltagemeterbreakthetraditionalmodelofelectronicmeasuringinstrumentsandpatterns.Itshowstheclearandintuitive,accuratereadings,usinganadvanceddigitaldisplaytechnology,greatlyreducedduetohumanfactorsofthemeasurementerrorcausedbytheincident.Digitalvoltagemeterisarowofanalog(DCinputvoltage)intoanon-continuous,discretedigitalform,andtheinstrumentdisplay.Digitalvoltagemetertoelectronictechnology,computingtechnology,automationtechnologyandprecisionoftheresultsofelectricalmeasurementtechnologyclosertogetherandbecomeinstruments,metersandcompleteanindependentfieldofabranch,digitalvoltagemeterindicatesthatthefieldofelectronicdevicesarevolutionandalsopioneeredthemodernpioneerofelectronicmeasurementtechnology.Thedesignusesasingle-chipplatformforthedevelopment,controloftheDepartmentoftheuseofAT89C52single-chip,A/DconversionusingADC0809.Inadditiontotherealizationofthesystemtoensurethattherequiredfunctionality,butalsofacilitatethe8otherA/Dconvertermeasurement,distancemeasurementfunctionoftransmissionexpansion.SimpledigitalvoltagemeasuringcircuitismadeoftheA/Dconversion,dataprocessing,displaycontrol,etc.
Keywords:
SCM。
AT89C52。
A/Dconversion。
ADC0809。
dataprocessing
引言
数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。
目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
新型数字电压表以其高准确度、高可靠性、高分辨率、高性价比等优良特性倍受人们的青睐。
目前,数字电压表作为数字化仪表的基础与核心,已被广泛用于电子和电工测量、工业自动化仪表、自动测试系统等领域,显示出强大的生命力。
与此同时,由电压表扩展而成的各种通用及专用仪表(含数字万用表),也将电量及非电量测量技术提高到崭新水平本文重点介绍单片A/D转换器以及由它们构成的基于单片机的数字电压表的工作原理。
1、总体结构
数字电压表的组成(图1)
图1数字电压表的组成框图
DVM(DigitalVoltageMeter)的核心是A/D转换器。
按系统功能实现要求,决定控制系统采用AT89C52单片机,A/D转换采用ADC0809。
系统除能确保实现要求的功能外,还可以方便地进行8路其他A/D转换量的测量和远程测量结果传送等扩展功能。
数字电压表系统设计方案框图如图2所示。
图2数字电压表系统设计方案框图
2、系统硬件电路的设计
2.1、10倍放大器电路
下图是一个最简单的10倍放大电路,运算放大器使用的是精度比较高的OP07,利用它,可以把0~200mV的电压放大到0~2.000V。
在使用的数字电压表量程为2.000V时,特别有用。
如果把它应用在基本量程为±
200.0mV的数字电压表上,就相当于把分辨力提高了10倍,在一些测量领域中,传感器的信号往往觉得太小了,这时,可以考虑在数字压表前面加上这种放大器来提高分辨力。
图310倍放大器电路
2.2、A/D转换电路
在电流或者电压的测量中,经常遇见测量的并不是直流而是交流,这时候,绝对不可以把交流信号直接输入到数字电压表去,必须先把被测的交流信号变成直流信号后,才可以送入数字电压表进行测量。
下图就是一个把交流信号转换成为直流信号的参考电路。
(说明:
更好的交流转换成为直流的电路是一种“真有效值”转换电路,但是由于其专用芯片价格昂贵,多应用在一些高档场合。
)
本电路中,输入的是0~200.0mV的交流信号,输出的是0~200.0mV的直流信号,从信号幅度来看,并不要求电路进行任何放大,但是,正是电路本身具有的放大作用,才保证了其几乎没有损失地进行AC-DC的信号转换。
因此,这里使用的是低功耗的高阻输入运算放大器,其不灵敏区仅仅只有2mV左右,在普通数字万用表中大量使用,电路大同小异。
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
图4AC-DC转换电路
2.3、电桥输入电路
在温度测量和其他物理及化学量的测量中,经常会出现“零点”的时候信号不是零的情况,这时候,下面的“电桥输入”电路就被优先采用了。
可以根据被测信号的特点,用传感器替换电桥回路中的某一个电阻元件。
数字电压表的两个输入端也不再有接地点,作为一种典型的“差分”输入来使用了。
图5电桥输入(差分输入,比例输入)电路
2.4、测量电路
电桥输入电路的变种还可以延伸到下面的电路,这是一个把4~20mA电流转换为数字显示的电路。
它的零点就是4mA而不是0mA。
当输入零点电流为4mA的时候,利用IN-上面建立起来的电压,抵消掉IN+由于4mA出现的无用信号,使得数字电压表差分输入=0,就实现了4mA输入时显示为0的要求。
随着信号的继续增大,例如到了20mA,对数字电压表来说,相当于差分输入电流为20-4=16mA,这个16mA在62.5R电阻上的压降,就是数字电压表的最大输入信号。
这时候,把数字电压表的基准电压调整到与16*62.5=1000mV相等,显示就是1000个字。
图6测量电路
简易数字电压表测量电路由A/D转换、数据处理及显示控制等组成,电路原理图如图8所示。
A/D转换有集成电路ADC0809完成。
ADC0809具有8路模拟输入端口,地址线(第23-25脚)可决定对哪一路模拟输入作A/D转换。
第22脚位地址锁存控制,当输入为高电平时,对地址信号进行锁存。
第6脚位测试控制,当输入一个2μs宽高电平脉冲时,就开始A/D转换。
第7脚为A/D转换结束标志,当A/D转换结束时,第7脚输出高电平。
第9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出。
第10脚为ADC0809的时钟输入端,利用单片机第30脚嘚分频晶振频率,再通过14024二分频得到1MHz时钟。
单片机的P1、P3.0-P3.3端口作为4位LED数码管显示控制。
P3.5端口用作单路显示/循环显示转换按钮。
P3.6端口用作单路显示时选择显示的通道。
P0端口用作A/D转换数据读入,P2端口用作ADC0809的A/D转换控制。
3、系统程序的设计
3.1初始化程序
系统上电时,初始化程序主要用来执行70H-77H内存单元清0和P2口置0等准备工作。
3.2主程序
在刚上电时,系统默认为循环显示8个通道的电压值状态。
当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间在1s左右。
主程序在调用显示子程序与测量子程序之间循环。
主程序流程图如图7所示。
图7主程序流程图
3.3显示子程序
显示子程序采用动态扫描法实现4位数码管的数值显示。
测量所得的A/D转换数据放在70H-77H内存单元中,测量数据在显示时须经过转换成为十进制BCD码放在78H-7BH单元中,其中7BH存放通道标志数。
寄存器R3用作8路循环控制,R0用作显示数据地址指针。
3.4A/D转换测量子程序
A/D转换测量子程序用来控制对ADC0809的8路模拟输入电压的A/D转换,并将对应的数值移入70H-77H内存单元。
A/D转换测量子程序流程图如图9所示
图9A/D转换测量子程序流程图
4、调试及性能分析
4.1调试与测量
采用Wave或KeilC51编译器进行源程序编译及仿真调试,同时进行硬件电路板的设计制作,烧录好程序后进行软硬件联调,最后进行端口电压的对比测试。
测试对比表如表1所列。
表中标准电压值采用UT56数字万用表测得。
表1简易数字电压表与“标准”数字电压表对比测试表
标准电压值/V
简易电压表测得值/V
绝对误差/V
0.00
0.15
0.17
+0.02
0.85
0.86
+0.01
1.00
1.02
1.25
1.26
1.75
1.76
1.89
2.00
2.32
2.33
2.65
从表1中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02V以内,这与采用8位A/D转换器所能到达到的理论误差精度相一致,在一般的应用场合完全可以满足要求。
4.2性能分析
图10数字电压表工作过程波形图
图10示出的是数字电压表工作过程波形图,启动脉冲位于斜坡脉冲起点,关门脉冲位于斜坡脉冲与被测电压Ux的交点,图10(d)表示在这个时间间隔内通过T门的标准时间脉冲个数。
数字电压表的准确度首先取决于标准时间脉冲发生器所发脉冲频率的稳定程度,因为若单位时间发出的脉冲个数发生波动,必然影响读数。
其次决定于斜坡上升的线性,若斜坡呈线性上升,则可保证电压上升值与时间间隔成正比。
目前这两方面的技术都比较成熟,所以数字电压表准确度也比较高。
(1)由于单片机为8位处理器,当输入电压为5.00V时,ADC0809输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。
这就决定了该电压表的最高分辨率(精度)只能达到0.0196V,测试时电压一般以0.02V的幅度变化。
如果要获得更高的精度要求,则应采用12位、13位的A/D转换器。
(2)从表1中可以看出,简易数字电压表测得的值基本上均比标准电压值偏大0.01-0.01V。
这可以通过校正ADC0809的基准电压来解决。
因为该电压表设计时直接用5V的供电电源作为基准电压,所以电压有可能有偏差。
另外,还可以用软件编程来校正测量值。
(3)ADC0809的直流输入阻抗为1MΩ,能满足常用的电压测试需要。
另外,经测试ADC0809可直接在2MHz的时钟频率下工作,这样可省去二进制分频器14024集成块。
(4)当要测量大于5的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。
但是量程越大,测量的精度会越低。
5、结语
基于单片机AT89C52,A/D转换器ADC0809的数字电压表,它代表着数字仪表的基础。
也标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。
数字电压表具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐。
6、单片机汇编源程序清单
。
简易数字电压表。
测量电压最大为5V,显示最大值为5.00V
70H—77H存放采样值,78H—7BH存放显示数据,依次为个位、十位、百位、通道标志
P3.5作单路显示/循环显示转换用,P3.6作单路显示时选择通道按键用
*主程序和中断程序入口*
ORG0000H
LJMPSTART
ORG0003H
RETI
ORG000BH
RETI
ORG0013H
ORG001BH
ORG0023H
ORG002BH
*初始化程序中的各变量*
CLEARMEMIO:
CLRA
MOVP2,A
MOVR0,#70H
MOVR2,#0DH
LOOPMEM:
MOV@R0,A
INCR0
DJNZR2,LOOPMEM
MOV20H,#00H
MOVA,#0FFH
MOVP0,A
MOVP1,A
MOVP3,A
RET
*主程序*
START:
LCALLCLEARMEMIO。
初始化
MAIN:
LCALLTEST。
测量一次
LCALLDISPLAY。
显示数据一次
AJMPMAIN
NOP。
PC值出错处理
NOP
LJMPSTART
*显示控制程序*
DISPLAY:
JB00H,DISP11。
MOVR3,#08H。
8路信号循环显示控制
MOVR0,#70H。
显示数据初址70H~77H
MOV7BH,#00H。
显示通道路数初值
DISLOOP1:
LCALLTUNBCD。
显示数据转为三位BCD码存入7AH、79H、78HMOVR2,#0FFH。
每路显示时间控制4MS*255
DISLOOP2:
LCALLDISP。
调四位显示程序
LCALLKEYWORK1。
DJNZR2,DISLOOP2。
INCR0。
显示下一路
INC7BH。
通道显示数加一
DJNZR3,DISLOOP1
DISP11:
MOVA,7BH。
单路显示控制子程序
SUBBA,#01H。
MOV7BH,A。
ADDA,#70H。
MOVR0,A。
DISLOOP11:
显示数据转为三位BCD码存入7AH、79H、78H(最大5.00v)
MOVR2,#0FFH。
每路显示时间控制4MS*25
DISLOOP22:
LCALLKEYWORK2。
按键检测
DJNZR2,DISLOOP22
*显示数据转为三位BCD码程序*
显示数据转为三位BCD码存入7AH、79H、78H(最大值5.00v);
TUNBCD:
MOVA,@R0。
255/51=5.00V运算
MOVB,#51。
DIVAB。
MOV7AH,A。
个位数放入7AH
MOVA,B。
余数大于19H,F0为1,乘法溢出,结果加5
CLRF0
SUBBA,#1AH
MOVF0,C
MOVA,#10。
MULAB。
DIVAB
JBF0,LOOP2。
ADDA,#5
LOOP2:
MOV79H,A。
小数后第一位放入79H
MOVA,B
JBF0,LOOP3。
LOOP3:
MOV78H,A。
小数后第二位放入78H
*显示子程序*
共阳显示子程序,显示内容在78H—7BH;
DISP:
MOVR1,#78H。
共阳显示子程序,显示内容在78H—7BH
MOVR5,#0FEH。
数据在P1输出,列扫描在P3.0-P3.3
PLAY:
MOVP1,#0FFH
MOVA,R5
ANLP3,A
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
JBP3.2,PLAY1。
小数点处理
CLRP1.7。
小数点显示(显示格式为XX.XX)
PLAY1:
LCALLDL1MS
INCR1
MOVA,P3
JNBACC.3,ENDOUT
RLA
MOVR5,A
MOVP3,#0FFH
AJMPPLAY
ENDOUT:
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH。
断码表
*延时程序*
DL10MS:
MOVR6,#0D0H。
10MS延时子程序
DL1:
MOVR7,#19H
DL2:
DJNZR7,DL2
DJNZR6,DL1
DL1MS:
MOVR4,#0FFH。
(513+513)ms=1MS
LOOP11:
DJNZR4,LOOP11
MOVR4,#0FFH
LOOP22:
DJNZR4,LOOP22
*电压测量(A/D)子程序*
一次测量数据8个,依次放入70H-77H单元中;
TEST:
CLRA。
模数转换子程序