📄 ex9-9.sdi
字号:
,,, ORG 0000H
0000,02 00 30,START,START: LJMP MAIN
,,, ORG 0030H
0030,12 00 8B,MAIN,MAIN: LCALL INIT ;主程序开始,调用液晶模块初始化子程序
0033,12 00 B6,, LCALL WPAD ;调用自定义汉字字符子程序
0036,7A 81,, MOV R2,#81H ;从第1行第2位开始,设置DDRAM地址
0038,12 00 73,, LCALL WRTC ;写入
003B,7C 0E,, MOV R4,#14 ;第1行共14个字符
003D,90 00 4F,, MOV DPTR,#ZIFU ;指向显示字符代码首地址
0040,12 00 C0,, LCALL WP1 ;第1行字符代码写入DDRAM
0043,7A C4,, MOV R2,#0C4H ;设置第2行DDRAM地址
0045,12 00 73,, LCALL WRTC ;写入
0048,7C 0C,, MOV R4,#12 ;第2行共12个字符
004A,12 00 C0,, LCALL WP1 ;第2行字符代码写入DDRAM
004D,80 FE,, SJMP $
004F,48 65 6C 6C,ZIFU,ZIFU: DB "Hello Everyboy" ;显示字符
005D,32 30 30 38,, DB "2008",00H,"10",01H,"26",02H,20H
,,,
,,,
,,,;忙标志判断子程序
0069,75 A0 7F,WAIT,WAIT: MOV P2,#7FH
006C,78 F1,, MOV R0,#0F1H ;读忙标志地址
006E,E2,, MOVX A,@R0
006F,20 E7 F7,, JB ACC.7,WAIT
0072,22,, RET
,,,
,,,;写指令代码子程序
0073,12 00 69,WRTC,WRTC: LCALL WAIT ;判断BF标志
0076,EA,, MOV A,R2
0077,78 F0,, MOV R0,#0F0H ;写指令地址
0079,F2,, MOVX @R0,A
007A,22,, RET
,,,
,,,;写数据子程序
007B,12 00 69,WRTD,WRTD: LCALL WAIT ;判断BF标志
007E,EA,, MOV A,R2
007F,78 F2,, MOV R0,#0F2H ;写数据地址
0081,EA,, MOV A,R2
0082,F2,, MOVX @R0,A
0083,22,, RET
,,,
,,,;读数据子程序
0084,12 00 69,RDD,RDD: LCALL WAIT ;判断BF标志
0087,78 F3,, MOV R0,#0F3H ;读数据地址
0089,E2,, MOVX A,@R0
008A,22,, RET
,,,
,,,;初始化子程序
008B,12 00 E2,INIT,INIT: LCALL TIM1 ;延时15ms
008E,7A 38,, MOV R2,#38H ;功能设置命令,设定8位字长,2行,5*7点阵
0090,12 00 73,, LCALL WRTC ;写入
0093,12 00 F2,, LCALL TIM3 ;延时100us
0096,7A 38,, MOV R2,#38H
0098,12 00 73,, LCALL WRTC ;写入
009B,12 00 F2,, LCALL TIM3 ;延时100us
009E,7A 38,, MOV R2,#38H
00A0,12 00 73,, LCALL WRTC ;写入
00A3,12 00 F2,, LCALL TIM3 ;延时100us
00A6,7A 01,, MOV R2,#01H ;清屏命令
00A8,12 00 73,, LCALL WRTC ;写入
00AB,7A 06,, MOV R2,#06H ;输入方式命令
00AD,12 00 73,, LCALL WRTC ;写入
00B0,7A 0E,, MOV R2,#0EH ;开显示、光标不闪命令
00B2,12 00 73,, LCALL WRTC ;写入
00B5,22,, RET
,,,
,,,;自定义汉字字符子程序
00B6,7A 40,WPAD,WPAD: MOV R2,#40H ;设置CGRAM首地址为0
00B8,12 00 73,, LCALL WRTC ;写入CGRAM首地址
00BB,7C 18,, MOV R4,#24 ;3个汉字共24字节子模数据
00BD,90 00 CA,, MOV DPTR,#ZIMO ;指向字模首地址
00C0,E4,WP1,WP1: CLR A
00C1,93,, MOVC A,@A+DPTR
00C2,FA,, MOV R2,A
00C3,12 00 7B,, LCALL WRTD ;写入1字节字模数据
00C6,A3,, INC DPTR
00C7,DC F7,, DJNZ R4,WP1
00C9,22,, RET
00CA,08 0F 12 0F,ZIMO,ZIMO: DB 08H,0FH,12H,0FH,0AH,1FH,02H,00H;“年”
00D2,0F 09 0F 09,, DB 0FH,09H,0FH,09H,0FH,09H,11H,00H;“月”
00DA,0F 09 09 0F,, DB 0FH,09H,09H,0FH,09H,09H,0FH,00H;“日”
,,,
,,,;延时15ms子程序
00E2,7D 03,TIM1,TIM1: MOV R5,#03H
00E4,12 00 EA,TT1,TT1: LCALL TIM2
00E7,DD FB,, DJNZ R5,TT1
00E9,22,, RET
,,,;延时5ms子程序
00EA,7C 32,TIM2,TIM2: MOV R4,#50
00EC,12 00 F2,TT2,TT2: LCALL TIM3
00EF,DC FB,, DJNZ R4,TT2
00F1,22,, RET
,,,;延时100us子程序
00F2,7B 32,TIM3,TIM3: MOV R3,#50
00F4,DB FE,TT3,TT3: DJNZ R3,TT3
00F6,22,, RET
,,,
000E,,, END
,,,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -