单片机课程设计报告——数字电压表 下载本文

数字电压表电路设计报告

一、题目及设计要求

采用51系列单片机和ADC设计一个数字电压表,输入为0~5V线性模拟信号,输出通过LED显示,要求显示两位小数。

二、主要技术指标

1、数字芯片A/D转换技术

2、单片机控制的数码管显示技术 3、单片机的数据处理技术

三、方案论证及选择

主要设计方框图如下:

电模单数压数片码 采 转机管集换处显 理 示

1、主控芯片

方案1:选用专用转化芯片INC7107实现电压的测量和实现,用四位数码管显示出最后的转换电压结果。缺点是京都比较低,内部电压转换和控制部分不可控制。优点是价格低廉。

方案2:选用单片机AT89C51和A/D转换芯片ADC0809实现电压的转换和控制,用四位数码管显示出最后的转换电压结果。缺点是价格稍贵;优点是转换京都高,且转换的过程和控制、显示部分可以控制。

基于课程设计的要求和实验室能提供的芯片,我选用了:方案2。 2、显示部分

方案1:选用4个单体的共阴极数码管。优点是价格比较便宜;缺点是焊接时比较麻烦,容易出错。

方案2:选用一个四联的共阴极数码管,外加四个三极管驱动。这个电路几乎没有缺点;优点是便于控制,价格低廉,焊接简单。

基于课程设计的要求和实验室所能提供的仪器,我选用了:方案2。

四、电路设计原理

模拟电压经过档位切换到不同的分压电路筛减后,经隔离干扰送到A/D转换器进行A/D转换。然后送到单片机中进行数据处理。处理后的数据送到LED中显示。同时通过串行通讯与上位通信。硬件电路及软件程序。而硬件电路又大体可分为A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用汇编语言编程,利用Keil和PROTEUS 软件对其编译和仿真。

一般I/O接口芯片的驱动能力是很有限的,在LED显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时就需要增加LED驱动电路。驱动电路有多种,常用的是TTL或MOS集成电路驱动器,在本设计中采用了74LS244驱动电路。

本实验采用AT89C51单片机芯片配合ADC0808模/数转换芯片构成一个简易的数字电压表,原理电路如图1所示。该电路通过ADC0808芯片采样输入口IN0输入的0~5 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0~D7传送给AT89C51芯片的P0口。AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口传送给数码管。同时它还通过其三位I/O口P1.0、P1.1、P1.2、P1.3产生位选信号,控制数码管的亮灭。另外,AT89C51还控制着ADC0808的工作。其ALE管脚为ADC0808提供了1MHz工作的时钟脉冲;P2.4控制ADC0808的地址锁存端(ALE);P2.1控制ADC0808的启动端(START);P2.3控制ADC0808的输出允许端(OE);P2.0控制ADC0808的转换结束信号(EOC)。

Digital Analog 数据采 集模块 ADC0808 数据处理及控制模块 PP 2 0 AT89C51 P 3 输出显示 显示模块 4位一体LED数码管 控制 信号 P2 LED位控制信号 1、模数转换 电路原理图如下所示,三个地址位ADDA,ADDB,ADDC均接高电平+5V电压,因而所需测量的外部电压可由ADC0808的IN7端口输入。由于ADC0808 在进行A/D转换时需要有CLK信,本设计中利用AT89C51的定时中断产生一个100KHZ的脉冲,由P1.4口送给ADC0808的时钟端,通过软件给其输入一个正脉冲,可立即启动A/D转换。在软件设计中,由于我们对单片机知识还没能很熟练的掌握,用中断方式较复杂,且这个程序CPU工作量不大,查询方式对速度不会产生影响,所以我们采用查询方式,确保仿真的进度和准确度。 系统原理图

在A/D转换开始之前,逐次逼近寄存器的SAR的内容为0,在A/D转换过程中,SAR存放“试探”数字量,在转换完毕后,它的内容即为A/D转换的结果数字量。逻辑控制与定时电路在START正脉冲启动后工作,没来一个CLK脉冲,该电路就可能告知向SAR中传送一次试探值,对应输出U0与U1比较,确定一次逼近值,经过8次逼近,即可获得最后转换的结果数字量。此处,EOC端口的信号显示ADC0808的状态,开始A/D转换时,EOC为低电平,转换结束后,输出高电平。

51系列 单片机 数据显示 A/D 电压输入

电压放大 2、 数据处理及控制

A/D转换完毕后,单片机的P1.6口接收到一高电平,立马通过P2将OE置1,ADC0808的三态输出锁存器被打开,转换完的数字信号经过与D0~D7相连的P0口进入AT89C51。AT89C51根据公式1-1将数字信号转换为模拟量,然后利用程序获取模拟量的每一位,分别通过P2口输出到LED上。与此同时,

AT89C51会通过P2.0~P2.3口选择用哪一段LED显示所传出的数据。例如,当P2.0~P2.3=1110,则LED接收到的数据会在第四段LED上显示。

另外,AT89C51一旦获得了数据后便会将ST置0,即模数转换器停止转换,知道LED获得新的数据并显示出来,ST才会重新置1.由于AT89C51转换速率很快(微妙量级),所以不会影响其接收新的数据。

四、主要元器件的介绍

1、AT89C51单片机简介

AT89C51是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52是一个低电压、高性能CMOS 8为单片机。将通用的微处理器和Flash存储器结合在一起,可反复擦写的Flash存储器可有效地降低开发成本。AT89C51有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。

主要功能特性:

1、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。

2、兼容MCS51指令系统,8K可反复擦写(>1000次)Flash ROM。 3、3个16位可编程定时/计数器中断,时钟频率0-24MHz。 4、32个双向I/O口,256B内部RAM。 5、2个串行中断,可编程UART串行通道。 6、2个外部中断源,共6个中断源。 7、2个读写中断口线,3级加密位。