基于单片机的数字电压表设计—-毕业论文设计

基于单片机的数字电压表设计—-毕业论文设计
基于单片机的数字电压表设计—-毕业论文设计

CityCollegeofSouthwestUniversityOf

ScienceandTechnology

基于单片机的数字电压表设计

[摘要]本文介绍了一种基于单片机的数字电压表的设计。该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。A/D转换主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片AT89C51来完成,其负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着ADC0808芯片工作。该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字电压表经过proteus软件仿真和调试,可以测量0-5V的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。

[关键词]数字电压表;A/D转换;AT89C51;ADC0808;proteus

[summary]This paper introduces a design based on single chip microcomputer digital voltmeter.This design is mainly composed of three modules:A/D conversion module, data processing module and display module.A/D conversion is mainly competed by the chip ADC0808, It is responsible for the collection to the analog conversion to the corresponding digital quantity and then transferred to the data processing module,Data processing is done by chip AT89C51,It is responsible for the send ADC0808 to digital quantity through certain data processing,Generating the corresponding display code sent to the display module,In addition, it also controls the ADC0808 chip.The system of the digital voltmeter circuit is simple, the less components, low cost, and high measurement accuracy and reliability,The digital voltmeter through the proteus software simulation and debugging, can measure of 0 to 5 v analog dc input voltage value, and through a four one of the seven segment digital tube display.

[key words]Digital voltmeter. A/D conversion; AT89C51. ADC0808; proteus

目录

1 引言 (1)

1.1数字电压表的发展现状 (1)

1.2本课题研究的主要内容 (1)

2 设计总体方案 (2)

2.1设计要求 (2)

2.2设计思路 (2)

2.3设计方案 (2)

3 硬件电路设计 (3)

3.1A/D转换模块 (3)

3.1.1 逐次逼近型A/D转换器原理 (3)

3.1.2 ADC0808主要特性 (3)

3.1.3 ADC0808的外部引脚特征 (4)

3.1.4 ADC0808的内部结构及工作流程 (5)

3.2单片机系统 (7)

3.2.1 AT89C51性能 (7)

3.2.2 AT89C51各引脚功能 (7)

3.3复位电路和时钟电路 (10)

3.3.1 复位电路设计 (10)

3.3.2 时钟电路设计 (10)

3.4LED显示系统设计 (11)

3.4.1 LED基本结构 (11)

3.4.2 LED显示器的选择 (11)

3.4.3 LED译码方式 (12)

3.4.4 LED显示器与单片机接口设计 (13)

3.5电压调节电路及声光报警电路 (13)

3.5.1电压调节电路 (13)

3.5.2声光报警电路 (14)

3.6总体电路设计 (14)

4 程序设计 (16)

4.1程序设计总方案 (16)

4.2系统子程序设计 (16)

4.2.1 初始化程序 (16)

4.2.2 A/D转换子程序 (16)

4.2.3 显示子程序 (17)

4.3仿真 (17)

4.3.1 软件调试 (17)

4.3.2 显示结果及误差分析 (18)

参考文献 (21)

附录 (21)

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

1 引言

1.1 数字电压表的发展现状

在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。

传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础[2]。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。

最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。

目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面。

1.2 本课题研究的主要内容

本文是以数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号。

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

2 设计总体方案

2.1 设计要求

⑴以MCS-51系列单片机为核心器件,组成一个简单的直流数字电压表。

⑵采用1路模拟量输入,能够测量0-5V 之间的直流电压值。

⑶电压显示用4位一体的LED 数码管显示,至少能够显示两位小数。

⑷尽量使用较少的元器件。

2.2 设计思路

⑴根据设计要求,选择AT89C51单片机为核心控制器件。

⑵A/D 转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。

⑶电压显示采用4位一体的LED 数码管。

⑷LED 数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生。

2.3 设计方案

硬件电路设计由6个部分组成; A/D 转换电路,AT89C51单片机系统,LED 显示系统、

时钟电路、复位电路以及测量电压输入电路。硬件电路设计框图如图2.1所示。

图2.1 时钟电路 复位电路 A/D 转换电路 测量电压输入

显示系统 AT89C51

P1

P2

P2

P0

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

3 硬件电路设计

3.1 A/D转换模块

现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近型,双重积分型等等。双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点。与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0809、ADC0808等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型A/D转换器转换速度快,因而在实际中广泛使用。

3.1.1 逐次逼近型A/D转换器原理

逐次逼近型A/D转换器是由一个比较器、A/D转换器、存储器及控制电路组成。它利用内部的寄存器从高位到低位一次开始逐位试探比较。

转换过程如下:

开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量。其原理框图如图3.1所示:

顺序脉冲发生器

主次逼近

寄存器

ADC

输入数字量输入电压

电压

比较器图3.1 逐次逼近式A/D转换器原理图

3.1.2 ADC0808主要特性

ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

转换,由于ADC0808设计时考虑到若干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域[5]。

