数字电压表的设计毕业设计.docx
- 文档编号:11777992
- 上传时间:2023-04-01
- 格式:DOCX
- 页数:34
- 大小:392.62KB
数字电压表的设计毕业设计.docx
《数字电压表的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《数字电压表的设计毕业设计.docx(34页珍藏版)》请在冰豆网上搜索。
数字电压表的设计毕业设计
华东交通大学理工学院
InstituteofTechnology.
EastChinaJiaotongUniversity
毕业设计
GraduationDesign
(2011—2015年)
题目数字电压表的设计
分院:
电气与信息工程分院
专业:
工程及其自动化
班级:
电力2011-1
学号:
*******
指导教师:
起讫日期:
2015-01-01—2015-05-10
摘要
在电子应用领域,工业自动化仪表已经有了非常广泛的应用。
本文设计的数字电压表以AT89C51单片机为主要控制器件,利用ADC0808把模拟信号转换为数字信号并加以显示的电路。
它的设计主要包括硬件电路和系统程序两部分设计。
硬件电路主要是单片机最小设计模块、A/D转换模块和显示模块的设计,系统程序设计则是通过AT89C51单片机先将系统初始化,通过ADC0808转换芯片把模拟量转换成数字量,最后通过数码管显示数据。
设计的数字电压表的测量范围为200mv—10v,对直流电压进行测量。
该电路功能强大,有报警系统,可控制测量范围,数码管显示精度高,可扩展性强等优点。
数字电压表的应用在很多领域,有非常好的应用前景。
对数字电压表进行研究很有必要性。
这对我们研究单片机技术是很有帮助的。
关键词:
AT89C51;ADC0808;电压测量;A/D转换
Abstract
Inelectronicapplications,industrialautomationinstrumentshaveaverywiderangeofapplications.ThisdesignofadigitalvoltmetertoAT89C51microcontrollerasthemaincontroldevice,useitADC0808analogsignalsintodigitalsignalsanddisplaythemcircuit.Itsdesignincludeshardwareandsystemdesignprogramintwoparts.Thehardwarecircuitdesignmoduleisthesmallestsingle-chipdesignA/Dconvertermoduleanddisplaymodule,systemprogrammingisthroughthefirstAT89C51SCMsysteminitialization,byADC0808converterchiptoconvertanalogtodigital,andfinallythroughadigitaldisplaydata.Measuringrangedesigneddigitalvoltmeteris200mv-10v,DCvoltagemeasurement.Thecircuitispowerful,alarmsystem,controlmeasuringrange,digitaldisplayandhighprecision,scalabilityandotheradvantages.
Applicationofdigitalvoltmeterinmanyareas,thereisaverygoodprospect.Conductresearchonthedigitalvoltmeterverynecessity.Thissingle-chiptechnologyforourstudyishelpful.
Keywords:
T89C52;ADC0808;Voltagemeasurement;A/Dconverter
引言
数字电压表简称DVM,它是采用数字化测量技术,能将连续的模拟量(直流输入电压)转换成不连续的、离散的数字形式并加以显示的仪表。
目前,数字电压表已被广泛用于电子电气测量、工业自动化仪表、自动测试系统等领域。
数字电压表有很多优点:
(1).通过数码管显示数字清晰直观,读数准确,相对于借用指针和刻度盘的读数有了很大的改进。
(2).数码管显示位数多,能测量的范围更加广,用途更加广泛。
(3).测量准确度高,误差越来越小。
准确度表示测量结果与真实值的一致性,反映了测量误差的大小。
(4).分辨率高。
数字电压表测量灵敏度高,微小电压变化能在数码管的动态显示中显示。
(5).扩展能力强。
在数字电压表的基础上,可改造成用于不同工业领域的仪器仪表。
(6).测量速率快。
它取决于A/D转换器的转换速率。
测电压时,电表两端接触被测电压,数码管即刻显示被测电压数值,相对于指针和刻度盘测量更加稳定和便捷。
(7).输入阻抗高。
数字电言表在测量时从被测电路上吸取的电流极小,为显示更加精确,可以用放大电路放大电流,不会影响被测信号源的工作状态,能减小由信号源内阻引起的测量误差。
(8).集成度高,耗能少。
新型的数字电压表采用CMOS大规模集成电路,工作状态时功耗很低,电池可用时间长。
(9).抗干扰能力强。
(10)测量电压时系统恢复初始化,无需像指针式电压表那样置零。
1绪论
1.1选题的依据及意义
微型单片机自上世纪70年代首次出现,因为其价格低而性能有很高,便于携带所占地方小、可以适配各种功能等等特点很快便引起了人们关注度,之后很多年的发展,现在常见于家用电器控制,节能设备、电子仪器、智能机器人等方向也有着广泛的应用,在军事设备、工业控制领域都用到单片机控制,可见现在的单片机更加微型,智能,在提高了产品的功能与质量同时,还降低了设计和使用成本。
传统模式的电压表测量精度低,容易引入误差,测量范围小,功能简单,不能满足数字化时代的需求,很有必要选用既要精度高又要有很强的抗干扰能力,并且同时还需要满足扩展性强,外形小巧集成方便的芯片最为首选,体积小易于携带,还能与电脑端进行实时通信。
现阶段,在电工检测方向、工业自动化仪表控制、智能自动测试系统中,由A/D转换器作为核心器件的数字电压表被越来越广泛的应用,并且再有很大的份额和很强的生命力。
由DVM技术发展而形成的通用及专用的更高级的数字仪器仪表也更多的应用在监测电量和非电量的测试中并且得到了较快的发展,也将这项技术提高到了崭新高度。
1.2国内外现状研究及发展趋势
电子技术近20年的发展,微电子技术、计算机技术、集成技术、网络技术等高新技术越来越成熟。
在这样的情况下,人们不断对数字电压表提出了更高的要求,加快了数字电压表的发展,技术人员要求数字电压表速度更快、性能更稳定,灵敏度更高、以及操作更方便,做到成本更低,样品量提供量更少、和零污染。
数字电压表的发展大致如下:
1.新技术的广泛应用
新的A/D转换技术于上世纪90年代初在世界许多国家研发。
自动校准技术、A/D转换技术、资源再利用技术,使得数字电压表更加精度化、智能化、经济化、环保化,向着更高水平发展。
2.智能化阶段
在电子技术、大规模集成电路及计算机技术日新月异的大背景下,人们很快研制出并量产了DVM数据处理和可编程程序在微处理器控制下的芯片,因为数字电压有数据存储器ROM并使用C软件编程,通过可进行信息处理,仪器仪表经过接口监测系统,从而进行自校、自检,自查三个步骤,以及高准确性的运行,这样便实现了监测系统的智能化当前,智能化的DVM的出现以及智能化仪表发展的良好态势,DVM将会成为未来的发展趋势,并且会得到更多领域的应用。
这样为各种物理量的动态检测的实现提供了可能。
1.3研究的主要内容
本文介绍的一种简易数字电压表。
主要是由AT89c51单片机控制,显示模块由A/D转换器和数码管控制,数据处理模块及显示模块组成,芯片由ADC0808采集到的模拟量转化为相应的数字量再传送到相应的模块处理中。
芯片的主要任务是处理数据,并且把0808送来的数字量进行分析处理,再送到显示模块中显示,由于元件较少,成本低,测量精度和可靠性较高系统的数字电压表电路简单实现。
2设计方案与论证
2.1电压表功能设计
(1)对直流电压的测量。
(2)能对常见的交流信号的电压进行测量。
(3)测量电压的范围从200mv到10V之间。
(4)当输入电压过大时能够具有保护功能。
(5)显示功能。
(6)其它附加功能。
2.2设计思路
电压表由模拟和数字转换两大部分,电路应尽量采用中、大规模集成电路。
(1)为了满足各方面的设计需求,选择AT89C51单片机为核心控制器件。
(2)ADC0808和输入放大器用来用作A/D转换器,基准电源构成了模拟部分;数字部分由计数器、译码器、电流放大器、逻辑控制器、振荡器和显示器构成。
数字量经由转换器将输入端输入的模拟量转换而成,与此同时产生控制信号并根据产生的频率,经过分析处理整合检测最终输出需要显示的数字。
(3)电压显示采用两位一体的LED数码管。
(4)LED数码的段码输入,由并行端口P0产生:
位码输入,用并行端口P2低两位产生;小数点位由P2口产生。
2.3设计方案
转换电路、A/D转换、单片机、时钟电路、复位电路、模拟电压输入构成了硬件设计电路。
硬件电路设计图如下图所示:
图2-1数字电压表总体设计方案图
3系统硬件电路的设计
3.1单片机最小系统设计
3.1.1AT89C51单片机的主要特征
AT89C51单片机的外形如图3-1所示:
图3-1AT89C51引脚图
P0口引脚:
这组引脚共有8个引脚,P0.0-P0.7这8个引脚有两种不同的功能,分别用于通用I/O口和对片外存储器的读/写数据,P0口的字节地址为80H,口的各位口线具有完全相同但又相互独立的逻辑电路,有一个锁存器两个三态输入缓冲器一个多路转接开关,实际控制中,P0口多数情况下都是作为地址/数据线使用。
P1口引脚:
只可作为普通的I/O口使用,在电路结构上和P0口不同,因为P1口只传送数据,所以不再需要转换开关,P1口是准双向口,P1口作为输出用时,可以独立对外提供推拉电流负载,外电路就不再需要上拉电阻,作为输入使用时,必须在锁存器写入1,使FET截止。
P2口:
P2口字节地址为0A0H,实际控制中为系统提供高位地址,这个功能和P0口一样,在电路中有一个多路转接开关,但是转接开关的一段不再是作为地址数据使用,二就是单一的作为地址用而控制功能是它的第二大功能,但是每个引脚不完全一样。
ALE:
地址锁,使地址锁存于使能端。
访问外部存储器,如RAM、ROM。
有51个外部总线,16位地址线,数据线为8,而低8位的地址跟数据线是重合,所以单独访问低8位的地址和数据,这就需要用到ALE信号。
访问存储器的时候,P2口输出高地址,P0输出低地址。
利用外部的锁存器(设计用74HC245存储器)配合ALE脉冲,锁存P0地址,这时读写信号开始起作用,P0口读入或者输出数据。
RST:
单片机复位电路,当单片机系统在运行中受到环境干扰时,程序运行若有错误,及时按复位按钮,系统电路将自动初始化,起重置作用。
在设计时单片机系统如上图3.1
P0口接收由ADC0808送来的数据,然后通过P1口将数据送给LED显示器,通过显示器将数值都显示出来。
3.1.2时钟电路
单片机中指令执行都需要在晶振产生的固有频率下进行,按节拍有顺序的一次进行下去,而单片机时钟脉冲是由时序电路发出的。
单片机芯片内部有一个串联的反相放大器来增强震荡器高增益,XTAL1为输入端,XTAL2为输出端,用一个晶振和2个30uf的电容构成时钟电路,如下图所示:
图3-2时钟电路
电路中的器件选择有三种方法,一是通过计算,二是实验确定,三是参考一些典型电路,电容器C1和C2取值范围是30±10uF,本文选择了30uF的电容,这样会对对震荡频率起到调节的作用电路产生的时钟信号震荡频率由石英晶振来决定,最高可选24MHz,本系统中选择6MHz作为时钟信号的震荡频率。
3.1.3复位电路
复位电路是用来返回到电路设备初始化状态的电路,AT89C51的上电复位电路,只要在复位输入引脚上接一电容在ACC上端,下端接地就行了。
CMOS型单片机,由于在RST端内部有一个下拉电阻,故可拆除外部电阻,外接电容减至10uF。
上电复位的工作过程:
在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,RST端的高电平持续时间取决于电容的充电时间。
加在RST端的高电平信号要维持足够长的时间才能保证系统可靠复位。
一般来说复位方式有上电自动复位和按钮复位两种。
图3-3是AT89c51单片机的上电复位和按钮复位组合电路。
图3-3复位电路
3.2A/D转化模块
现实中大多数都是模拟量,这样并不能被我们直接采用,所以人们研制了数字量的器件,它能把模拟的物理量转变成我们能够利用的数字量,这是单片机几桶收集整理转变数据的关键,在电路设计中必不可少,经过人们不断努力改进,现在的转换器已经具备了很强的抗干扰能力,转换精度十分准确,性能强,价格低廉,种类多,常用的有逐次逼近型,双重积分型等。
逐次逼近式A/D转换的转换速度和精度都比双积分型更高,ADC0808转换器可以与单片机连接,把转换得到的数字量送入单片机,并对数字量进行分析和显示。
每个位比较一次,那么一个n位久需比较n次,这过程中所消耗的由位数和单片机时钟周期来共同决定,因为现实中更注重效率,而逐次逼近型A/D转换器转换速度快,在现实的生产生活中被大量采用。
3.2.1A/D转化器的工作原理
转换器要想工作,必须先做几个步骤如寄存器每一个都必须归零,开始转换工作时,必须将最高位置高电也就是置1才能把数据送入转换器中进行转换,转换后的结果与输入时的比较,若经转换的模拟量小于输入的模拟量,则1被保留,如转换的模拟量大于输入的模拟量,则1不保留,接着第二位第三位第四位并最终到最低位,最终寄存器中所存储的便是输入模拟量所对应的二进制的数字量。
3.2.2ADC0808主要特征
ADC0808是有使能控制端和微机直接接口的CMOS单片型逐次逼近式A/D转换器,首先应用在智能仪器和机床控制领域片内可以对模拟电压信号对8路同时进行转换,之所以这么做,是因为ADC0808与其他相比有着先天的优势:
第一,它是8路8位的转换器;其次,8路模拟开关并具有锁存控制功能再次可以接各种微控制器口;第三,锁存三态,与TTL转换电压低且精度高低功耗等特点。
ADC0808的外部引脚特征:
ADC0808有28条引脚,其引脚图如下所示:
图3-4ADC0808的引脚图
下面说明各个引脚功能:
IN0-IN7(8条):
用来进行输入控制转换模拟电压。
地址控制:
ALE为地址输入锁存许可线,输入高电平时有效,当ALE置高电平时,做为地址输入线使用。
START:
启动信号脉冲线,正脉冲宽度不小于100ns,否则无法启动,
EOC:
标志着转换结束的输出线,电位处于高电平时则表示A/D转换已经结束,且数字量自动锁入锁存器中。
D1-D8:
数字量输出端口,D8位最低位,D1位最高位。
OE:
输出允许端,高电平时,把转换后的数字量通过D1-D8引脚上输出。
REF+、REF-:
输入电压参考量,指给电阻阶梯网络的参考电压和标准值。
Vcc、GND:
Vcc一般R与EF+连接在一起为主电源输入端,地端是GND与REF-连接在一起,这样便是VCC,GND的作用。
转换器和单片机的链接,如下图:
图3-5转换器和单片机的链接
3.3显示模块设计
3.3.1数码管介绍
本文的电压值是选用LED数码管来显示的。
LED数码管由8个发光二极管组成,其中7个按“8”字型排列,还有一个是位于右下角且发光管的圆点形状为dp,用来显示小数点。
LED有低功耗、亮度强、线路简单、寿命长等优点,数码管的引脚图如图3-6所示:
图3-6数码管引脚排列
发光二极管有两种接法,分别是共阳极接法和共阴极接法,把8个点连在一起,高电平在公共端接入的叫共阳极,低电平在公共端接入的叫共阴极。
数码管有静态和动态两种显示方式。
静态显示,就是指一个I/O端口只能控制一个数码管的段码数据。
这样各个数码管显示相对独立,每个数码管接收的显示字符一经确定,相应I/O口的输出段码将保持不变,直到显示下一个字符,此特点使得数码管的显示亮度也较高。
但是也存在着缺点,大量的I/O端口在数码管过多时将被占用。
动态显示,指逐位地点亮显示器的各个位,点亮一次显示器的亮度与间隔时间、导通电流和点亮时间的比例三者相关。
动态显示的亮度要比静态显示要暗,所以在选择静态显示电路中的限流电阻应该要大于限流电阻时阻值,防止数码管损坏。
采用了自动显示8路模拟电压值动态显示对于设计的实现非常容易。
3.3.2数码管显示模块电路
数码管要求的驱动电流在10mA~20mA,为防止数码管灌入的电流太大,超出了单片机允许的电流范围而导致器件损坏,在P1口输出段码显示处,要加入10K的限流电阻排阻,一共8个同阻值的电阻,分别对应LED的8个接口,既保护数码管,又简单电路。
本设计选用软件译码的方式来简化电路和进行数值显示。
显示电路采用LED数码管通过软件译码动态显示,通过单片机的P1、P3.2、P3.3、P3.5口控制。
通过译码器驱动将依次循环点亮数码管,如图3-7所示:
图3-7数码管电路
3.3.3LED数码管与单片机接口设计
LED驱动电路设计是一个很重要的问题,单片机的I/O口产生的电流并不能直接驱动LED,驱动电路能力太差,这样就会导致显示器亮度低,这时,只要用驱动电路产生足够的电流,LED就能正常工作。
在LED驱动电路的设计过程中,可以利用上拉电阻解决这种问题,就是可以在LED的DP引脚到P0口和7段显示引脚之间接上上拉电阻,以此来增强P0口的驱动能力,LED以正常的亮度运行。
如图3-8所示。
图3-8数码管与单片机的链接
3.4高阻隔放大电路
采用LM324运放构成的前级信号调理电路,作为衰减信号的缓冲,提高输出阻抗,电压不变,电流增大,保证输出稳定并减小后级电路对信号的影响,避免冲击电压对运放的危害,加一个电容保护电路。
图3-9高阻隔放大电路
3.5总体电路设计
总结以上的设计,利用protues软件绘制出简易的数字直流电压表电路原理图。
数字直流电压表电路图的工作原理是:
输入模拟电压,对模拟电压信号进行处理然后再由ADC0808的IN0通道进入,这样经过转换后的数字量经过D0-D7输出通道再传送给单片机芯片的P1口,接收到的数字量可以通过AT89C51进行数据处理,通过P0口输出给译码器,从而7段数码管的显示段码再传送给74HC245译码然后去驱动LED,还控制P2.0、P2.1、P2.2的段选以及小数点。
此外,AT89C51还控制ADC0808的工作,单片机AT89C51通过从ALE引脚输出方波,接到ADC0808的CLOCK,P3.0发正脉冲启动A/D转换,A/D转换完成产生中断,单片机进入中断程序,从P1口读取转换的P3.1置高电位,然后送给LED显示。
总体电路设计完毕,利用Proteus制出硬件的原理结构图,并作相应的检查、修改、及测试,直至完成完善的硬件原理结构图。
本设计目的是能对电压进行测量,显示的功能和其他相应的软件配合。
如图3-10所示:
图3-10系统电路图
4程序设计
4.1主程序流程图
主程序流程分成3个模块,初始化模块,显示A/D转换子程序模块和子程序模块构成的。
第一步,开始,系统自动回到初始化状态,此时,A/D转化子程序启动,将输入的模拟信号转化为数字信号,测量限值比较,若输入的模拟电压大于电压表的测量范围,则系统蜂鸣器报警且输出电压表测量电压最大值,若输入电压小于测量范围,则系统正常运行且输出准确电压,接着显示子程序启动,数字信号通过LED显示板显示数值,流程结束。
如下图所示:
图4-1数字电压表主程序框图
启动电源前,系统自动复位,蜂鸣器关闭,LED显示关闭,定时器初始化。
启动电源,输入被测模拟电压值,经过A/D转换程序,译码器获得电压数值,通过LED显示器显示,此时判断被测电压是否超出测量范围,若超出,蜂鸣器报警,输出测量范围最大值;若正常,则输出准确电压。
另外,还可设置系统电压的测量范围,通过限制设置一栏设定想要的测量范围。
主程序核心代码:
//主程序
voidmain()
{
intvalue;//电压数据
unsignedintdelay_count=0;//延时计数
BUZ=0;//上电先关闭蜂鸣器
LED=1;//关LED
TimerInit();//定时器初始化
while
(1)
{
delay_count++;//延时计数+1
if(delay_count>5000)
{
delay_count=0;//延时计数清0
value=GetValue();//获取电压
ValueDis(value);//显示电压
if(value<=valueMAX)//电压正常
{
BUZ=0;//关蜂鸣器
LED=1;//关LED
b_over=0;//超限标志
}
else//电压超限
{
b_over=1;//超限标志
}
}
if(KEY1==0)//按键1-设定限值
{
while(!
KEY1);//等待按键松开
SetFun();//设定限值
}
}
}
4.2A/D转换子程序流程图
模拟输入电压经过ADC0808转换成数值,再经过A/D转换子程序移入相应的存储单元中,输入电压与A/D转化结果对比,正确则输出转换结果,错误则重新对比,将正确的输出结果进行数值转换,以数值形式显示结果,显示阶段出现问题则重新回到启动转化阶段重复循环,显示正确数值后A/D转换子程序结束。
流程如图4-2所示,转换子程序经过一段时间调用一次。
图4-2A/D转化流程图
开始后,锁存通道地址,复位电路自动复位,延时3毫秒,下降沿启动转换,延时,设置ADOE=1时,引脚置为读,当输入ADOE=1,等待转换,通过ADC0808允许数据输出,译码器读取AD数据,反之,当输入ADOE=0时,禁止数据输出,且返回AD数据。
A/D转换程序代码:
//读ADC数据
u8ReadData()
{
u8adda;
ADALE=1;
ADALE=0;//锁存通道地址
ADSTART=1;//上升沿复位
Delayms(3);//延时几毫秒
ADSTART=0;//下降沿启动转换
Delayms(3);//延时几毫秒
ADEOC=1;//引脚置为读
while(!
ADEOC);//等待转换结束
ADOE=1;//数据输出允许
adda=ADCPORT;//读取AD数据
ADOE=0;//数据输出禁止
returnadda;//返回AD数据
}
4.3显示子程序
显示子程序采用动态显示实现数码管的数值显示,在采用动态扫描显示方式时,要使得LED
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电压表 设计 毕业设计