16位lcd只亮前面8位,后面8位不亮,是怎么回事?
不知道你的地址是否正确,要不换一个检验一下是否已经坏了
哈哈,我也想换一个,不过没有,就单纯加电时,它也是只有8位亮
不只你的lcd是用什么芯片驱动,我用过天
我用的也是hd44780,但不知道怎么查后8行地址,就从单上电,它的后8位也不该亮吗?| 以下是引用guest在2003-7-28 21:03:09的发言: 不只你的lcd是用什么芯片驱动,我用过天马的,hd44780,查一下它的后8行地址,和前面8行不连续 |
你用google搜索一下,搜hd4478
我的程序如下,不知道还能怎么控制?
好久不动了,我也记不太清了,好象你应该在
我的程序现在是能显示,但是,就是到了第9位往后,就不显示了,气死人
我可以明确的告诉你,你的地址不对,如果你
第九位地址应该是40H
请问,您用总线驱动的还是用I/o驱动的
谢谢,知道了
但是,出现了点小问题,A程序能显示前8位,后8位,光标在闪,但是不显示数字,为什么?
;
MOV COM,#06H ;设置工作方式
LCALL PR1
MOV COM,#40H ;设置DDRAM地址
LCALL PR1
MOV DPTR,#TAB
MOV R2,#12
MOV R3,#00H
WRIN1: MOV A,R3
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
LCALL DELAY
INC R3
DJNZ R2,WRIN1INT: MOV A,#30H ;
MOV DPTR,#CW_Add ;指令口地址设置
MOV R2,#03H ;循环量=3
INTa: MOVX @DPTR,A ;写指令代码
LCALL DELAY ;调延时子程序
DJNZ R2,INTa
MOV COM,#038H ;设置工作方式*
LCALL PR1
MOV COM,#01H ;清屏
LCALL PR1
MOV COM,#06H ;设置输入方式
LCALL PR1
MOV COM,#0fH ;设置显示方式
LCALL PR1
RET
tAB: DB 30h,31h,32h,33h,34h
DB 35H,36H,37H,38H,39H
DB 41H,42H,43H,44H,45H
DB 46H,47H,48H,49H,4aH
16位lcd只亮前面8位,后面8位不亮,是怎么回事?
;
MOV COM,#06H ;设置工作方式
LCALL PR1
MOV COM,#40H ;设置DDRAM地址
LCALL PR1
MOV DPTR,#TAB
MOV R2,#12
MOV R3,#00H
WRIN1: MOV A,R3
MOVC A,@A+DPTR
MOV DAT,A
LCALL PR2
LCALL DELAY
INC R3
DJNZ R2,WRIN1INT: MOV A,#30H ;
MOV DPTR,#CW_Add ;指令口地址设置
MOV R2,#03H ;循环量=3
INTa: MOVX @DPTR,A ;写指令代码
LCALL DELAY ;调延时子程序
DJNZ R2,INTa
MOV COM,#038H ;设置工作方式*
LCALL PR1
MOV COM,#01H ;清屏
LCALL PR1
MOV COM,#06H ;设置输入方式
LCALL PR1
MOV COM,#0fH ;设置显示方式
LCALL PR1
RET
tAB: DB 30h,31h,32h,33h,34h
DB 35H,36H,37H,38H,39H
DB 41H,42H,43H,44H,45H
DB 46H,47H,48H,49H,4aH
好象是初始化顺序不对,大家能告诉我正确的初始化顺序吗?
还有,显示方式正确的话,就是第九位地址不对吧,一般应该是0c0H吧,试试!有什么问题找:7817594
老大,太好了,第9位就是0c0h,但是资料写的是40h,不知道是怎么回事
顺序要求不是很严格,只要把清屏防在最后就是了,还有你的显示设置是否正确,建议查附带资料