数字电压表的设计原理
分类: 教育/科学 >>科学技术 >>工程技术科学
问题描述:
最近在搞毕业设计,要了解下数字电压表的设计原理和相关的软件知识和硬件知识,请知道的各位大大告诉下小弟~
解析:
这要看你是什么级别、什么专业的毕业设计,大专?本科?硕士?不同的级别或专业,设计标准不同。楼上说的ICL7106是老芯片,不需要程序设计。
数字电压表由电阻网络(量程调整)、直流放大(运放组成)、电压极性判断、A/D转换、数码(液晶)显示等部分组成。你如果用带A/D转换的单片机制作,软、硬件两方面都能得到锻炼,选用精简指令集的PIC系列单片机,比51系列的实用,你上网查资料,自己制定一个计划,再和指导老师商量决定方案。
在测量结果显示出来之前,对被测电压的预处理,可以做很多文章,就像有的高档万用表是没有量程的,软件配合可编程运放,自动处理,使A/D转换的精度达到最大。这里没法说详细,也不知你是应付毕业还是想学真本领。
单片机设计多路数字电压表,主要是设计采集,将输入的电压量(模拟信号)转换成数字量(二进制),通常老的方案都是用51单片机+AD转换芯片。AD转换芯片的位数就决定了你的分辨率,你的是5V/0.019=263,转换成为二进制数8位AD芯片可能精度不够,要选用10位AD芯片,最小分辨率可以达到0.0048V,如果按照经典老方案来做,你的成本会比较高51单片机6元+10位AD芯片20元。建议你采用带有51内核并自带AD功能的单片机,如STC5412AD,价格只要13-14元就可以了,而且编程方便,不需要增加外围电路。因为STC5412AD芯片IO口比较少,只有23个IO口,我数码管显示和键盘扫描用的ZLG7289,我自己做出来一个,效果很好,电压能精确到0.001V显示。我只了1路显示,STC5412AD单片机还有其他AD口可以用,一块芯片可以做出4路电压采集来。多路的话建议用多路开关进行切换就好了,否则成本太高。
在一个测量周期内,将被测电压Ui加到积分器的输入端
在确定的时间内进行积分。然后切断输入电压
在积分器的输入端加与Ui极性相反的电压U,进行定值积分
但积分方向相反,直到积分输出达到起始电平为止
从而将Ui转换成时间间隔量进行测量
只要用计数器累计时间间隔内的脉冲数,即为Ui之值
电路简单,便于维护。但电压表的测量精度完全受限于模/数转换的精度
例,AD输入最大电压是5V,设一个10V档,就是量程为10V,这样,需10K+10K电阻分压。接A/D芯片输入端电阻的选取应根据设置的多少档位,各档位量程,综合考虑。
不过0~200V的范围要达到0.1mV的分辨率,就是100uV了,要全部检测的话那就得21位以上的ADC分辨率,带这样高分辨率ADC的东东可不好找啊,就算有你也买不起.
因此,由于位数的原因,你这个测量范围和分辨率要做成几个量程档位才会比较好做.
另外,你的供电电源得好好处理一下,不然它的参考电压纹波都是这个分辨率的几百倍了,再加上你还要对待测的信号进行前级处理,也得选用低噪音高精度的运放之类,没有个好的电源可不行..
V-T型间接转换ADC。
2. 电路结构
图11.11.1是这种转换器的原理电路,它由积分器(由集成运放A组成)、过零比较器(C)、时钟脉冲控制门(G)和计数器(FF0~FFn)等几部分组成。
图11.11.1 双积分A/D转换器
(1)积分器
积分器是转换器的核心部分,它的输入端所接开关S1由定时信号Qn控制。当Qn为不同电平时,极性相反的输入电压vI和参考电压 VREF将分别加到积分器的输入端,进行两次方向相反的积分,积分时间常数τ=RC。
(2)过零比较器
过零比较器用来确定积分器的输出电压v0过零的时刻。当v0≥0时,比较器输出vC为低电平;当v0<0时,vC为高电平。比较器的输出信号接至时钟控制门(G)作为关门和开门信号。
(3)计数器和定时器
它由n+1个接成计数器的触发器FF0~FFn-1串联组成。触发器FF0~FFn-1组成n级计数器,对输入时钟脉冲CP计数,以便把与输入电压平均值成正比的时间间隔转变成数字信号输出。当计数到2n个时钟脉冲时,FF0~FFn-1均回到0态,而FFn翻转到1态,Qn=1后开关 S1从位置A转接到B。
(4)时钟脉冲控制门
时钟脉冲源标准周期Tc,作为测量时间间隔的标准时间。当vC=1时,门打开,时钟脉冲通过门加到触发器FF0的输入端。
3.工作原理
双积分ADC的基本原理是对输入模拟电压和参考电压分别进行两次积分,将输入电压平均值变成与之成正比的时间间隔,然后利用时钟脉冲和计数器测出此时间间隔,进而得到相应的数字量输出。由于该转换电路是对输入电压的平均值进行变换,所以它具有很强的抗工频干扰能力,在数字测量中得到广泛应用。
下面以输入正极性的直流电压vI为例,说明电路将模拟电压转换为数字量的基本原理。电路工作过程分为以下几个阶段进行,图中 各处的工作波形如图11.11.2所示。 (1) 准备阶段
首先控制电路提供CR信号使计数器清零,同时使开关S2闭合,待积分电容放电完毕后,再使S2断开。
(2) 第一次积分阶段
在转换过程开始时(t=0),开关S1与A端接通,正的输入电压vI加到积分器的输入端。积分器从0V开始对vI积分,其波形如图11.11.2斜线O-VP段所示。 根据积分器的原理可得
(其中τ=RC)
由于vO<0,过零比较器输出为高电平,时钟控制门G被打开。于是,计数器在CP作用下从0开始计数。经2n个时钟脉冲后,触发器FF0~FFn-1 都翻转到0态,而Qn=1,开关S1由A点转接到B点,第一次积分结束,第一次积分时间为t=T1=2nTc 令VI为输入电压在T1时间间隔内的平均值, 则由式 可得第一次积分结束时积分器的输出电压为Vp
图11.11.2双积分A/D转换器各处工作波形
(3) 第二积分阶段
当t=t1时,S1转接到B点,具有与vI相反极性的基准电压-VREF加到积分器的输入端;积分器开始向相反方向进行第二次积分;当t=t2时,积分器输出电压v0≥0,比较器输出vC=0,时钟脉冲控制门G被关闭,计数停止。在此阶段结束时v0的表达式可写为
设T2=t2-t1,于是有 设在此期间计数器所累计的时钟脉冲个数为λ,则 T2=λTc
可见,T2与V1成正比,T2就是双计分A/D转换过程中的中间变量。
上式表明,在计数器中所得的数λ(λ=Qn-1···Q1Q0),与在取样时间T1内输入电压的平均值VI成正比的。只要VI<VREF,转换器就能正常地将输入模拟电压转换为数字量,并能从计数器读取转换的结果。如果取VREF=2nV,则λ=VI,计数器所计的数在数值上就等于被测电压。
由于双积分A/D转换器在时间内采的是输入电压的平均值,因此具有很强的抗工频干扰的能力。尤其对周期等于T1或几分之一的对称干扰(所谓对称干扰是指整个周期内平均值为零的干扰),从理论上来说,有无穷大的抑制能力。即使当工频干扰幅度大于被测直流信号,使得输入信号正负变化时,仍有良好的抑制能力。由于在工业系统中经常碰到的是工频(50Hz)或工频的倍频干扰,故通常选定采样时间T1总是等于工频电源周期的倍数,如20ms或40ms等。另一方面,由于在转换过程中,前后两次积分所采用的同一积分器。因此,在两次积分期间(一般在几十到数百毫秒之间),R、C和脉冲源等元器件参数的变化对转换精度的影响均可忽略。
最后必须指出,在第二积分阶段结束后,控制电路又使开关S2闭合,电容C放电,积分器回零。电路再次进入准备阶段,等待下一次转换开始。
4.特点
(1)计数脉冲个数λ与RC无关,可以减小由RC积分非线性带来的误差。
(2)对脉冲源CP要求不变,只要在T1+T2时间内稳定即可。
(3)转换精度高。
(4)转换速度慢,不适于高速应用场合。
单片集成双积分式A/D转换器有ADC-EK8B(8位,二进制码)、ADC-EK10B(10位,二进制码)、MC14433(7/2位,BCD码)等。
本文介绍了用ADC0808集成电压转换芯片和AT89C51单片机设计制作的数字直流电压表。在测量仪器中,电压表是必须的,而且电压表的好坏直接影响到测量精度。具有一个精度高、转换速度快、性能稳定的电压表才能符合测量的要求。为此,我们设计了数字电压表,此作品主要由A/D0808转换器和单片机AT89C51构成,A/D转换器在单片机的控制下完成对模拟信号的采集和转换功能,最后由数码管显示采集的电压值。此设计通过调试完全满足设计的指标要求。电路设计简单,设计制作方便有较强的实用性。
关键词:
ADC0808;单片机AT89C51;数字电压表
Abstract:
In this paper, with ADC0808 voltage converter integrated chips and microcontroller designed AT89C51 the number of DC voltage table. In measuring instruments, voltage meter is necessary, and voltage meter will have a direct impact on measurement accuracy. With a high precision, the conversion speed and stable performance of the voltage meter to conform to the requirements of measurement. To this end, we design a digital voltage meter, this works mainly by A/D0808 converter and a microcontroller AT89C51, A / D converter under the control of the MCU to complete the acquisition and analog signal conversion functions, from the final Acquisition of the digital display voltage value. This design through debugging to fully meet the design requirements of the target. Circuit design simple, designed to facilitate a more practical.
Key words:
ADC0808SCM AT89C51Digital Voltmeter
目 录
1.设计方案……………………………………………………………………………………1
2. 系统硬件设计……………………………………………………………………………2
2.1单片机芯片……………………………………………………………………………2
2.1.1.单片机芯片选择……………………………………………………………2
2.1.2.单片机管脚说明……………………………………………………………3
2.2.A/D转换器……………………………………………………………………………5
2.2.1.A/D转换器芯片选择………………………………………………………5
2.2.2.A/D转换器管脚说明………………………………………………………6
2.3.电压显示电路…………………………………………………………………………7
3.系统程序设计……………………………………………………………………………………8
3.1.软件总体框架设计……………………………………………………………………8
4.系统总图及程序…………………………………………………………………………………9
5.参考文献………………………………………………………………………………………………12
6.结束语……………………………………………………………………………………………………13
1.设计方案
在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流或交流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐。本设计从各个角度分析了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理,并且分析了程序如何驱动单片机进而使系统运行起来的原理及方法。框图如下:
本设计主要分为两部分:硬件电路及软件程序。而硬件电路又大体可分为A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用汇编语言编程,利用WAVE和PROTEUS 软件对其编译和仿真,详细的设计算法将会在程序设计部分详细介绍。
2.系统硬件电路设计
2.1 单片机芯片
2.1.1.单片机芯片选择
AT89C51简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示
图2.1_1 AT89C51引脚图
2.1.2.单片机管脚说明
主要特性:
•与MCS-51 兼容
•4K字节可编程闪烁存储器
•寿命:1000写/擦循环
•数据保留时间:10年
•全静态工作:0Hz-24Hz
•三级程序存储器锁定
•128×8位内部RAM
•32可编程I/O线
•两个16位定时器/计数器
•5个中断源
•可编程串行通道
•低功耗的闲置和掉电模式
•片内振荡器和时钟电路
管脚接法说明:
VCC:供电电压我们接+5V。
GND:接地。
P0口:在这个设计中我们将AT89C51做为BCD码的输出口与LED显示器相连。由于P0口输出驱动电路中没有上拉电阻,所以我们在外接电路上接上拉电阻。
P1口:把AT89C51中的P1口与ADC0808的输出端相连,做为数字信号的接收端。
P2口:我们把P2口做为位码输出口,以P2.0—2.3输出位控线与LED显示器相连.
P3口:利用P3.0,P3.1,P3.2,P3.4,P3.5,P3.6分别与ADC0808的OE,EOC,START/ALE,A,B,C端相连。
XTAL1 ,XTAL2:外接一振荡电路。
图2.1.2 振荡电路
RST:在此端接一复位电路。
图2.1.3 复位电路
2.2 A/D转换器与单片机接口电路
2.2.1.A/D转换器芯片选择
A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。
随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。如果按照转换原理划分,主要有3种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。目前最常用的是双积分和逐次逼近式。
双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点,比如ICL71XX系列等,它们通常带有自动较零、七段码输出等功能。与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送入单片机进行分析和显示。
本设计中,由于对精度没做很大要求,我们采用逐次逼近式A/D转换ADC0808,精度为0.02,所以四位LED显示中的最后一位我们设置为V。
图2.2.1 ADC0808引脚图
2.2.2.A/D转换器ADC0808的管脚说明:
IN0~IN7:为模拟量的输入口,我们选取IN3口为入口,外接可变电阻,通过改变阻值来控制模拟量的输入。
A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。这里我们将A,B接高电平,C为低电平。
ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。
D0~D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。
OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。
START:启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。
EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。
CLK:时钟输入信号,选用频率500KHZ。
图2.2.2 时钟信号
2.3 电压显示电路:
设计中采用的是4段LED数码管来显示电压值。LED具有耗电低、亮度高、视角大、线路简单、耐震及寿命长等优点,它由4个发光二极管组成,其中3个按‘8’字型排列,另一个发光二极管为圆点形状,位于右下角,常用于显示小数点。把4个发光二极管连在一起,公共端接高电平,叫共阳极接法,相反,公共端接低电平的叫共阴极接法,我们采用共阴极接法。当发光二极管导通时,相应的一段笔画或点就发亮,从而形成不同的发光字符。其8段分别命名为dp g f e d c b a。例如,要显示“0”,则dp g f e d c b a分别为:00111111B;若要显示多个数字,只要让若干个数码管的位码循环为高电平就可以了。
根据设计要求,显示电路需要至少4位LED数码管来显示电压值,我们再多加一位用来显示电压单位“V”,则有7位LED循环显示。利用单片机的I/O口驱动LED数码管的亮灭,设计中由P0口驱动LED的段码显示,即显示字符,由P2口选择LED位码,即选择点
亮哪位LED来显示。
图2.3 LED管
另外,一般I/O接口芯片的驱动能力是很有限的,在LED显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时就需要增加LED驱动电路。驱动电路有多种,常用的是TTL或MOS集成电路驱动器,在本设计中采用了ADC0808芯片驱动电路。
3.系统程序设计
3.1软件总体框架设计
在编写汇编语言时,先存放数码管的段码,再存放转换后的数据,选取通道并设值.再将AD转换结果转换成BCD码,通过换算LED上显示.
再换算中,利用关系得到LED上个位,十位,百位的显示,然后设置小数点:
开始
预设初值
选取通道3
启动A/D转换
否
是
数码显示子程序
延时显示结果
结束
在系统上电开始测量前,要用万用表的电压档对被测电压进行估测,然后再测。
4.系统总图及程序
LED_0 EQU 30H
LED_1 EQU 31H
LED_2 EQU 32H
LED_3 EQU 33H
ADC EQU35H
STBITP3.2
OEBITP3.0
EOC BIT P3.1
ORG00H
START: MOVLED_0,#00H
MOVLED_1,#00H
MOVLED_2,#00H
MOVLED_3,#00H
MOVDPTR,#TABLE
SETB P3.4
SETB P3.5
CLRP3.6
WAIT: CLR ST
SETB ST
CLR ST
JNB EOC,$
SETB OE
MOV ADC,P1
CLR OE
MOV A,ADC
MOV B,#51
DIV AB
MOV LED_3,A
MOVA,B
MOV B,#5
DIV AB
MOV LED_2,A
MOV LED_1,B
LCALL DISP
SJMP WAIT
DISP: MOV A,#3EH
CLRP2.3
MOVP0,A
LCALL DELAY
SETB P2.3
MOV A,LED_1
MOVC A,@A+DPTR
CLRP2.2
MOV P0,A
LCALL DELAY
SETB P2.2
MOVA,LED_2
MOVC A,@A+DPTR
CLR P2.1
MOV P0,A
LCALL DELAY
SETBP2.1
MOV A,LED_3
MOVC A,@A+DPTR
ORLA,#80H
CLRP2.0
MOVP0,A
LCALL DELAY
SETB P2.0
RET
DELAY: MOV R6,#10
D1: MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,
END
数字直流电压表的总图