LCD1602和12864液晶显示PPT资料.ppt
- 文档编号:15665261
- 上传时间:2022-11-11
- 格式:PPT
- 页数:89
- 大小:4.47MB
LCD1602和12864液晶显示PPT资料.ppt
《LCD1602和12864液晶显示PPT资料.ppt》由会员分享,可在线阅读,更多相关《LCD1602和12864液晶显示PPT资料.ppt(89页珍藏版)》请在冰豆网上搜索。
表5-31602指令表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表5-4是DM-1602的内部显示地址。
表5-41602地址表比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?
这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)二、时序图二、时序图11、16021602基本操作时序基本操作时序22、写操作时序、写操作时序图5-5操作时序图3、时序时间表表5-5时序表初始化通过初始化设置堆栈栈底为60H,调用LCD初始化子程序完成对LCD的初始化设置。
字符显示完成对LCD初始化后,调用LCD字符显示子程序显示第一行字符和第二行字符。
主程序设计流程图如图6.5所示。
【项目实践】33程序设计程序设计
(1)主程序设计主程序主要完成硬件初始化、子程序调用等功能。
初始化堆栈指针调用LCD初始化子程序调用字符显示子程序显示第二行字符调用字符显示子程序显示第一行字符开始图6.5主程序流程图
(2)写入显示数据到LCD子程序模块设计当LCD1602的寄存器选择信号RS为1时,选择数据寄存器;
当LCD1602的读写选择线R/W为0时,进行写操作;
当LCD1602的使能信号E至高电平后再过两个时钟周期至低电平,产生一个下降沿信号,往LCD写入显示数据。
写入显示数据到LCD子程序设计流程图如图6.6所示。
当RS1时,选择数据寄存器读/写标志位R/W0时,进行写操作LCD使能信号E至高电平后再过两个时钟周期至低电平,产生一个下降沿信号,往LCD写入显示数据子程序返回把显示数据送至P0口(LCD数据线DB7DB0)开始图6.6写入显示数据到LCD子程序流程图(3)写入指令数据到LCD子程序模块设计当LCD1602的寄存器选择信号RS为0时,选择指令寄存器;
当LCD1602的使能信号E至高电平后再过两个时钟周期至低电平,产生一个下降沿信号,往LCD写入指令代码。
写入指令数据到LCD子程序设计流程图如图6.7所示。
RS0时,选择指令寄存器读/写标志位R/W0时,进行写操作LCD使能信号E至高电平后再过两个时钟周期至低电平,产生一个下降沿信号,往LCD写入指令代码,LCD执行命令调用延时子程序DELAY子程序返回把指令数据送至P0口(LCD数据线DB7DB0)开始图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(不检测忙信号);
以后每次写指令、读/写数据操作均需要检测忙信号;
写指令38H:
显示模式设置;
写指令08H:
显示关闭;
写指令01H:
显示清屏;
写指令06H:
显示光标移动设置;
写指令0CH:
显示开及光标设置。
根据它的初始化过程,LCD初始化子程序设计流程图如图6.9所示。
【项目实践】功能设置命令调用写入指令到LCD子程序设定工作方式设置显示状态调用写入指令到LCD子程序调用写入指令到LCD子程序清屏调用写入指令到LCD子程序子程序返回设置输入方式调用写入指令到LCD子程序开始图6.9LCD初始化子程序流程图【项目实践】
(6)延时子程序模块设计延时子程序模块设计请参考项目1。
44汇编源程序汇编源程序*;
项目名称:
字符型LCD接口实验;
功能:
在1602字符型液晶第一行显示:
ILIKEMCU;
在第二行显示:
;
作者:
日期:
*;
1602LCD信号接口定义EBITP2.2;
LCD使能信号RWBITP2.1;
读/写选择信号R/W:
0为写入数据;
1为读出数据RSBITP2.0;
数据/命令选择信号R/S:
0为指令;
1为数据【项目实践】LCDPORTEQUP1;
液晶的数据线DB7DB0CMD_BYTEEQU30H;
写命令入口参数DAT_BYTEEQU31H;
写显示数据入口参数;
主程序ORG0000HAJMPMAINORG0050HMAIN:
MOVSP,#60H;
设置堆栈指针LCALLINITLCD;
调用LCD初始化子程序LCALLDISPMSG1;
调用液晶字符显示程序LCALLDISPMSG2;
调用液晶字符显示程序SJMP$;
LCD1602要用到的一些子程序;
函数功能:
写入指令到LCD1602子程序;
入口参数CMD_BYTE;
出口参数:
【项目实践】WRITE_CMD:
CLRRS;
当RS=0,RW=0时,写指令CLRRWMOVA,CMD_BYTE;
把写命令入口参数CMD_BYTE传给AMOVLCDPORT,A;
LCDPORT为液晶数据线DB7DB0SETBE;
打开液晶使能信号ENOPNOPCLRE;
关闭液晶使能信号ELCALLDELAY;
调用延时子程序RET;
写入显示数据到LCD1602子程序;
入口参数:
DAT_BYTE;
WRITE_DAT:
SETBRS;
当RS=1,RW=0时,写入数据到LCDCLRRWMOVA,DAT_BYTE;
把写数据入口参数DAT_BYTE传给AMOVLCDPORT,A;
LCDPORT为液晶数据线DB7DB0【项目实践】SETBE;
当RS=1,RW=0时,写入数据到LCDCLRRWMOVA,DAT_BYTE;
把写数据入口参数DAT_BYTE传给AMOVLCDPORT,A;
打开LCD使能信号ENOPNOPCLRE;
关闭LCD使能信号ELCALLDELAY;
调用延时子程序RET;
LCD显示初始化子程序;
INITLCD:
MOVCMD_BYTE,#30HLCALLWRITE_CMD;
调用写命令子程序MOVCMD_BYTE,#30HLCALLWRITE_CMD;
调用写命令子程序MOVCMD_BYTE,#30HLCALLWRITE_CMD;
调用写命令子程序MOVCMD_BYTE,#38H;
设定工作方式LCALLWRITE_CMD;
调用写命令子程序MOVCMD_BYTE,#0CH;
显示状态设置LCALLWRITE_CMD;
调用写命令子程序MOVCMD_BYTE,#01H;
RS=0,RW=0时,DB7DB0=01H为清屏LCALLWRITE_CMD;
调用写命令子程序MOVCMD_BYTE,#06H;
输入方式设置LCALLWRITE_CMD;
调用写命令子程序RET【项目实践】;
液晶字符显示程序1;
在第一行显示表格TB1的内容DISPMSG1:
MOVCMD_BYTE,#80H;
设置DDRAM的地址LCALLWRITE_CMD;
调用写命令子程序MOVR7,#10;
R7为显示数据个数MOVR6,#00H;
R6表头地址MOVDPTR,#TAB1DISPMSG1_1:
MOVA,R6MOVCA,A+DPTR;
查表MOVDAT_BYTE,A;
从A把数据传给写数据入口参数DAT_BYTELCALLWRITE_DAT;
调用写数据子程序INCR6;
下一个数据的地址DJNZR7,DISPMSG1_1;
判断是否显示完毕RET【项目实践】;
液晶字符显示程序2;
在第二行显示表格TB2的内容DISPMSG2:
MOVCMD_BYTE,#0C0H;
调用写命令子程序MOVR7,#0fHMOVR6,#00HMOVDPTR,#TAB2DISPMSG2_1:
MOVA,R6MOVCA,A+DPTRMOVDAT_BYTE,ALCALLWRITE_DAT;
调用写数据子程序INCR6DJNZR7,DISPMSG2_1RET;
延时子程序;
DELAY:
M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LCD1602 12864 液晶显示