基于单片机的简单数字电压表Word格式文档下载.docx
《基于单片机的简单数字电压表Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的简单数字电压表Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
3.第三周完成软件和硬件的联合调试。
简易数字电压表设计
摘要:
本课题实验主要采用AT89C51芯片和ADC0808芯片来完成一个简易的数字电压表,能够对输入的0~5V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.019V。
该电压表的测量电路主要由三个模块组成:
A/D转换模块、数据处理模块及显示控制模块。
A/D转换主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。
数据处理则由芯片AT89C51来完成,其负责把ADC0808传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;
另外它还控制着ADC0808芯片的工作。
显示模块主要由7段数码管及相应的驱动芯片(74HC245)组成,显示测量到的电压值。
关键词:
简易数字电压表;
ADC0809;
AT89C51;
LED。
1引言
数字电压表(DigitalVoltmeter)简称DVM,作为智能仪表的一种,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。
目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型。
数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。
本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:
转换模块、数据处理模块及显示模块。
其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置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数码的段码输入,由并行端口P0产生:
位码输入,用并行端口P2低四位产生。
2.3总体设计框图
硬件电路设计由6个部分组成;
A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。
硬件电路设计框图如图1所示。
时钟电路
复位电路
A/D转换电路
测量电压输入
显示系统
AT89C51
P1
P2
P0
图1数字电压表系统硬件设计框图
3设计原理分析
3.1A/D转换电路
本设计采用的是ADC0808,ADC0808精度为8位,它是CMOS器件,不仅包括一个8位的逐次逼近型的ADC部分,而且还提供一个8通道的模拟多路开关和通道寻址逻辑,因而有理由把它作为简单的“数据采集系统”。
利用它可直接输入8个单端的模拟信号分时进行A/D转换,在多点巡回检测和过程控制、运动控制中应用十分广泛。
其外部引脚图如图2所示:
图2ADC0808/0809外部引脚图
各个引脚的功能为:
(1)IN0~IN7——8路模拟输入,通过3根地址译码线ADDA、ADDB、ADDC来选通一路。
(2)D7~D0——A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。
8位排列顺序是D7为最高位,D0为最低位。
(3)ADDA、ADDB、ADDC——模拟通道选择地址信号,ADDA为低位,ADDC为高位。
(4)VR(+)、VR(-)——正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。
在单极性输入时,VR(+)=5V,VR(-)=0V;
双极性输入时,VR(+)、VR(-)分别接正、负极性的参考电压。
(5)ALE——地址锁存允许信号,高电平有效。
当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。
在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。
(6)START——A/D转换启动信号,正脉冲有效。
加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。
如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。
(7)EOC——转换结束信号,高电平有效。
该信号在A/D转换过程中为低电平,其余时间为高电平。
该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。
在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。
(8)OE——输出允许信号,高电平有效。
当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。
在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。
ADC0809的工作过程:
(1)首先确定ADDA、ADDB、ADDC三位地址,决定选择哪一路模拟信号;
(2)使ALE端接受一正脉冲信号,使该路模拟信号经选择开关到达比较器的输入端;
(3)使START接受一正脉冲信号,START的上升沿将逐次逼近寄存器复位,下降沿启动A/D转换;
(4)EOC输出信号变低,指示转换正在进行。
(5)A/D转换结束,EOC变为高电平,指示A/D转换结束。
此时,数据已保存到8位三态输出锁存器中。
此时CPU就可以通过使OE信号为高电平,打开ADC0809三态输出,由ADC0809输出的数字量传送到CPU。
如下图表一:
表1通道选择
C
B
A
选择的通道
IN1
1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
3.2过压保护电路
如下图过压保护电路,发光二极管理想情况下的压降位2V。
当电压低于5V时,发光二级管与电源不能构成闭合回路,且RC远远大于RR,所以输出电压近似等于输入电压,当输入电压大于5V时,发光二级管与电源构成闭合回路,二极管发光,提示过电压,而且输出电压近似等于5V。
图3过压保护电路
3.3数码管显示电路
本设计使用的是LED数码管,LED数码管显示器是由发光二极管显示字段的显示器件,也称为数码管。
其外形结构如图所示。
它由8个发光二极管构成,通过不同的组合可用来显示0-9、A-F及小数点“.”等字符。
LED数码管提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口。
图4显示电路
3.4震荡与复位电路
单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
通过这两个引脚在芯片外并接石英晶体振荡器(大小为1MHZ)和两只电容(电容和一般取30pF)。
这样就构成一个稳定的自激振荡器。
振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生ALE信号,此时得到的信号时机器周期信号。
振荡电路如图5所示:
图5振荡电路图
复位操作有两种基本形式:
一种是上电复位,另一种是按键复位。
按键复位具有上电复位功能外,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。
上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。
上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。
RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
按键复位电路图如图6所示。
图6复位电路图
3.5拓展功能负压显示
使用单片机判断p1.7的高低电平来是执行0-5V的电压输出还是-5V-5V的电压,但会是该简易数字电压表的精度误差升高为0.0392V,当测量负压的时候有外界提供-5V电压,因为我们的过压保护不能保护有点不足,所以需另外引出线作为输入的测试电压如下图7负压测试:
第一个数码管显示表示为零通道。
图7负压显示电路
此电路的工作原理是:
模拟电压(负压)信号通过变阻器VR?
分压后由ADC0808的IN0通道进入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道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显示出来。
简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。
但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。
3.6八通道循环显示
ADDA、ADDB、ADDC为3位片选地址输入线,用于选通8路模拟输入中的一路。
本例中分别将之接在p3.4,p3.5,p3.6上,用单片机使之循环,来选择端口,使模拟量循环在数码管显示如下图8所示:
图8循环显示
4总结体会
经过一段时间的努力,课程设计-基于MCS-51单片机数字电压表设计基本完成。
但设计中的不足之处仍然存在。
在这过程中,我对电路设计,单片机的使用等都有了新的认识。
通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。
基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。
在实际应用工作应能好,测量电压准确,精度高。
系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。
本文设计主要实现了简易数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。
通过本次设计,我对单片机这门课有了进一步的了解。
无论是在硬件连接方面还是在软件编程方面。
本次设计采用了AT89C51单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。
设计中还用到了模/数转换芯片ADC0808,以前在学单片机课程时只是对其理论知识有了初步的理解。
通过这次设计,对它的工作原理有了更深的理解。
总之这次电路的设计和仿真,基本上达到了设计的功能要求。
在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。
参考文献
[1]李朝青.单片机原理及接口技术[M].(第三版).北京:
北京航天航空大学出版社,2005.17~24
[2]苗红霞.单片机实现数字电压表的软硬件设计[M].常州:
河海大学常州大学出版社,2002,03~23
[3]何立民.MCS-51单片机应用系统设计[M].北京:
北京航空航天大学出版社,1990.01~18
[4] 胡辉主编.单片机原理及应用设计[M].北京:
中国水利水电出版社,2005.1—284
附录1程序清单:
ORG0000H
LJMPMAIN
ORG000BH
AJMPST
ORG0030H
MAIN:
CLRC
MOVDPTR,#TAB
MOVSP,#60H
MOVTMOD,#02H
MOVR0,#00H
MOVR1,#00H
MOVR2,#80
CRLP3.4
CRLP3.5
CRLP3.6
MOVTH0,#245
MOVTL0,#00H
MOVIE,#82H
MOVP1,#0c0h
SETBTR0
JNBP1.6,LOOPP1
LOOPP:
MOVA,R1
SWAPA
ORLA,P3
MOVP3,A
LCALLREC
LCALLTRA
LCALLDIS
DJNZR2,LOOPP
INCR1
CJNER1,#08H,LOOPP
MOVR1,#00H
SJMPLOOPP
LOOPP1:
JNBP1.7,LOOPPP
LCALLTRA
SJMPLOOPPP1
LOOPPP:
LCALLTRA1
LOOPPP1:
LCALLDIS
SJMPLOOPP1
REC:
CLRP3.0
CLRP3.1
SETBP3.0
NOP
JNBP3.2,$
SETBP3.1
MOV50H,P2
RET
TRA:
MOVB,#33H
MOVA,50H
DIVAB
MOV51H,A
XCHA,B
MOVB,#05H
DIVAB
MOV52H,A
MOVA,#02H
MULAB
MOV53H,A
TRA1:
SUBBA,#7FH
JCLOOP4
RLA
CLRF0
MOV50H,A
LOOP5:
RET
LOOP4:
MOVA,#7FH
SUBBA,50H
SETBF0
SJMPLOOP5
ST:
CPLP3.3
RETI
DIS:
SETBP1.0
JNBF0,LOOP2
MOVP0,#0BF
SJMPLOOP3
loop2:
MOVP0,#0C0H
loop3:
LCALLDELAY
MOVA,51H
MOVCA,@A+DPTR
CLRP1.4
CLRP1.0
SETBP1.1
MOVP0,#00H
MOVP0,A
CLRP0.7
LCALLDELAY
MOVA,52H
CLRP1.1
SETBP1.2
MOVA,53H
CLRP1.2
SETBP1.3
LCALLDELAY
CLRP1.3
SETBP1.4
DELAY:
MOVR7,#0AH
D1:
MOVR6,#64H
DJNZR6,$
DJNZR7,D1
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
附录2电路图