基于AT89C51单片机数字电压表的设计.doc
《基于AT89C51单片机数字电压表的设计.doc》由会员分享,可在线阅读,更多相关《基于AT89C51单片机数字电压表的设计.doc(15页珍藏版)》请在沃文网上搜索。
1、 目 录一、整体设计思路框图及原理图1二、模块分析21.AT89C51单片机22.A/D转换.33.显示电路.4三、软件设计5四、 程序清单.6五、仿真实验调试12六、总结与体会.13七、参考文献.14一、 整体设计思路框图及原理图数字电压表的设计即将连续的模拟电压信号经过A/D转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。 按系统实现要求,决定控制系统采用AT89C51单片机,A/D转换由于仿真软件里的ADC0809元件有问题,这里用ADC0808代替,它和ADC0809区别很小。采用ADC0808。数字电压表系统整体框图如下图1所示。 模拟电 压AT89C5
2、1 单片机ADC0808转换数据显 示图1 整体框图系统通过软件设置单片机的内部定时器T1产生中断信号。通过片选选择8路通道中的一路,将该路电压送入ADC0808的EOC端口产生高电平,同时将ADC0808的OE端口置为高电平,单片机将转换后结果存到片内RAM。系统调出转换显示程序,将转换为二进制的数据在转换成十进制数并输出到LCD显示电路,将相应电压显示出来。原理图见附录图7。 二、 模块分析1. AT89C51单片机接口分配电路设计如右图2所示: 图2 单片机接口电路P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能
3、够用于外部程序数据存储器,它可以被定义为数据/ 地址的第八位。在这里P0口作为输入与输出分别与ADC0808的输出端和LCD显示的输入端相连,且P0外部被阻值为1K的电阻拉高。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存
4、器的内容。这里只用到了P2.0P2.3四个端口,其中P2.1P2.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转换 图3 A/D转换电路接口分配电路设计如图3所示:
5、IN0IN7为8路模拟量输入端,这里只接一路电压信号,其输入信号是由直流电源及可调电阻提供。 OUT1OUT8为8位二进制数字量输出端,其另一端连接到AT89C51单片机进行数值转换。 ADDA、ADDB、ADDC为3位片选地址输入线,用于选通8路模拟输入中的一路。 ALE为地址锁存允许信号,由单片机P3.6口写信号与P2.0口相或取反输入,高电平有效。 START为 AD转换启动脉冲输入端,由单片机P3.6口写信号与P2.0口相或取反输入一个正脉冲使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。 EOC为 AD转换结束信号,当AD转换结束时,此端输出一个高电平取反给P3.3口(转
6、换期间一直为低电平)。 OE为数据输出允许信号,高电平有效。当AD转换结束时,此端由单片机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端由高电平跳变成低电平时,液晶模块执行命
7、令。由单片机P2.3口控制 图5 程序流程图D0D7为8位双向数据线。由单片机P0口输入,经过阻值为1K的上拉电阻连接。三、 软件设计主程序的内容包括:起始地址、中断服务程序的起始地址、有关内存单元及相关部件的初始化和一些子程序的调用等。根据设计要求,设计出如图5所示的主程序流程图。A/D转换子程序设计: A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。当系统置好后,单片机扫描转换结束管脚P3.7的输入电平状态,当输入为高电平则转换完成,将转换的数值显示输出。若输入为低电平,则继续扫描。程序流程图如图6所示。 图6 A/D转换子程序流程图四、 程序清单COM EQU 50H ;
8、 指令寄存器DAT EQU 51H ; 数据寄存器RS EQU P2.1 ; LCD寄存器选择信号RW EQU P2.2 ; LCD读/写选择信号E EQU P2.3 ; LCD使能信号 ORG 0000H LJMP MAIN ;主程序入口 ORG 000BH LJMP BT0 ;T0中断入口 ORG 0030H ;主程序,初始化MAIN: MOV SP,#60H LCALL INT MOV 30H,#30H MOV 31H,#30H MOV 32H,#0A5H MOV 33H,#30H MOV 34H,#30H MOV R7,#30H LCALL N1 ;显示 Voltage = 00.00
9、MOV TMOD,#00H ;定时器T0设为方式0MOV TH0,#00h ;装入定时常数MOV TL0,#00hSETB TR0 ;启动T0MOV 24h, #03h ;装入T0中断次数MOV IE,#82H ;开中断LP: MOV R7,#30H ;显示缓冲区首地址LCALL DISPLYSJMP LP ;循环显示DISPLY: MOV COM,#0CAH ;设置数据起始地址(第而行第10位) LCALL PR1 MOV R1,#05H MOV R0,#30Hl: MOV DAT,r0 LCALL PR2 INC R0 DJNZ R1,l RET;1. 逐字依次输入方式演示程序段N1:MO
10、V COM,#01H ;清屏 LCALL PR1 MOV COM,#06H ;设置输入方式 LCALL PR1 MOV COM,#081H ;设置数据起始地址(第一行地二位) LCALL PR1 MOV DPTR,#TAB1 MOV R2,#0EH MOV R3,#00HWRIN1: MOV A,R3 MOVC A,A+DPTR MOV DAT,A LCALL PR2 INC R3 DJNZ R2,WRIN1 MOV COM,#0C1H ;设置数据起始地址(第二行地二位) LCALL PR1 MOV DPTR,#TAB2 MOV R2,#9 MOV R3,#00HWRIN2: MOV A,R3
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C51 单片机 数字 电压表 设计
