.
.
单片机应用课程设计
简易直流电压表
.
摘要
数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。
A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片STC89C51来完成,其负责把ADC0809传送来的数字量经过一定的数据处理,产生相应的显示码送到数码管进行显示;此外它还控制着ADC0809芯片工作。
此数字电压表可以测量0-5V,0—50V的2路模拟直流输入电压值,并通过两个四位一体的7段数码管显示出来。
1、设计任务和要求
1.1、设计任务
设计制作一个简易直流电压表,该直流电压表能测量直流电压。
输入电压 AD转换器 控制器 显示测量值 1.2、设计要求
基本要求
A、能测量电压档0-5V,0—50V两档,输入阻抗>200k。
B、数码显示共3位,其中1位小数(0.00—9.99或000—999V)。 C、要有输入信号超围的保护电路。 扩展部分
A、能够测量电阻。
1.3方案论证
A、主要设计框图:
电压采集 AD转换器 0809 单片机处理 数码管显示 B、设计方案论述 ADC转换:本次使用的单片机是带ADC转换的逐次比较型的ADC,ADC换口在P1口(P1.7-P1.0),有8路10位高速转换器。本次设计使用P1.0口作模拟电压输入,ADC将模拟电压转化为相应的数字量。
数据处理并LCD显示:ADC转换得到的二制数只是二进制数,还需要进一步处理得到十进数,并且进行精度处理,也就是课题要求的四位有效数据。对数据的处理按下公式
式中D为ADC的转换的二进数,V为显示的数据。V设为浮点型数,乘以1000输入电压 ADC转换数据处理并送LCD显示后强制转换为整型。则得到四位有效数据。再依次除于1000取
.
.
商则得个位,取余除于100取商则得十分位,再取余除10则得百分位,取余则得千分位将各位加0x30转化为ASCII码后送LCD显示。
C、硬件设计框图:
D、软件流程图
E、元器件确定 1)AT89C51单片机
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
主要功能特性:
低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。
兼容MCS51指令系统,8K可反复擦写(>1000次)Flash ROM。 3个16位可编程定时/计数器中断,时钟频率0—24MHZ。 32个双向I/O口,256B部RAM。
2个串行中断,可编程UART串行通道。 2个外部中断源,共6个中断源。
.
.
2个读写中断口线,3级加密位。
2)ADC0809模数转换芯片
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0809部逻辑结构图
主要功能特性:
8路输入通道,8位A/D转换器,即分辨率为8位。 具有转换起停控制端。
转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)。 单个+5V电源供电。
模拟输入电压围0~+5V,不需零点和满刻度校准。 工作温度围为-40~+85摄氏度。 低功耗,约15mW。
引脚说明
IN0~IN7:8路模拟量输入端。
D0~D8:8位数字量输出端。D0~D7均为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高位。
.
.
A、B、C:3位地址输入线,A为低地址,C为高地址,用于选通8路模拟输入中的一路。具体通道选择如表1所示。本次设计使用的通道是IN0,故A、B、C均需接地。
ALE:地址锁存允许信号,输入高电平有效。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START:A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC:A/D转换结束信号输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:时钟脉冲输入端,要求时钟频率不高于640KHZ。ADC0809的部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。
VREF(+)、VREF(-):基准电压。用来与输入的模拟信号进行比较,作为逐次逼近的基准。
VCC:电源,单一+5V。 GND:接地。
通道选择表
A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式:
(1)定时传送方式
对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式
A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。
(3)中断方式
把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以点击浏览下一页信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。
3)四位共阴数码管
4-LED显示器引脚如图所示,是一个共阴极接法的4位LED数码显示管,其中a,b,c,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数
.