- 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个,共32个
- 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 ;全屏显示“晶汉达”等文字
- 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个
- 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个字
- MOV A,#80H ;从第1行第1个地址开始显示
- 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幅画面
- MOV A,#01H ;清除显示
- LCALL WC1 ;写指令
- MOV A,#82H ;从第一行第3个地址开始显示
- LCALL WC1
- MOV A,#0BEH ;显示“晶”(查表得编码BEA7)
- LCALL WD1 ;写数据
- MOV A,#0A7H
- LCALL WD1
- MOV A,#0BAH ;显示“汉”
- LCALL WD1
- MOV A,#0BAH
- LCALL WD1
- MOV A,#0B4H ;显示“达”
- LCALL WD1
- MOV A,#0EFH
- LCALL WD1
- MOV A,#91H ;从第二行第2个地址开始显示
- LCALL WC1 ;写指令
- 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个地址开始显示
- 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 ;显示“点”
- LCALL WD1
- MOV A,#0E3H
- LCALL WD1
- MOV A,#0D5H ;显示“阵”
- LCALL WD1
- MOV A,#0F3H
- LCALL WD1
- MOV A,#99H ;从第四行第2个地址开始显示
- 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 ;显示“库”
- LCALL WD1
- MOV A,#0E2H
- LCALL WD1
- RET
- INIT: ;初始化LCD程序
- CLR RESET ;复位
- 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地址计数器加1
- LCALL WC1
- RET
- WC1: ;写指令
- PUSH ACC
- MOV P0,A
- CLR RW
- CLR DI
- SETB E
- NOP
- CLR E
- CALL RFG1
- POP ACC
- RET
- WD1: ;写数据
- PUSH ACC
- MOV P0,A
- CLR RW
- SETB DI
- SETB E
- NOP
- CLR E
- CALL RFG1
- POP ACC
- RET
- RFG1: ;读取忙标志和地址
- MOV P0,#0FFH
- SETB RW
- CLR DI
- BUSY: ;读忙标志程序
- SETB E
- MOV A,P0
- CLR E
- JB ACC.7,BUSY
- RET
- DEL20MS: ;延时
- 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
复制代码
|