?? lcm.asm
字號:
$INCLUDE (t89c51cc01.INC)
LCMRS EQU P2.6 ;L:存取緩存器,H:存取DDRAM
LCMWR EQU P2.7 ;L有效
LCMBC EQU P3.6
LCMCS EQU P3.7 ;L有效
REGNAME EQU 30H
REGDATA EQU 31H
REGDATA1 EQU 32H
LCM_X EQU 33H
LCM_Y EQU 34H
LCM_DATA1 EQU 35H
LCM_DATA2 EQU 36H
COUNT1 EQU 37H
COUNT2 EQU 38H
;****************************************************
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN:
MOV SP,#60H
LCALL DELAY2 ;延時等待LCM上電復位
LCALL LCM_INIT
LCALL LCM_CLR
CLR LCMBC
;****************************************************
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LGS0: LCALL LCM_CLR
MOV DPTR,#TAB0
LCALL PHO_DISP
LCALL DELAY1
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
; LJMP LGS0
INFDISP: LCALL LCM_CLR
LCALL DELAY5MS
MOV REGNAME,#0F0H
MOV REGDATA,#0A0H
LCALL REG_WRITE
MOV REGNAME,#10H
MOV REGDATA,#78H
LCALL REG_WRITE
MOV REGNAME,#00H
MOV REGDATA,#0CDH
LCALL REG_WRITE
MOV REGNAME,#0F1H
MOV REGDATA,#5FH
LCALL REG_WRITE
MOV LCM_X,#06H
MOV LCM_Y,#10H
LCALL WR_ZB
MOV A,#0C7H
LCALL DDR_WRITE
MOV A,#0C7H
LCALL DDR_WRITE
MOV LCM_X,#0EH
MOV LCM_Y,#10H
LCALL WR_ZB
MOV A,#0B4H
LCALL DDR_WRITE
MOV A,#0F3H
LCALL DDR_WRITE
MOV LCM_X,#16H
MOV LCM_Y,#10H
LCALL WR_ZB
MOV A,#0C0H
LCALL DDR_WRITE
MOV A,#0D7H
LCALL DDR_WRITE
LCALL DELAY1
LJMP LGS0
;****************************************************
LCM_INIT: MOV COUNT1,#00H ;初始化
MOV COUNT2,#27H
LCM_INIT1: MOV DPTR,#INITTAB1
MOV A,COUNT1
MOVC A,@A+DPTR
MOV REGNAME,A
MOV DPTR,#INITTAB2
MOV A,COUNT1
MOVC A,@A+DPTR
MOV REGDATA,A
LCALL REG_WRITE
INC COUNT1
DJNZ COUNT2,LCM_INIT1
RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LCM_CLR: MOV REGNAME,#0E0H ;清屏
MOV REGDATA,#00H
LCALL REG_WRITE
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; MOV A,#0A0H ;A0H為當前【F0H】的值
; ORL A,#08H
MOV REGDATA,#0A8H
MOV REGNAME,#0F0H
LCALL REG_WRITE
MOV REGNAME,#00H
MOV REGDATA,#0C5H
LCALL REG_WRITE
MOV LCM_X,#00H
MOV LCM_Y,#00H
LCALL WR_ZB
MOV A,#00H
LCALL DDR_WRITE
RET
;****************************************************
CHRT_DISP: MOV LCM_X,#00H ;全屏顯示中文或字符
MOV LCM_Y,#00H
LCALL WR_ZB
MOV COUNT1,#08H
CHRT_DISP1: MOV COUNT2,#1EH
CHRT_DISP2: CLR A
MOVC A,@A+DPTR
LCALL DDR_WRITE
INC DPTR
DJNZ COUNT2,CHRT_DISP2
DJNZ COUNT1,CHRT_DISP1
RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
PHO_DISP: MOV LCM_X,#00H ;全屏顯示圖形
MOV LCM_Y,#00H
LCALL WR_ZB
MOV COUNT1,#80H
PHO_DISP1: MOV COUNT2,#1EH
PHO_DISP2: CLR A
MOVC A,@A+DPTR
LCALL DDR_WRITE
INC DPTR
DJNZ COUNT2,PHO_DISP2
DJNZ COUNT1,PHO_DISP1
RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
LAT_DISP: MOV LCM_X,#00H ;全屏顯示點陣
MOV LCM_Y,#00H
LCALL WR_ZB
MOV COUNT1,#20H
LAT_DISP1: MOV COUNT2,#3CH
LAT_DISP2: MOV A,LCM_DATA1
LCALL DDR_WRITE
DJNZ COUNT2,LAT_DISP2
MOV COUNT2,#3CH
LAT_DISP3: MOV A,LCM_DATA2
LCALL DDR_WRITE
DJNZ COUNT2,LAT_DISP3
DJNZ COUNT1,LAT_DISP1
RET
;****************************************************
WR_ZB: MOV REGNAME,#60H ;定坐標
MOV REGDATA,LCM_X
LCALL REG_WRITE
MOV REGNAME,#70H
MOV REGDATA,LCM_Y
LCALL REG_WRITE
RET
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
REG_WRITE: MOV A,REGNAME ;寫資料到緩存器
LCALL REG_WR
MOV A,REGDATA
LCALL REG_WR
RET
REG_WR: MOV P0,A
CLR LCMCS
; SETB LCMRD
CLR LCMRS
CLR LCMWR
NOP
NOP
SETB LCMWR
SETB LCMRS
SETB LCMCS
RET
DDR_WRITE: MOV P0,A
CLR LCMCS
SETB LCMRS
CLR LCMWR
NOP
NOP
SETB LCMWR
SETB LCMRS
SETB LCMCS
RET
;****************************************************
DELAY1: MOV R5,#16H
DEL11: MOV R6,#0FFH
DEL12: MOV R7,#0FFH
DEL13: DJNZ R7,DEL13
DJNZ R6,DEL12
DJNZ R5,DEL11
RET
DELAY2: MOV R6,#0EAH
DEL21: MOV R7,#0FFH
DEL22: DJNZ R7,DEL22
DJNZ R6,DEL21
RET
DELAY5MS: MOV R7,#10 ;延時5ms
D1: MOV R6,#248
DJNZ R6,$
DJNZ R7,D1
NOP
NOP
RET
;****************************************************
INITTAB1:
DB 000H,001H,002H,003H,010H,011H,012H,021H,031H,041H,051H,020H,030H,040H,050H,060H
DB 061H,070H,071H,072H,080H,081H,091H,090H,0A0H,0A1H,0A2H,0A3H,0B0H,0B1H,0C0H,0C1H
DB 0C8H,0C9H,0CAH,0D0H,0E0H,0F0H,0F1H
INITTAB2:
DB 0C9H,0F2H,010H,080H,068H,010H,091H,01DH,07FH,000H,000H,01DH,07FH,000H,000H,000H
DB 000H,000H,000H,07FH,0AAH,040H,000H,00AH,011H,000H,000H,000H,01DH,07FH,000H,00AH
DB 080H,080H,000H,080H,000H,0A0H,00FH
TAB0:
;-- 調入了一幅圖像: --
;-- 寬度x高度=240x128 --
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -