简易数字电压表设计毕业设计论文.docx
《简易数字电压表设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《简易数字电压表设计毕业设计论文.docx(37页珍藏版)》请在冰豆网上搜索。
![简易数字电压表设计毕业设计论文.docx](https://file1.bdocx.com/fileroot1/2023-1/5/93ef5b67-5caf-487f-93dc-1dcfdf21b1a4/93ef5b67-5caf-487f-93dc-1dcfdf21b1a41.gif)
简易数字电压表设计毕业设计论文
哈尔滨工业大学华德应用技术学院
毕业设计(论文)
题目简易数字电压表
专业应用电子与通信技术系
学号
学生姓名
指导教师姓名
答辩日期
摘要
数字电压表(Digital Voltmeter)简称DVM,利用A/D转换原理,将被测模拟量转换成数字量,并用数字方式显示测量结果的电子测量仪表。
利用单片机技术结合A/D转换芯片ADC0809构建了一个简易数字电压表。
设计主要采用STC89C52芯片和ADC0809芯片来完成一个简易的数字电压表,能够对输入的0~5V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.02V。
该电压表的测量电路主要由三个模块组成:
A/D转换模块、数据处理模块及显示控制模块。
关键词:
简易数字电压表;STC89C52;ADC0809;四位数码显示
Abstract
Arithmeticfigureelectricvoltageform(DigitalVoltmeter)briefnameDVM,makeuseoftheA/Dconversionprinciple,willbemeasuredtheamountofemulationconversionthearithmeticfiguremeasures,counteractingtheelectronicsthatarithmeticfiguremethodmanifestationmeasureresultmeasuretheappearance.
MakeuseofthesingleamachinetechniquecombinationA/theDconversionanADC0809setupasimplearithmeticfigureelectricvoltageform.MainadoptionindesignAT89S51a0the5Vsof~ssofemulationsforwiththesliceofADC0809tocompletingasimplearithmeticfigureelectricvoltageform,cantoinputtingdirectcurrentelectricvoltageproceedsthediagraph,andpass7LEDsfiguresofa4integralwholesthetubeproceedthemanifestation,measuringerrormarginroughly0.02Vs.Thediagraphelectriccircuitoftheelectricvoltage'sformismaintobeconstitutedbythreemoldspiece:
A/Dconversionmoldpiece,datahandlesmoldpieceandmanifestationcontrolmoldpiece.
Keywords:
SimplearithmeticfigureelectricvoltageformSTC89C52ADC0809fourfiguresesmanifestation
目 录
第1章绪论
1.1课题背景
随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,数字电压表具有测量精度高等优点,在读数方便,在体积、重量、耗电、稳定性及可靠性等方面性能指标均明显优于指针式万用表。
随着微电子技术和超大规模集成电路技术的迅速发展,单片微型计算机以其体积小、性价比高、功能强、可靠性高等独有的特点,并在各个领域(如工业控制、家电产品、汽车电子、通信、智能仪器仪表)得到了广泛的应用。
各种常用的仪器仪表中数字电压表是最常见的仪器仪表之一。
目前,由各种单片机和大规模的A/D转换集成构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
1.2目的和意义
制作一个可以测量八路0~5V范围内的电压的简易数字电压表。
掌握STC89C52单片机和ADC0809八路A/D转换器的基本知识并做到理论知识与实际电路相合,熟悉汇编语言的运用及编程方法,熟悉模数转换芯片的工作原理。
1.3系统功能
使用单片机STC89C52和ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,三位数码显示。
在单片机的作用下,能监测八路的输入电压值,用8位串行A/D转换器,基准电压为5V;能用一位LED进行轮流显示或单路选择显示,显示精度在0.05V以内。
1.4技术要求
(1)测量范围0~5V;
(2)可以同时测量8路电压;
(3)4位LED显示;
(4)误差范围0.05V。
第2章系统设计
2.1系统的论证
简易数字电压表可以测量0~5V的8路输入电压值,并在4位LED数码管上显示出来。
采集8个通道的模拟量在数码管显示出来。
模拟量值的测量范围是0-255,第一个数码管用于显示哪一个通道,后三个数码管用于显示采集的模拟量的值,每秒钟显示切换一下通道。
本设计还扩展了通道选择和电路复位两种功能。
在电路显示电压值时,系统设计了轮流显示和选择显示电压值两种功能的转换按键。
一个是轮流显示通道的切换按键,另一个是选择通道的切换按键。
在刚上电时,系统默认为循环显示8个通道的电压值状态。
电路还增设了复位电路,当显示某一路电压值时按下复位键,电路将从第一路开始重新显示电压值。
2.2系统基本方案
根据设计要求,简易数字电压表测量电路主要由A/D转换模块、数据处理模块及显示模块组成。
其系统框图如2-1
图2-1简易数字电压表框图
2.2.1各模块方案选择
2.2.1.1数据处理模块
方案一:
采用FPGA作为系统的控制器。
FPGA(现场可编程门阵列)可以实现各种复杂的逻辑功能,它把所有的器件都集中在一块芯片上,体积小,稳定性高。
同时FPGA可用EDA软件仿真调式,易于进行功能扩展。
但是由于本系统对数据处理的速度要求并不是很高,而FPGA的管脚也比较多,布线起来会比较复杂,成本也会偏高。
方案二:
采用STC89C52单片机作为系统的控制器。
51系列的单片机的使用简单,软件编程灵活。
自由度大,可用软件编程实现各种算法和逻辑控制,并且功耗低、体积小、技术成熟和成本低。
2.2.1.2A/D转换模块
方案一:
采用ADC574转换芯片。
其电源是0到20V,选取这片芯片就不用考虑的电阻的分压。
但是以选择信号的输入通道是32路,不是我们所须要的,并且电路结构复杂。
使得整部分硬件电路板布线复杂,加重了电路设计和实际焊接的工作。
方案二:
采用ADC0809转换芯片,其中A/D转换器用于实现模拟量向数字量的转换,由于模拟转换电路的种类很多,选择A/D转换器从速度,精度和价格方面考虑,其内部是8路模拟选通开关,以及相应的通道抵制锁存用译码电路,转换时间是100μS左右。
单电源供电。
2.2.1.3显示模块
方案一:
采用四个独立的数码管显示。
四位独立的LED具有低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温等优点,但在实际电路连接中连接导线多、布局大等特点。
方案二:
采用四位一体的LED数码管作为显示器件。
四位一体的LED数码管具有对外界环境要求低、易于维护,同时其精度比较高、操作简单、编程容易、资源占用较少等优点。
2.2.1.4电源模块
方案一:
采用试验台电源供电。
使用试验台提供电压方便直接,但电压易波动、电流过大。
方案二:
采用W7805提供电源。
输出电压稳定,不易产生波动。
2.2.2系统各模块的最终方案
结合系统自身要求和实际应用中的利益问题,我们最终选择了以下方案作为此次作品设计的最终方案:
(1)数据处理模块:
采用STC89C52单片机作为系统的控制器
(2)显示模块:
采用四位一体的LED数码管作为系统的显示器件
(3)A/D转换模块:
采用A/D转换芯片ADC0809作电压采集转换
(4)电源模块:
采用W7805组成的稳压电源。
2.3本章小结
本章叙述了数字电压表概念及其功能并附图进行解释,通过对于各模块的方案选择,集中解释了数据处理模块A/D转换模块、显示模块及电源模块的作用及特性。
并最终综合以上选择制定了所适应的采用模式的的最终方案并阐述原因。
第3章硬件的设计
3.1系统硬件概述
本设计采用STC89C52单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表。
该电路采用STC89C52单片机作为控制核心,通过ADC0809芯片采样输入口IN0~IN7输入8路0~5V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0~D7传送给STC89C52芯片。
ADC0809用来采集模拟输入量,在将采集到的模拟量转换成数字量送给单片机。
STC89C52负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并传送给数码管。
数码管将接收到的段码信息依次显示出来。
简易数字电路系统电路图见附录3。
3.2数据处理芯片STC89C52
3.2.1STC89C52简介
STC89C52是美国ATMEL公司生产的低功耗、高性能CMOS8位单片机。
图3-1和3-2分别为其实物图和内部总体结构图。
STC89C52片内含有8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,三个16位定时/计数器,一个6向量2级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图3-1STC89C52实物图
图3-2STC89C52芯片内部总体结构图
3.2.2STC89C52的引脚:
STC89C52芯片为40引脚双列直插式封装,其引脚排列如图3-3所示。
(1)VCC:
电源电压;
(2)GND:
接地;
(3)P0口:
P0口是一组8位漏极开路双向I/O口,每位引脚可驱动8个TTL逻辑门路。
对P0口的管脚写“1”时,被定义为高阻抗输入。
在访问外部数据存储器或程序存储器时,它可以被定义为数据总线和地址总线的低八位。
在FLASH编程时,P0口作为原码输入口;当FLASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
(4)P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口的输出缓冲器可驱动4个TTL逻辑门电路。
对P1口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。
P1口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P1口中的P1.0、P1.1、P1.5、P1.6、P1.7还具有第二功能,如表3-1所示。
图3-3STC89C52引脚图
表3-1P1口的第二功能
端口引脚
第二功能
P1.0
T2(外部计数输入)、时钟输出
P1.1
T2EX
P1.5
MOSI(用于系统编程)
P1.6
MISO(用于系统编程)
P1.7
SCK(用于系统编程)
(5)P2口:
P2口是一个内部提供上拉电阻的8位双向I/O口,P2口的输出缓冲器可驱动4个TTL逻辑门电路。
对P2口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。
P2口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在访问8位地址外部数据存储器时,P2口线上的内容,在整个访问期间不改变。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
(6)P3口:
P3口是一个内部提供上拉电阻的8位双向I/O口,P3口的输出缓冲器可驱动4个TTL逻辑门电路。
对P3口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。
P3口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。
P3口除了一般I/O线的功能外,还具有更为重要的第二功能,如表3-2所示。
P3口同时为FLASH编程和编程校验接收一些控制信号。
表3-2P3口的第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INTO(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(定时/计数器0外部输入)
P3.5
T1(定时/计数器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
(7)RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
(8)ALE//RPOG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
(9)/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的信号将不出现。
(10)/EA/VPP:
当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
(11)XTAL1:
片内高增益反向放大器的输入及内部时钟工作电路的输入。
(12)XTAL2:
片内高增益反向放大器的输出端。
3.2.3STC89C52的复位电路和时钟电路
3.2.3.1复位电路
STC89C52的复位电路如图3-4所示。
当单片机一上电,立即复位;另外,如果在运行中,外界干扰等因素使单片机的程序陷入死循环状态或“跑飞”,就可以通过按键使其复位。
复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。
图3-4复位电路
电容C和电阻R1实现上电自动复位。
增加按键开关S和电阻R2又可实现按键复位功能。
R2的作用是在S按下的时候,防止电容C放电电流过大烧坏开关S的触点。
因保证R1/R2>10。
一般取C=10uF,R2=100Ω,R1=10KΩ。
3.2.3.2时钟电路
时钟电路用于产生STC89C52单片机工作时必须的时钟信号。
时钟电路如图3-5所示。
图3-5时钟电路
单片机本身就是一个复杂的时序电路,为保证同步工作方式的实现,单片机应在唯一的时钟信号控制下,严格按时序指令进行操作。
在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并有时序电路产生一系列控制信号去完成指令所规定的操作。
单片机晶振的两个电容作用:
这两个电容叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容一般在几十pF。
它会影响到晶振的谐振频率和输出幅度。
3.3模数转换芯片ADC0809
ADC0809是典型的8位8通道逐次逼近式A/D转换器,其实物如图3-6所示。
它可以和微型计算机直接接口。
ADC0809转换器的系列芯片是ADC0808,可以相互替换。
图3-6ADC0809实物图
3.3.1ADC0809内部逻辑结构
ADC0809的内部逻辑结构如图3-7(a)所示。
(a)ADC0809的内部逻辑结构图(b)ADC0809的引脚图
图3-7ADC0809的内部逻辑结构及引脚图
图中多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。
地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码,如表3-3所示。
表3-3ADC0809通道选择表
C(ADDC)
B(ADDB)
A(ADDA)
选择的通道
0
0
0
IN0
0
0
1
IN1
0
1
0
IN2
0
1
1
IN3
1
0
0
IN4
1
0
1
IN5
1
1
0
IN6
1
1
1
IN7
3.3.2ADC0809的引脚
ADC0809为28引脚双列直插式封装,其引脚排列如图3-7(b)所示。
(1)IN0~IN7:
8路模拟量输入通道。
(2)A、B、C:
模拟通道地址线。
这3根地址线用于对8路模拟通道的选择,其译码关系如表3-3所示。
其中,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。
(3)ALE:
地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
(4)START:
转换启动信号。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。
本信号有时简写为ST。
(5)D7~D0:
数据输出线。
为三态缓冲输出形式,可以和单片机的数据线直接相连。
D0为最低位,D7为最高。
(6)OE:
输出允许信号。
用于控制三态输出锁存器向单片机输出转换得到的数据。
OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。
(7)CLK:
时钟信号。
ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。
通常使用频率为500KHz的时钟信号。
(8)EOC:
转换结束信号。
EOC=0,正在进行转换;EOC=1,转换结束。
使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
(9)Vcc:
+5V电源,GND:
地。
(10)Vref:
参考电压。
参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
其典型值为+5V(Vref(+)=+5V,Vref(-)=0V)。
3.3.3ADC0809的工作原理
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
图3-8ADC0809信号的时序配合
(注意:
ALE信号常与START信号连在一起,这样连接可以在信号的前沿写入地址信号,在其后沿启动A/D转换,图3-8为ADC0809信号的时序配合图)。
3.3.4STC89C52与ADC0809的连接
STC89C52与ADC0809的连接电路如图3-9所示。
STC89C52与ADC0809的连接必须注意处理好3个问题:
(1)在START端送一个100ns宽的启动正脉冲;
(2)获取EOC端上的状态信息,因为它是A/D转换的结束标志;
(3)给“三态输出锁存器”分配一个端口地址,也就是给OE端送一个地址译码器的输出信号。
图3-9STC89C52与ADC0809的连接电路
3.4四位一体LED数码管
显示模块主要由一个4位一体的供阳7段LED数码管(SM410564)构成,用于显示测量到的电压值。
它是一个共阳极的数码管,每一位数码管的原理图如图3-10(a)所示。
每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收STC89C52的P1口产生的显示段码。
1,2,3,4引脚端为其位选端,用于接收STC89C52的P3口产生的位选码。
图3-10(b)和图3-11分别为其引脚图和实物图。
(a)数码管原理图(b)数码管引脚图
图3-10四位一体数码管
图3-11SM410564数码管实物图
使用LED显示时,为了显示数字和符号,要为LED显示器提供代码,因为这些代码是通过各段的亮与灭来为显示不同字型的,因此称之为段码。
7段发光二极管,再加上一个小数点位,共计8段,因此提供给LED显示器的段码正好一个字节。
各段与字节中各位的对应关系如表3-4所示:
表3-4各引脚与各段相对应关系
代码为
D7
D6
D5
D4
D3
D2
D1
D0
显示段
dp
g
f
e
d
c
b
a
LED显示器有静态显示和动态显示两种显示方式,本文采用的是动态显示方式。
7段LED的段码如表3-5所示。
表3-57段LED段码
显示字符
共阴极段码
显示字符
共阴极段码
0
3FH
C
39H
1
06H
d
5EH
2
5BH
e
79H
3
4FH
f
71H
4
66H
p
73H
5
6DH
u
3EH
6
7DH
t
31H
7
07H
y
6EH
8
7FH
H
76H
9
6FH
L
38H
A
77FH
“灭”
00H
b
7CH
在STC89C52的P3口与数码管的4个公共端之间接有4个PNP型三极管,其型号为9012,利用9012作为驱动三极管使用,在三极管的基极接入4个4.7K的限流电阻。
三极管工作在开关状态,其集电极接数码管的4个公共端,发射极接电源电压。
当单片机给数码管提供控制信号使三极管工作在饱和状态即相当于开关闭合状态,数码管公共端接入高电平开始显示单片机P1口提供的段码值。
数码管与驱动三极管9012的连接图如图3-12。
图3-12数码管与驱动三极管9012的连接
3.5本章小结
本章通过对于简易数字电压表的硬件(包括数据处理芯片STC89C52和模数转换ADC0809、数码管)的描述,具体说明了数据处理芯片和模数转换芯片的概念、功能及内部引脚结构图,并通过图表描绘了其工作条件、原理和在本数字电压表中的应用情况,并就它们的连接进行了说明。
本章还展示了LED的实物图和与驱动方式,就前期硬件进行了深刻的阐述。
并对电路的具体电路通过原理图、连接图进行了分析,如单片机的最小电路(复位电路和时钟电路)。
第4章软件的设计
4.1系统软件概述
本系统的软件设计采用了汇编语言编程,程序在Windows2000环