数字电压表设计3.docx
- 文档编号:28681330
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:17
- 大小:96.24KB
数字电压表设计3.docx
《数字电压表设计3.docx》由会员分享,可在线阅读,更多相关《数字电压表设计3.docx(17页珍藏版)》请在冰豆网上搜索。
数字电压表设计3
一、整体设计思路框图及原理图
数字电压表的设计即将连续的模拟电压信号经过A/D转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。
按系统实现要求,决定控制系统采用AT89C51单片机,A/D转换由于仿真软件里的ADC0809元件有问题,这里用ADC0808代替,它和ADC0809区别很小。
采用ADC0808。
数字电压表系统整体框图如下图1所示。
图1整体框图
系统通过软件设置单片机的内部定时器T1产生中断信号。
通过片选选择8路通道中的一路,将该路电压送入ADC0808的EOC端口产生高电平,同时将ADC0808的OE端口置为高电平,单片机将转换后结果存到片内RAM。
系统调出转换显示程序,将转换为二进制的数据在转换成十进制数并输出到LCD显示电路,将相应电压显示出来。
原理图见附录图7。
二、模块分析
1.AT89C51单片机
接口分配电路设计如右图2所示:
图2单片机接口电路
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在这里P0口作为输入与输出分别与ADC0808的输出端和LCD显示的输入端相连,且P0外部被阻值为1KΏ的电阻拉高。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
这里只用到了P2.0~P2.3四个端口,其中P2.1~P2.3都是作为输出端口控制显示电路的寄存器选择、读写信号和使能端口。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,在这里用到了P3.3/INT1(外部中断1)、P3.6/WR(外部数据存储器写选通)、P3.7/RD(外部数据存储器读选通)。
2.A/D转换
图3A/D转换电路
接口分配电路设计如图3所示:
IN0~IN7为8路模拟量输入端,这里只接一路电压信号,其输入信号是由直流电源及可调电阻提供。
OUT1~OUT8为8位二进制数字量输出端,其另一端连接到AT89C51单片机进行数值转换。
ADDA、ADDB、ADDC为3位片选地址输入线,用于选通8路模拟输入中的一路。
ALE为地址锁存允许信号,由单片机P3.6口写信号与P2.0口相或取反输入,高电平有效。
START为A/D转换启动脉冲输入端,由单片机P3.6口写信号与P2.0口相或取反输入一个正脉冲使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。
EOC为A/D转换结束信号,当A/D转换结束时,此端输出一个高电平取反给P3.3口(转换期间一直为低电平)。
OE为数据输出允许信号,高电平有效。
当A/D转换结束时,此端由单片机P3.7读信号与P2.0口相或后取反输入一个高电平,才能打开输出三态门,输出数字量。
3.显示电路
图4显示电路
接口分配设计如图4所示:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
由单片机P2.1口控制
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电
平R/W为低电平时可以写入数据。
由单片机P2.2口控制
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
由单片机P2.3口控制
图5程序流程图
D0~D7为8位双向数据线。
由单片机P0口输入,经过阻值为1KΏ的上拉电阻连接。
三、软件设计
主程序的内容包括:
起始地址、中断服务程序的起始地址、有关内存单元及相关部件的初始化和一些子程序的调用等。
根据设计要求,设计出如图5所示的主程序流程图。
A/D转换子程序设计:
A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。
当系统置好后,单片机扫描转换结束管脚P3.7的输入电平状态,当输入为高电平则转换完成,将转换的数值显示输出。
若输入为低电平,则继续扫描。
程序流程图如图6所示。
图6A/D转换子程序流程图
四、仿真实验调试
1.打开WAVE6000软件,菜单栏选择“文件”中的“新建文件”,在弹出的窗口中编写程序,然后保存后缀为“***.asm”的程序。
2.菜单栏选择“项目”中的“编译”,如果程序无误即编译成功,否则修改程序直至编译成功。
3.打开Proteus软件,新建文件File→NewDesign,同样在弹出的原理图编辑窗口中绘制原理图,然后保存。
4.加载程序,选择Source→Add/RemoveSourceFiles,在弹出的对话框中点击“New”选择在WAVE6000软件中编写保存的程序如“***.asm”,点击“OK”即加载成功。
5.在Proteus软件中的左下方点击图标
仿真调试开始,即可看到仿真调试的结果。
五、总结与体会
这虽然是一个数字电压表的设计但是实际上就是一个数据采集的程序设计,只不过这里数据采集的是模拟电压罢了。
虽然这个单片机的课题比较简单,但是从中我还是学到了许多新东西。
在之前的学习过程中没有用到Proteus这个软件,所以刚刚开始的时候一边在XX里看Proteus入门教程一边实践操作Proteus这个软件,不过幸好以前学过Protell99绘图软件,举一反三的在短时间内把Proteus磕磕碰碰学会了。
想想我们在大学里速学软件还是比较有心得:
在一两天内只学这个软件,或许还算不上熟练但是入门还是可以了。
在Proteus软件部分的设计中也让我感受良多。
以前做的单片机的设计都只是写写程序,下载到单片机上运行,都只是编程方面的工作,很少涉及选择单片机试验台上已有芯片以外的芯片,更不用说芯片的一些管脚作用。
就像A/D转换器在Proteus中仿真软件ADC0809有问题所以用ADC0808代替。
而且ADC0808是单极性,输入电压范围为0~+5V,而我们课题要求的是0~+15V,所以我利用参考电压可以达到15V这一点把0~+15V转化成0~5V,进行模数转换。
在局部电路图中遇到很多问题,通过查阅大量资料以及老师和同学的帮助讲解才逐渐懂得如何应用。
如在Proteus软件中仿真选用了最常用的直流电压电源和可调电阻组成0~+15V的模拟电压,而在试验台上可以直接连接可调电压源。
这种方法是平时很少注意到的基础性知识运用,在这次的课程设计中让我又有了新的收获。
总的来说结果还是完成了设计任务,虽然整个过程有点不在状态,但还是温故而知新,对单片机有了一种新的认识。
六、参考文献
1.王迎旭.单片机原理与应用.机械工业出版社.
2.周向红.51系列单片机应用与实践教程.北京航空航天大学出版社
3.何立民.单片机应用系统设计.北京航空航天大学出版社
4.蔡朝洋.单片机控制实习与专题制作.北京航空航天大学出版社
5.楼然苗.51系列单片机设计实例[M].北京航空航天大学出版社.
6.陈光东.单片微型计算机原理及接口技术[M].华中科技大学出版社.
7.陈明荧.8051单片机课程设计实训教材[M].清华大学出版社.
七、附录
1.程序清单
COMEQU50H;指令寄存器
DATEQU51H;数据寄存器
RSEQUP2.1;LCD寄存器选择信号
RWEQUP2.2;LCD读/写选择信号
EEQUP2.3;LCD使能信号
ORG0000H
LJMPMAIN;主程序入口
ORG000BH
LJMPBT0;T0中断入口
ORG0030H;主程序,初始化
MAIN:
MOVSP,#60H
LCALLINT
MOV30H,#30H
MOV31H,#30H
MOV32H,#0A5H
MOV33H,#30H
MOV34H,#30H
MOVR7,#30H
LCALLN1;显示Voltage=00.00
MOVTMOD,#00H;定时器T0设为方式0
MOVTH0,#00h;装入定时常数
MOVTL0,#00h
SETBTR0;启动T0
MOV24h,#03h;装入T0中断次数
MOVIE,#82H;开中断
LP:
MOVR7,#30H;显示缓冲区首地址
LCALLDISPLY
SJMPLP;循环显示
DISPLY:
MOVCOM,#0CAH;设置数据起始地址(第而行第10位)
LCALLPR1
MOVR1,#05H
MOVR0,#30H
l:
MOVDAT,@r0
LCALLPR2
INCR0
DJNZR1,l
RET
;1.逐字依次输入方式演示程序段
N1:
MOVCOM,#01H;清屏
LCALLPR1
MOVCOM,#06H;设置输入方式
LCALLPR1
MOVCOM,#081H;设置数据起始地址(第一行地二位)
LCALLPR1
MOVDPTR,#TAB1
MOVR2,#0EH
MOVR3,#00H
WRIN1:
MOVA,R3
MOVCA,@A+DPTR
MOVDAT,A
LCALLPR2
INCR3
DJNZR2,WRIN1
MOVCOM,#0C1H;设置数据起始地址(第二行地二位)
LCALLPR1
MOVDPTR,#TAB2
MOVR2,#9
MOVR3,#00H
WRIN2:
MOVA,R3
MOVCA,@A+DPTR
MOVDAT,A
LCALLPR2
INCR3
DJNZR2,WRIN2
RET
TAB1:
DB"VOLTAGE="
;LCD间接控制方式下的初始化子程序
INT:
LCALLDELAY;调延时子程序
MOVCOM,#38H;设置工作方式(2行,8位数据)
LCALLPR1
MOVCOM,#01H;清屏
LCALLPR1
MOVCOM,#06H;设置输入方式
LCALLPR1
MOVCOM,#0CH;设置显示方式
LCALLPR1
RET
DELAY:
MOVR6,#0FH;延时子程序
MOVR7,#00H
DELAY1:
NOP
NOP
DJNZR7,DELAY1
DJNZR6,DELAY1
RET
;LCD间接控制方式的驱动子程序如下
;1读BF和AC值
PR0:
PUSHACC
MOVP0,#0FFH;P0置位,准备读
CLRRS;RS=0
SETBRW;R/W=1
SETBE;E=1
LCALLDELAY
MOVCOM,P0;读BF和AC6-4值
CLRE;E=0
POPACC
RET
;2写指令代码子程序
PR1:
PUSHACC
CLRRS;RS=0
SETBRW;R/W=1
PR11:
MOVP0,#0FFH;P0置位,准备读
SETBE;E=1
LCALLDELAY
NOP
MOVA,P0
CLRE
JBACC.7,PR11;BF=1?
CLRRW;R/W=0
MOVP0,COM
SETBE;E=1
CLRE;E=0;E=0
POPACC
RET
;3写显示数据子程序
PR2:
PUSHACC
CLRRS;RS=0
SETBRW;R/W=1
PR21:
MOVP0,#0FFH
SETBE;E=1
LCALLDELAY
MOVA,P0;读BF和AC6-4值
CLRE;E=0
JBACC.7,PR21
SETBRS
CLRRW
MOVP0,DAT;写入数据
SETBE
CLRE
POPACC
RET
;4读显示数据子程序
PR3:
PUSHACC
CLRRS;RS=0
SETBRW;R/W=1
PR31:
MOVP0,#0FFH;P0置位,准备读
SETBE;E=1
LCALLDELAY
MOVA,P0;读BF和AC6-4值
CLRE;E=0
JBACC.7,PR31
SETBRS
SETBRW;R/W=1
MOVP0,#0FFH;读数据
SETBE;E=1
MOVDAT,P0
CLRE;E=0
POPACC
RET
;定时器T0中断服务程序,读取ADC0809第0通道的A/D转换结果并化为显示值
BT0:
PUSHACC;保护现场
PUSHPSW
MOVPSW,#08H
CLRTR0;停止T0
MOVTH0,#00h;重装定时常数
MOVTL0,#00h
MOVDPTR,#0F6FFH;0809端口地址
MOVA,#0;0通道
MOVX@DPTR,A;启动0809
MOVR7,#0FFH;等待A/D转换完
DJNZR7,$
MOVXA,@DPTR;读0809转换结果
MOVB,#03H;将转换的值除以3再累加,存入40H中
DIVAB
ADDA,40H
MOV40H,A
MOVA,B;将除以3后的余数累加放入41H中
ADDA,41H
MOV41H,A
DEC24h;3次中断未到则返回
MOVA,24H
JNZRNT1
MOV24h,#03h;重装中断次数
MOVA,41H;将累加的余数再除3后相加
DIVAB
ADDA,40H
MOV40H,#0;清零累加数
MOV41H,#0
RTN:
MOVB,#0fh;A/D转换结果化为显示值
MULAB;(AD*5)/256
MOV@R0,A
MOVA,B
MOVB,@R0
MOVR0,A
ADDA,#246
MOVA,R0
MOV30H,#00H
JNCLOOP
ADDA,#06H
MOV30H,#01H
LOOP:
MOV31H,A;AD*5的高字节为整数部分
MOVA,B
MOVB,#0AH
MULAB;AD*5的低字节为/256的结果,为小数部分
MOV33H,B;二进制小数换为10进制数
MOVB,#0AH
MULAB
MOV34H,B
LJMPRTN1
RTN1:
SETBTR0
ORL30H,#30H
ORL31H,#30H
MOV32H,#0A5H;小数点
ORL33H,#30H
ORL34H,#30H
POPPSW
POPACC
RETI
END
2.原理图
图7原理图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电压表 设计