ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:692.04KB ,
资源ID:11633271      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11633271.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理与接口技术课程设计液晶显示器与键盘系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理与接口技术课程设计液晶显示器与键盘系统.docx

1、微机原理与接口技术课程设计液晶显示器与键盘系统微机原理与接口技术综合实践说明书课程名称:微机原理与接口技术综合实践 设计题目:液晶显示器与键盘系统 院 系:机电学院测控系 班 级: 1111 XXXXXXXXXXXXXXXXXXXXXXXXXX设 计 者:亚哈亚指导教师: 1111 设计时间:2012.6.5-2012.6.19 微机原理与接口技术综合实践任务书 组 长:亚哈亚组 员: 专 业:测控技术与仪器 班 级: 任务起止日期:2012年6月5日至2012年6月19日 课程设计题目:液晶显示器与键盘系统 设计要求: 系统上电显示初始化界面,如“欢迎使用本系统!” ; 按数字键显示相应数字

2、; 按功能键“A” ,发光二极管发光,按功能键“B” ,发光二极管不发光,按功能键“C” ,蜂鸣器报警,按功能键“D” ,蜂鸣器停止报警。按其它功能键,显示某特定内容。 工作计划安排: 分组、选题,1天 方案设计,2天(软硬件总体结构,元器件的选购) 硬件搭接,2天;软件程序设计,5天;综合调试,2天 课程设计任务书,2天 同组设计者及分工:亚哈亚 09221151 硬件电路设计仿真,程序整合调试,编写设计说明书山 姆 0922115x 总体方案设计,编写设计说明书XXXXX 0922115X LCD硬件仿真,联合调试,搜集资料,编写设计说明书YYYYY 0922115X 硬件电路搭接,购买元

3、器件,资料搜集ZZZZZ 0922115X LCD显示编程及调试,购买元器件,编写设计说明书目录一、 总体设计 51. 单片机选型 52. 按键扫描 53. 1602LCD显示 5二、 主要元件介绍 61. AT89S51概述 61.1 AT89S51主要特征 61.2 管脚说明 71.3 本设计中的应用 92. 1602LCD 102.1 1602LCD概述 102.2 1602LCD控制指令 12三、 基于PROTEUS的硬件电路设计 141. PROTEUS软件相关 142. 电路组成 142.1 复位电路 142.2 时钟电路 152.3 1602LCD显示电路 152.4 按键扫描电

4、路 162.5 蜂鸣器和发光二级管控制电路 17四、硬件配置 181. 按键扫描程序 182. 1602LCD显示程序 20五、 电路仿真 22六、 总结 23七、 附件 241. 电路原理图 242. 源程序 24一、 总体设计1. 单片机选型AT89S51是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。根据万向开关的的档位,控制小直流电动机执行相应

5、的动作。2. 按键扫描运用P0口第四位进行行扫描,高四位进行列扫描。循环判断,得到按键位置。并在相应按键按下后实现特定功能:按键10按下时,发光二级管点亮,按键11按下时,发光二级管停止亮;按键12按下时,蜂鸣器响,按键13按下时,蜂鸣器停止响。3. 1602LCD显示将按键扫描值通过LCD显示出来,并在LCD上显示“WELCOM TO BJTU!”及“XX key press”。二、 主要元件介绍1. AT89S51概述AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存

6、储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。1.1 AT89S51主要特征 (1) 4k Bytes Flash片内程序存储器;(2) 128 bytes的随机存取数据存储器(RAM);(3) 32个外部双向输入/输出(I/O)口;(4) 2个中断优先级、2层中断嵌套中断;(5) 6个中断源;(6) 2个16位可编程定时器/计数器;(7) 2个全双工串行通信口;(8) 看门狗(WDT)电路;(9) 片内振荡器和时钟电

7、路;(10) 与MCS-51兼容;(11) 全静态工作:0Hz-33MHz;(12) 三级程序存储器保密锁定;(13) 可编程串行通道;(14) 低功耗的闲置和掉电模式。1.2 管脚说明图1 AT89S51引脚图VCC:供电电压GND:接地P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能

8、接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P1.0 T2(定时器/计数器T2的外部计数输入) ,时钟输出;P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制);P1.5 MOSI(在系统编程用);P1.6 MISO(在系统编程用);P1.7 SCK(在系统编程用)。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入

9、时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:

10、管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INT0(外部中断0)P3.3 INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器

11、频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,

12、/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。1.3 本设计中的应用在本设计中,AT89S51是整个系统的核心。I/O口主要用来连接键盘、蜂鸣器、以及控制LCD显示。P0口用来控制按键扫描。其中P1、P2口分别用来连接LCD的数据口和命令口;P2.0,2.1用于连接发光二级管和蜂鸣器。2. 1602LCD2.1 1602LCD概述1602LCD 分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比

13、不带背光的厚,是否带背光在应用中并无差别.图2 1602LCD1602LCD 主要技术参数:显示容量:162 个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm引脚功能说明:1602LCD 采用标准的14 脚(无背光)或16 脚(带背光)接口,引脚接口说明如表一。表一 1602LCD 引脚接口说明第1 脚:VSS 为地电源。第2 脚:VDD 接5V 正电源。第3 脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K 的电位器调整对比度。第4

14、 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS 和R/W共同为低电平时可以写入指令或者显示地址,当RS 为低电平R/W 为高电平时可以读忙信号,当RS 为高电平R/W 为低电平时可以写入数据。第6 脚:E 端为使能端,当E 端由高电平跳变成低电平时,液晶模块执行命令。第714 脚:D0D7 为8 位双向数据线。第15 脚:背光源正极。第16 脚:背光源负极。2.2 1602LCD控制指令1620液晶模块内部的控制器共有11条控制指令,如下表二所示。表二 1602LCD控制指令它的读写操作、

15、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置指令2:光标复位,光标返回到地址00H指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标指令6:功能设置命令 DL:高电平

16、时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符指令7:字符发生器RAM地址设置指令8:DDRAM地址设置指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据指令11:读数据1620液晶显示模块可以和单片机直接接口。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。程序在开始时对液晶模块功能进行了初始化设

17、置,约定了显示格式。三、 基于PROTEUS的硬件电路设计1. PROTEUS软件相关Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是

18、目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。2. 电路组成根据设计要求,硬件电路主要包括复位电路、晶体振荡电路、LCD显示电路、按键扫描电路以及蜂鸣器和发光二级管控制电路。2.1 复位电路复位是任何一种微型计算机都必须具备的工作方式。复位操作使单片机处于一种初始化的状态。MCS-51单

19、片机的RST引脚上出现持续24个振荡周期的高电平信号时,单片机进入复位。通常有上电复位与人工按钮复位两种方式。本设计中采用上电复位方式。如下图3所示。图3 上电复位电路2.2 时钟电路通常单片机系统电路的实际有内部时钟和外部时钟两种形式,两种电路都向单片机提供最基本的振荡脉冲信号。本设计中的晶体振荡电路如下图四所示。图4 晶体振荡电路2.3 1602LCD显示电路1602LCD 采用标准的14 脚(无背光)或16 脚(带背光)接口。本设计中采用14脚LCD。VSS和VDD为电源端和接地端,VEE用于调整液晶显示器对比度。D0D7为8位双向数据线。电路连接图如图五。图5 LCD显示电路2.4 按

20、键扫描电路设计中采用行列式非编码键盘,由行线、列线和键盘开关矩阵3部分组成。在这种键盘中,每根行线和列线的交叉处都有一个按键,当某个键被按下时,与这个按键相连的行线和列线就会接通,否者行线和列线不接通。如电路图6。图6 按键扫描电路2.5 蜂鸣器和发光二级管控制电路如下图所示。图7 蜂鸣器和发光二级管控制电路四、硬件配置在单片机的开发运用中,逐渐引入了高级语言,C语言就是其中一种。在使用汇编语言的过程中,其可读性和可维护性不强,其次它的代码可重用性比较低,使用高级语言编程能很好的解决问题。C语言具有良好的模块化、容易阅读和维护的优点。由于模块化,所以用C语言编写的程序有很好的可移植性,功能化的

21、代码能够很方便地从一个工程移植到另一个工程,从而减少开发时间。本设计将采用C语言编程。1. 按键扫描程序本设计中4*4按键扫描是一个难点。按键高四位为列,第四位为行。当P0.0置为0,判断第一行是否有键按下,如果第一个键被按下,P0.4口变为低电平,P0口值变为0XEE。当第二个键被按下,P0.5口变为低电平,P0口值变为0XDE,以此类推。没判断一个键,返回一个按键值。循环查询按键值,再执行相应的操作。当第一个键被按下,发光二级管点亮,第二个键被按下,蜂鸣器接通。下图8、图9即为按键2前后,电平跳转对比。按键程序流程图如图10.图8 按键扫描按键前图9 按键扫描按键2后蜂鸣器接通图10 按键

