基于51单片机的数字电压表设计说明书.docx
《基于51单片机的数字电压表设计说明书.docx》由会员分享,可在线阅读,更多相关《基于51单片机的数字电压表设计说明书.docx(23页珍藏版)》请在冰豆网上搜索。
基于51单片机的数字电压表设计说明书
扬州市职业大学
毕业设计(论文)
设计(论文)题目:
基于51单片机
的数字电压表设计
系别:
电子系
专业:
通信技术
班级:
07通信3班
姓名:
学号:
0706020305
指导教师:
李金奎
完成时间:
10年5月
基于51单片机的数字电压表设计
摘要:
数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
数字电压表自从一九五二年问世以来,随着电子技术的飞跃发展,特别是目前,作为测量仪表、模拟指示仪表的数字化以及自动测量的系统,而得到了很大的发展。
数字电压表是从电位差计的自动化这种想法研制出来的,因此即便是最初的数字电压表,其精度也要比模拟式仪表高,而其成本比电位差计也高。
以后,DVM的发展就着眼在高精度和低成本两个方面。
单片机可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。
本电路主要采用AT89S51芯片和ADC0809芯片来完成一个简易的数字电压表,能够对输入的0~5V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示。
该电压表的测量电路主要由三个模块组成:
A/D转换模块、数据处理模块及显示控制模块。
A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。
数据处理则由芯片AT89S51来完成,其负责把ADC0809传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着ADC0809芯片的工作。
关键词:
单片机数字电压表AT89S51A/D转换ADC0809
第1章产品要求及方案选择........................................................4
1.1设计的目的………………………………………….…….….…….…..4
1.2产品的要求……………………………………………….…….....……4
1.3各模块方案选择及论证.............................................................4
第2章主要原件介绍.......................................................................6
2.1模数转换芯片ADC0809....................................................................................6
2.2控制芯片AT89S51..............................................................................................7
2.3锁存芯片SN74LS373.........................................................................................9
2.4SEG-MPXE数码管...........................................................................................10
第3章电压表原理系统硬件电路设计与实现…………………..........................11
3.1电压表的原理..........................................................................11
3.2电源部分..........................................................................................................11
3.3A/D转换电路....................................................................................................11
3.4单片机最小系统电路部分……..………........................................................13
3.4.1时钟电路部分.................................................................................................13
3.4.2复位电路部分……………………………………………………….………14
3.5显示电路部分..................................................................................................14
3.7量程标定电路………………..………………………………………………..15
第4章系统软件设计...........................................................................................17
4.1主程序设计......................................................................................................17
4.2各子程序设计..................................................................................................17
4.3源程序代码.......................................................................................................20
第5章调试...........................................................................................................24
参考文献.................................................................................................................24
附录........................................................................................................................25
附录A原理图.......................................................................................................25
附录B总结与感谢................................................................................................27
附录C元件清单....................................................................................................29
第1章产品要求及方案选择
1.1设计的目的
通过制作简易数字电压表,加深对所学专业知识的认识,提高分析、解决工程实际问题的能力,提高对单片机的应用能力,提高收集文献、资料的能力,从而达到综合运用所学的专业知识进行电子产品设计、制作与调试的能力。
1.2产品的要求
基本功能:
1)能用数码管显示电压值
2)测量精度达0.5V
3)自制直流稳压电源
4)系统具备复位功能
1.3各模块方案选择与论证
根据设计要求,系统可分为电压采集模块、A/D转换模块、主控模块、显示模块。
A/D转换模块:
方案一:
A/D转换器采用ICL7107型三位半显示的芯片,输入信号,流经取样电路取样后送到ICL7107型三位半A/D转换器,只需要很少的简单外围元件,就可组成数字电流表模块,直接驱动三位半LED显示器显示,最后输入电流在显示部分显示。
由于本人对此电路不熟悉,而且ICL7107做的LED数字表,最大的缺点就是数字乱跳不稳定,特别最后一位。
所以不采用此方案。
方案二:
采用ADC0809转换芯片,其中A/D转换器用于实现模拟量向数字量的转换,单电源供电。
它是具有8路模拟量输入、8位数字量输出功能的A/D转换器,转换时间为100μs,模拟输入电压范围为0V~+5V,不需零点和满刻度校准,功耗低,约15mW。
由于模拟转换电路的种类很多,通过对转换速度,精度和价格方面考虑,所以选择方案二采用ADC0809为本次设计的转换芯片。
接口模块:
方案一:
使用数字电路实现,采用译码芯片CD4543作为接口芯片,这种方案能实现功能,但稳定性不高,结构复杂。
方案二:
采用AT89S51单片机作为系统的控制单元,通过A/D转换将被测值转换为数字量送入单片机中,再由单片机来送显。
此方案各类功能易于实现,成本低、功耗低,显示稳定。
通过比较,我选择方案二。
系统原理框图如1.1所示:
图1.1数字电压表设计框图
第2章主要元件介绍
2.1模数转换芯片ADC0809
ADC0809是典型的8位8通道逐次逼近式A/D转换器,它可以和微型计算机直接接口。
ADC0809转换器的系列芯片是ADC0808,可以相互替换。
2.1.1ADC0809内部逻辑结构
图2-1ADC0809的内部逻辑结构及引脚图
ADC0809的内部逻辑结构如图2-1所示。
图中多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。
地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码,如表2-1所示。
表2-1ADC0809通道选择表
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
2.1.2ADC0809的引脚
ADC0809芯片为28引脚双列直插式封装,其引脚排列如图2-1所示。
(1)IN0~IN7:
8路模拟量输入通道。
(2)A、B、C:
模拟通道地址线。
这3根地址线用于对8路模拟通道的选择,其译码关系如表1-1所示。
其中,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)。
2.1.3ADC0809的工作原理:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
2.2控制芯片AT89S51
AT89S51是美国ATMEL公司生产的低功耗、高性能CMOS8位单片机。
AT89S51片内含有4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
(图2-2为其内部结构图,图2-3为其引脚图。
)
2.2.1主要性能参数
与MCS-51产品指令系列完全兼容;
4K字节在系统编程(ISP)Flash闪速存储器;
1000次擦写周期;
4.0~5.5V工作电压范围;
全静态工作模式:
0Hz~33MHz;
三级程序加密锁;
128字节内部RAM;
32个可编程I/O口线;
2个16位的定时/计数器;
6个中断源;
图2-2AT89S51芯片内部总体结构图
全双工串行UART通道;
低工耗空闲和掉电模式;
中断可从空闲模式唤醒系统;
看门狗(WDT)及双数据指针;
掉电标识和快速编程特性;
灵活的在系统编程(ISP-字节或页写模式)。
2.2.2AT89S51的引脚:
AT89S51芯片为40引脚双列直插式封装,其引脚排列如图1-7所示。
图2-3AT89S51的引脚图
2.3锁存芯片SN74LS373
74LS373是八D锁存器(3S,锁存允许输入有回环特性),常应用在地址锁存及输出口的扩展中。
SN74LS373常用的8d锁存器,常用作地址锁存和i/o输出.可以用74hc373代换.74LS373是低功耗肖特基TTL8D锁存器,74HC373是高速CMOS器件,功能与74LS373相同,两者可以互换。
74LS373内有8个相同的D型(三态同相)锁存器,由两个控制端(11脚G或EN;1脚OUT、CONT、OE)控制。
当OE接地时,若G为高电平,74LS373接收由PPU输出的地址信号;如果G为低电平,则将地址信号锁存。
74LS373的输出端O0~O7可直接与总线相连。
当三态允许控制端OE为低电平时,O0~O7
为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平。
(其引脚图如图2-4所示。
)
图2-4SN74LS373引脚图
2.4SEG-MPX4数码管
本实验的显示模块主要由一个4位一体的7段LED数码管构成,用于显示测量到的电压值。
它是一个共阳极的数码管。
每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收AT89S51的P1口产生的显示段码。
1,2,3,4引脚端为其位选端,用于接收AT89S51的P3口产生的位选码。
第3章电压表原理系统硬件电路设计与实现
3.1电压表的原理
本设计采用AT89S51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表,原理电路如下图所示。
该电路通过ADC0809芯片采样输入口IN0输入的0~5V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0~D7传送给AT89S51芯片的P0口。
AT89S51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口经驱动芯片SN74LS373驱动,再传送给数码管。
同时它还通过其三位I/O口P3.0、P3.1、P3.2产生位选信号,控制数码管的亮灭。
另外,AT89S51还控制着ADC0809的工作。
其ALE管脚为ADC0809提供了1MHz工作的时钟脉冲;P2.3控制ADC0809的地址锁存端(ALE);P2.4控制ADC0809的启动端(START);P2.5控制ADC0809的输出允许端(OE);P3.7控制ADC0809的转换结束信号(EOC)。
3.2电源部分
电源部分电路主要是要求能提供稳定可靠的电压,使整个系统能正常的工作。
采用220V的工频交流电压,而单片机的工作电压是直流+5V,为此,先通过一个普通的变压器降低电压,再通过桥式整流,然后再通过7805芯片的进一步稳压,确保+5V电源的稳定、可靠。
而且7805集成稳压器是常用的固定输出+5V电压的集成稳压器。
它的内部含有限流保护、过热保护和过压保护电路,采用了噪声低、温度漂移小的基准电压源,工作稳定可靠。
1脚为输入端,2脚为接地端,3脚为输出端,使用十分方便,可以在任何有交流电压的地方使用,不需另带电池。
通过整流滤波以后输出直流电压,为了确保整个电路能正常工作,考虑到不接负载或电源电压有波动时电容能承受的耐压,必须加电容。
发光二极管D2点亮表示电源电路正常工作,其电源电路如图3-1所示:
图3-1电源电路
3.3A/D转换电路
A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。
随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。
如果按照工作原理划分,ADC主要有4种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器和计数比较式A/D转换器。
目前最常用的是双积分和逐次逼近式。
图3-2A/D转换电路图
3.4单片机最小系统电路部分
单片机内部每个部件要想协调一致地工作,必须在统一口令——时钟信号的控制下工作。
单片机工作所需要的时钟信号有两种产生方式,即内部时钟方式和外部时钟方式。
图3.5是内部时钟方式:
单片机内部有一个构成振荡器的增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输入端,这个放大器与作为反馈元件的片外晶振一起构成自激振荡器。
在该图中,电容C1和C2取20PF,晶体的振荡频率取12MHz,晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。
图3-3单片机最小系统电路图
3.4.1复位电路部分
AT89S51的复位电路如图3.5所示。
当单片机一上电,立即复位。
电容C和电阻R1实现上电自动复位。
复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。
图3-4复位电路部分电路图
3.4.2时钟电路部分
单片机内部每个部件要想协调一致地工作,必须在统一口令——时钟信号的控制下工作。
单片机工作所需要的时钟信号有两种产生方式,即内部时钟方式和外部时钟方式。
图3.5是内部时钟方式:
单片机内部有一个构成振荡器的增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输入端,这个放大器与作为反馈元件的片外晶振一起构成自激振荡器。
在该图中,电容C1和C2取20PF,晶体的振荡频率取12MHz,晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。
实际连接如图3-5所示:
图3-5时钟电路部分
3.5显示电路部分
本电路的显示模块主要由一个4位一体的7段LED数码管构成,用于显示测量到的电压值。
它是一个共阳极的数码管,每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收AT89S51的P1口产生的显示段码。
1,2,3,4引脚端为其位选端,用于接收AT89S51的P3口产生的位选码。
本系统采用动态扫描方式。
扫描方法是用其接口电路把所有数码管的8个比划段a~g和DP同名端连在一起,而每一个数码管的公共极COM各自独立地受I/O线控制。
CUP从字段输出口送出字型码时,所有数码管接收到相同的字型码,但究竟是哪个数码管亮,则取决于COM端。
COM端与单片机的I/O接口相连接,由单片机输出位位选码到I\O接口,控制何时哪一位数码管被点亮。
在轮流点亮数码管的位扫描过程中,每位数码管的点亮时间极为短暂。
但由于人的视觉暂留现象,给人的印象就是一组稳定显示的数码。
动态方式的优点是十分明显的,即耗电省,在动态扫描过程中,任何时刻只有一个数码管是处于工作状态的。
具体原理图如图3-6所示
图3-6显示电路图
3.7量程标定电路
输入电路的核心是由输入衰减器和放大器组成的量程标定电路,如下图所示。
继电器S控制100∶1衰减器是否接入。
VT5~VT10是模拟开关,控制放大器不同的增益。
它们在控制信号的作用下,形成不同的通、断组态,构成0.1V,1V,10V,100V,1000V五个量程状态及自测试状态。
各组分析如下:
图3-8量程标定电路图
(1)0.1量程:
VT8,VT6导通,放大电路被接成电压负反馈放大器,则
放大倍数Af=(21.6+9+1)/1=31.6
最大输出电压Uomax=0.1×31.6=3.16 V
(2)1V量程:
VT8,VT10导通,此时放大电路被接成串联负反馈放大器,
Af=(21.6+9+1)/(9+1)=3.16
Uomax= 1×3.16 = 3.16V
(3)10V量程:
VT7,VT9导通,放大电路被接成跟随器,放大倍数为1,
然后输出又经分压,此时
Uomax= 10×(9+1)/(21.6+9+1)= 3.16V
(4)100V量程:
VT8,VT10导通,放大电路仍为串联负反馈放大器。
同时继电器开关S吸合,使100∶1衰减器接入,此时
Uomax=100×1100×21.6+9+19+1=3.16V
(5)1000V量程:
继电器S吸合,100∶1衰减器接入;VT7,VT9导通,
放大电路被接成跟随器,并使输出再经分压,此时
Uomax=1000×1/100×(9+1)/(21.6+9+1)=3.16V
由上述计算可见,送入A/D转换器的输入规范电压为0V~3.16V。
由于电路被接成串联负反馈形式并且采用自举电源,0.1V,