1、数字电压表设计摘 要数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍单片A/D转换器以及
2、由它们构成的基于单片机的数字电压表的工作原理。关键词:数字电压表A/D转换器PC电压测量AbstractDigitalvoltagemeter(DigitalVoltmeter)referredtoasDVM,itistheuseofdigitalmeasuringtechnology,thecontinuousanalog(DCinputvoltage)intoanon-continuous,discretedigitalformandtodisplaytheinstrument.Analogvoltagemeterfeaturesatraditionalsingle,lowaccuracy
3、,cannotmeetthedigitalage,usingthesinglechipdigitalvoltagemeter,fromthehighprecision,anti-interferenceability,scalability,JiChengconvenience,andPCcancommunicateinrealtime.Atpresent,byavarietyofsingleA/Dconverterconsistingofdigitalvoltagemeter,hasbeenwidelyusedinelectronicandelectricalmeasurement,indu
4、strialautomation,instrumentation,automatedtestsystems,intelligentmeasurement,showingstrongvitality.Atthesametime,theDVMextensiontothevariousgeneralandspecificdigitalinstruments,butalsothepowerandnon-powermeasurementuptoanewlevel.Thischapterfocusesonsingle-chipA/Dconverter,andtheyformbythemicrocontro
5、ller-baseddigitalvoltmeterworks.目 录摘 要 IAbstract I目 录 II第一章 绪论 11.1 应用场合 11.2 功能要求 11.3 性能指标 1第二章 总体方案 22.1 A/D转换 22.2 电源部分 2第三章 系统硬件电路设计 43.1使用芯片介绍 43.2本设计中89C51与外围电路的接口 73.3 精度与分辨率 83.4 误差参数 83.5时钟电路 93.6 复位电路 93.7显示模块 103.8 硬件原理图 11第四章 软件设计 124.1 protues仿真图 124.2程序说明 134.4 显示电路结构及原理 13第五章 调试过程 14
6、5.1 调试步骤 145.2 遇到的问题与解决方法 145.3 调试现象 15第六章 展望与拓展 166.1展望 166.2拓展 16致 谢 17附录 18附录源程序清单: 18附录 电原理图: 20附录 流程图: 20附录 设计所需元件清单: 23参考资料 23第一章 绪论 1.1 应用场合数字电压表是诸多数字化仪表的核心与基础,以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片AD转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。1.2 功能要求利用ADC0832设计实现数
7、字电压表的测量值为05V,用电位器模拟ADC0832的输入电压,用3位数码管显示,实时模拟数字电压表1.3 性能指标1)分辨率(Resolution) 指数字量变化一个最小量时模拟信号的变化量,定义为满刻度与2n的比值。分辩率又称精度,通常以数字信号的位数来表示。2) 转换速率(Conversion Rate)是指完成一次从模拟转换到数字的AD转换所需的时间的倒数。积分型AD的转换时间是毫秒级属低速AD,逐次比 较型AD是微秒级属中速AD,全并行/串并行型AD可达到纳秒级。采样时间则是另外一个概念,是指两次转换的间隔。为了保证转换的正确完成,采样速率 (Sample Rate)必须小于或等于转
8、换速率。因此有人习惯上将转换速率在数值上等同于采样速率也是可以接受的。常用单位是ksps和Msps,表 示每秒采样千/百万次(kilo / Million Samples per Second)。3)量化误差 (Quantizing Error) 由于AD的有限分辨率而引起的误差,即有限分辩率AD的阶梯状转移特性曲线与无限分辨率AD(理想AD)的转移特 性曲线(直线)之间的最大偏差。通常是1 个或半个最小数字量的模拟变化量,表示为1LSB、1/2LSB。4)偏移误差(Offset Error) 输入信号为零时输出信号不为零的值,可外接电位器调至最小。5)满刻度误差(Full Scale Err
9、or) 满度输出时对应的输入信号与理想输入信号值之差。6)线性度(Linearity) 实际转换器的转移函数与理想直线的最大偏移,不包括以上三种误差。其他指标还有:绝对精度(Absolute Accuracy) ,相对精度(Relative Accuracy),微分非线性,单调性和无错码,总谐波失真(Total Harmonic Distotortion缩写THD)和积分非线性。第二章 总体方案2.1 A/D转换 电压是模拟量,而数码管显示需要的是数字量,故需要采用A/D转换模拟信号为数字信号供数码管显示出来,可供选择的芯片有ADC0809,ADC574和TLC2543等等。由于要求测量精度在
10、5%,因此须选用12位精度的A/D转换器,且可直接驱动LED显示器工作,0809为8位精度,故不能采用,而综合性价比,TLC2543就成为了本次设计的首选。由于TLC2543测量范围为0-+5V,故需要为其设计降压稳压电路。被测量模拟量变为数字量之后,并不能通过数码管直接显示出来,而需要单片机加以处理形成段码才能显示出来。而且,A/D电路的时钟与输入输出都需要单片机与其对接予以控制。故选择含有内部闪存的89C51完成此工作。该芯片无论从性能还是价格上都是非常合适的。数字信号转换为段码并显示出来需要有程序和其它接口电路配合。在程序上,A/D采集程序采用多次取值并求和求平均的方法得出双字节数据,然
11、后通过双字节转换BCD码子程序得出BCD码。硬件显示上选用动态扫描法,即数码管位选端连入单片机的某一组I/O口,片选端连入另一组I/O口,配合显示子程序实现显示。此外,主程序和其它程序用中断方式进行组合。显示所需的数码管,选用7段共阳极数码管,由于精度要求为5%,故本设计显示部分由四个数码管组成。由于单片机各个I/O口的驱动能力有限,故应设计驱动电路。本设计中的驱动电路主要与显示部分有关。数码管的片选端需要连接上拉电阻和三机管以增强驱动能力,位选端也选择连接上拉电阻以增强驱动能力。2.2 电源部分 本设计各芯片,数码管及单片机外围电路需要5V的直流电源,故需要一个稳定的5V直流稳压源。根据模拟
12、电子技术基础的知识,本设计选择含有7805三端集成稳压器的电源电路。电路中选择二极管整流桥整流,电容进行滤波,并选用220V-9V变压器进行变压。 综上,本次设计选用89C51单片机作为核心,TLC2543作为A/D转换芯片,数码管作为显示器,7805稳压器为主的直流稳压电路做为电源,配合采集,转换,显示程序共同实现可测量0-10V直流电压的数字式电压表。第三章 系统硬件电路设计3.1使用芯片介绍图2-1 STC89C52系列单片机 STC89C52 是一种带4K 字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only M
13、emory)的低电压,高性能CMOS8 位微处理器,俗称单片机。STC89C52 是一种带2K 字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8 位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的STC89C52 是一种高效微控制器。STC89C52系列单片机如图4-1所示:1主要特性:与MCS-51 兼容4K 字节可编程闪烁存储器全静态工作:0Hz-24Hz三级程序存储器锁定128*8 位内部RAM32 可编程I/O 线两个16 位定时
14、器/计数器5 个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2振荡器特性:XTAL1 和XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石英晶振荡和陶瓷振荡均可采用。当外接晶体振荡器的时候,接地电容一般选择:C1=C2=2040PF;当外接陶瓷震荡的时候,接地电容一般选择:C1=C2=3050PF3.串行口STC89C52单片机是由一个全双工的串行接口,以实现单片机和其他数据设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。4.中断控制系统STC89C52单片机的中断功能较强,以满足控制应用的需要。
15、80C52工有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。全部中断分为高级和低级共两个优先级别。5.管脚说明:VCC:供电电压。GND:接地 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部
16、下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3
17、口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示: 口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一
18、些控制信号。 RST: 复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PS
19、EN: 外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/Vpp: 当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1: 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2: 来自反向振荡器的输出。3振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反
20、向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4芯片擦除: 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复
21、位为止。 5.结构特点: 8位CPU;片内振荡器和时钟电路;32根I/O线;外部存贮器寻址范围ROM、RAM64K;2个16位的定时器/计数器;5个中断源,两个中断优先级;全双工串行口;布尔处理器。 3.2本设计中89C51与外围电路的接口本系统采用P0与P2口与显示器连接,P1口与A/D的数据及控制端连接。/EA/VP端接5V电源,X1,X2接晶振电路,RESET端接复位电路,其余INT1,INT0,T1,T0,/RD,/WR,RXD,TXD,ALE,PSEN端置空。由于P0口的驱动能力较弱,故每个引脚接4.7K的上拉电阻,以增强驱动显示器的能力1TLC2543A/D转换:TLC2543是T
22、I公司的12位串行模数转换器,使用开关电容逐次逼近级数完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。2TLC2543的特点:12位分辩率A/D转换器在工作温度范围内10s转换时间;11个模拟输入通道;3路内置自测试方式;采样率为66kbps;线性误差1LSBmax;有转换结束输出EOC;具有单、双极性输出;可编程的MSB或LSB前导。3TLC2453接口时序:可以用四种方式使TLC2543实现全12位分辨率,每次转换和数据传递可以使用12或16个时钟周期。一个片选()脉冲要插到每次转换的开始处,或是在转换时序
23、的开始处变化一次后保持为低,直到时序结束。开始时,片选为高,I/OCLOCK、DATAINPUT被禁止,DATAOUT呈高阻状态,EOC为高。使变低,I/OCLOCK、DATAINPUT使能,DATAOUT脱离高阻状态。12个时钟信号从I/OCLOCK端依次加入,随着时钟信号的加入,控制字从DATAINPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入),同时上一周期转换的A/D数据。TLC2543收到第4个时钟信号后,通道号也已收到,因此,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。在第12个时钟下降沿,EOC变低,开始对本次采样的模拟量
24、进行A/D转换,转换时间约需10s,转转完成EOC变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。此后,可以进行新的工作周期。5TLC2543A/D芯片与89C51单片机的接口:本设计中,TLC2543的AIN0引脚接测量降压电路,AIN1-AIN10置空,GND接地,VRF+接+5V电压,VRF接地,/CS端接P1.4口,TDO端接P1.2口,TDI端接P1.3口,TCK端接P1.1口,EOC端接P1.0口。3.3 精度与分辨率ADC的精度和分辨率是两个不同的概念。精度是指转换器实际值与理论值之间的偏差;分辨率是指转换器所能分辨的模拟信号的最小变化值。ADC分辨率的高低取决于位数的
25、多少。一般来讲,分辨率越高,精度也越高,但是影响转换器精度的因素很多,分辨率高的ADC,并不一定具有较高的精度。精度是偏移误差、增益误差、积分线性误差、微分线性误差、温度漂移等综合因素引起的总误差。因量化误差是模拟输入量在量化取整过程中引起的,因此,分辨率直接影响量化误差的大小,量化误差是一种原理性误差,只与分辨率有关,与信号的幅度,采样速率无关,它只能减小而无法完全消除,只能使其控制在一定的范围之内,一般在12LSB范围内3.4 误差参数1)偏移误差偏移误差是指实际模数转换曲线中数字0的代码中点与理想转换曲线中数字0的代码中点的最大差值电压。这一差值电压称作偏移电压,一般以满量程电压值的百分
26、数表示。在一定温度下,多数转换器可以通过对外部电路的调整,使偏移误差减小到接近于零,但当温度变化时,偏移电压又将出现,这主要是由于输入失调电压及温漂造成的。一般来说,温度变化较大时,要补偿这一误差是很困难的2)增益误差增益误差是转换器输出全“1”时,实际模拟输入电压与理想模拟输入电压之差。它使传输特性曲线绕坐标原点偏离理想特性曲线一定的角度,即增益误差表示模数转换特性曲线的实际斜率与理想斜率的偏差,它的数值一般用满量程的百分比来表示。3.5时钟电路 STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生
27、。如下:时钟电路3.6 复位电路 89C51单片机的复位是由外部的复位电路来实现的。最简单的上电自动复位电路,是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。当时钟频率选用6MHz时,C取22uF,R取1K。除上电复位外,有时还需要按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻和电源Vcc接通而实现的,按键手动电平复位电路如图3.1。当时钟频率选用12MHz时,C选取22uF,R选择1000欧。如下:复位电路3.7显示模块 显示模块3.8 硬件原理图 硬件原理图第四章 软件设计4.1 protues仿真图pr
28、otues仿真图4.2程序说明 程序先定义了ADC0832的控制线,对其控制端口要注意的是操作时序;要将A/D转换来的数据变换成对应的BCD码,这是因为ADC0832是8位A/D转换,对05V的模拟量转换成00HFFH的数字量,即0255。这要变换成对应十进制的BCD码才能显示。最高255/50=5.0(5V),BCD码取0101B,只精确到十分位。例如A/D转换来的数据为235,变换对应的BCD码为:235/50=4(是个位)余35/5=6(十分位)余5,余数5直接作百分位(此位不精确),即为4.65V,BCD码为010001100101.然后查表,缓存,调显示程序显示4.4 显示电路结构及
29、原理 (1)单片机中通常用七段LED构成 “8” 字型结构,另外,还有一个小数点发光二极管以显示小数位!这种显示器有共阴和共阳两种!发光二极管的阳极连在一起的(公共端)称为共阳极显示器,阴极连在一起的称为共阴极显示器。一位显示器由8个发光二极管组成,其中,7个发光二极管构成字型“8”的各个笔划,另一个发光二极管为小数点为。当在某段发光二极管上施加一定的正向电压时,该段笔画即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。在本设计中时、分、秒的十位采用七段显示,个位采用八段显示,使得更易于区分时、分、秒。(2)LED显示器接口及显示方式LED显示器有静态显示方式和动态显示方式两种。
30、静态显示就是当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另一个字符为止。LED显示器工作于静态显示方式时,各位的共阴极接地;若为共阳极则接+5V电源。每位的段选线分别与一个8位锁存器的输出口相连,显示器中的各位相互独立,而且各位的显示字符一经确定,相应锁存的输出将维持不变。 正因为如此,静态显示器的亮度较高。这种显示方式编程容易,管理也较简单,但占用I/O口线资源较多。因此,在显示位数较多的情况下,一般都采用动态显示方式。由于所有6位段皆由一个I/O口控制,因此,在每一瞬间,6位LED会显示相同的字符。要想每位显示不同的字符,就必须采用扫描方法流点亮各位LED,即在每一瞬间只使某一位显示字符。在此瞬间,段选控制I/O口输出相应字符段选码(字型码),而位选则控制I/O口在该显示位送入选通电平(因为LED为共阴,故应送低电平),以保证该位显示相应字符。如此轮流,使每位分时显示该位应显示字符。在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个8位I/O口控制。而共阴(共阳)极公共端分别由相应的I/O口线控制,实现各位的分时选通。段选码,位选码每送入一次后延时2MS,因人的视觉暂留效应,给人看上去每个数码管总在亮。第五章 调试过程5.1 调试步骤 1、接上电源。2、看数码管显示是否与要求一致3、试验各按键功能是否正常。5.2 遇到的
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1