單片機系統(tǒng)中的漢字顯示解決方案
PR1:LCALL PR01 ;雙字節(jié)參數(shù)R2,R3
MOV A,R2
LCALL PR14
PR11:LCALL PR01 ;單字節(jié)參數(shù)R3
MOV A,R3
LCALL PR14
PR12:LCALL PR01 ;無參數(shù)指令R4
MOV A,R4
SJMP PR15
PR14:MOV DPTR,#LCDDAT
PR15:MOVX @DPTR,A
RET
RL245:MOV R7,#5 ;24H25H左移5
RLL1:CLR C
MOV A,25H
RLC A
MOV 25H,A
MOV A,24H
RLC A
MOV 24H,A
DJNZ R7,RLL1
RET
;行位置R6(0~7),列位置R5(0~29),漢字區(qū)別24H,位碼25H
MOV B,#94 ;每區(qū)94個漢字
MUL AB
ADD A,25H
MOV 25H,A
CLR A
ADDC A,B
MOV 24H,A
RR A ;獲得32KB為1頁的頁號
RR A
ORL A,#0F0H
MOV P1,A ;頁號送P1口
LCALL RL245 ;漢字序號乘以32
SETB 24H,7 ;因為存儲器位于單片機系統(tǒng)的7FFFH~0FFFFH
MOV DPH,24H
MOV DPL,25H
MOV R2,#32 ;在該位置連續(xù)取出32個字節(jié)
MOV R1,#0C0H
DPHZ2:MOVX A,@DPTR
INC DPTR
MOV @R1,A
INC R1
DJNZ R2,DPHZ2
MOV R1,#0C0H
MOV A,R6 ;根據(jù)行列位置計算LCD指針
MOV B,#16
MUL AB
MUL B,#30
MUL AB
ADD A,R5
MOV 25H,A
MOV R2,A
CLR A
ADDC A,B
MOV 24H,A
MOV R3,A
MOV 26H,#16 ;將取出的點陣送LCD顯示
PRHZ6:MOV R4,#24H
LCALL PR1 ;雙字節(jié)參數(shù)R2,R3
MOV A,@R1
MOV R3,A
INC R1
MOV R4,#0C0H
LCALL PR11 ;單字節(jié)參數(shù)R3
MOV A,@R1
MOV R3,A
INC R1
MOV R4,#0C0H
LCALL PR11
MOV A,#30
ADD A,25H
MOV R2,A
CLR A
ADDC A,24H
MOV R3,A
MOV 24H,A
DJNZ 26H,PRHZ6
RET
注:由于以上程序直接引自下面的應(yīng)用實例,調(diào)用以上程序時請讓寄存器組位于第2區(qū),即R0對應(yīng)10H。
led顯示器相關(guān)文章:led顯示器原理
評論