直流数字电压表的设计2.docx
《直流数字电压表的设计2.docx》由会员分享,可在线阅读,更多相关《直流数字电压表的设计2.docx(24页珍藏版)》请在冰豆网上搜索。
![直流数字电压表的设计2.docx](https://file1.bdocx.com/fileroot1/2023-2/8/1c652adc-6a13-4a1d-8f89-375e61f888b4/1c652adc-6a13-4a1d-8f89-375e61f888b41.gif)
直流数字电压表的设计2
直流数字电压表的设计2
毕业设计
题目:
直流数字电压表的设计
系部:
电子电气工程学院
专业:
电气自动化
班级:
11级电气6
姓名:
王静静
学号:
201195014200
指导老师:
张力
日期:
2015年5月4日
直流数字电压表的设计
摘要随着电子技术的发展,采用单片机设计的数字电压表以其精度高,抗干扰能力强,可扩展性强,集成方便,价格低廉而越来越被人们广泛的应用。
基于STC89C51单片机的直流数字电压表的设计,其主要由输入电路,A/D转换电路,逻辑控制电路,计数器,显示器以及电源电路等部分组成。
A/D转换部分主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。
数据处理则由芯片STC89C51来完成,主要负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块来进行显示;此外,它还控制着转换器ADC0808的芯片工作。
并通过液晶显示屏显示测量数值,相对误差<1%,实现了自动校零和自动量程切换的功能.
最后,用proteus对其进行仿真。
以确保所设计的直流数字电压表达到设计要求。
关键字单片机系统;数字典压表;A/D转换;STC89C51;ADC0808
DesignofDirectCurrentDigitalVoltmeter
Abstractwiththedevelopmentofelectronictechnology,signal-chipdesignvoltmeterwithit’shighprecisionstronganti-interferenceability,strongscalability.integrationisconvenient,cheapandwidelyusedbypeoplemoreandmore.
designdirectcurrentdigitalvoltmeterbasedonSTC89C51single-chipmicrocontroller,it’smainbyinputcircuit,A/Dconverting,logicalcontrolcircuit,counter,displayandthepowersupplycircuit。
A/DconvertingismainlycompletedbytheADC0808,itconvertsthecollectedanalogdataintothedigitaldataandtransmitstheoutcometothemanifestationcontrollingmouldpiece.DataprocessingismainlycompletedbytheAT89C51chip,itprocessesthedataproducedbytheADC0808chipandgeneratestherightmanifestationcodes,alsotransmitsthecodestothemanifestationcontrollingmouldpiece.Also,theAT89C51chipcontrolstheADC0808chiptowork.throughliquidcrystaldisplayshowsthenumericalmeasurement,therelativeerrorislessthan1%,Torealizetheautomaticzeroandautomaticswitchrange
thelast,usetheproteustorelizeit.Toensurethatthedirectcurrentdigitalvoltmetertomeetthedesignrequirements.
KeywordsSingle-chipmicrocontroller;Digitalvoltmeter;A/Dconverter;STC89C51;ADC0808
第一章概述
数字电压表(DigitalVoltmeter)是出现在50年代初,60年代末的一种电压测量仪表,简称DVM,它采用的是数字化测量技术,把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后再通过显示器件显示。
这种电子测量的仪表之所以出现,一方面是由于电子计算机的应用逐渐推广到系统的自动控制信实验研究的领域,提出了将各种被观察量或被控制量转换成数码的要求,即为了实时控制及数据处理的需要;另一方面,也是电子计算机的发展,带动了脉冲数字电路技术的进步,为数字化仪表的出现提供了条件。
数字电压表最初是伺服步进电子管比较式,其优点是准确度比较高,但是采样速度慢,体积大。
然后出现了斜波式电压表,它在速度方面稍有提高,但是准确度低,稳定性差,再后来出现了比较式仪表改进逐次渐近式结构,它不仅保持了比较式准确度高的优点,而且速度也有了很大的提高,但它有一个缺点是抗干扰能力差,很容易受到外界各种因素的影响。
随后,在斜波式的基础上双引伸出阶梯波式,它的唯一的进步就是成本降低了,可是准确度,速度以及抗干扰能力都未能提高。
现在,数字电压表绝大部分已取代了传统的模拟指针式的电压表。
因为传统的模拟指针式电压表的功能单一,精度低,读数的时候也非常不方便,很容易出错。
但采用单片机的数字电压表由于测量精度高,速度快,读数时也非常的方便,抗干扰能力强,可扩展性强等优点已被广泛的应用于电子的测量及电工的测量,工业自动化领域。
现在,数字电压表的发展已经是非常的成熟,就原理上来讲,它从原来的一二种已发展到多种,从功能上讲,则从测单一参数发展到能测多种参数;从制作元件来看,发展到了集成电路,准确度已经有了很大的提高,精确度大大提高;读数每秒可达几万次,而相对以前,它的价格也降低了很多。
目前实现电压数字化测量的方法仍然是A/D转换的方法。
而数字电压表种类繁多,型号新异,目前国际上仍未有统一的分类方法。
但在日常生活中,直流数字电压表一般是按照原理上的不同进行分类的,目前大致分为以下几类:
比较式,电压—时间变换式,积分式等。
其性能也越来越得到人们的青睐,得到了广泛的应用。
通过这次毕业设计,我学会了如何使用单片机来控制我们日常生活中的设备设施的工作,也使我更加了解了单片机许多方面的应用。
.
第二章软硬件的介绍
2.1单片机的介绍
2.1.151单片机的基本介绍
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4KB的可反复擦写的只读程序存储器和128字节的随机存储器。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
51单片机的性能
AT89C51功能性能:
与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命:
1000次写/擦循环;数据保留时间:
10年;全静态工作:
0-24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定时/计数器;5个中断源;可编程串行UART通道;片内震荡器和掉电模式。
51单片机的引脚功能
AT89C51可提供以下标准功能:
4KB的Flash闪速存储器,128B内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51可降至0Hz静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。
AT89C51采用PDIP封装形式,引脚配置如图1所示。
图1
P0口:
这组引脚共有8条,P0.0为最低位。
这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是89C51不带外存储器,P0口可以为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89C51带片外存储器,P0.0-P0.7在CPU访问片外存储器时先传送片外存储器的低8位地址,然后传送CPU对片外存储器的读/写数据。
P0口为开漏输出,在作为通用I/O使用时,需要在外部用电阻上拉。
P1口:
这8个引脚和P0口的8个引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O口使用时,P1.0-P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。
P2口:
这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用的I/O口使用,它的第一功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不是像P0口那样传送存储器的读/写数据。
P3口:
这组引脚的第一功能和其余三个端口的第一功能相同,
Vcc为+5V电源线,Vss接地。
ALE:
地址锁存允许线,配合P0口的第二功能使用,在访问外部存储器时,89C51的CPU在P0.0-P0.7引脚线去传送随后而来的片外存储器读/写数据。
在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6震荡器频率的脉冲序列。
该脉冲序列可以作为外部时钟源或定时脉冲使用。
EA:
片外存储器访问选择线,可以控制89C51使用片内ROM或使用片外ROM,
若EA=1,则允许使用片内ROM,若EA=0,则只使用片外ROM。
PSEN:
片外ROM的选通线,在访问片外ROM时,89C51自动在/PSEN线上产生一个负脉冲,作为片外ROM芯片的读选通信号。
RST:
复位线,可以使89C51处于复位(即初始化)工作状态。
通常89C51复位有自动上电复位和人工按键复位两种。
XTAL1和XTAL2:
片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89C51片内OSC(震荡器)的定时反馈回路。
2.2A/D转换器
主要介绍
ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到若干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域。
ADC0808的主要特性
ADC0808是8路8位A/D转换器,即分辨率为位;具有锁存控制的8路模拟开关;易与各种微控制器接口;可锁存三态输出,输出与TTL兼容;转换时间:
128μs;转换精度:
0.2%;单个+5V电源供电;模拟输入电压范围为0—+5V,无需外部零点和满度调整;低功耗,约15mW。
ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图2所示:
图2
2.3LED显示器的简介
在本设计中采用的是7段LED数码管来显示电压值。
LED具有耗电低、亮度高、视角大、线路简单、耐震及寿命长等优点,它由4个发光二极管组成,其中7个按‘8’字型排列,另一个发光二极管为圆点形状,位于右下角,常用于显示小数点。
把8个发光二极管连在一起,公共端接高电平,叫共阳极接法,相反,公共端接低电平的叫共阴极接法,我们采用共阴极接法。
当发光二极管导通时,相应的一段笔画或点就发亮,从而形成不同的发光字符。
其8段分别命名为dpgfedcba。
例如,要显示“0”,则dpgfedcba分别为:
11000000B;要显示“A”,则dpgfedcba分别为:
00010001B(共阳极)。
若要显示多个数字,只要让若干个数码管的位码循环为低电平就可以了。
根据设计要求,显示电路需要至少4位LED数码管来显示电压值,我们再多加一位用来显示电压单位“V”,则有4位LED循环显示。
利用单片机的I/O口驱动LED数码管的亮灭,设计中由P0口驱动LED的段码显示,即显示字符,由P2口选择LED位码,即选择点亮哪位LED来显示.
图
2.5显示器的选择
在应用系统中,设计的要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器,简称“4-LED”。
本系统中前一位显示电压的整数位,即个位,后两位显示电压的小数位。
4-LED是一个共阴极接法的4位LED数码显示管,其中a,b,c,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED组成,每个LED的段输出引脚在内部都并联后,引出到器件的外部。
4-LED显示的引脚如图所
由于4位LED阴极的各段已经在内部连接在一起,所以必须使用动态扫描方式(将所有数码管的段选线并联在一起,用一个I/O接口控制)来显示。
2.4LED数码管的译码方式如下表
显示字符
共阴极字段码
0
3FH
1
06H
2
5BH
3
4FH
4
66H
5
6DH
6
7DH
7
07H
8
7FH
9
6FH
2.5软件调试
2.4.1软件调试的目的
软件调试的主要任务是排查错误,错误主要包括逻辑错误和功能错误,这些错误有些是显性的,而有些是隐形的,但可以通过仿真开发系统发现并逐步改正。
proteus的功能
Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起进行仿真,我们甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。
Proteus可以完成单片机系统原理图电路绘制、PCB电路板的设计。
本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真采用的是Proteus软件,而程序方面,采用的是汇编语言。
第三章硬件电路的设计
3.1硬件电路的总体设计
硬件电路设计由6个部分组成;A/D转换电路,89C51单片机系统,显示系统、时钟电路、复位电路以及测量电压输入电路。
。
3.2复位电路
3.2.1复位电路的基本设计
单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。
MCS-51单片机有一个复位引脚RST,采用施密特触发输入。
当震荡器起振后,只要该引脚上出现2个以上机器周期的高电平即可确保时器件复位。
复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。
单片机的复位方式有上电自动复位和手动复位两种,只要Vcc上升时间不超过1ms,它们都能很好的工作。
3.3.2复位电路的电路图
当单片机一上电,立即复位。
电容C和电阻R1实现上电自动复位。
复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。
3.4时钟电路
3.4.1时钟电路的基本设计
单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。
CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。
MCS-51单片机芯片内部有一个高增益的反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。
本设计系统采用的是内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简化,只需要一个晶振和2个电容即可。
3.4.2时钟电路的电路图
电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是30±10pF,在这个系统中选择了33pF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为12MHz。
电容器C1和C2对震荡频率有微调作用,通常的取值范围是30±10pF,在这个系统中选择了33pF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为12MHz。
3.5显示电路的设计
3.5.1显示电路的基本原理
本电路的显示模块主要由一个4位一体的7段LED数码管构成,用于显示测量到的电压值。
它是一个共阴极的数码管,每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收AT89S51的P1口产生的显示段码。
S1,S2,S3,S4引脚端为其位选端,用于接收89S51的P2口产生的位选码。
本系统采用动态扫描方式。
扫描方式是用其接口电路把所有数码管的8个比划段a~g和dp同名端连在一起,而每一个数码管的公共极COM各自独立地受I/O线控制。
CUP从字段输出口送出字型码时,所有数码管接收到相同的字型码,但究竟是哪个数码管亮,则取决于COM端。
COM端与单片机的I/O接口相连接,由单片机输出位位选码到I/O接口,控制何时哪一位数码管被点亮。
在轮流点亮数码管的位扫描过程中,每位数码管的点亮时间极为短暂。
但由于人的视觉暂留现象,给人的印象就是一组稳定显示的数码。
动态方式的优点是十分明显的,即耗电省,在动态扫描过程中,任何时刻只有一个数码管是处于工作状态的。
3.6A/D转换器与单片机的连接电路
此设计中选择的是A/D转换芯片的通道0,A/D芯片的数据入口连接单片机的P1.3口,数据输出口连接单片机的P1.4口,芯片使能端连接单片机的P1.5口,脉冲端连接单片机的P1.6口。
模块连接如下图所示。
3.7LED数码管与单片机的设计电路
由于单片机的并行口不能直接驱动LED显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作。
如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏,因此,LED显示器的驱动电路设计是一个非常重要的问题。
为了简化数字式直流电压表的电路设计,在LED驱动电路的设计上,可以利用单片机P0口上外接的上拉电阻来实现,即将LED的A-G段显示引脚和DP小数点显示引脚并联到P0口与上拉电阻之间,这样,就可以加大P0口作为输出口德驱动能力,使得LED能按照正常的亮度显示出数字,如图所示。
3.8系统的总体电路设计
经过以上的设计过程,可设计出基于单片机的直流数字电压表的硬件电路原理图如图所示。
简易直流数字电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。
但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。
第四章软件设计
4.1整体的软件设计
根据模块的划分原则,将该程序划分初始化模块,A/D转换程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如下图所示。
4.2初始化子程序
所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。
子程序如下:
MOVDPTR,#OFDFFH
MOVA,#40H;设置工作方式,选择通道0;
SETB04H;
MOVX@DPTR,A
JB04H,$;等待中断完成;
MOVDPTR,#OFDFFH;
MOVA,#41H;设置工作方式,选择通道1;
SETB04H;
JB04H,$;等待中断完成;
MOVDPTR,#OFDFFH;
MOVA,#42H设置工作方式,选择通道2;
SETB04H;
MOV@DPTR,A
JB04H,$;等待中断完成;
INTO:
PUSHPSW
…
;
4.3A/D转换子程序
A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图所示。
4.4显示子程序
显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms[10]。
在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11μs定时,通过软件延时程序来实现5ms的延时。
。
第五章仿真设计
5.1软件调试
软件调试的主要任务是排查错误,错误主要包括逻辑错误和功能错误,这些错误有些是显性的,而有些是隐形的,但可以通过仿真开发系统发现逐步改正。
Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。
Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点的特点是可以与uVisions3IDE工具软件结合进行编程仿真调试。
本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件。
首先要校对零点,将A/D转换器的模拟输入端口接地,让电压为0V,此时可以调整R1的值,直至,直至显示电压为0V时为止,校准零点之后,就可以进行调试了.
单击仿真键,观察仿真结果,调节可调用电阻R1,观察电压表及显示值。
5.2结果及误差分析
1.当IN0口输入电压值为0V时,显示结果如图所示,测量误差为0V
2.当IN0输入电压值为1.50V时,显示结果如图15所示。
测量误差为0.01V。
3.当IN0口输入电压值为3.50V时,显示结果如图。
测量误差为0.01V.
4.误差分析
标准电压值/V
简易电压表测量值/V
绝对误差/V
0.00
0.50
1.00
1.50
2.00
2.50
3.00
3.50
4.00
4.99
0.00
0.51
1.00
1.51
2.00
2.50
3.00
3.50
4.00
5.00
0.00
0.01
0.00
0.01
0.00
0.00
0.00
0.00
0.00
0.01