单片机系统中的汉字显示解决方案
PR1:LCALL PR01 ;双字节参数R2,R3
MOV A,R2
LCALL PR14
PR11:LCALL PR01 ;单字节参数R3
MOV A,R3
LCALL PR14
PR12:LCALL PR01 ;无参数指令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),汉字区别24H,位码25H
MOV B,#94 ;每区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 ;因为存储器位于单片机系统的7FFFH~0FFFFH
MOV DPH,24H
MOV DPL,25H
MOV R2,#32 ;在该位置连续取出32个字节
MOV R1,#0C0H
DPHZ2:MOVX A,@DPTR
INC DPTR
MOV @R1,A
INC R1
DJNZ R2,DPHZ2
MOV R1,#0C0H
MOV A,R6 ;根据行列位置计算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 ;双字节参数R2,R3
MOV A,@R1
MOV R3,A
INC R1
MOV R4,#0C0H
LCALL PR11 ;单字节参数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
注:由于以上程序直接引自下面的应用实例,调用以上程序时请让寄存器组位于第2区,即R0对应10H。
led显示器相关文章:led显示器原理
评论