第12讲 1602液晶显示及其应用课件_第1页
第12讲 1602液晶显示及其应用课件_第2页
第12讲 1602液晶显示及其应用课件_第3页
第12讲 1602液晶显示及其应用课件_第4页
第12讲 1602液晶显示及其应用课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十二讲第十二讲LCD1602及其应用及其应用液晶图形点阵显示屏液晶图形点阵显示屏液晶字符显示屏液晶字符显示屏 液晶模块简介实物1602液晶模块及管脚介绍 1602液晶模块简介1. LCD1602引脚分布引脚分布字符型液晶是一种用字符型液晶是一种用57点阵图形来显示字符的液点阵图形来显示字符的液晶显示器,根据显示的容量可分晶显示器,根据显示的容量可分1行行16个字、个字、2行行16个字、个字、2行行20个字等。个字等。LCD1602是是2行行16个字个字(英英文数字文数字),如图如图:第第1脚:脚:VSS为电源地,接为电源地,接GND。第第2脚:脚:VDD接接5V正电源。正电源。第第3脚:液晶

2、显示偏压信号脚:液晶显示偏压信号第第4脚脚RS:数据:数据/命令选择端(命令选择端(H/L)第第5脚脚R/W:读:读/写选择端(写选择端(H/L)第第6脚脚E:E为使能信号,当为使能信号,当E端由高电平跳变为低端由高电平跳变为低电平时,向液晶模块写;保持高电平时读模块。电平时,向液晶模块写;保持高电平时读模块。第第714脚:脚:D0D7为为8位双向数据线位双向数据线第第15脚:脚:BLA背光电源正极(接背光电源正极(接+5V)第第16脚:脚:BLK背光电源负极(接背光电源负极(接GND)液晶的指令集 1602液晶模块的内部控制器共有11条指令,它的读写操作、屏幕和光标的操作都是通过指令编程来实

3、现的。说明1为高电平,0为低电平)2. LCD1602指令集指令集指令码指令码功能功能0 0 1 1 1 0 0 0设置设置162显示,显示,57点阵,点阵,8位数据接口位数据接口(1)初始化设置初始化设置显示模式设置显示模式设置LCD_Write_Com(0 x38); /*显示模式设置显示模式设置*/2. LCD1602指令集指令集(1)初始化设置初始化设置显示开显示开/关及光标设置关及光标设置指令码指令码功能功能0 0 0 0 1 D C BD=1,开显示;开显示; D=0,关显示,关显示C=1,显示光标;显示光标;C=0,不显示光标不显示光标B=1,光标闪烁;光标闪烁;B=0,光标不闪

4、烁光标不闪烁0 0 0 0 0 1 N SN=1,当读或写一个字节后地址指针加一,当读或写一个字节后地址指针加一,且光标加一且光标加一N=0,当读或写一个字节后当读或写一个字节后 地址指针减地址指针减一,且光标减一一,且光标减一S=1,当写一个字符,整屏显示左移当写一个字符,整屏显示左移(N=1)或右移或右移(N=0)S=0,当写一个字符,整屏显示不移动当写一个字符,整屏显示不移动LCD_Write_Com(0 x08); /*显示关闭显示关闭*/ LCD_Write_Com(0 x06); /*显示光标移动设置显示光标移动设置*/LCD_Write_Com(0 x0C); /*显示开及光标设

5、置显示开及光标设置*/2. LCD1602指令集指令集指针设置指针设置指令码指令码功能功能01H显示清屏:显示清屏:1.数据指针清零数据指针清零 2 .所有显示清零所有显示清零02H显示回车:数据指针清零显示回车:数据指针清零2. LCD1602指令集指令集(1)初始化设置初始化设置LCD_Write_Com(0 x01); /*显示清屏显示清屏*/清屏函数清屏函数void LCD_Clear(void) LCD_Write_Com(0 x01); DelayMs(5); /*- 初始化函数初始化函数-*/ void LCD_Init(void) LCD_Write_Com(0 x38); /

6、*显示模式设置显示模式设置*/ DelayMs(5); LCD_Write_Com(0 x38); /*显示模式设置显示模式设置*/ DelayMs(5); LCD_Write_Com(0 x38); /*显示模式设置显示模式设置*/ DelayMs(5); LCD_Write_Com(0 x38); /*显示模式设置显示模式设置*/ LCD_Write_Com(0 x08); /*显示关闭显示关闭*/ LCD_Write_Com(0 x01); /*显示清屏显示清屏*/ LCD_Write_Com(0 x06); /*显示光标移动设置显示光标移动设置*/ DelayMs(5); LCD_Wr

7、ite_Com(0 x0C); /*显示开及光标设置显示开及光标设置*/ 初始化函数示例初始化函数示例2. LCD1602指令集指令集(2)读控制器状态读控制器状态 液晶显示模块是一个慢显示器件,所以在执行每条液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志。若为低电平,表示指令之前一定要确认模块的忙标志。若为低电平,表示不忙,否则此指令失效。不忙,否则此指令失效。2. LCD1602指令集指令集(2)读控制器状态读控制器状态读状态指令读状态指令RS=0,RW=1,E=110RS数据数据命令命令R/W读读写写E10时,时,液晶模块写命令、写数据液晶模块写命令、写数据1

8、:读状态字读状态字、读数据、读数据读出来的状态字的含义:读出来的状态字的含义:只有只有D7表示是否允许读写表示是否允许读写每次对控制器进行读写之前都要进行读写检测,确保每次对控制器进行读写之前都要进行读写检测,确保STA7=0/*- 判忙函数判忙函数-*/ bit LCD_Check_Busy(void) DataPort= 0 xFF; RS_0_CMD; /命令操作命令操作 RW_1_RD; /读操作读操作 EN_LOW; _nop_(); EN_HIG; return (bit)(DataPort & 0 x80); /返回值返回值1禁止读写禁止读写,0允许读写允许读写 2. LCD16

9、02指令集指令集(2)读控制器状态读控制器状态读状态指令读状态指令RS=0,RW=1,E=110RS数据数据命令命令R/W读读写写E10时,时,液晶模块写命令、写数据液晶模块写命令、写数据1:读状态字读状态字、读数据、读数据#define RS_0_CMD RS=0 #define RS_1_DAT RS=1#define RW_0_WR RW=0 #define RW_1_RD RW=1 #define EN_LOW EN=0#define EN_HIG EN=1/*- 写入命令函数写入命令函数-*/ void LCD_Write_Com(unsigned char com) while(L

10、CD_Check_Busy(); /忙则等待忙则等待 RS_0_CMD; /命令命令 RW_0_WR; /写写 EN_HIG; /EN=1 DataPort= com; /命令字节命令字节 _nop_(); /等命令稳定等命令稳定 EN_LOW; /EN=0 2. LCD1602指令集指令集(3)写命令写命令10RS数据数据命令命令R/W读读写写E10时,时,液晶模块液晶模块写命令写命令、写数据、写数据1:读状态字、读数据:读状态字、读数据数据指针设置数据指针设置 控制器内部带有控制器内部带有808位的位的RAM缓冲区,通过一个数缓冲区,通过一个数据地址指针,用户可以通过它们来访问内部的全部据

11、地址指针,用户可以通过它们来访问内部的全部80字节字节RAM。2. LCD1602指令集指令集(4)数据控制数据控制以下地址为以下地址为16进制进制2. LCD1602指令集指令集(4)数据控制数据控制读数据读数据 输入:输入:RS=H,RW=H,E=H; 输出:输出:D0D7=数据数据30单位单位:ns1504001010RS数据数据命令命令R/W读读写写E10时,时,液晶模块写命令、写数据液晶模块写命令、写数据1:读状态字、:读状态字、读数据读数据写数据写数据 输入:输入:RS=H,RW=L,D0D7=数据,数据,E=高脉冲;高脉冲;2. LCD1602指令集指令集(4)数据控制数据控制3

12、015010RS数据数据命令命令R/W读读写写E10时,时,液晶模块写命令、液晶模块写命令、写数据写数据1:读状态字、读数据:读状态字、读数据/*- 写入数据函数写入数据函数-*/ void LCD_Write_Data(unsigned char Data) while(LCD_Check_Busy(); /忙则等待忙则等待 RS_1_DAT; /数据数据 RW_0_WR; /写写 EN_HIG; /EN=1 DataPort= Data; /数据字节数据字节 _nop_(); /等数据稳定等数据稳定 EN_LOW; /EN=0 写数据写数据 输入:输入:RS=H,RW=L,D0D7=数据,

13、数据,E=高脉冲;高脉冲;2. LCD1602指令集指令集(4)数据控制数据控制10RS数据数据命令命令R/W读读写写E10时,时,液晶模块写命令、液晶模块写命令、写数据写数据1:读状态字、读数据:读状态字、读数据2. LCD1602指令集指令集(4)数据控制数据控制数据读写数据时序参数数据读写数据时序参数写入字符串写入字符串 控制器内部带有控制器内部带有808位的位的RAM缓冲区,通过一个数缓冲区,通过一个数据地址指针,用户可以通过它们来访问内部的全部据地址指针,用户可以通过它们来访问内部的全部80字节字节RAM。2. LCD1602指令集指令集(4)数据控制数据控制以下地址为以下地址为16

14、进制进制写入字符写入字符(串串)2. LCD1602指令集指令集(4)数据控制数据控制地址为地址为16进制进制80H+0H80H+1H80H+2H80H+3H80H+4H80H+5H80H+0FH80H+40H80H+41H80H+42H80H+43H80H+44H80H+45H80H+4FH写写RAM时的指令码时的指令码,需需+0 x80 (下面第一个表格可转换为第二个表格下面第一个表格可转换为第二个表格)80H+0H80H+1H80H+2H80H+3H80H+4H80H+5H80H+0FHC0H+0HC0H+1HC0H+2HC0H+3HC0H+4HC0H+5HC0H+0FH以下是字符的地址

15、以下是字符的地址/写入字符函数,功能:向第写入字符函数,功能:向第y行的第行的第x个位置写入字符个位置写入字符Data/x表示第表示第1行或第行或第2行的第行的第x的显示的字符的显示的字符/y为为0表示第表示第1行,为其它值表示第行,为其它值表示第2行行void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) if (y = 0) LCD_Write_Com(0 x80 + x); else LCD_Write_Com(0 xC0 + x); LCD_Write_Data( Data); 要显示字符时要先输入

16、显示字符地址,也就是告诉模块在要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。哪里显示字符。2. LCD1602指令集指令集/写入字符串函数写入字符串函数/x表示第表示第y行的第行的第x位置写入要显示的字符串位置写入要显示的字符串,其指针为其指针为S/y为为0表示第表示第1行,为其它值表示第行,为其它值表示第2行行void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) if (y = 0) LCD_Write_Com(0 x80 + x); /表示第一行表示第一行 else LCD_Writ

17、e_Com(0 xC0 + x); /表示第二行表示第二行 while (*s) /字符串以字符串以0结尾结尾 LCD_Write_Data( *s); s +; /*- 主函数主函数-*/ void main(void) LCD_Init(); LCD_Clear(); /清屏清屏,若不清屏,本次没更新的字符仍然显示若不清屏,本次没更新的字符仍然显示while (1) LCD_Write_Char(7,0,o); /第一行第第一行第7个字符显示个字符显示o LCD_Write_Char(8,0,k); /第一行第第一行第8个字符显示个字符显示k LCD_Write_String(1,1,); /第二行从第第二行从第1个字符起显示字符串个字符起显示字符串 while(1); 注意,显示字符为注意,显示字符为AS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论