基于单片机数字电压表的设计_第1页
基于单片机数字电压表的设计_第2页
基于单片机数字电压表的设计_第3页
基于单片机数字电压表的设计_第4页
基于单片机数字电压表的设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学 生 毕 业 设 计(论 文)课题名称基于单片机数字电压表的设计姓 名*学 号0712301-12院 系*专 业电子信息工程技术指导教师*2010年3月25日目 录摘 要4关键词 4abstract 4key words5前言 51、 总体结构 52、 系统硬件电路的设计 62.1、 10 倍放大器电路 62.2、 a / d 转换电路72.3、 电桥输入电路82.4、 测试电路83、 系统程序的设计113.1、 初始化程序 113.2、 主程序 113.3、 显示子程序 113.4、 a / d 转换测量子程序 11 4、 调试与性能分析12 4.1、 调试与测试 12 4.2、 性能分析

2、 135、 结 语 14 6、 单片机汇编程序清14 参考文献21 致谢22 附录22基于单片机数字电压表的设计摘 要: 数字电压表的诞生打破了传统电子测量仪器的模式和格局。它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成的测量误差事件。数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。数字电压表把电子技术、计算技术、自动化技术的成果与精密电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电压表标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。本设计采用了以单片机为开发平台,控制系采用at8

3、9c52单片机,a/d转换采用adc0809。系统除能确保实现要求的功能外,还可以方便进行8路其它a/d转换量的测量、远程测量结果传送等扩展功能。简易数字电压测量电路由a/d转换、数据处理、显示控制等组成。关键词:单片机;at89c52;a/d转换;adc0809;数据处理design of digital voltage meter based on single-chip microcomputer*( 2010 year student of electronics and information engineering major of*)abstract: the birth of

4、digital voltage meter break the traditional model of electronic measuring instruments and patterns. it shows the clear and intuitive, accurate readings, using an advanced digital display technology, greatly reduced due to human factors of the measurement error caused by the incident. digital voltage

5、 meter is a row of analog (dc input voltage) into a non-continuous, discrete digital form, and the instrument display. digital voltage meter to electronic technology, computing technology, automation technology and precision of the results of electrical measurement technology closer together and bec

6、ome instruments, meters and complete an independent field of a branch, digital voltage meter indicates that the field of electronic devices a revolution and also pioneered the modern pioneer of electronic measurement technology. the design uses a single-chip platform for the development, control of

7、the department of the use of at89c52 single-chip, a/d conversion using adc0809. in addition to the realization of the system to ensure that the required functionality, but also facilitate the 8 other a/d converter measurement, distance measurement function of transmission expansion. simple digital v

8、oltage measuring circuit is made of the a/d conversion, data processing, display control, etc.key words: scm; at89c52; a/d conversion; adc0809; data processing引言数字电压表(digital voltmeter)简称dvm,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性

9、强、集成方便,还可与pc进行实时通信。目前,由各种单片a/d 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由dvm扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。新型数字电压表以其高准确度、高可靠性、高分辨率、高性价比等优良特性倍受人们的青睐。目前,数字电压表作为数字化仪表的基础与核心,已被广泛用于电子和电工测量、工业自动化仪表、自动测试系统等领域,显示出强大的生命力。与此同时,由电压表扩展而成的各种通用及专用仪表(含数字万用表),也将电量及非电量测量技术提高到崭新水平本文重点介绍单

10、片a/d 转换器以及由它们构成的基于单片机的数字电压表的工作原理。1、 总体结构数字电压表的组成(图1)图1 数字电压表的组成框图dvm(digital voltage meter)的核心是a/d转换器。按系统功能实现要求,决定控制系统采用at89c52单片机,a/d转换采用adc0809。系统除能确保实现要求的功能外,还可以方便地进行8路其他a/d转换量的测量和远程测量结果传送等扩展功能。数字电压表系统设计方案框图如图2所示。at89c52 p0p2p1 p3adc08094位led显示上电复位串口通信电源电路图2 数字电压表系统设计方案框图2、系统硬件电路的设计2.1、10倍放大器电路下图

11、是一个最简单的10倍放大电路,运算放大器使用的是精度比较高的op07,利用它,可以把0200mv的电压放大到02.000v。在使用的数字电压表量程为2.000v时,特别有用。如果把它应用在基本量程为200.0mv的数字电压表上,就相当于把分辨力提高了10倍,在一些测量领域中,传感器的信号往往觉得太小了,这时,可以考虑在数字压表前面加上这种放大器来提高分辨力。图3 10倍放大器电路2.2、 a/d转换电路在电流或者电压的测量中,经常遇见测量的并不是直流而是交流,这时候,绝对不可以把交流信号直接输入到数字电压表去,必须先把被测的交流信号变成直流信号后,才可以送入数字电压表进行测量。下图就是一个把交

12、流信号转换成为直流信号的参考电路。(说明:更好的交流转换成为直流的电路是一种“真有效值”转换电路,但是由于其专用芯片价格昂贵,多应用在一些高档场合。)本电路中,输入的是0200.0mv的交流信号,输出的是0200.0mv的直流信号,从信号幅度来看,并不要求电路进行任何放大,但是,正是电路本身具有的放大作用,才保证了其几乎没有损失地进行acdc的信号转换。因此,这里使用的是低功耗的高阻输入运算放大器,其不灵敏区仅仅只有2mv左右,在普通数字万用表中大量使用,电路大同小异。首先输入3位地址,并使ale=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。start上升沿将逐次逼近

13、寄存器复位。下降沿启动 ad转换,之后eoc输出信号变低,指示转换正在进行。直到ad转换完成,eoc变为高电平,指示ad转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当oe输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。图4 ac-dc转换电路2.3、 电桥输入电路在温度测量和其他物理及化学量的测量中,经常会出现“零点”的时候信号不是零的情况,这时候,下面的“电桥输入”电路就被优先采用了。可以根据被测信号的特点,用传感器替换电桥回路中的某一个电阻元件。数字电压表的两个输入端也不再有接地点,作为一种典型的“差分”输入来使用了。图5 电桥输入(差分输入,比例输入)电路2

14、.4、 测量电路电桥输入电路的变种还可以延伸到下面的电路,这是一个把420ma电流转换为数字显示的电路。它的零点就是4ma而不是0ma。当输入零点电流为4ma的时候,利用in-上面建立起来的电压,抵消掉in+由于4ma出现的无用信号,使得数字电压表差分输入0,就实现了4ma输入时显示为0的要求。随着信号的继续增大,例如到了20ma,对数字电压表来说,相当于差分输入电流为20-4=16ma,这个16ma在62.5r电阻上的压降,就是数字电压表的最大输入信号。这时候,把数字电压表的基准电压调整到与16*62.51000mv相等,显示就是1000个字。图6 测量电路简易数字电压表测量电路由a/d转换

15、、数据处理及显示控制等组成,电路原理图如图8所示。a/d转换有集成电路adc0809完成。adc0809具有8路模拟输入端口,地址线(第23-25脚)可决定对哪一路模拟输入作a/d转换。第22脚位地址锁存控制,当输入为高电平时,对地址信号进行锁存。第6脚位测试控制,当输入一个2 宽高电平脉冲时,就开始a/d转换。第7脚为a/d转换结束标志,当a/d转换结束时,第7脚输出高电平。第9脚为a/d转换数据输出允许控制,当oe脚为高电平时,a/d转换数据从端口输出。第10脚为adc0809的时钟输入端,利用单片机第30脚嘚分频晶振频率,再通过14024二分频得到1mhz时钟。单片机的p1、p3.0-p

16、3.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所示。初始化调用a/d转换测量子程序调用显示子程序开 始结 束 图

17、7 主程序流程图3.3 显示子程序显示子程序采用动态扫描法实现4位数码管的数值显示。测量所得的a/d转换数据放在70h-77h内存单元中,测量数据在显示时须经过转换成为十进制bcd码放在78h-7bh单元中,其中7bh存放通道标志数。寄存器r3用作8路循环控制,r0用作显示数据地址指针。3.4 a/d转换测量子程序a/d转换测量子程序用来控制对adc0809的8路模拟输入电压的a/d转换,并将对应的数值移入70h-77h内存单元。a/d转换测量子程序流程图如图9所示图9 a/d转换测量子程序流程图4、 调试及性能分析4.1 调试与测量采用wave或keil c51编译器进行源程序编译及仿真调试

18、,同时进行硬件电路板的设计制作,烧录好程序后进行软硬件联调,最后进行端口电压的对比测试。测试对比表如表1所列。表中标准电压值采用ut56数字万用表测得。表1 简易数字电压表与“标准”数字电压表对比测试表标准电压值/v简易电压表测得值/v绝对误差/v0.000.000.000.150.17+0.020.850.86+0.011.001.02+0.021.251.26+0.011.751.76+0.011.892.00+0.022.322.33+0.012.652.65+0.01从表1中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02v以内,这与采用8位a/d转换器所能到达到

19、的理论误差精度相一致,在一般的应用场合完全可以满足要求。4.2 性能分析图10 数字电压表工作过程波形图图10示出的是数字电压表工作过程波形图,启动脉冲位于斜坡脉冲起点,关门脉冲位于斜坡脉冲与被测电压ux的交点,图10(d)表示在这个时间间隔内通过t门的标准时间脉冲个数。数字电压表的准确度首先取决于标准时间脉冲发生器所发脉冲频率的稳定程度,因为若单位时间发出的脉冲个数发生波动,必然影响读数。其次决定于斜坡上升的线性,若斜坡呈线性上升,则可保证电压上升值与时间间隔成正比。目前这两方面的技术都比较成熟,所以数字电压表准确度也比较高。(1)由于单片机为8位处理器,当输入电压为5.00 v时,adc0

20、809输出数据值为255(ffh),因此单片机最高的数值分辨率为0.0196 v(5/255)。这就决定了该电压表的最高分辨率(精度)只能达到0.0196 v,测试时电压一般以0.02 v的幅度变化。如果要获得更高的精度要求,则应采用12位、13位的a/d转换器。(2)从表1中可以看出,简易数字电压表测得的值基本上均比标准电压值偏大0.01-0.01 v。这可以通过校正adc0809的基准电压来解决。因为该电压表设计时直接用5 v的供电电源作为基准电压,所以电压有可能有偏差。另外,还可以用软件编程来校正测量值。(3)adc0809的直流输入阻抗为1 m,能满足常用的电压测试需要。另外,经测试a

21、dc0809可直接在2 mhz的时钟频率下工作,这样可省去二进制分频器14024集成块。(4)当要测量大于5的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。但是量程越大,测量的精度会越低。5、 结 语基于单片机at89c52,a/d转换器adc0809的数字电压表,它代表着数字仪表的基础。也标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。数字电压表具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐。6、 单片机汇编源程序清单;简易数字电压表;测量电压最大为5v,显示最大值为5.00v;70h77h存放采样值,78h7b

22、h存放显示数据,依次为个位、十位、百位、通道标志;p3.5作单路显示/循环显示转换用,p3.6作单路显示时选择通道按键用;* 主程序和中断程序入口 *org 0000h ljmp startorg 0003h retiorg 000bhreti org 0013h reti org 001bh retiorg 0023hretiorg 002bhreti;* 初始化程序中的各变量 *clearmemio: clr a mov p2,a mov r0,#70h mov r2,#0dhloopmem: mov r0,a inc r0 djnz r2,loopmem mov 20h,#00h mov

23、 a,#0ffh mov p0,a mov p1,a mov p3,a ret;* 主 程 序 *start: lcall clearmemio ;初始化main: lcall test ;测量一次 lcall display ;显示数据一次ajmpmainnop;pc值出错处理nopnopljmpstart;* 显 示 控 制 程 序 *display: jb 00h,disp11 ; mov r3,#08h ;8路信号循环显示控制 mov r0,#70h ;显示数据初址70h77h mov 7bh,#00h ;显示通道路数初值disloop1: lcall tunbcd ;显示数据转为三位

