📄 ocm4x8c.asm
字号:
;******************OCM4x8C并口******************
RS EQU P2.4
RW EQU P2.5
E EQU P2.6
PSB EQU P3.3
RST EQU P3.4
LCD_X EQU 30H
LCD_Y EQU 31H
COUNT EQU 32H
COUNT1 EQU 33H
COUNT2 EQU 34H
COUNT3 EQU 35H
LCD_DATA EQU 36H
LCD_DATA1 EQU 37H
LCD_DATA2 EQU 38H
STORE EQU 39H
;***********************************************
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: NOP
clr p3.2 ;开背光灯
NOP
MOV SP,#5FH
SETB RST
NOP
SETB PSB
;********************初始化**********************
LGS0: MOV A,#34H ;34H--扩充指令操作
LCALL SEND_I
MOV A,#30H ;30H--基本指令操作
LCALL SEND_I
MOV A,#01H ;清除显示
LCALL SEND_I
MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
LCALL SEND_I
MOV A,#0CH ;开显示,关光标,不闪烁
LCALL SEND_I
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
LGS2: MOV A,#01H
LCALL SEND_I
MOV LCD_DATA1,#0CCH ;显示点阵
MOV LCD_DATA2,#0CCH
LCALL LAT_DISP
LCALL DELAY3
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
MOV A,#34H
LCALL SEND_I
MOV A,#30H
LCALL SEND_I
LJMP LGS0
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
LAT_DISP: MOV COUNT3,#02H ;显示点阵子程序
MOV LCD_X,#80H
LAT_DISP1: MOV LCD_Y,#80H
CLR F0 ;B寄存器第一位
MOV COUNT2,#20H
LAT_DISP2: MOV COUNT1,#10H
LCALL WR_ZB
LAT_DISP3: JB F0,LAT_DISP32
MOV LCD_DATA,LCD_DATA1
AJMP LAT_DISP31
LAT_DISP32: MOV LCD_DATA,LCD_DATA2
LAT_DISP31: MOV A,LCD_DATA
LCALL SEND_D
DJNZ COUNT1,LAT_DISP31
INC LCD_Y
CPL F0
DJNZ COUNT2,LAT_DISP2
MOV LCD_X,#88H
DJNZ COUNT3,LAT_DISP1
MOV A,#36H
LCALL SEND_I
MOV A,#30H
LCALL SEND_I
RET
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
WR_ZB: MOV A,#34H
LCALL SEND_I
MOV A,LCD_Y
LCALL SEND_I
MOV A,LCD_X
LCALL SEND_I
MOV A,#30H
LCALL SEND_I
RET
;***********************************************
SEND_D: LCALL CHK_BUSY ;写数据子程序
SETB RS
CLR RW
MOV P1,A
SETB E
NOP
NOP
CLR E
RET
SEND_I: LCALL CHK_BUSY ;写指令子程序
CLR RS
CLR RW
MOV P1,A
SETB E
NOP
NOP
CLR E
RET
READ_D: LCALL CHK_BUSY ;读数据子程序
SETB RS
SETB RW
SETB E
NOP
MOV A,P1
CLR E
MOV STORE,A
RET
CHK_BUSY: MOV P1,#0FFH ;测忙碌子程序
CLR RS
SETB RW
SETB E
JB P1.7,$
CLR E
RET
;***********************************************
DELAY3: MOV R5,#16H
DEL31: MOV R6,#0FFH
DEL32: MOV R7,#0FFH
DEL33: DJNZ R7,DEL33
DJNZ R6,DEL32
DJNZ R5,DEL31
RET
DELAY2: MOV R6,#0CH
DEL21: MOV R7,#18H
DEL22: DJNZ R7,DEL22
DJNZ R6,DEL21
RET
DELAY1: MOV R6,#06H
DEL11: MOV R7,#08H
DEL12: DJNZ R7,DEL12
DJNZ R6,DEL11
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -