多路数字电压表_第1页
多路数字电压表_第2页
多路数字电压表_第3页
多路数字电压表_第4页
多路数字电压表_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、多路数字电压表摘要 随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。数字电压表(Digital Voltmeter)简称DVM,它采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域

2、,示出强大的生命力。 本文中数字电压表的控制系统采用AT89C52单片机,A/D转换器采用 ADC0809为主要硬件,实现数字电压表的硬件电路与软件设计该系统的数字电压表电路简单,所用的元件较少,成本低,调节工作可实现自动化。还可以方便地进行8路A/D转换量的测量远程测量结果传送等功能。数字电压表可以测量0-5V的8路输入电压值,并在四位LED数码管上轮流显示或单路选择显示。关键词:单片机,电压,A/D转换,ADC0809AbstractIn modern measuring technology,it is often required to conduct site measuring w

3、ith a digital voltmeterThe data measured will then be input into the micro-computer system to execute such functions like calculating,storing,controlling and displayingThe digital voltmeter control system described in this paper makes use of AT89C52 SC computer and ADC0809 A/D converter to fulfill t

4、he designing of the software as well as the electrical circuitThe voltmeter features in simple electrical circuit,Lower use of elements,low cost and automatic regulation,while it can also easily carry out the duties of measuring A/D converted values from 8 routes and remote transfer of measuring dat

5、aThe meter is capable of measuring voltage inputs from 8 routes ranging from 0 to 5 voltAnd displaying the measurements in turn or only that from a selected routeKey words: Micro Controller Unit,Voltmeter,A/D switch,ADC0809目录摘要IAbstractII引言11 设计任务描述21.1 设计题目21.2 设计任务要求21.3 设计目的22 总体设计32.1总体方案框图32.2

6、方案论证32.3 系统原理分析43 系统设计53.1 系统硬件设计53.1.1 AT89C52介绍53.1.2 ADC0809介绍63.1.3 LED数码管介绍73.2 系统软件设计73.2.1 主程序73.2.2 A/D转换子程序83.2.3 显示子程序94 调试及性能分析104.1 调试与测试104.2 性能分析105 控制源程序清单11总结16致谢17参考文献18III引言单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU)。随着单片机技术的飞速发展,各种单片机蜂拥而至,单片机技术已成为一个国家现代化科技水平的重要标

7、志。 单片机可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。本次课程设计的课题是“基于单片机的多路数字电压表的设计”。主要考核我们对单片机技术,编程能力等方面的情况。观察独立分析、设计单片机的能力,以及实际编程技能。 传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可

8、扩展性强、集成方便。通过单片机,采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表,使测得的结果更为精准。本次设计了一个多路数字电压表,该电压表测量范围在05V之间。它主要利用A/D转换器,对多路电压值进行采样,得到相应的数字量,然后按照数字量与模拟量的比例关系得到对应的模拟电压值,通过显示设备显示出来。系统过程就是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示。由于采用高性能的单片机芯片为核心,同时利用LED数码管为显示设备,这样就使显示清晰直观、读数准确,大大地减少了因人为因素所造成的测量误差事件,大大的提高了测量的精确度。1 设计任务

9、描述1.1 设计题目多路数字电压表1.2 设计任务要求 用单片机设计出一个多路数字电压表。此多路数字电压表完成采集外部电压值并在系统内部LED中显示出来功能。设计一个多路数字电压表,该多路数字电压表工作过程和设计内容:先用A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成正比关系运算得到对应的模拟电压值,最后模拟值通过显示器显示出来。设计时假设待测的输入电压为8路,电压值的范畴为0-5V,要求能在4位LED数码管轮流显示或单路选择显示。测量的最小分辨率为0.019V,测量误差为±0.02V。同时为了使用方便,本题目还需要设计几个简单按键,可以通过按键选择可8路循

