本人是刚学51的菜鸟, 请教各位高手大哥一个问题,再此先谢过了!
我来点一款12864的液晶屏, 实现最简单的显示 " 间隔横条 " , 主要显示程序段用下边的这一段
的时候,一打开电源, 就可以正常的显示出 间隔横条 来, 可是, 一旦改成后边的那一段, 就绝对不
显示, 只在片1与片2的第一页显示4或8列出来,然后没反应了. 或者用镊子放在AT89C52的第19
脚, 显示屏便逐页逐列的缓慢的一列一列的显示出来, 最终片1显示正常, 片2(右半屏)却有部分乱
码. 始终想不明白:
这是开机即可以正常显示的程序段:
QUAN:
MOV R4,#00H ; 页从0开始
QUAN1:
MOV A,R4 ; 页数送到A
ORL A,#0B8H ; 计算页码值代码
MOV R_1,A ; 页代码送到指令暂存器
CALL WRI1
CALL WRI2 ; 页代码写进LCM的片1与片2
MOV R_1,#40H ; 0列开始,即列代码为40H
CALL WRI1
CALL WRI2 ; 起始列写进左右半屏
MOV R3,#00H ; 每一页写64个字节( 64 列)
QUAN2:
; MOV R_2,#55H ; 调用"QUAN"的程序已在R_2中送入55H, 这里仅作说明本段程序用
CALL WRDATA1 ; 向片1写入显示数据 55H
CALL WRDATA2 ; 向片2写入显示数据 55H
INC R3 ; 列计数器加1
CJNE R3,#40H,QUAN2 ; 列如果没有到64, 就返回继续写
INC R4 ; 页计数器加1
CJNE R4,#08H,QUAN1 ; 页如果没有到8, 就返回继续写
RET
这是在上边这段稍加修改但却不能正常显示的程序段:
QUAN:
MOV R4,#00H ; 页从0开始
QUAN1:
MOV A,R4 ; 页数送到A
ORL A,#0B8H ; 计算页码值代码
MOV R_1,A ; 页代码送到指令暂存器
CALL WRI1 ; 写页代码
CALL WRI2
MOV R_1,#40H ; 0列开始,即列代码为40H
CALL WRI1
CALL WRI2
MOV R3,#00H ; 每一页写64个字节 ( 64列 )
QUAN2:
; MOV R_2,#55H ; 调用"QUAN"的程序已在R_2中送入55H, 这里仅作说明本段程序用
CALL WRDATA1 ; 将55H写进片1 ( 左半屏 )
INC R3
CJNE R3,#64,QUAN2 ; 将左半屏的一页64列写满
MOV R3,#0
QUAN3:
; MOV R_2,#55H ; 调用"QUAN"的程序已在R_2中送入55H, 这里仅作说明本段程序用
CALL WRDATA2 ; 将55H写进片2 ( 右半屏 )
INC R3 ; 列计数器加1
CJNE R3,#40H,QUAN3 ; 将右半屏的同一页写满64列
INC R4 ; 页计数器加1
CJNE R4,#08H,QUAN1 ; 页如果没有到8, 就返回继续重复
RET
请教下,我是新会员,我现在用的是MTG-12232CFYHSGY的液晶显示器,不带字库的,请问要把汉字显示出来,该怎么编写程序?谢谢了,很急!
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |