基于单片机数字电压表课程设计.docx
- 文档编号:7917940
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:11
- 大小:90.05KB
基于单片机数字电压表课程设计.docx
《基于单片机数字电压表课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机数字电压表课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
基于单片机数字电压表课程设计
1数字电压表的功能要求说明及设计方案介绍
1.1设计课题任务
(1)该数字电压表能够测量电压范围0—5V,测量精度小数点后两位。
(2)该电压表上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态。
(3)按测量开始键开始测量,并将测量值显示在显示器上。
(4)按测量结束键则自动返回“P.”状态。
1.2功能要求说明
电路通电或按复位键时,显示“P."字符,再按功能键键1,进入电压测试状态,通过改变电位器的阻值改变模拟输入电压,不断的将模拟电压转换成数字量,通过液晶显示出所测得的模拟电压。
再按功能键键1退出电压测试状态,同时显示字符“P.”。
在测试中测试的电压值必须和实际的电压值不超过0.05V的电压。
在改变电压时,能够准确的侧量出电压的变化值。
1.3数字电压表设计方案
要实现电压的测试有多种方案,其中两种比较简单的且精确度比较高的可以分别采用并行ADC0809芯片和TLC549芯片,其中各芯片都有可取之处。
方案一:
用TLC549串行芯片作模数采样芯片,占用的单片机的I/O口线少,且占用电路面积小,只是编程复杂点。
方案二:
用DAC0809并行芯片作模数采样芯片,需要占用一个I/O口,不过可以循环采样8路模拟通道,占用板子的面积大,编程相对来说简单点。
本次课程设计采用方案二
1.4数字电压表工作原理
数字电压原理:
这里主要是利用ADC0809的基准电压脚外接电压为5V,则最大可以测得的电压为5V,ADC0809的模拟输入脚通过电位器接5V电压,进行模拟采样,通过调整电位器的值改变模拟量。
输入的模拟量经过它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近,转换成8为二进制数,其最小的分辨率为0.0196(VREF=0.0196V),D为转化的数字量,再通过
可以求得模拟电压,最后通过数码管就可将所测得电压显示出来。
其硬件流程图如图1.1所示:
数码显示管
图1.1硬件流程图
2硬件电路设计
2.1振荡电路
振荡电路通过这两个引脚外并接石英晶体振荡器和两只电容(电容和一般取33pF),这样就构成一个稳定的自激振荡器。
为单片机提供时钟信号。
2.2复位电路设计
按键复位具有上电复位功能,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。
上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。
上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。
RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
2.3键盘接口电路
独立式键盘:
独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。
I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。
I/O口内部有上拉电阻时,外部可不接上拉电阻。
2.4显示电路
它的连接方式分别为数码管的段控端接单片机的P0.0到P0.7口位控端接单片机P2.0到P2.3口。
2.5ADC0809简介
利用ADC0809作为AD数据采样器件,ADC0809是CMOS单片型逐次逼近式A/D转换器它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近。
ADC0809的工作过程是:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
ADC0809各个管教功能:
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动信号,输入,高电平有效。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
地。
引脚图如2.5所示
图2.5ADC0809引脚图
3软件设计
3.1单片机软件模块设计
3.1.1判键子函数
对于独立式键盘判键,首先看有键按下不,如果有键按下则延时一会儿,在判断是否真的有键按下,如果确实有键按下,在判键释放,最后执行键功能程序。
判键子函数的流程框图如图3.1所示:
图3.1判键子程序流程图
3.1.2显示子程序
先对数码管进行初始化,令RESET脚为低电平,延时1200
,再将RESET复位脚拉为高电平,空操作1次,令PSB=1设置液晶数据口为并口方式。
在对数码管进行写命令,先写0x34表示写扩展指令,接着写基本指令、清除显示、开反白显示、地址加1。
最后对数码管进行清屏;在调用显示函数,先进行写地址,在进行写数据就可以显示了所写的数据了。
显示子函数的流程框图如图3.2所示:
3.2显示子程序流程图
3.1.3总程序流程框图
整体程序的流程框图如图3.4所示:
图3.4整体程序的流程框图
3.2程序清单
OEBITP3.0;ADC0808的OE端
EOCBITP3.1;ADC0808的EOC端
CLOCKBITP2.6
STBITP3.2;ADC0808的START和ALE端
LED_0DATA30H;显示缓冲区
LED_1DATA31H
LED_2DATA32H
LED_3DATA33H
ADCDATA34H;存放转换后的数据
;//////主程序开始////////////////////////////////////////
ORG0000H
AJMPSTART
ORG000BH
LJMPTT0
ORG0030H
;------初始化-----------------------------------
START:
MOVSP,#60H;设置堆栈
MOVLED_0,#00H;清空显示缓冲区
MOVLED_1,#00H
MOVLED_2,#00H
MOVLED_3,#00H
MOVDPTR,#TABLE;送字型码表首地
MOVTMOD,#02H
MOVTH0,#01H
MOVTL0,#01H
MOVIE,#82H
SETBTR0
;------ADC0808转换------------------------------
WAIT:
CLRST
SETBST
CLRST;启动转换
JNBEOC,$;等待转换结束
SETBOE;允许输出
MOVADC,P1;暂存转换结果
;------数据处理,已备显示------------------------
MOVA,ADC;将AD转换结果转换成BCD码
MOVB,#0C5H;乘以19.5MV
MULAB
MOVR7,A
MOVR6,B
HB2:
CLRA;BCD码初始化
CLRC
MOVR3,A
MOVR4,A
MOVR5,A
MOVR2,#10H;转换双字节十六进制整数
HB3:
MOVA,R7;从高端移出待转换数的一位到CY中
RLCA
MOVR7,A
MOVA,R6
RLCA
MOVR6,A
MOVA,R5;BCD码带进位自身相加,相当于乘2
ADDCA,R5
DAA;十进制调整
MOVR5,A
MOVA,R4
ADDCA,R4
DAA
MOVR4,A
MOVA,R3
ADDCA,R3
MOVR3,A;双字节十六进制数的万位数不超过6,不用调整
DJNZR2,HB3
MOVA,R5
SWAPA
ANLA,#0FH
MOVLED_0,A
MOVA,R4
ANLA,#0FH
MOVLED_1,A
MOVA,R4
SWAPA
ANLA,#0FH
MOVLED_2,A
MOVA,R3
ANLA,#0FH
MOVLED_3,A
LCALLDISP;调用显示子程序
AJMPWAIT
;//////数码管显示子程序///////////////////////////////////////////////
DISP:
MOVA,LED_0;数码显示子程序
MOVCA,@A+DPTR
CLRP2.3
MOVP0,A
LCALLDELAY
SETBP2.3
MOVA,LED_1
MOVCA,@A+DPTR
CLRP2.2
MOVP0,A
LCALLDELAY
SETBP2.2
MOVA,LED_2
MOVCA,@A+DPTR
CLRP2.1
MOVP0,A
LCALLDELAY
SETBP2.1
MOVA,LED_3
MOVCA,@A+DPTR
CLRP2.0
MOVP0,A
SETBP0.7
LCALLDELAY
SETBP2.0
RET
;//////延时子程序////////////////////////////////////
DELAY:
MOVR6,#0AH;延时5毫秒
D1:
MOVR7,#0FAH
DJNZR7,$
DJNZR6,D1
RET
;//////数码管字形码表/////////////////////////////////
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
ORG0100H
TT0:
CPLCLOCK;产生ADC0808/0809时钟脉冲信号
RETI
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 电压表 课程设计