22、扫描流程图2. 1602LCD显示程序第二章中已对1602LCD控制指令进行了详细介绍,其读写时序如下图11、图12。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图13是 1602 的内部显示地址。图11 1602LCD读操作时序图12 1602LCD写操作时序图13 1602LCD内部显示地址在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602 液晶模块内部的字符发生

23、存储器(CGROM)已经存储了 160 个不同的点阵字符图形,如图 10-58 所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B(41H),显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A”。CGROM、CGRAM中字符代码与字符图形对应关系如下表三所示。表三 CGROM、CGRAM中字符代码与字符图形对应关系五、 电路仿真扫描4*4按键,当按键按下时显示按键,并在LCD上显示“WELCOM TO BJTU!”。当按键10按下时发光二级管发光,按键11按下时发光二

24、级管停止亮;按键12按下时,蜂鸣器响,按键13按下时,蜂鸣器停止响。系统仿真图如图14.图14 系统仿真图六、 总结经过两周设计,克服了LCD显示和4*4键盘扫描的难点,完成了课程设计所有要求。学会使用PROTEUS软件绘制电路图及程序仿真,以及电路图设计的基础知识,能够运用C语言编程控制单片机工作。感谢老师传授的知识,让我们能够一点点克服障碍,最终完成设计。七、 附件1. 电路原理图2. 源程序#include AT89X51.h#define uchar unsigned char#define uint unsigned int #define ulong unsigned longun

25、signed char key;uint i;uint date;delay();unsigned char scan();sbit rs= P24;sbit e = P26;/*显示数据表*/uchar dis1 =WELCOM TO BJTU!;uchar dis2=key press;uchar number=0,0,0,0;uchar code table2=0123456789;void init();delay() unsigned int i; for(i=2000;i0;i-) ; void init() P2=0xff; P3=0xff; P1=0xff;unsigned c

26、har scan() unsigned char a; unsigned char b; do /*-*/ P0=0xff; a=0x0f; P0_0=0; / a=P0; if(a!=0x0f) delay(); b=P0 ; /b=0x0f; if(a=b) if(a=0xee) return(0); if(a=0xde) return(1); if(a=0xbe) return(2); if(a=0x7e) return(3); /*-*/ P0=0xff; a=0x0f; P0_1=0; a=P0; if(a!=0x0f) delay(); b=0x0f; b=P0; if(a=b)

27、if(a=0xed) return(4); if(a=0xdd) return(5); if(a=0xbd) return(6); if(a=0x7d) return(7); /*-*/ P0=0xff; a=0x0f; P0_2=0; a=P0 ; if(a!=0x0f) delay(); b=0x0f; b=P0; if(a=b) if(a=0xeb) return(8); if(a=0xdb) return(9); if(a=0xbb) return(0x0A); if(a=0x7b) return(0x0B); /*-*/ P0=0xff; a=0x0f; P0_3=0; a=P0;

28、if(a!=0x0f) delay(); b=0x0f; b=P0; if(a=b) if(a=0xe7) return(0x0C); if(a=0xd7) return(0x0D); if(a=0xb7) return(0x0E); if(a=0x77) return(0x0F); while(a=0x0f) ;/*写命令操作 p2口*/void writecomm(uchar comm) rs=0; P1=comm; e=0; delay(); e=1; delay(); e=0;/*写数据操作 p2口*/void writedat(uchar dat) rs=1; P1=dat; e=0

29、; delay(); e=1; delay(); e=0;/*写个/十位数据*/void writesmh(uchar add,uint date) uint shi,ge,bai; ge=date%10; shi=(date/10)%10; bai=(date/100)%10; writecomm(0xc0+add); delay(); if(bai) writedat(table2bai); writecomm(0xc1+add); if(shi|bai) writedat(table2shi); writecomm(0xc2+add); writedat(table2ge); delay();void lcd_write_num() writesmh(0,date); / writesmh(9,stall); /*LCD1602初始化*/void init0() /lcd初始化 writecomm(0x38);/检

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1