当前位置:文档之家› 8路循环数字电压表设计

8路循环数字电压表设计

目录1 引言 (1)2设计原理及要求 (1)2.1数字电压表的实现原理 (1)2.2数字电压表的设计要求 (1)3软件仿真电路设计 (1)3.1设计思路 (1)3.2仿真电路图 (2)3.3设计过程 (2)3.4 AT89C51的功能介绍 (2)3.4.1简单概述 (3)3.4.2主要功能特性 (3)3.4.3 AT89C51的引脚介绍 (3)3.5 ADC0808的引脚及功能介绍 (4)3.5.1芯片概述 (4)3.5.2 引脚简介 (4)3.5.3 ADC0808的转换原理 (5)3.6 74HC245芯片的引脚及功能 (5)3.6.1芯片概述 (5)3.6.2引脚介绍 (5)3.7 LED数码管的控制显示 (5)3.7.1 LED数码管的模型 (5)3.7.2 LED数码管的接口简介 (6)4系统软件程序的设计 (6)4.1 主程序 (6)4.2 A/D转换子程序 (6)4.3 中断显示程序 (7)5电压表的调试及性能分析 (8)5.1 调试与测试 (8)5.2 性能分析 (9)6电路 (9)6.1 电路仿真图 (9)6.2 PCB图 (9)7总结 (10)参考文献 (10)附录1 源程序 (11)附录2 仿真原理电路 (15)摘要:随着电子科学技术,传感器技术,自动控制技术和计算机技术的发展,电子测量成为电子工作者的必须掌握的手段对测量的精度,手段要求越来越高,本文介绍了一种以AT89C 51为核心的数字电压测量电路。

通过ADC0809进行转换,74HC245进行驱动。

关键词:A/D转换数字电压表 AT89C51 数码管电压测量1 引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。

本设计AT89C51单片机的一种电压测量电路,该电路采用ADC0809本文介绍一种基于A/D转换电路,测量范围直流 0~5V 的8路输入电压值,并在四位LED数码管上循环显示,并显示路数。

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

2设计原理及要求本设计是利用单片机AT89C51与ADC0809设计一个数字电压表,测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。

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

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

ADC0808具有8路模拟量输入端口,通过3位地址输入端能从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信号,本试验中ADC0809的CLK直接由外部电源提供为500kHz的方波。

实际显示的电压值( ADC0809采用逐次逼近法转换,把模拟电压转换成16进制的D,由于是对直流电压0~5V进行采集,所以D对应的电压为V0 ,我们的目的就是要把V0显示在LED显示器上。

3.2仿真电路图用Protues软件仿真设计的电路如图3-1所示(因软件中ADC0809不能用,并且ADC0808与ADC0809相同,所以用ADC0808代替)。

图3-1 仿真电路入端,由外部信号源提供。

单片机的P1、P3.0-P3.3端口作为四位LED数码管现实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的时钟输控制。

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

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

3.4 AT89C51的功能介绍3.4.1简单概述AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

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

图3-2 AT89C51芯片模型3.4.2主要功能特性(1) 4K 字节可编程闪烁存储器。

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

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

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

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

GND(20引脚):接地。

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

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

图3-3 电源接入方式XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C513.5 ADC0808的引脚及功能介绍3.5.1芯片概述ADC0808是一种典型的A/D转换器。

芯片模型如图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:时钟信号输入端。

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

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

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

3.6 74HC245芯片的引脚及功能3.6.1芯片概述245芯片一般就用着单片机的总线驱动。

它有8个输入和8个输出。

第一脚为“方向选择”。

如果选择接高电平,那么数据将从A传到B。

也就是从2~9输入,分别从18~11作为相应的输出。

如果第一脚接低电平,那么数据传输方向就反过来。

第10脚是公共地。

19脚为“使能”,是低电平有效。

图3-5芯片模型3.6.2引脚介绍(1) D0~D7:8位数据输入线;(2) Q0~Q7:8位数据输出线(3) G:数据输入锁存选通信号。

(4)OE:数据输出允许信号,低电平有效。

3.7 LED数码管的控制显示3.7.1 LED数码管的模型LED数码管模型如图3-6所示。

图3-6数码管显示3.7.2 LED数码管的接口简介LED 的段码端口A~G分别接至驱动74LS245再接AT89C51的P0.0~P0.7口,位选端1~4分别接至分别接至驱动74LS245再接P2.0、P2.1、P2.2、P2.3。

4系统软件程序的设计多路数字电压表系统软件程序主要有主程序、A/D转换子程序和中断显示程序组成。

4.1 主程序对于单路显示和循环显示,系统设置了一个标志位00H控制,初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示控制,00H位通过单路、循环按键控制。

流程图如图4-1所示。

开始初始化A/D转换子程序显示子程序图4-1主程序流程图4.2 A/D转换子程序A/D转换子程序用于对ADC0808的4路输入模拟电压进行A/D转换,并将转换的数值存入4个相应的存储单元中,A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次,如图4-2所示。

4.3 中断显示程序设计中采用中断的方式来读取转换完成的数据能节省CPU的资源开始A/D转换调用延时存转换后的十六进制判断是否为零当系统设置好后,一旦数据转换完成,便会进入外部中断0,然后在中断中读取转换的数值,处理数据并送数码管显示输出。

选中的一路数据进行显示。

每路数据显示时需经过转换变成十进制BCD码,放于4个数码管显示缓冲区中。

单路或多路循环显示通过标志位00H控制。

在显示控制程序中加入了对单路或多路循环按键的判断如4-3所示。

数字量送P0口取段码地址YP2.0=1?5电压表的调试及性能分析5.1 调试与测试本设计应用Proteus及KEIL2软件,首先根据自己设计的电路图用Proteus软件画出电路模型,然后我们用KEIL2软件对所编写的程序进行编译、链接,如果没有错误和警告便可生成程序的hex文件,将此文件加到电路图上使软硬件结合运行,最后进行端口电压的对比测试,测试的第一路对比见图4-1中标准电压值采用Proteus。

5.2 性能分析由于单片机为8位处理器,当输入电压为5.00V时,输出数据值为255(FFH)因此单片机最大的数值分辨率为0.0196V(5/255)。

这就决定了该电压表的最大分辨率(精度)只能达到0.0196V。

测试时电压数值的变化一般以0.02V的电压幅度变化,如要获得更高的精度要求,应采用12位、13位的A/D转换器。

6电路图6.1 电路仿真图6.2 PCB图图6-2 PCB图7总结经过一周的努力终于设计成功,LED的显示结果和直接用数字电压表测试模拟量输入所得结果几乎一致,误差完全在合理的范围之内。

由于仪器误差,LED显示最大值只能是4.9V,离标准最大值5.0V已经不远,达到预期目的,设计成功。

相关主题