1、3第三周完成软件和硬件的联合调试。简易数字电压表设计摘 要:本课题实验主要采用AT89C51芯片和ADC0808芯片来完成一个简易的数字电压表,能够对输入的05 V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.019V。该电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。A/D转换主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片AT89C51来完成,其负责把ADC0808传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着ADC08
2、08芯片的工作。显示模块主要由7段数码管及相应的驱动芯片(74HC245)组成,显示测量到的电压值。关键词:简易数字电压表;ADC0809;AT89C51;LED。1 引言数字电压表(Digital Voltmeter)简称DVM,作为智能仪表的一种,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、
3、自动测试系统等智能化测量领域,示出强大的生命力。最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱
4、动输出装置LED显示数字电压信号。2 设计总方案2.1设计要求 (1)以MCS-51系列单片机为核心器件,组成一个简单的直流数字电压表。(2)采用1路模拟量输入,能够测量0-5V之间的直流电压值。(3)电压显示用4位一体的LED数码管显示,至少能够显示两位小数。(4)具有过压保护功能。(5)能够测量-5V-5V电压。(6)可以八通道循环显示。(7)尽量使用较少的元器件。2.2 设计思路(1)根据设计要求,选择AT89C51单片机为核心控制器件。(2)A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。(3)电压显示采用4位一体的LED数码管。(4)LED数码的段码输入
5、,由并行端口P0产生:位码输入,用并行端口P2低四位产生。2.3 总体设计框图硬件电路设计由6个部分组成; A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。硬件电路设计框图如图1所示。时钟电路 复位电路A/D转换电路测量电压输入显示系统AT89C51 P1 P2 P0 图1 数字电压表系统硬件设计框图3 设计原理分析3.1 A/D转换电路本设计采用的是ADC0808,ADC 0808精度为8位,它是CMOS器件,不仅包括一个8位的逐次逼近型的ADC部分,而且还提供一个8通道的模拟多路开关和通道寻址逻辑,因而有理由把它作为简单的“数据采集系统”。
6、利用它可直接输入8个单端的模拟信号分时进行A/D转换,在多点巡回检测和过程控制、运动控制中应用十分广泛。其外部引脚图如图2所示:图2 ADC0808/0809外部引脚图各个引脚的功能为:(1)IN0IN78路模拟输入,通过3根地址译码线ADDA、ADDB、ADDC来选通一路。(2)D7D0A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。8位排列顺序是D7为最高位,D0为最低位。(3)ADDA、ADDB、ADDC模拟通道选择地址信号,ADDA为低位,ADDC为高位。(4)VR(+)、VR(-)正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。在单极性输入时,VR
7、(+)=5V,VR(-)=0V;双极性输入时,VR(+)、VR(-)分别接正、负极性的参考电压。(5)ALE地址锁存允许信号,高电平有效。当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。(6)STARTA/D转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。(7)EOC转换结束信号,高电平有效。该信号在A/D转换过程中为低电平,其余时间为高电平。该信号可作为被CPU查询的状态
8、信号,也可作为对CPU的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。(8)OE输出允许信号,高电平有效。当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。ADC0809的工作过程: (1) 首先确定ADDA、ADDB、ADDC三位地址,决定选择哪一路模拟信号; (2) 使ALE端接受一正脉冲信号,使该路模拟信号经选择开关到达比较器的输入端; (3) 使START接受一正脉冲信号,START的上升沿将
9、逐次逼近寄存器复位,下降沿启动A/D转换; (4) EOC输出信号变低,指示转换正在进行。 (5) A/D转换结束,EOC变为高电平,指示A/D转换结束。此时,数据已保存到8位三态输出锁存器中。此时CPU就可以通过使OE信号为高电平,打开ADC0809三态输出,由ADC0809输出的数字量传送到CPU。如下图表一:表1 通道选择CBA选择的通道IN11IN2IN3IN4IN5IN6IN7IN83.2 过压保护电路如下图过压保护电路,发光二极管理想情况下的压降位2V。当电压低于5V时,发光二级管与电源不能构成闭合回路,且RC远远大于RR,所以输出电压近似等于输入电压,当输入电压大于5V时,发光二
10、级管与电源构成闭合回路,二极管发光,提示过电压,而且输出电压近似等于5V。图3过压保护电路3.3 数码管显示电路本设计使用的是LED数码管,LED数码管显示器是由发光二极管显示字段的显示器件,也称为数码管。其外形结构如图所示。它由8个发光二极管构成,通过不同的组合可用来显示0-9、A-F及小数点“.”等字符。LED数码管提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口。 图4 显示电路3.4 震荡与复位电路单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器(大小为1MHZ)和两只电容(电容和一
11、般取30pF)。这样就构成一个稳定的自激振荡器。振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生ALE信号,此时得到的信号时机器周期信号。振荡电路如图5所示:图5 振荡电路图复位操作有两种基本形式:一种是上电复位,另一种是按键复位。按键复位具有上电复位功能外,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),
12、单片机就可以进行复位操作。按键复位电路图如图6所示。图6 复位电路图3.5 拓展功能负压显示使用单片机判断p1.7的高低电平来是执行0-5V的电压输出还是-5V-5V的电压,但会是该简易数字电压表的精度误差升高为0.0392V,当测量负压的时候有外界提供-5V电压,因为我们的过压保护不能保护有点不足,所以需另外引出线作为输入的测试电压如下图7负压测试:第一个数码管显示表示为零通道。图7负压显示电路此电路的工作原理是:模拟电压(负压)信号通过变阻器VR?分压后由ADC0808的IN0通道进入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低电平),经过模/数转换后,产生相应的数字量经
13、过其输出通道D0-D7传送给AT89C51芯片的P2口,AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位LED,同时它还通过其四位I/O口P1.0、P1.1、P1.2、P1.3产生位选信号控制数码管的亮灭。此外,AT89C51还控制ADC0808的工作。其中,单片机AT89C51通过定时器中断从P3.3输出方波,接到ADC0808的CLOCK,P3.0发正脉冲启动A/D转换,P3.2检测A/D转换是否完成,转换完成后,P3.1置高从P1口读取转换结果送给LED显示出来。简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Prote
14、us软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。3.6 八通道循环显示ADDA、ADDB、ADDC为3位片选地址输入线,用于选通8路模拟输入中的一路。本例中分别将之接在p3.4,p3.5,p3.6上,用单片机使之循环,来选择端口,使模拟量循环在数码管显示如下图8所示:图8循环显示4 总结体会经过一段时间的努力,课程设计-基于MCS-51单片机数字电压表设计基本完成。但设计中的不足之处仍然存在。在这过程中,我对电路设计,单片机的使用等都有了新的认识。通过这次设计学会了Proteus和Keil
15、软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。在实际应用工作应能好,测量电压准确,精度高。系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了简易数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接方面还是在软件编程方面。本次设计采用了AT89C51单片机芯片,与以往的单片机相比增加了许多新的功能,使
16、其功能更为完善,应用领域也更为广泛。设计中还用到了模/数转换芯片ADC0808,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的理解。总之这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。参考文献1 李朝青.单片机原理及接口技术M.(第三版).北京:北京航天航空大学出版社,2005.17242 苗红霞.单片机实现数字电压表的软硬件设计M.常州:河海大学常州大学出版社,2002,03233 何立民.MCS-51单片机应用系统设计M.北京:北京航空航天大学
17、出版社,1990.01184胡辉主编单片机原理及应用设计M北京:中国水利水电出版社,2005.1284附录1 程序清单:ORG 0000H LJMP MAIN ORG 000BH AJMP STORG 0030H MAIN: CLR C MOV DPTR,#TAB MOV SP,#60HMOV TMOD,#02HMOV R0,#00HMOV R1,#00HMOV R2,#80CRL P3.4CRL P3.5CRL P3.6 MOV TH0,#245 MOV TL0,#00H MOV IE,#82HMOV P1,#0c0h SETB TR0JNB P1.6,LOOPP1LOOPP:MOV A,R
18、1SWAP AORL A,P3MOV P3,A LCALL REC LCALL TRA LCALL DISDJNZ R2,LOOPPINC R1 CJNE R1,#08H,LOOPPMOV R1,#00H SJMP LOOPPLOOPP1:JNB P1.7,LOOPPPLCALL TRASJMP LOOPPP1LOOPPP: LCALL TRA1 LOOPPP1: LCALL DISSJMP LOOPP1REC:CLR P3.0CLR P3.1SETB P3.0 NOPJNB P3.2,$ SETB P3.1 MOV 50H,P2RETTRA:MOV B,#33H MOV A,50HDIV A
19、B MOV 51H,AXCH A,BMOV B,#05H DIV ABMOV 52H,AMOV A ,#02HMUL ABMOV 53H,A TRA1:SUBB A,#7FHJC LOOP4RL ACLR F0MOV 50H,ALOOP5:RET LOOP4:MOV A,#7FHSUBB A,50HSETB F0SJMP LOOP5ST: CPL P3.3 RETIDIS:SETB P1.0JNB F0,LOOP2MOV P0,#0BFSJMP LOOP3 loop2: MOV P0,#0C0Hloop3: LCALL DELAYMOV A,51H MOVC A,A+DPTRCLR P1.4CLR P1.0SETB P1.1MOV P0,#00HMOV P0,ACLR P0.7 LCALL DELAY MOV A,52H CLR P1.1SETB P1.2MOV A,53H CLR P1.2SETB P1.3LCALL DELAYCLR P1.3SETB P1.4DELAY:MOV R7,#0AHD1: MOV R6,#64HDJNZ R6,$DJNZ R7,D1TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND 附录2 电路图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1