|
- DI BIT P4.0
- RW BIT P4.1
- E BIT P4.2
- PSB BIT P2.7
- RESET BIT P2.3
- LCDBG BIT P4.3
- ORG 00H
- AJMP MAIN
- ORG 0030H
- MAIN:
- SETB PSB
- CLR LCDBG
- MOV SP,#40H
- LCALL INIT
- LCALL BMP1 ;全屏顯示花格子
- LCALL DEL200MS
- LCALL BMP2 ;全屏顯示另一種花格子
- LCALL DEL200MS
- LCALL BMP4 ;全屏顯示大方格,每行8個(gè),共32個(gè)
- LCALL DEL200MS
- MOV R1,#0D2H ;全屏顯示“液”
- MOV R0,#0BAH
- LCALL BMP3
- LCALL DEL200MS
- MOV R1,#0BEH ;全屏顯示“示”
- MOV R0,#0A7H
- LCALL BMP3
- LCALL DEL200MS
- MOV R1,#0C6H ;全屏顯示“屏”
- MOV R0,#0C1H
- LCALL BMP3
- LCALL DEL200MS
- LCALL BMP5 ;全屏顯示“晶漢達(dá)”等文字
- LCALL DEL200MS
- AJMP MAIN
- BMP1: ;全屏顯示花格子
- MOV R3,#20H
- MOV A,#40H
- LCALL WC1
- MOV A,#0AAH
- MOV R4,#02H
- BMP10:
- LCALL WD1
- DJNZ R4,BMP100
- CPL A
- MOV R4,#02H
- BMP100:
- DJNZ R3,BMP10
- MOV R3,#20H
- MOV A,#80H
- LCALL WC1
- BMP11:
- MOV A,#00H
- LCALL WD1
- MOV A,#00H
- LCALL WD1
- DJNZ R3,BMP11
- RET
- BMP2:
- MOV R3,#80H ;128個(gè)
- MOV A,#60H ;造字CGRAM,可以自定義
- LCALL WC1
- MOV A,#0FFH
- BMP20:
- DJNZ R3,BMP20
- MOV R3,#80H
- MOV A,#80H
- LCALL WC1
- BMP21:
- MOV A,#00H
- LCALL WD1
- MOV A,#02H
- LCALL WD1
- DJNZ R3,BMP21
- RET
- BMP3:
- MOV R3,#20H ;顯示32個(gè)字
- MOV A,#80H ;從第1行第1個(gè)地址開(kāi)始顯示
- LCALL WC1
- BMP31:
- MOV A,R1
- LCALL WD1
- MOV A,R0
- LCALL WD1
- DJNZ R3,BMP31
- RET
- BMP4: ;自定義圖片,顯示方格“口”
- MOV A,#40H ;造字CGRAM
- LCALL WC1
- MOV A,#0FFH ;第一行顯示
- LCALL WD1
- MOV A,#0FFH
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#80H
- LCALL WD1
- MOV A,#01H
- LCALL WD1
- MOV A,#0FFH ;第一字符最后一行顯示
- LCALL WD1
- MOV A,#0FFH
- LCALL WD1
- MOV A,#80H
- LCALL WC1
- BMP41:
- MOV A,#00H
- LCALL WD1
- MOV A,#00H
- LCALL WD1
- DJNZ R3,BMP41
- RET
- BMP5: ;第5幅畫(huà)面
- MOV A,#01H ;清除顯示
- LCALL WC1 ;寫(xiě)指令
- MOV A,#82H ;從第一行第3個(gè)地址開(kāi)始顯示
- LCALL WC1
- MOV A,#0BEH ;顯示“晶”(查表得編碼BEA7)
- LCALL WD1 ;寫(xiě)數(shù)據(jù)
- MOV A,#0A7H
- LCALL WD1
- MOV A,#0BAH ;顯示“漢”
- LCALL WD1
- MOV A,#0BAH
- LCALL WD1
- MOV A,#0B4H ;顯示“達(dá)”
- LCALL WD1
- MOV A,#0EFH
- LCALL WD1
- MOV A,#91H ;從第二行第2個(gè)地址開(kāi)始顯示
- LCALL WC1 ;寫(xiě)指令
- MOV A,#0A3H ;顯示“1”
- LCALL WD1
- MOV A,#0B1H
- LCALL WD1
- MOV A,#0A3H ;顯示“2”
- LCALL WD1
- MOV A,#0B2H
- LCALL WD1
- MOV A,#0A3H ;顯示“8”
- LCALL WD1
- MOV A,#0B8H
- LCALL WD1
- MOV A,#0A3H ;顯示“6”
- LCALL WD1
- MOV A,#0B6H
- LCALL WD1
- MOV A,#0A3H ;顯示“4”
- LCALL WD1
- MOV A,#0B4H
- LCALL WD1
- MOV A,#0A3H ;顯示“F”
- LCALL WD1
- MOV A,#0C6H
- LCALL WD1
- MOV A,#8AH ;從第三行第3個(gè)地址開(kāi)始顯示
- LCALL WC1
- MOV A,#0CDH ;顯示“圖”
- LCALL WD1
- MOV A,#0BCH
- LCALL WD1
- MOV A,#0D0H ;顯示“形”
- LCALL WD1
- MOV A,#0CEH
- LCALL WD1
- MOV A,#0B5H ;顯示“點(diǎn)”
- LCALL WD1
- MOV A,#0E3H
- LCALL WD1
- MOV A,#0D5H ;顯示“陣”
- LCALL WD1
- MOV A,#0F3H
- LCALL WD1
- MOV A,#99H ;從第四行第2個(gè)地址開(kāi)始顯示
- LCALL WC1
- MOV A,#0D7H ;顯示“自”
- LCALL WD1
- MOV A,#0D4H
- LCALL WD1
- MOV A,#0B4H ;顯示“帶”
- LCALL WD1
- MOV A,#0F8H
- LCALL WD1
- MOV A,#0BAH ;顯示“漢”
- LCALL WD1
- MOV A,#0BAH
- LCALL WD1
- MOV A,#0D7H ;顯示“字”
- LCALL WD1
- MOV A,#0D6H
- LCALL WD1
- MOV A,#0D7H ;顯示“字”
- LCALL WD1
- MOV A,#0D6H
- LCALL WD1
- MOV A,#0BFH ;顯示“庫(kù)”
- LCALL WD1
- MOV A,#0E2H
- LCALL WD1
- RET
- INIT: ;初始化LCD程序
- CLR RESET ;復(fù)位
- SETB RESET
- MOV A,#30H ;8位基本指令操作
- LCALL WC1
- MOV A,#30H
- LCALL WC1
- MOV A,#0CH
- LCALL WC1
- MOV A,#01H ;清除屏幕顯示
- LCALL WC1
- MOV A,#06H ;DDRAM地址計(jì)數(shù)器加1
- LCALL WC1
- RET
- WC1: ;寫(xiě)指令
- PUSH ACC
- MOV P0,A
- CLR RW
- CLR DI
- SETB E
- NOP
- CLR E
- CALL RFG1
- POP ACC
- RET
- WD1: ;寫(xiě)數(shù)據(jù)
- PUSH ACC
- MOV P0,A
- CLR RW
- SETB DI
- SETB E
- NOP
- CLR E
- CALL RFG1
- POP ACC
- RET
- RFG1: ;讀取忙標(biāo)志和地址
- MOV P0,#0FFH
- SETB RW
- CLR DI
- BUSY: ;讀忙標(biāo)志程序
- SETB E
- MOV A,P0
- CLR E
- JB ACC.7,BUSY
- RET
- DEL20MS: ;延時(shí)
- MOV R7,#20D
- DD6: MOV R6,#200D
- DD5: NOP
- NOP
- NOP
- DJNZ R6,DD5
- DJNZ R7,DD6
- RET
- DEL200MS:
- MOV R7,#15D
- DEL2: MOV R6,#200D
- DEL1: MOV R5,#200D
- DEL0: DJNZ R5,DEL0
- DJNZ R6,DEL1
- DJNZ R7,DEL2
- RET
- END
復(fù)制代碼
|
|