当前位置:文档之家› 单片机课程设计-数字电压表

单片机课程设计-数字电压表

目录1 引言 (1)2设计原理及要求 (2)2.1数字电压表的实现原理 (2)2.2数字电压表的设计要求 (2)3软件仿真电路设计 (3)3.1设计思路 (3)3.2仿真电路图 (3)3.3设计过程 (3)3.4 AT89C51的功能介绍 (4)3.4.1简单概述 (4)3.4.2主要功能特性 (5)3.4.3 AT89C51的引脚介绍 (5)3.5 ADC0808的引脚及功能介绍 (7)3.5.1芯片概述 (7)3.5.2 引脚简介 (7)3.5.3 ADC0808的转换原理 (7)3.6 74LS373芯片的引脚及功能 (8)3.6.1芯片概述 (8)3.6.2引脚介绍 (8)3.7 LED数码管的控制显示 (8)3.7.1 LED数码管的模型 (8)3.7.2 LED数码管的接口简介 (9)4系统软件程序的设计 (10)4.1 主程序 (10)4.2 A/D转换子程序 (10)4.3 中断显示程序 (12)5电压表的调试及性能分析 (13)5.1 调试与测试 (13)5.2 性能分析 (13)6电路仿真图 (14)7总结 (15)参考文献 (16)附录1 源程序 (17)附录2 仿真原理电路 (23)1 引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。

数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。

与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

本章重点介绍单片机A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力理。

本设计AT89C51单片机的一种电压测量电路,该电路采用ADC0808一种基于A/D转换电路,测量围直流0~5V 的4路输入电压值,并在四位LED数码管上显示或单路选择显示。

测量最小分辨率为0.019V,测量误差约为正负0.02V。

2设计原理及要求此次设计思路是利用单片机AT89C51与ADC0808设计一个数字电压表,测量0-5V之间的直流电压值,然后通过四位数码显示,为了设计简单化我使用的元器件数目较少。

2.1数字电压表的实现原理ADC0808是8位的A/D转换器。

当输入电压为5.00V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196(5/255)。

ADC0808具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。

如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8 路输入电压进行测量。

LED数码管显示采用软件译码动态显示。

通过按键选择可对8路循环显示,也可单路显示,单路显示可通过按键选择显示的通道数。

2.2数字电压表的设计要求可以测量0~5V围的3路直流电压值。

在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示围为0.00V~5.00V,1位LED数码管显示路数,3路分别为0-2。

要求测量的最小分辨率为0.02V。

3软件仿真电路设计3.1设计思路多路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和按键处理电路组成,由于ADC0808在进行A/D转换时需要有CLK信号,本试验中ADC0808的CLK直接由外部电源提供为500kHz的方波。

由于ADC0808的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。

实际显示的电压值(D/256*VREF) ADC0808采用逐次逼近法转换,把模拟电压转换成16进制的D,由于是对直流电压0~5V进行采集,所以D对应的电压为V0 ,我们的目的就是要把V0显示在LED显示器上,因为单片机不好进行小数点计算,所以有:V0=2*D扩大了100倍,扩大100倍后的结果高八位放寄存器B,低八位放寄存器A,分寄存器B为0或不为0的情况进行存取数据,得到的结果个位放入R0,十位放入R1,通过查表使之显示在LED显示器。

3.2仿真电路图用Protues软件仿真设计的电路如图3-1所示。

3.3设计过程简易数字电压测量电路由A/D转换、数据处理及显示控制等组成。

电路原理图见附录2。

A/D转换由集成电路0808完成。

0808具有8路模拟输入端口,地址(23-25)脚可决定对哪路模拟输入作A/D转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。

6脚为测试控制,当输入一个2us宽高电平脉冲时,就开始A/D转换。

7脚为A/D转换结束标志,当A/D转换结束时7脚输出高电平。

9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D 转换数据从该端口输出。

10脚为0808的时钟输入端,由外部信号源提供。

单片机的P1、P3.0-P3.3端口作为四位LED数码管现实控制。

P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。

P0端口作A/D转换数据读入用,P2端口用作0808的A/D转换控制。

3.4 AT89C51的功能介绍3.4.1简单概述AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM —Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。

AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如图3-2所示。

3.4.2主要功能特性(1) 4K字节可编程闪烁存储器。

(2) 32个双向I/O口;128×8位部RAM 。

(3) 2个16位可编程定时/计数器中断,时钟频率0-24MHz。

(4) 可编程串行通道。

(5) 5个中断源。

(6) 2个读写中断口线。

(7) 低功耗的闲置和掉电模式。

(8) 片振荡器和时钟电路。

3.4.3 AT89C51的引脚介绍89C51单片机多采用40只引脚的双列直插封装(DIP)方式,下面分别简单介绍。

(1)电源引脚电源引脚接入单片机的工作电源。

Vcc(40引脚):+5V电源。

GND(20引脚):接地。

(2)时钟引脚XTAL1(19引脚):片振荡器反相放大器和时钟发生器电路的输入端。

XTAL2(20引脚):片振荡器反相放大器的输出端。

图3-3 电源接入方式(3)复位RST(9引脚)在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。

(4)EA/Vpp(31引脚)EA为外部程序存储器访问允许控制端。

当它为高电平时,单片机读片程序存储器,在PC值超过0FFFH后将自动转向外部程序存储器。

当它为低电平时,只限定在外部程序存储器,地址为0000H~FFFFH。

Vpp为该引脚的第二功能,为编程电压输入端。

(5)ALE/PROG(30引脚)ALE为低八位地址锁存允许信号。

在系统扩展时,ALE的负跳沿江P0口发出的第八位地址锁存在外接的地址锁存器,然后再作为数据端口。

PROG为该引脚的第二功能,在对片外存储器编程时,此引脚为编程脉冲输入端。

(6)PSEN(29引脚)片外程序存储器的读选通信号。

在单片机读片外程序存储器时,此引脚输出脉冲的负跳沿作为读片外程序存储器的选通信号。

(7) pin39-pin32为P0.0-P0.7输入输出脚,称为P0口。

P0是一个8位漏极开路型双向I/O口。

部不带上拉电阻,当外接上拉电阻时,P0口能以吸收电流的方式驱动八个LSTTL负载电路。

通常在使用时外接上拉电阻,用来驱动多个数码管。

在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,不需要外接上拉电阻。

(8)Pin1-Pin8为P1.0-P1.7输入输出脚,称为P1口,是一个带部上拉电阻的8位双向I/0口。

P1口能驱动4个LSTTL负载。

(9)Pin21-Pin28为P2.0-P2.7输入输出脚,称为P2口。

P2口是一个带部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载。

端口置1时,部上拉电阻将端口拉到高电平,作输入用。

对部Flash程序存储器编程时,接收高8位地址和控制信息。

在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。

而在访问8位地址的外部数据存储器时其引脚上的容在此期间不会改变。

(10)Pin10-Pin17为P3.0-P3.7输入输出脚,称为P3口。

P3口是一个带部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载,这8个引脚还用于专门的第二功能。

端口置1时,部上拉电阻将端口拉到高电平,作输入用。

对部Flash程序存储器编程时,接控制信息。

3.5 ADC0808的引脚及功能介绍3.5.1芯片概述ADC0808是一种典型的A/D转换器。

它是由8位A/D转换器,一个8路模拟量开关,8位模拟量地址锁存译码器和一个三态数据输出锁存器组成;+5V 单电源供电,转化时间在100us左右;部没有时钟电路,故需外部提供时钟信号。

芯片模型如图3-4所示。

图3-4ADC0808芯片模型3.5.2 引脚简介(1) IN0~IN7:8路模拟量输入端。

(2) D0~D7:8位数字量输出端口。

(3) START:A/D转换启动信号输入端。

(4) ALE:地址锁存允许信号,高电平有效。

(5) EOC:输出允许控制信号,高电平有效。

(6) OE:输出允许控制信号,高电平有效。

(7) CLK:时钟信号输入端。

(8)A、B、C:转换通道地址,控制8路模拟通道的切换。

A、B、C分别与地址线或数据线相连,三位编码对应8个通道地址端口,A、B、C=000~111分别对应IN0~IN7通道的地址端口。

3.5.3 ADC0808的转换原理ADC 0808 采用逐次比较的方法完成A/D转换,由单一的+5V电源供电。

片带有锁存功能的8路选1的模拟开关,由A、B、C的编码来决定所选的通道。

ADC0809完成一次转换需100μs左右,它具有输出TTL三态锁存缓冲器,可直接连接到AT89C51的数据总线上。

相关主题