24、bcd码存入7ah、79h、78h mov r2,#0ffh ;每路显示时间控制 4ms*255disloop2: lcall disp ;调四位显示程序 lcall keywork1 ; djnz r2,disloop2 ; inc r0 ;显示下一路 inc 7bh ;通道显示数加一 djnz r3,disloop1 retdisp11: mov a,7bh ;单路显示控制子程序 subb a,#01h ; mov 7bh,a ; add a,#70h ; mov r0,a ;disloop11: lcall tunbcd ;显示数据转为三位bcd码存入7ah、79h、78h(最大5.00

25、v) mov r2,#0ffh ;每路显示时间控制 4ms*25disloop22: lcall disp ;调四位显示程序 lcall keywork2 ;按键检测 djnz r2,disloop22 inc 7bh ;通道显示数加一 ret;* 显示数据转为三位bcd码程序 *;显示数据转为三位bcd码存入7ah、79h、78h(最大值5.00v);tunbcd: mov a,r0 ;255/51=5.00v运算 mov b,#51 ; div ab ; mov 7ah,a ;个位数放入7ah mov a,b ;余数大于19h,f0为1,乘法溢出,结果加5 clr f0 subb a,#1

26、ah mov f0,c mov a,#10 ; mul ab ; mov b,#51 ; div ab jb f0,loop2 ; add a,#5loop2: mov 79h,a ;小数后第一位放入79h mov a,b clr f0 subb a,#1ah mov f0,c mov a,#10 ; mul ab ; mov b,#51 ; div ab jb f0,loop3 ; add a,#5loop3: mov 78h,a ;小数后第二位放入78h ret;* 显 示 子 程 序 *;共阳显示子程序,显示内容在78h7bh;disp: mov r1,#78h ;共阳显示子程序,显示内

27、容在78h7bh mov r5,#0feh ;数据在p1输出,列扫描在p3.0-p3.3play: mov p1,#0ffh mov a,r5 anl p3,a mov a,r1 mov dptr,#tab movc a,a+dptr mov p1,a jb p3.2,play1 ;小数点处理 clr p1.7 ;小数点显示(显示格式为xx.xx)play1: lcall dl1ms inc r1 mov a,p3 jnb acc.3,endout rl a mov r5,a mov p3,#0ffh ajmp playendout: mov p3,#0ffh mov p1,#0ffh ret

28、tab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0ffh ;断码表;* 延时程序 *dl10ms: mov r6,#0d0h ;10ms延时子程序dl1: mov r7,#19hdl2: djnz r7,dl2 djnz r6,dl1 retdl1ms: mov r4,#0ffh ;(513+513)ms=1msloop11: djnz r4,loop11 mov r4,#0ffhloop22: djnz r4,loop22 ret;* 电压测量(a/d)子程序 *; 一次测量数据8个,依次放入70h-77h单元中;test: clr

29、a ;模数转换子程序 mov p2,a mov r0,#70h ;转换值存放首址 mov r7,#08h ;转换8次控制 lcall testart ;启动测试wait: jb p3.7,movd ;等a/d转换结束信号 ajmp waittestart: setb p2.3 ;测试启动 nop nop clr p2.3 setb p2.4 nop nop clr p2.4 nop nop nop nop retmovd: setb p2.5 ;取a/d转换数据 mov a,p0 mov r0,a clr p2.5 inc r0 mov a,p2 ;通道地址加1 inc a mov p2,a

30、cjne a,#08h,testend ;等8路a/d转换结束testend: jc testcon clr a ;结束恢复端口 mov p2,a mov a,#0ffh mov p0,a mov p1,a mov p3,a rettestcon: lcall testart ljmp wait;* 按键检测子程序 *keywork1: jnb p3.5,key1keyout: retkey1: lcall disp ;延时消抖 jb p3.5,keyoutwait11: jnb p3.5,wait12 cpl 00h mov r2,#01h mov r3,#01h retwait12: lcall disp ;键释放等待时显示用 ajmp wai

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论