ADC0808主要特性:8路8位A/D转换器,即分辨率8位;具有锁存控制的8路模拟开关;易与各种微控制器接口;可锁存三态输出,输出与TTL兼容;转换时间:128μs;转换精度:0.2%;单个+5V电源供电;模拟输入电压范围0- +5V,无需外部零点和满度调整;低功耗,约15mW。

3.1.3 ADC0808的外部引脚特征

ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图3.2所示。

图3.2 ADC0808引脚图

下面说明各个引脚功能:

IN0-IN7(8条):8路模拟量输入线,用于输入和控制被转换的模拟电压。

地址输入控制(4条):

ALE:地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。

ADDA,ADDB,ADDC:3位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表3.1所示:

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

表3.1 ADC0808通道选择表

START :START 为“启动脉冲”输入法,该线上正脉冲由CPU 送来,宽度应大于100ns ,

上升沿清零SAR,下降沿启动ADC 工作。

EOC: EOC 为转换结束输出线,该线上高电平表示A/D 转换已结束,数字量已锁入三

态输出锁存器。

D1-D8:数字量输出端,D1为高位。

OE :OE 为输出允许端,高电平能使D1-D8引脚上输出转换后的数字量。

REF+、REF-:参考电压输入量,给电阻阶梯网络供给标准电压。

Vcc 、GND: Vcc 为主电源输入端,GND 为接地端,一般REF+与Vcc 连接在一起,REF-

与GND 连接在一起。

CLK:时钟输入端。

3.1.4 ADC0808的内部结构及工作流程

ADC0808由8路模拟通道选择开关,地址锁存与译码器,比较器,8位开关树型A/D

转换器,逐次逼近型寄存器,定时和控制电路和三态输出锁存器等组成,其内部结构如

图3.3所示。

C B A

0 0

1

1

1

1

0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 IN0

IN1 IN2 IN3 IN4 IN5 IN6 IN7

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

图3.3 ADC0808的内部结构

其中:

(1)8路模拟通道选择开关实现从8路输入模拟量中选择一路送给后面的比较器进行比较。

(2)地址锁存与译码器用于当ALE信号有效时,锁存从ADDA、ADDB、ADDC 3根地址线上送来的3位地址,译码后产生通道选择信号,从8路模拟通道中选择当前模拟通道。

(3)比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路组成8位A/D转换器,当START信号有效时,就开始对当前通道的模拟信号进行转换,转换完成后,把转换得到的数字量送到8位三态锁存器,同时通过引脚送出转换结束信号。

(4)三态输出锁存器保存当前模拟通道转换得到的数字量,当OE信号有效时,把转换的结果送出。

ADC0808的工作流程为:

(1)输入3位地址,并使ALE=1,将地址存入地址锁存器中,经地址译码器从8路模拟通道中选通1路模拟量送给比较器。

(2)送START一高脉冲,START的上升沿使逐次寄存器复位,下降沿启动A/D转换,并使EOC信号为低电平。

(3)当转换结束时,转换的结果送入到输出三态锁存器中,并使EOC信号回到高电平,通知CPU已转换结束。

(4)当CPU执行一读数据指令时,使OE为高电平,则从输出端D0-D7读出数据。

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

3.2 单片机系统

3.2.1 AT89C51性能

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4KB 的可反复擦写的只读程序存储器和128字节的随机存储器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

AT89C51功能性能:与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命:1000次写/擦循环;数据保留时间:10年;全静态工作:0-24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定时/计数器;5个中断源;可编程串行UART通道;片内震荡器和掉电模式。

3.2.2 AT89C51各引脚功能

AT89C51提供以下标准功能:4KB的Flash闪速存储器,128B内部RAM,32个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51可降至0Hz静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。AT89C51采用PDIP封装形式,引脚配置如图3.4所示。

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

图3.4 AT89C51的引脚图

AT89C51芯片的各引脚功能为:

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口:这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表2所示:

P3口各位第二功能

P3.0 RXT(串行口输入)

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(片外数据存储器读允许)

表3.2 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(震荡器)的定时反馈回路。

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

3.3 复位电路和时钟电路

3.3.1 复位电路设计

单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51单片机有一个复位引脚RST,采用施密特触发输入。当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位[1]。复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。单片机的复位方式有上电自动复位和手动复位两种,图3.5是51系列单片机统常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能很好的工作。

图3.5 复位电路

3.3.2 时钟电路设计

单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路[1]。

本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简单,只需要一个晶振和 2个电容即可,如图3.6所示。

图3.6 时钟电路

单片机数字电压表-------------------------------------------------------------------西南科技大学城市学院

电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是30±10pF,在这个系统中选择了33pF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为12MHz。

3.4 LED显示系统设计

3.4.1 LED基本结构

LED是发光二极管显示器的缩写。LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示器件[6]。在单片机中使用最多的是七段数码显示器。LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。LED引脚排列如下图3.7所示:

图3.7 LED引脚排列

3.4.2 LED显示器的选择

在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器,简称“4-LED”。本系统中前一位显示电压的整数位,即个位,后两位显示电压的小数位。

4-LED显示器引脚如图3.8所示,是一个共阴极接法的4位LED数码显示管,其中a,b,c,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED组成,

相关文档
最新文档