已阅读5页,还剩84页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课题四 液晶显示 任务一 1602液晶显示 任务二 12864液晶显示 课题目标本课题的任务是用单片机实现液晶显示,演示效果如图 5-1所示。通过编程,学会在单片机上实现液晶显示控制方法,以及不同数据显示的程序编写方法。图 5-1 液晶显示效果图任务一 1602液晶显示方式本任务就是将单片机与 1602液晶接成图 5-2所示电路图,编程实现。用液晶显示出 ”I LIKE MCU”“WWW.CQWU.EDU.CN”图 5-2 液晶显示电路图一、液晶显示原理1、液晶显示器及其特点液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,没有电磁辐射、寿命长等优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。 这里介绍的字符型液晶模块是一种用 5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为 1行 16个字、 2行 16个字、 2行 20个字等等,这里以常用的 2行 16个字的 1602液晶模块来介绍它的编程方法。2、液晶引脚定义表 5-1 LCD1602引脚功能w3、字符代码与显示字符关系w 1602液晶模块内部的字符发生存储器( CGROM)已经存储了 160个不同的点阵字符图形,如表 5-2所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母 “ A” 的代码是 01000001B( 41H),显示时模块把地址 41H中的点阵字符图形显示出来,我们就能看到字母 “ A” 。表 5-2 字符发生存储器字符代码与显示字符关系4、 LCD1602指令表1602液晶模块内部的控制器共有 11条控制指令,如表 5-3所示。表 5-3 1602指令表 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表 5-4是 DM-1602的内部显示地址。 表 5-4 1602地址表比如第二行第一个字符的地址是 40H,那么是否直接写入 40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7恒定为高电平 1所以实际写入的数据应该是01000000B( 40H)+10000000B(80H)=11000000B(C0H) 二、时序图1、 1602基本操作时序2、写操作时序图 5-5 操作时序图3、时序时间表表 5-5 时序表 初始化通过初始化设置堆栈栈底为 60H,调用 LCD初始化子程序完成对 LCD的初始化设置。 字符显示完成对 LCD初始化后,调用 LCD字符显示子程序显示第一行字符和第二行字符。主程序设计流程图如图 6.5所示。【 项目实践 】3程序设计(1) 主程序设计主程序主要完成硬件初始化、子程序调用等功能。初始化堆栈指针调用 LCD初始化子程序调用字符显示 子程序显示第二行字符调用字符显示 子程序显示第一行字符开始图 6.5 主程序流程图(2) 写入显示数据到 LCD子程序模块设计当 LCD1602的寄存器选择信号 RS为 1时,选择数据寄存器;当 LCD1602的读写选择线 R/W为 0时,进行写操作;当 LCD1602的使能信号 E至高电平后再过两个时钟周期至低电平,产生一个下降沿信号,往 LCD写入显示数据。写入显示数据到 LCD子程序设计流程图如图 6.6所示。当 RS 1时,选择数据寄存器读 /写标志位 R/W 0时,进行写操作LCD使能信号 E至高电平后再过两个时钟周期至低电平,产生一个下降沿信号,往 LCD写入显示数据子程序返回把 显示数据送至 P0口( LCD数据线 DB7 DB0)开始图 6.6 写入显示数据到 LCD子程序流程图(3) 写入指令数据到 LCD子程序模块设计当 LCD1602的寄存器选择信号 RS为 0时,选择指令寄存器;当 LCD1602的读写选择线 R/W为 0时,进行写操作;当 LCD1602的使能信号 E至高电平后再过两个时钟周期至低电平,产生一个下降沿信号,往 LCD写入指令代码。写入指令数据到 LCD子程序设计流程图如图 6.7所示。 RS 0时,选择指令寄存器读 /写标志位 R/W 0时,进行写操作LCD使能信号 E至高电平后再过两个时钟周期至低电平,产生一个下降沿信号,往 LCD写入指令代码, LCD执行命令调用延时子程序 DELAY子程序返回把指令数据送至 P0口( LCD数据线 DB7 DB0)开始图 6.7 写入指令数据到 LCD子程序流程图(4) 字符显示子程序模块设计设置 LCD的 DDRAM地址,调用写入指令到 LCD子程序设置 DDRAM地址指针;然后设置显示数据个数 R7,设置显示数据索引值 R6,将显示数据表地址送入 DPTR中,用查表指令查表取得显示数据,调用写入显示数据到 LCD子程序,使数据显示在 LCD上;显示数据个数 R7减 1,显示数据索引值 R6加 1,按照上面的步骤显示下一个数据,直到显示数据个数 R7为 0,所有字符均显示在 LCD上。字符显示子程序设计流程图如图 6.8所示。图 6.8 字符显示子程序流程图 【 项目实践 】(5) LCD初始化子程序模块设计1602字符型 LCD的初始化过程为:延时 15ms,写指令 38H(不检测忙信号 );延时 5ms,写指令 38H(不检测忙信号 );延时 5ms,写指令 38H(不检测忙信号 );以后每次写指令、读 /写数据操作均需要检测忙信号;写指令 38H:显示模式设置;写指令 08H:显示关闭;写指令 01H:显示清屏;写指令 06H:显示光标移动设置;写指令 0CH:显示开及光标设置。根据它的初始化过程, LCD初始化子程序设计流程图如 图 6.9所示。 【 项目实践 】功能设置命令调用写入指令到 LCD子程序设定工作方式设置显示状态调用写入指令到 LCD子程序调用写入指令到 LCD子程序清屏调用写入指令到 LCD子程序子程序返回设置输入方式调用写入指令到 LCD子程序开始图 6.9 LCD初始化子程序流程图【 项目实践 】(6) 延时子程序模块设计延时子程序模块设计请参考项目 1。4汇编源程序* ;项目名称:字符型 LCD接口实验;功能:在 1602字符型液晶第一行显示: I LIKE MCU;在第二行显示: ;作者:;日期:*; 1602LCD信号接口定义E BIT P2.2 ; LCD使能信号RW BIT P2.1 ;读 /写选择信号 R/W: 0为写入数据; 1为读出数据RS BIT P2.0 ;数据 /命令选择信号 R/S: 0为指令; 1为数据【 项目实践 】LCDPORT EQU P1 ;液晶的数据线 DB7 DB0CMD_BYTE EQU 30H ;写命令入口参数DAT_BYTE EQU 31H ;写显示数据入口参数;主程序ORG 0000HAJMP MAINORG 0050HMAIN: MOV SP,#60H ;设置堆栈指针LCALL INITLCD ;调用 LCD初始化子程序LCALL DISPMSG1 ;调用液晶字符显示程序LCALL DISPMSG2 ;调用液晶字符显示程序SJMP $; LCD1602要用到的一些子程序;函数功能:写入指令到 LCD1602子程序;入口参数 CMD_BYTE;出口参数:【 项目实践 】WRITE_CMD: CLR RS ;当 RS=0, RW=0时,写指令CLR RWMOV A,CMD_BYTE;把写命令入口参数 CMD_BYTE传给 AMOV LCDPORT,A; LCDPORT为液晶数据线 DB7 DB0SETB E ;打开液晶使能信号 ENOPNOPCLR E ;关闭液晶使能信号 ELCALL DELAY ;调用延时子程序RET;函数功能:写入显示数据到 LCD1602子程序;入口参数: DAT_BYTE;出口参数:WRITE_DAT: SETB RS ;当 RS=1, RW=0时,写入数据到 LCDCLR RWMOV A,DAT_BYTE;把写数据入口参数 DAT_BYTE传给 AMOV LCDPORT, A; LCDPORT为液晶数据线 DB7 DB0【 项目实践 】SETB E ;打开液晶使能信号 ENOPNOPCLR E ;关闭液晶使能信号 ELCALL DELAY ;调用延时子程序RET;函数功能:写入显示数据到 LCD1602子程序;入口参数: DAT_BYTE;出口参数:WRITE_DAT: SETB RS ;当 RS=1, RW=0时,写入数据到 LCDCLR RWMOV A, DAT_BYTE;把写数据入口参数 DAT_BYTE传给 AMOV LCDPORT, A ; LCDPORT为液晶数据线 DB7 DB0SETB E ;打开 LCD使能信号 ENOPNOPCLR E ;关闭 LCD使能信号 ELCALL DELAY ;调用延时子程序RET ;函数功能: LCD显示初始化子程序;入口参数:;出口参数:INITLCD: MOV CMD_BYTE, #30HLCALL WRITE_CMD ;调用写命令子程序MOV CMD_BYTE,#30HLCALL WRITE_CMD ;调用写命令子程序MOV CMD_BYTE, #30HLCALL WRITE_CMD ;调用写命令子程序MOV CMD_BYTE, #38H ;设定工作方式LCALL WRITE_CMD ;调用写命令子程序MOV CMD_BYTE, #0CH ;显示状态设置LCALL WRITE_CMD ;调用写命令子程序MOV CMD_BYTE, #01H ; RS=0, RW=0时, DB7DB0=01H为清屏LCALL WRITE_CMD ;调用写命令子程序MOV CMD_BYTE, #06H ;输入方式设置LCALL WRITE_CMD ;调用写命令子程序RET【 项目实践 】;函数功能:液晶字符显示程序 1;在第一行显示表格 TB1的内容DISPMSG1: MOV CMD_BYTE, #80H ;设置 DDRAM的地址LCALL WRITE_CMD ;调用写命令子程序MOV R7, #10 ; R7为显示数据个数MOV R6, #00H ; R6表头地址MOV DPTR, #TAB1DISPMSG1_1: MOV A, R6MOVC A, A+DPTR ;查表MOV DAT_BYTE, A ;从 A把数据传给写数据入口参数 DAT_BYTELCALL WRITE_DAT ;调用写数据子程序INC R6 ;下一个数据的地址DJNZ R7, DISPMSG1_1 ;判断是否显示完毕RET【 项目实践 】;函数功能:液晶字符显示程序 2;在第二行显示表格 TB2的内容DISPMSG2: MOV CMD_BYTE, #0C0H ;设置 DDRAM的地址LCALL WRITE_CMD ; 调用写命令子程序MOV R7, #0fHMOV R6, #00HMOV DPTR, #TAB2DIS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医护理基础知到智慧树章节测试课后答案2024年秋深圳职业技术大学
- 幼儿园大病免责协议书(2篇)
- 2024年辽宁省本溪市公开招聘警务辅助人员(辅警)笔试必刷经典测试卷(2)含答案
- 2023年福建省厦门市公开招聘警务辅助人员(辅警)笔试经典自测卷(1)含答案
- 2023年内蒙古自治区阿拉善盟公开招聘警务辅助人员(辅警)笔试高频必刷题试卷含答案
- 2023年福建省南平市公开招聘警务辅助人员(辅警)笔试模拟自测题(C)卷含答案
- 2022年四川省泸州市公开招聘警务辅助人员(辅警)笔试专项训练题试卷(3)含答案
- 2024年度网络安全技术服务合同纠纷诉状下载2篇
- 《地球日绘本英语》课件
- 旅游度假区租赁协议范本
- 2024赞助合同模板
- 自来水施工方案
- 商务礼仪课件教学课件
- 第六单元《多边形的面积》 单元测试(含答案)2024-2025学年人教版五年级数学上册
- 高中语文《荷花淀》随堂练习(含答案)
- 江西省南昌市雷式学校2024-2025学年八年级上学期第一次月考物理试卷
- 深信服aDesk桌面云实施方案
- 06《诫子书》理解性默写-2022-2023学年七年级语文上册知识梳理与能力训练
- 【部编】人教版六年级上册道德与法治全册知识点总结梳理
- 期末测评卷-2024-2025学年语文四年级上册统编版
- 人教版数学二年级上册-第7单元(认识时间)认识时间(课件)(共19张课件)
评论
0/150
提交评论