《LED_LCD点阵使用》由会员分享,可在线阅读,更多相关《LED_LCD点阵使用(23页珍藏版)》请在金锄头文库上搜索。
1、字符点阵式液晶显示模块 1 由58点阵形成1个显示区域,各区域之间有明显间隔,通常1个字符需57点阵显示,最下行为光标。 2 由于点阵不连续,所以不能显示图形;又点阵数少,不宜显示中文字符,只能显示西文字符。 3 各字符有对应的字符显示码,无须直接操纵单个点阵,所以操作简单。,液晶显示器LCD(Liquid Crystai Display)知识LCD优点:体积小、功耗低、显示信息丰富、无电磁辐射。 主要分2大类:字符点阵式液晶显示模块图形点阵式液晶显示模块,图形点阵式液晶显示模块 1、 整个显示区域点阵连续,显示字符所需点阵数可任意,如通常中文字符为1616点阵,相应西文可选为816点阵,如图
2、所示。 2、 由于点阵连续,所以不仅能显示中、西文字符图形,还可显示图形。 3、 各字符形状任意,无固定的字符显示码,须直接操纵单个点阵,所以编程复杂。,点阵数据产生以 1616点阵为例,共32字节,按“先上后下,先左后右、字节倒转”(列行式、字节倒转)生成规则,所得字节数据如下:,0xFE, 0x02, 0x02, 0xFE, 0x00, 0xFE, 0x32, 0xCE, 0x00, 0xF2, 0x12, 0xF2, 0x02, 0xFE, 0x02, 0x00, 0x07, 0x02, 0x02, 0x07, 0x00, 0xFF, 0x04, 0x07, 0x00, 0x07, 0x
3、04, 0x47, 0x80, 0x7F, 0x00, 0x00,点阵数据产生软件 字模生成软件为了方便编程,液晶点阵数据有专门的生成软件,即字模生成软件,使用注意事项: 1、显示顺序,随各液晶型号的不同而不同,常有:逐列式: 逐行式: 列行式: 行列式:2、显示走向,“高位在前”或“低位在前”(即字节倒转); 3、显示格式,阴码(0显示)、阳码(1显示) 4、编码格式,汇编格式、C51格式; 5、显示字符字体、点阵的选择;,EDM12864图形点阵液晶显示器模块使用 12864点阵,可显示4 8个1616的点阵汉字, 引脚说明:,LCD模块操作时序及示例程序 LCD模块一般如下4类操作: 1
4、、写命令:如设置起始地址、显示开/关等; 2、写数据:将点阵数据写入LCD,在相应位置显示; 3、读状态:读LCD内部各状态,最常用的是“忙”状态,当LCD “忙”时,各种对LCD的操作均无效; 4、读数据: 读内部DDRAM数据,此操作较少使用。其中最常用的是“读状态” 、“写命令”、“写数据” 3种,子程序:读状态(READ_BUSY) 写命令(WRITE_COMD)写数据(WRITE_DATA),一、读操作时序D/I为0时,读状态;D/I为1时,读数据。,CLR LCD_RW CLR LCD_DI SETB LCD_E JB ACC.7, RD_BF_LOOP RET,E 线平时为高,D
5、/I、R/W线平时为低 READ_BUSY: MOV P0, #0FFH RD_BF_LOOP:CLR LCD_ELCALL DELAYCLR LCD_DISETB LCD_RWLCALL DELAYSETB LCD_ELCALL DELAYMOV A, P0LCALL DELAYCLR LCD_ELCALL DELAY,操作步骤: 1、平时E为高、R/W为低; 2、E为低后,R/W为高; 3、E为高,读入数据总线状态; 4、E为低,接着R/W恢复为低; 5、最后E恢复为高。,二、写操作时序,D/I为0时,写命令;D/I为1时,写数据。,写命令:命令字放在LCD_COMD中,E 、D/I、R/
6、W线平时保持为高。 写数据:点阵数据放在LCD_DATA中,E、D/I、R/W线平时保持为高。,写命令子程序WRITE_COMD: LCALL READ_BUSYCLR LCD_ELCALL DELAYCLR LCD_DICLR LCD_RWLCALL DELAYSETB LCD_ELCALL DELAYMOV P0, LCD_COMDLCALL DELAYCLR LCD_ELCALL DELAY,SETB LCD_D/I SETB LCD_RW SETB LCD_E RET,操作步骤: 1、平时E、R/W为高; 2、E为低后,R/W为低; 3、E为高,然后将数据或命令送到总线上; 4、E为低
7、,下降沿数据或命令写入LCD; 5、R/W恢复为高,接着E恢复为高,写数据子程序WRITE_DATA: LCALL READ_BUSYCLR LCD_ELCALL DELAYSETB LCD_DICLR LCD_RWLCALL DELAYSETB LCD_ELCALL DELAYMOV P0, LCD_DATALCALL DELAYCLR LCD_ELCALL DELAY,SETB LCD_D/I SETB LCD_RW SETB LCD_E RET,操作步骤: 1、平时E、R/W为高; 2、E为低后,R/W为低; 3、E为高,然后将数据或命令送到总线上; 4、E为低,下降沿数据或命令写入LC
8、D; 5、R/W恢复为高,接着E恢复为高,LCD控制命令,点阵行列指针(X、Y指针)分布,LCD应用实例 硬件组成:P1.0P1.5为控制线, P0口为数据总线;10K电位器调节液晶显示亮度(即调整驱动电压);背光为5V供电,建议接1个10之内2W的限流电阻,背光电流约为150mA。,显示方式 (取模方式) 列行式、 字节倒转,一、LCD初始化CLR LCD_RST ;LCD复位LCALL DELAYSETB LCD_RSTSETB LCD_CS1 ;选择左半屏CLR LCD_CS2MOV LCD_COMD, #3FH ;开左半屏显示LCALL WRITE_COMDCLR LCD_CS1 ;选
9、择右半屏SETB LCD_CS2MOV LCD_COMD, #3FH ;开右半屏显示LCALL WRITE_COMD,二、在左屏第823行、第1631列显示“啊”SETB LCD_CS1 ;选择左半屏CLR LCD_CS2MOV LCD_COMD, #0B9H ;10111 001 设置页地址为; 第1页 815行LCALL WRITE_COMDMOV LCD_COMD, #50H ; 01 010000 设置列地址为第16列 LCALL WRITE_COMD MOV R2, #16 ;写“啊”上半部16字节 MOV DPTR, #A_CHAR_TAB WR_LOOP1: MOVX A, DP
10、TRMOV LCD_DATA, ALCALL WRITE_DATAINC DPTRDJNZ R2, WR_LOOP1,啊,MOV LCD_COMD, #0BAH ;10111 010 设置页地址为第2页 1623行LCALL WRITE_COMDMOV LCD_COMD, #50H ; 01 010000 设置列地址为第16列LCALL WRITE_COMD MOV R2, #16 ;写“啊”下半部16字节MOV DPTR, #A_CHAR_TAB+16 WR_LOOP2:MOVX A, DPTRMOV LCD_DATA, ALCALL WRITE_DATAINC DPTRDJNZ R2, W
11、R_LOOP2 A_CHAR_TAB: DB 0FEH, 002H, 002H, 0FEH, 000H, 0FEH, 032H, 0CEHDB 000H, 0F2H, 012H, 0F2H, 002H, 0FEH, 002H, 000HDB 007H, 002H, 002H, 007H, 000H, 0FFH, 004H, 007HDB 000H, 007H, 004H, 047H, 080H, 07FH, 000H, 000H,啊,啊,三、在LCD中部第2439行(即第3、4页)、左屏第5663列、右屏第07列显示“啊” 此操作涉及LCD换屏显示,显示顺序是: 1、左上1/4第3页左屏的56
12、63列,8字节、2、右上1/4第3页右屏的07列,8字节 3、左下1/4第4页左屏的5663列,8字节、4、右下1/4第4页右屏的07列,8字节,;1、写“啊”左上部 8 字节 SETB LCD_CS1 ;选择左半屏CLR LCD_CS2MOV LCD_COMD, #0BBH ;10111 011 设置页地址为第3页 2431行LCALL WRITE_COMDMOV LCD_COMD, #78H ; 01 111000 设置列地址为第56列 LCALL WRITE_COMD MOV R2, #8 ;写“啊”左上部 8 字节 MOV DPTR, #A_CHAR_TAB WR_LOOP1: MOV
13、X A, DPTRMOV LCD_DATA, ALCALL WRITE_DATAINC DPTRDJNZ R2, WR_LOOP1,;2、写“啊”右上部 8 字节CLR LCD_CS1 ;选择右半屏SETB LCD_CS2MOV LCD_COMD, #0BBH ;10111 011 设置页地址为第3页 2431行LCALL WRITE_COMDMOV LCD_COMD, #40H ; 01 000000 设置列地址为第0列 LCALL WRITE_COMD MOV R2, #8 ;写“啊”右上部 8 字节 MOV DPTR, #A_CHAR_TAB + 8 WR_LOOP2: MOVX A,
14、DPTRMOV LCD_DATA, ALCALL WRITE_DATAINC DPTRDJNZ R2, WR_LOOP2,;3、写“啊”左下部 8 字节SETB LCD_CS1 ;选择左半屏CLR LCD_CS2MOV LCD_COMD, #0BCH ;10111 100 设置页地址为第4页 3239行LCALL WRITE_COMDMOV LCD_COMD, #78H ; 01 111000 设置列地址为第56列 LCALL WRITE_COMD MOV R2, #8 ;写“啊”左下部 8 字节 MOV DPTR, #A_CHAR_TAB + 16 WR_LOOP3: MOVX A, DPT
15、RMOV LCD_DATA, ALCALL WRITE_DATAINC DPTRDJNZ R2, WR_LOOP3,;4、写“啊”右下部 8 字节CLR LCD_CS1 ;选择右半屏SETB LCD_CS2MOV LCD_COMD, #0BCH ;10111 100 设置页地址为第4页 3239行LCALL WRITE_COMDMOV LCD_COMD, #40H ; 01 000000 设置列地址为第0列 LCALL WRITE_COMD MOV R2, #8 ;写“啊”右下部 8 字节 MOV DPTR, #A_CHAR_TAB + 24 WR_LOOP4: MOVX A, DPTRMOV LCD_DATA, ALCALL WRITE_DATAINC DPTRDJNZ R2, WR_LOOP4A_CHAR_TAB: DB 0FEH, 002H, 002H, 0FEH, 000H, 0FEH, 032H, 0CEHDB 000H, 0F2H, 012H, 0F2H, 002H, 0FEH, 002H, 000HDB 007H, 002H, 002H, 007H, 000H, 0FFH, 004H, 007HDB 000H, 007H, 004H, 047H, 080H, 07FH, 000H, 000H,