📄 11-28b.asm
字号:
;OCM12864模块测试程序**************************
;完成时间2008.11.28
;制作人:hdzhangx
;**********************************************
D_I EQU P2.0 ;Data or Instrument Select,H:写数据,L:写指令
R_W EQU P2.1 ;Write or Read,H:read,L:write
E EQU P2.7 ;读写使能
CS1 EQU P2.2 ;CS1=H,选择左半屏
CS2 EQU P2.3
;CS2=H,选择右半屏
RESET EQU P3.5 ;Lcm reset,低有效
DISP_X EQU 30H
DISP_Y EQU 31H
DISP_Z EQU 32H
LONG EQU 33H
WIDE EQU 34H
DATA1_WR EQU 35H
DATA2_WR EQU 36H
COUNTER1 EQU 37H
COUNTER2 EQU 38H
COUNTER3 EQU 39H
;**********************************************
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV SP,#5FH
CLR RESET
NOP
NOP
NOP
SETB RESET
MOV DISP_Z,#0c0H
;**********************************************
;第一界面
;LGS1: SETB CS1
;CLR CS2
;MOV DISP_X,#0B8H
;MOV DISP_Y,#40H
;MOV LONG,#40H
;MOV WIDE,#02H
;MOV DPTR,#HZ11
;LCALL CHN_DISP
;MOV DISP_X,#0BbH
;MOV DPTR,#HZ21
;LCALL CHN_DISP
;MOV DISP_X,#0BdH
;MOV DPTR,#HZ31
;LCALL CHN_DISP
;MOV DISP_X,#0BfH
;MOV DPTR,#HZ41
;LCALL CHN_DISP
;CLR CS1
;SETB CS2
;MOV DISP_X,#0B8H
;MOV DISP_Y,#40H
;MOV LONG,#40H
;MOV WIDE,#02H
;MOV DPTR,#HZ12
;LCALL CHN_DISP
;MOV DISP_X,#0BbH
;MOV DPTR,#HZ22
;LCALL CHN_DISP
;MOV DISP_X,#0BdH
;MOV DPTR,#HZ32
;LCALL CHN_DISP
;MOV DISP_X,#0BfH
;MOV DPTR,#HZ42
;LCALL CHN_DISP
;LCALL DELAY1
;----------------------------------------------
;第二界面
LGS2: SETB CS1
SETB CS2
MOV DATA1_WR,#0FFH
MOV DATA2_WR,#0FFH
LCALL WRLATTICE
LCALL DELAY1
;----------------------------------------------
;第三界面
;LGS3: SETB CS1
; SETB CS2
; MOV DISP_X,#0B8H
; MOV DISP_Y,#40H
; MOV LONG,#20H
; MOV WIDE,#04H
; MOV DPTR,#GPTB1
; LCALL CHN_DISP
; MOV DISP_X,#0B8H
; MOV DISP_Y,#60H
; MOV DPTR,#GPTB2
; LCALL CHN_DISP
; MOV DISP_X,#0BCH
; MOV DISP_Y,#40H
; MOV DPTR,#GPTB2
; LCALL CHN_DISP
; MOV DISP_X,#0BCH
; MOV DISP_Y,#60H
; MOV DPTR,#GPTB1
; LCALL CHN_DISP
; LCALL DELAY1
;----------------------------------------------
;第四界面
;LGS4: SETB CS1
; SETB CS2
; MOV DATA1_WR,#0FFH
; MOV DATA2_WR,#00H
; LCALL WRLATTICE
; LCALL DELAY1
;----------------------------------------------
;第五界面
;LGS5: MOV DPTR,#COCK
; LCALL PHO_DISP
; LCALL DELAY1
;----------------------------------------------
;第六界面
;LGS6: SETB CS1
; SETB CS2
; MOV DATA1_WR,#33H
; MOV DATA2_WR,#33H
; LCALL WRLATTICE
; LCALL DELAY1
;----------------------------------------------
sjmp $ ;循环显示六幅画面
;**********************************************
WRLATTICE: MOV COUNTER1,#08H ;写点阵
MOV DISP_X,#0B8H
MOV DISP_Z,#0C0H
MOV DISP_Y,#40H
LCALL DISP
LATTICE1: LCALL WR_ZB
MOV COUNTER2,#20H
LATTICE2: MOV A,DATA1_WR
LCALL WR_DATA
MOV A,DATA2_WR
LCALL WR_DATA
DJNZ COUNTER2,LATTICE2
INC DISP_X
DJNZ COUNTER1,LATTICE1
RET
;----------------------------------------------
PHO_DISP: MOV COUNTER1,#08H ;全屏显示图形
MOV DISP_X,#0B8H
MOV DISP_Z,#0C0H
MOV DISP_Y,#40H
PHO_DISP1: SETB CS1
CLR CS2
LCALL DISP
LCALL WR_ZB
MOV COUNTER2,#40H
PHO_DISP11: CLR A
MOVC A,@A+DPTR
LCALL WR_DATA
INC DPTR
DJNZ COUNTER2,PHO_DISP11
PHO_DISP2: CLR CS1
SETB CS2
LCALL DISP
LCALL WR_ZB
MOV COUNTER2,#40H
PHO_DISP21: CLR A
MOVC A,@A+DPTR
LCALL WR_DATA
INC DPTR
DJNZ COUNTER2,PHO_DISP21
INC DISP_X
DJNZ COUNTER1,PHO_DISP1
RET
;----------------------------------------------
CHN_DISP: LCALL DISP ;显示LONGxWIDE大小的图形,本例为汉字
MOV COUNTER1,WIDE
CHN_DISP1: LCALL WR_ZB
MOV COUNTER2,LONG
CHN_DISP2: CLR A
MOVC A,@A+DPTR
LCALL WR_DATA
INC DPTR
DJNZ COUNTER2,CHN_DISP2
INC DISP_X
DJNZ COUNTER1,CHN_DISP1
RET
;----------------------------------------------
WR_ZB: MOV A,DISP_X ;写坐标
LCALL WR_INT
MOV A,DISP_Z
LCALL WR_INT
MOV A,DISP_Y
LCALL WR_INT
RET
;----------------------------------------------
DISP: MOV A,#3EH
LCALL WR_INT
MOV A,#3FH
LCALL WR_INT
RET
;**********************************************
WR_INT: LCALL CHE_BUSY ;WRITE INSTRUCTION
CLR D_I
CLR R_W
MOV P0,A
NOP
SETB E
NOP
NOP
CLR E
RET
;----------------------------------------------
WR_DATA: LCALL CHE_BUSY ;WRITE DATA
SETB D_I
CLR R_W
MOV P0,A
NOP
SETB E
NOP
NOP
CLR E
RET
;----------------------------------------------
CHE_BUSY: CLR D_I ;CHECK STATIU
SETB R_W
ANL p0,#0B0H
ORL p0,#80H
NOP
SETB E
JB p0.7,$
JB p0.4,$
CLR E
RET
;**********************************************
DELAY1: MOV COUNTER1,#0FH
DEL11: MOV COUNTER2,#0FFH
DEL12: MOV COUNTER3,#0FFH
DEL13: DJNZ COUNTER3,DEL13
DJNZ COUNTER2,DEL12
DJNZ COUNTER1,DEL11
RET
DELAY2: MOV COUNTER1,#04H
DEL21: MOV COUNTER2,#23H
DEL22: DJNZ COUNTER2,DEL22
DJNZ COUNTER1,DEL21
RET
;**********************************************
HZ11:
;-- 调入了一幅图像:E:\金.bmp -- 兰
;-- 宽度x高度=64x16 --
;DB 040H,040H,020H,020H,050H,048H,044H,0C3H,044H,048H,050H,050H,020H,060H,020H,000H
;DB 000H,0FEH,012H,0FEH,000H,0FEH,012H,0FEH,000H,0FCH,00EH,035H,044H,07CH,000H,000H
;DB 010H,012H,092H,072H,0FEH,051H,091H,000H,022H,0CCH,000H,000H,0FFH,000H,000H,000H
;DB 008H,008H,088H,0FFH,048H,028H,000H,0C8H,048H,048H,07FH,048H,0C8H,048H,008H,000H
;DB 040H,040H,042H,042H,04AH,072H,042H,07FH,042H,062H,05AH,042H,042H,040H,040H,000H
;DB 020H,01FH,021H,07FH,020H,01FH,041H,07FH,008H,009H,009H,029H,049H,021H,01FH,000H
;DB 004H,002H,001H,000H,0FFH,000H,004H,004H,004H,002H,002H,002H,0FFH,001H,001H,000H
;DB 001H,041H,080H,07FH,000H,040H,040H,020H,013H,00CH,00CH,012H,021H,060H,020H,000H
;--兰州交 ****************************************************************************
;**************************************************************************************
db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h
db 000h,020h,020h,022h,024h,028h,020h,020h,030h,028h,027h,022h,020h,020h,000h,000h,000h,0E0h,000h,000h,0FFh,020h,0C0h,000h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -