1、r#3CScs$4DTdt%5EUeu&6FVfv7GWgw1000(8HXhx1001)9IYiy1010*:JZjz1011+;Kk1100,Nn1111/?O_oHS162-4液晶模块部的控制器共有11条控制指令,如表2所示,指令指令码 说明 RS R/W D0 D1 D2 D3 D4 D5 D6 D7 清屏 清显示,光标回位 光标返回 ADD=0时,回原位 输入方式 I/D决定是否移动以及移动方向 显示开关 D-显示,C-光标,B-光标闪烁 移位 S/CR/L移动光标及整体显示 功能设置 DLDL-数据位数,L-行数,F-字体CGRAM地址设置 A5 A4 A3 A2 A1 A0设置C
2、GRAM的地址DDRAM地址设置 A6 A5 A4 A3 A2 A1 A0设置DDRAM的地址忙标志/读地址计数器 BFAC6 AC5 AC4 AC3 AC2 C1 AC0读出忙标志位(BF)及AC值CGRAM/DDRAM数据写 写数据将容写入RAM中CGRAM/DDRAM数据读 读数据将容从RAM中读出补充说明 I/D:1-增量方式、0-减量方式S:1-位移S/C:1-显示移位、0-光标移位R/L:1-右移、0-左移DL:1-8位、0-4位N:1-2行、0-1行F:1-5X10字体、0-5X7字体BF:1-正在执行部操作、0-可接收指令 DDRAM:显示数据RAMCGRAM:字符发生器RAM
3、ACG:CGRAM地址ADD:DDRAM地址及光标地址 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置 指令2:光标复位,光标返回到地址00H 指令3:光标和显示模式设置 光标移动方向,高电平右移,低电平左移 S: 屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁 指令5:光标或显示移位 S/C:高
4、电平时移动显示的文字,低电平时移动光标 指令6:功能设置命令 高电平时为4位总线,低电平时为8位总线 低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 指令7:字符发生器RAM地址设置 指令8:指令9:读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据 指令11:读数据 HS162-4液晶显示模块可以和单片机AT89C51直接接口,电路如图1所示。P32P33P34P10P11P12P13P14P15P16P17RSRWD0D1D2D3D4D5D6D7AT89C51单片机
5、HS162-41液晶模块VDDVOVSSVDD +5V10K电位器VSS GND液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表3是HS162-4的部显示地址.显示位置10111213141516第1行808182838485868788898A8B8C8D8E8F第2行C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF即,第1行的显示地址应为:80H+显示位置;第2行的显示地址应为:C0H+显示位置。以下是在液晶模块的第1行显示数字“0-9 :; =
6、?”,在第2行显示字符“AP”的程序:RS EQU P3.2RW EQU P3.3E EQU P3.4DAT EQU 30H ;命令单元DAT1 EQU 31H ;数据单元 AJMP START ORG 0030HSTART: MOV DAT,#01H ; 清屏 ACALL ENABLE MOV DAT,#38H ; 8位2行5x7点阵 MOV DAT,#0FH ; 显示器开、光标开、闪烁开 MOV DAT,#06H ; 文字不动,光标自动右移 MOV R3,#2 MOV DAT,#080H ; 写入显示起始地址(第一行第一个位置) MOV DAT1,#30H ;数字0的ASCII码 ACAL
7、L DSP0 MOV DAT,#0C0H ; 写入显示起始地址(第二行第一个位置) MOV DAT1,#61H ;字母a的ASCII码 SJMP $DSP0: MOV R2,#16DSP1: ACALL RDY MOV P1,DAT1 SETB RS CLR RW CLR E SETB E INC DAT1 DJNZ R2,DSP1 RETENABLE: ACALL RDY; 写入控制命令的子程序 MOV P1,#0FFH CLR RS MOV P1,DATRDY: MOV P1,#0FFH ; 判断液晶显示器是否忙的子程序 SETB RW JB P1.7,RDY ; 如果P1.7为高电平表示
8、忙就循环等待 END 程序在开始时对液晶模块功能进行了初始化设置,约定了显示格式。注意显示字符时光标是自动右移的,无需人工干预,每次输入指令都先调用判断液晶模块是否忙的子程序RDY,然后输入显示位置的地址,最后输入要显示的字符的ASCII码。液晶显示示例程序RS EQU P3.2RW EQU P3.3E EQU P3.4DAT EQU 30HDAT1 EQU 31H MOV DAT,#01H ;CLEAR MOV DAT,#38H ;8bit 2 Rol 5*7 MOV DAT,#0FH ;OPEN LCD MOV DAT,#06H ;LEFT TO RIGHT MOV R3,#2 MOV DAT,#080H ;First Addr MOV DAT1,#30H MOV DAT,#0C0H MOV DAT1,#61HHERE: RET ; SJMP HERE MOV R2,#16 MOV P1,DAT1 CLR RW nop CLR E INC DAT1 MOV P1,#0FFH CLR RS MOV P1,DAT MOV R1,#0FHDDT8: MOV R0,#0FFHDDT7: DJNZ R0,DDT7 DJNZ R1,DDT8 END
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1