搜索
您的当前位置:首页数字电压表设计

数字电压表设计

来源:智榕旅游
数字电压表设计

前言数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的

模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

一实验目的

了解输入/输出通道设计的基本原理和方法。掌握ADC0809芯片和AT89S51单片机的接口电路与程序设计。

二硬件设计

1. 输入电路

图2.1-1 量程切换开关

输入电路的作用是把不同量程的被测的电压规范到A/D转换器所要求的电压值。智能化数字电压表所采用的单片双积分型ADC芯片ICL7135,它要求输入电压0-±2V。本仪表设计是0-1000V电压,灵敏度高所以可以不加前置放大器,只需衰减器,如图3.1.2所示9M、900K、90K、和10K电阻构成1/10、1/100、1/1000的衰减器。衰减输入电路可由开关来选择不同的衰减率,从而切换档位。为了能

让CPU自动识别档位,还要有图3.1.1的硬件连接。

2. A/D转换电路

A/D 转换器的转换精度对测量电路极其重要,它的参数关系到测量电路性能。本设计采用双积A/D 转换器,它的性能比较稳定,转换精度高,具有很高的抗干扰能力,电路结构简单,其缺点是工作速度较低。在对转换精度要求较高,而对转换速度要求不高的场合如电压测量有广泛的应用。 (1)双积A/D 转换器的工作原理

如图2.2.1-1所示: (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的输入端。

对输入模拟电压和基准电压进行两次积分,先对输入模拟电压进行积分,将其变

换成与输入模拟电压成正比的时间间隔 T1,再利用计数器测出此时间间隔,则计数器所计的数字量就正比于输入的模拟电压;接着对基准电压进行同样的处理。在常用的A/D转换芯片(如ADC0809、ICL7135、ICL7109等)中,ICL7135与其余几种有所不同,它是一种四位半的双积分A/D转换器,具有精度高(精度相当于14位二进制数)、价格低廉、抗干扰能力强等优点。本文介绍用单片机并行方式采集ICL7135的数据以实现单片机电压表和小型智能仪表的设计方案。

(2)7135的应用

7135是采用CMOS工艺制作的单片4位半A/D转换器,其所转换的数字值以多工扫描的方式输出,只要附加译码器,数码显示器,驱动器及电阻电容等元件,就可组成一个满量程为2V的数字电压表。7135主要特点如下:双积型A/D转换器,转换速度慢。在每次A/D转换前,内部电路都自动进行调零操作,可保证零点在常温下的长期稳定。在20000字(2V满量程)范围内,保证转换精度1字相当于14bitA/D转换器。具有自动极性转换功能。能在但极性参考电压下对双极性模拟输入电压进行A/D转换,模拟电压的范围为0~±1.9999V。模拟出入可以是差动信号,输入电阻极高,输入电流典型值1PA。所有输出端和TTL电路相容。有过量程(OR)和欠量程(UR)标志信号输出,可用作自动量程转换的控制信号。输出为动态扫描BCD码。对外提供六个输入,输出控制信号(R/H,BUSH,ST,POL,OR,UR),因此除用于数字电压表外,还能与异步接收 /发送器,微处理器或其它控制电路连接使用。采用28外引线双列直插式封装,外引线功能端排列如图所示。

(3) AT89C51单片机

芯片介绍:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器

(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 主要特性: 8031 CPU与MCS-51 兼容

4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8位内部RAM  32条可编程I/O线

两个16位定时器/计数器 6个中断源 可编程串行通道

低功耗的闲置和掉电模式 片内振荡器和时钟电路

(4) 7135数字部分

数字部分主要由计数器、锁存器、多路开关及控制逻辑电路等组成。7135一次A/D转换周期分为四个阶段: 1.自动调零(AZ); 2.被测电压积分(INT); 3.基准电压反积分(DE); 4.积分回零(ZI)。 2.2.4.1 主要介绍引脚的使用 R/H(25脚)当R/H=“1”(该端悬空时为“1”)时,7135处于连续转换状态,每40002个时钟周期完成一次A/D转换。若R/H由“1”变“0”,则7135在完成本次A/D转换后进入保持状态,此时输出为最后一次转换结果,不受输入电压变化的影响。因此利用R/H端的功能可以使数据有保持功能。若把R/H端用作启动功能时,只要在该端输入一个正脉冲(宽度≥300ns),转换器就从AZ阶段开始进行A/D转换。注意:第一次转换周期中的AZ阶段时间为9001-10001个时钟脉冲,这是由于启动脉冲和内部计数器状态不同步造成的。 /ST(26脚)每次A/D转换周期结束后,ST端都输出5个负脉冲,其输出时间对应在每个周期开始时的5个位选信号正脉冲的中间,ST负脉冲宽度等于1/2时钟周期。第一个ST负脉冲在上次转换周期结束后101个时钟周期产生。因为每个选信号(D5--D1)的正脉冲宽度为200个时钟周期(只有AZ和DE阶段开始时的第一个D5的脉冲宽度为201个CLK 周期),所以ST负脉冲之间相隔也是200个时钟周期。需要注意的是,若上一周期为保持状态(R/H=“0”)则ST无脉冲信号输出。ST信号主要用来控制将转换结果向外部锁存器、UARTs或微处理器进行传送。 BUSY(21脚)在双积分阶段(INT+DE),BUSY为高电平,其余时为低电平。因此利用BUSY功能,可以实现A/D转换结果的远距离双线传送,其还原方法是将BUSY和CLK“与”后来计数器,再减去10001就可得到原来的转换结果。 OR(27脚)当输入电压超出量程范围(20000),OR将会变高。该信号在BUSY 信号结束时变高。在DE阶段开始时变低。 UR(28脚)当输入电压等于或低于满量程的9%(读数为1800),则一当BUST信号结束,UR将会变高。该信号在INT阶段开始时变低。 POL(23脚)该信号用来指示输入电压的极性。当输入电压为正,则POL等于“1”,反之则等于“0”。该信号DE阶段开始时变化,并维持一个A/D转换调期。位驱动信号D5、D4、D3、D2、D1(12、17、18、19、20脚)每一位驱动信号分别输出一个正脉冲信号,脉冲宽度为200个时钟周期,其中D5对应万位选通,以下依次为千、百、十、个位。在正常输入情况下,D5--D1输出连续脉冲。当输入电压过量程时,D5--D1在AZ阶段开始时只分别输出一个脉冲,然后都处于低电平,直至DE阶段开始时才输出连续脉冲。利用这个特性,可使得显示器件在过程时产生一亮一暗的直观现象。 B8、B4、B2、B1(16、15、14、13脚)该四端为转换结果BCD码输出,采用动态扫描输出方式,即当位选信号D5=“1”时,该四端的信号为万位数的内容,D4=“1”时为千位数内容,其余依次类推。在个、十、百、千四位数的内容输出时,BCD码范围为0000--1001,对于万位数只有0和1两种状态,所以其输出的BCD码为“0000”和“0001”。当输入电压过量程时,各位数输出全部为零,这一点在使用时应注意。最后还要说明一点,由于数字部分以DGNG端作为接地端,所以所有输出端输出电平以DGNG作为相对参考点。基准电压,基准电压的输入必须对于模拟公共端COM是正电压。

3. 单片机部分

单片机选用的是ATMEL公司新推出的AT89S52,如图2.3.1所示。该芯片具有低功耗、高性能的特点,是采用CMOS工艺的8位单片机,与AT89C51完全兼容。 AT89S52还有以下主要特点:•采用了ATMEL公司的高密度、非易失性存储器(NV-SRAM)技术;•其片内具有256字节RAM,8KB的可在线编程(ISP)FLASH存储器;•有2种低功耗节电工作方式:空闲模式和掉电模式•

片内含有一个看门狗定时器(WDT),WDT包含一个14位计数器和看门狗定时器复位寄存器(WDTRST),只要对WDTRST按顺序先写入01EH,后写入0E1H,WDT便启动,当CPU由于扰动而使程序陷入死循环或“跑飞”状态时,WDT即可有效地使系统复位,提高了系统的抗干扰性能。

引脚说明

AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编

程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

P0 口

P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个

TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

P1 口

P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。

此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能:

P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用)

P2 口

P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3 口

P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1)

P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通)

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

RST

复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP

外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

存储器

MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。

程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。 对于 89S52,如果EA 接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH。

数据存储器:AT89S52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。

当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。

例如,下面的直接寻址指令访问0A0H(P2口)存储单元MOV 0A0H , #data使用间接寻址方式访问高128 字节RAM。例如,下面的间接寻址方式中,R0 内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。

MOV @R0 , #data堆栈操作也是间接寻址方式。因此,高128字节数据RAM也可用于堆栈空间。

4. 液晶显示部分

显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分用的是LCD液晶模块,采用2个lcd 1602的字符型液晶显示模块。

三系统的软件设计

时钟频率的确定单片机时钟:时钟频率高运算速度快,但耗电量增加、

抗干扰能力变差。本设计对速度要求不高,也无串行通信功能,故对时钟无特殊要求,选fosc=6MHz。 A/D的时钟:如果正向积分阶段的时间(10000×TCP)是干扰信号周期的整倍数时对此干扰抑制效果很好,如50Hz工频干扰的周期为20mS,取正向积分时间为80mS,则80000μS=10000×TCP,即TCP=80000μS/10000=8μS,fCP=1/TCP=1/8μS=125kHz。ICL7135完成一次A/D转换需要40002个时钟周期,当TCP=8μS时,转换周期为T≈40000×8μS=320mS。A/D转换速度约每秒3次。

四实验原理图

五实验设计程序

MOV 43H,A MOV A,R5 ANL A,#0FH MOV 44H,A MOV A,44H LCALL SEG7 CLR P3.3 CLR P3.4 SETB P3.5 MOV P1,A

LCALL DELAY MOV A,43H LCALL SEG7 CLR P3.3 CLR P3.5 SETB P3.4 MOV P1,A LCALL DELAY MOV A,42H LCALL SEG7 CLR P3.4 CLR P3.5 SETB P3.3 ANL A,#7FH MOV P1,A LCALL DELAY SJMP LOOP SEG7: INCA

MOVC A,@A+PC RET

DB0C0H,0F9H,0A4H,0B0H,99H DB92H,82H,0F8H,80H,90H DELAY:MOV 40H,#10 DEL1:MOV41H,#249 DEL2:DJNZ41H,DEL2

DJNZ 40H,DEL1 RET

六.实验总结心得

通过此次和组员们一起合作完成的这个实验,对数字电压表一无所知的

我看了实验指导书和上网查了有关的资料,只是大致的有了了解,知道了数字电压表的原理和设计的大体思路,一起商讨设计方案,把可能实现的方案都列举了出来,最后经过对比和借鉴前辈们的方案,终于有了自己的方案。方案出来了,但是参数的计算可难住我们了,我负责数据的编程,最后终于不望所托。并在电路连接时,分工完成,最后我们组的效率也是非常高的。通过这次课程设计,使我对以学的课程有了巩固,并学会了设计的大体过程,懂得查资料,提高了自主学习能力,最重要的是体会了团队合作的力量。明白了只要你自信,你努力就没有克服不了的困难,有付出,就有了很大的收获。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top