10、环显示,也可单路显示,单路显示可通过按键选择显示的通道数。1.3 设计目的能综合运用单片机技术知识,进行实际电子系统的设计、安装和调测,以加深对单片机基本知识的理解,提高综合应用知识的能力、分析解决问题的能力和电子技术实践技能,初步培养研制实用电子系统的能力。1.通过这次课程设计可以更好的掌握单片机的基本知识; 2.可以学会安装,调试与仿真等集成电路组成的多级电子电路小系统。3.可以更好的掌握课本上所学的知识,培养自己对所学专业的热爱。2 总体设计2.1总体方案框图 在现代测量中,数字电压表的用途越来越广泛,在教学、测量、以及工程等方面有着不可或缺的作用。其优质特点更深受用户喜爱。数字电压表(

11、Digital Voltmeter)简称DVM,它采用数字显示,直观准确,无视觉误差,并具有极性自动显示功能。测量精度和分辨率都很高。电路的集成度高,便于组装和维修,使用更为可靠和耐久。所以研究制作一种多路数字电压表是非常有意义的。本设计从各个角度分析了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理,并且分析了程序如何驱动单片机进而使系统运行起来的原理及方法。系统设计总体框图如图2.1所示。图2.1 系统设计总体框图2.2 方案论证按照系统功能要求,控制系统采用AT89C52单片机,A/D转换采用ADC0809,系统除能确保实现要求的功能外,还可以方便地进行其它功能的扩展。数字电

12、压表系统设计方案框图如图2.2所示。 图2.2 数字电压表系统设计方案2.3 系统原理分析 根据系统的功能要求,控制系统采用AT89C52单片机,A/D转换器采用ADC0809。ADC0809是8位的A/D转换器。当输入电压为5.00V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196V(5/255)。ADC0809具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8路输入电压进行测量。LED数码管显示采用软件译码动态显示。通过按键选择可8路循环显示,也可单路显示,单路显示可通过按键选择显示的通道数。

13、多路数字电压表应用系统主要利用A/D转换器,处理过程如下:先用A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成正比关系运算得到对应的模拟电压值,然后把模拟值通过显示器显示出来。设计时假设待测的输入电压为8路,电压值的范畴为0-5V,要求能在4位LED数码管上轮流显示或单路选择显示。测量的最小分辨率为0.019V,绝对测量误差为+0.02V和-0.02V。3 系统设计3.1 系统硬件设计8路数字电压测量电路由A/D转换、数据处理及显示控制等组成电路原理图如图3.1所示。A/D转换由集成电路0809完成,0809具有8路模拟输入端口,地址线(2325脚)可决定对哪一路模拟输

14、入作A/D转换。22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2us宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出。10脚为0809的时钟输入端,利用单片机30脚的6分频晶振频率,再通过二进制计数器14 024二分频得到1MHz的时钟。单片机的P1口、P3.0P3.3端口作为4位LED数码管显示控制。P3.5端口按钮可用作单路显示/循环显示,P3.6端口按钮可用作单路显示时选择通道。P0端口作A/D转换数据读入,P2端口用作08

15、09的A/D转换控制。图3.1 数字电压表电路原理图3.1.1 AT89C52介绍 单片机采用MCS-51系列单片机。由ATMEL公司生产的AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。在单芯片上,拥有灵巧的8位CPU 和在线系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。AT89C52具有以下标准功能: 8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器

16、,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。而且,它还具有一个看门狗(WDT)定时/计数器,如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,片上Flash允许程序存储器在系统可编程,亦适于

17、常规编程器。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。其芯片引脚图如图3.2所示。图3.2 AT89C52引脚图3.1.2 ADC0809介绍 ADC0809具有8路模拟量输入通道IN0IN7,通过3位地址输入端C、B、A(2325引脚)进行选择。22引脚为地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存于ADC0809内部的锁存器中,经内部译码选中相应的模拟通道。6引脚为启动转换控制端START,当输入一个2us宽的高电平脉冲时,就启动ADC0809开始对输入通道的模拟量进行转换。7引脚为A/D转换结束信号EO

18、C,ADC0809为逐次比较型A/D转换器,当开始转换时,EOC信号为低电平,经过一定时间,转换结束,转换结束信号EOC输出高电平,转换的结果存放在ADC0809内部的输出数据锁存器中。9引脚为A/D转换数据输出允许控制端OE,当OE为高电平时,存放在输出数据锁存器中的数据通过ADC0809的数据线D0D7输出。10引脚为ADC0809的时钟信号输入端CLOCK。在连接时,ADC0809的数据线D0D7与AT89C51的P0口相连,ADC0809的地址引脚、地址锁存端ALE、启动信号START、数据输出允许控制端OE分别与AT89C52的P2口相连,转换结束信号EOC与AT89C52的P3.7

19、相连。时钟信号输入端CLOCK信号的频率为1MHZ。3.1.3 LED数码管介绍 LED数码管采用动态扫描方式连接,通过AT89C52的P1口控制。P1口为LED数码管的字段码输出端。 K1和K2是两个按键开关,它通过单片机的P3.5和P3.6相连,K1用于单路显示或多路循环显示转换控制,K2当单路显示时通道选择。3.2 系统软件设计 多路数字电压表系统软件程序主要由主程序、A/D转换子程序和显示子程序这三部分构成。3.2.1 主程序主程序包含初始化部分、调用A/D转换子程序和调用显示程序,初始化部分包含存放通道数据的缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置一个标

20、志位00H控制,初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示控制,00H位通过单路/循环按键控制。系统上电后,程序先将P2口置0,然后调用显示子程序和A/D转换测量子函数并进入循环。系统默认依次循环显示8个通道的电压值,每个通道的数据显示时间在1S左右,电压测量的周期约为8S。主函数执行流程图如图3.3所示。图3.3 主函数流程图3.2.2 A/D转换子程序A/D转换子程序用于对ADC0809八路输入模拟电压进行A/D转换,并将转换的数值存入8个相应的存储单元中,如图3.4所示。A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次。 开始 启动一次转换 A

21、/D转换结束? EOC=1? 取数据(OE=1) 0809地址加1地址数小于8? 返回 N Y Y N 图3.4 A/D转换测量子函数流程图3.2.3 显示子程序LED数码管采用软件译码动态扫描方式。在显示子程序中包含多路循环显示程序和单路显示程序,多路循环显示程序把8个存储单元的数值依次取出送到4个数码管上显示,每一路显示1秒。单路显示程序只对当前选中的一路数据进行显示。每路或多路循环显示通过标志位00H控制。在显示控制程序中加入了对单路或多路循环按键和通道选择按键的判断。4 调试及性能分析4.1 调试与测试采用Keil C51的C编译器进行C源程序编译及调试,同时进行硬件电路板的设计制作,

22、然后进行软硬件联调,最后进行端口电压的对比测试。测试对比表如表1.1所列,表中标准电压值采用数字万用表测得。表1.1简易数字电压表与“标准”数字电压表对比测试表标准值/V0.00 0.150.851.00 1.25 1.75 1.98 2.322.65 测量值/V0.00 0.170.861.02 1.26 1.76 2.00 2.332.66 绝对误差/V0.00+0.02+0.01+0.02+0.01+0.01+0.02+0.01+0.01标准值/V3.00 3.453.554.00 4.50 4.60 4.70 4.814.90 测量值/V3.01 3.473.564.01 4.52 4

23、.62 4.72 4.824.92 绝对误差/V0.01 0.020.01+.0.010.02 0.02 0.02 0.010.02 从表中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02V以内,这与采用8位A/D转换器所能达到的理论误差精度一致,在一般的应用场合完全可以满足要求。4.2 性能分析由于单片机为8位处理器,当输入电压为5.00V时,ADC0809输出数据值为255(FFH),因此单片机最大数值分辨率为0.0196V(5/255),这就决定了该电压表的最大分辨率只能达到0.0196V,测试时电压数值的变化一般以0.02的电压幅度变化。如果要获得更高的精度要求,

24、应采用12位、13位的A/D转换器。简易电压表测得的值基本上均比标准值偏大0.010.02V,这可以通过校正ADC0809的基准电压来解决。因为该电压表设计时直接用5V的供电电源作为基准电压,所以电压可能有偏差。另外,可以用软件编程来校正测量值。ADC0809的直流输入阻抗为1M欧姆,能满足一般的电压测试需要。另外,经测试ADC0809可直接在2MHz的时钟频率下工作,这样可省去分频器14 024。5 控制源程序清单 以下是8路数字电压表的单片机控制汇编语言程序:ORG 0000HLJMP STARTORG 0003HRETIORG 000BHRETIORG 0013HRETIORG 001B

25、HRETIORG 0023HRETIORG 002BHRETI;CLEARMEMIO:CLR AMOV P2,AMOV R0,#70HMOV R2,#0DHLOOPMEM:MOV R0,AINC R0DJNZ R2,LOOPMEMMOV 20H,#00HMOV A,#0FFHMOV P0,AMOV P1,AMOV P3,ARET;START:LCALL CLEARMEMIOMAIN:LCALL TESTLCALL DISPLAYAJMP MAINNOPNOPNOPLJMP START;DISPLAY:JB 00H,DISP11MOV R3,#08HMOV R0,#70HMOV 7BH,#00H

26、DISLOOP1:LCALL TUNBCDMOV R2,#0FFHDISLOOP2:LCALL DISPLCALL KEYWORK1DJNZ R2,DISLOOP2INC R0INC 7BHDJNZ R3,DISLOOP1RETDISP11:MOV A,7BHSUBB A,#01HMOV 7BH,AADD A,#70HMOV R0,ADISLOOP11:LCALL TUNBCDMOV R2,#0FFHDISLOOP22:LCALL DISPLCALL KEYWORK2DJNZ R2,DISLOOP22INC 7BHRET;TUNBCD:MOV A,R0MOV B,#51HDIV ABMOV 7

27、AH,AMOV A,BCLR F0SUBB A,#1AHMOV F0,CMOV A,#10HMUL ABMOV B,#51DIV ABJB F0,LOOP2ADD A,#5LOOP2:MOV 79H,AMOV A,BCLR F0SUBB A,#1AHMOV F0,CMOV A,#10HMUL ABMOV B,#51DIV ABJB F0,LOOP3ADD A,#5LOOP3:MOV 78H,ARET;DISP:MOV R1,#78HMOV R5,#0FEHPLAY:MOV P1,#0FFHMOV A,R5ANL P3,AMOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV

28、 P1,AJB P3.2,PLAY1CLR P1.7PLAY1:LCALL DL1MSINC R1MOV A,P3JNB ACC.3,ENDOUTRL AMOV R5,AMOV P3,#0FFHAJMP PLAYENDOUT:MOV P3,#0FFHMOV P1,#0FFHRETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH;DL10MS:MOV R6,#0D0HDL1:MOV R7,#10HDL2:DJNZ R7,DL2DJNZ R6,DL1RET;DL1MS:MOV R4,#0FFHDL3:DJNZ R4,DL3MOV R

29、4,#0FFHDL4:DJNZ R4,DL4RET;TEST:CLR AMOV P2,AMOV R0,#70HMOV R7,#08HLCALL TESTARTWAIT:JB P3.7,MOVDAJMP WAIT;TESTART:SETB P2.3NOPNOPCLR P2.3SETB P2.4NOPNOPCLR P2.4NOPNOPNOPNOPRET;MOVD:SETB P2.5MOV A,P0MOV R0,ACLR P2.5INC R0MOV A,P2INC AMOV P2,ACJNE A,#08H,TESTENDTESTEND:JC TESTCONCLR AMOV P2,AMOV A,#0F

30、FHMOV P0,AMOV P1,AMOV P3,ARET;TESTCON:LCALL TESTARTLJMP WAITKEYWORK1:JNB P3.5,KEY1KEYOUT:RET;KEY1:LCALL DISPJB P3.5,KEYOUTWAIT11:JNB P3.5,WAIT12CPL 00HMOV R2,#01HMOV R3,#01HRET;WAIT12:LCALL DISPAJMP WAIT11;KEYWORK2:JNB P3.5,KEY1JNB P3.6,KEY2RET;KEY2:LCALL DISPJB P3.6,KEYOUTWAIT22:JNB P3.6,WAIT21INC

31、7BHMOV A,7BHCJNE A,#08H,KEYOUT11KEYOUT11:JC KEYOUT1MOV 7BH,#00HKEYOUT1:RET;WAIT21:LCALL DISPAJMP WAIT22END;总结经过两个个星期紧张的课程设计,我们终于完成了多路数字电压表的课程设计,对于这一课设题目,我们很迷茫,感觉不知道从哪开始做起,两周的时间虽说比较充裕,但是对于从未接触过单片机课设的我们而言,相当紧张,但是我们有自信,我们能够做一个完美的设计。课题到手后我就开始查关于数字电压表的课程设计资料,网络、书本等等,能帮到我的一点也不能放过。我从参考书上找到了自己需要的知识,便从书上开始,从最基本的学起。最难的就是对题目的理解,我查阅了很多资料,同时也向同学们请教,来解决自己的问题。经过几天的努力,我终于把自己的多路数字电压表这一课题完整地做了出来,看见自己的成果,心里有前所未有的自豪感。最好的学习便是实践,我深信不疑这句话。在学习单片机这一科目的的时候,我的编程不是很好,在经过这次课程设计后,我感觉我对单片机有了另一番了解。单片机课设让我对我的专业有了更

温馨提示

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

评论

0/150

提交评论