12864LCD移位显示怎么实现啊
各位师父,请教一下,如何让12864一位一位的显示数字,以下我是编的一段程序:..............
Lcd_WriteCmd(0x80);
WriteStr("DesignedOutV ");
Lcd_WriteCmd(0x90);
WriteStr("(mV) ");
if(c1==0){Lcd_WriteCmd(0x88);} /*选择液晶地址*/
if(c1==1){Lcd_WriteCmd(0x89);}
if(c1==2){Lcd_WriteCmd(0x8a);}
if(c1==3){Lcd_WriteCmd(0x8b);}
wait();
RS=1;
RW=0;
E=0;
delay(2);
LcdData=num1; /*将数字写入液晶*/
E=1;
delay(2);
E=0;
a=1;
.........
这段程序一个数字占了两格,怎么样才能让它变成一个数字占一格啊?好像是以下这几句中的液晶地址0x88、0x89、0x8a、0x8b出了问题,但我不知道怎么改,请师父们指点。
if(c1==0){Lcd_WriteCmd(0x88);}
if(c1==1){Lcd_WriteCmd(0x89);}
if(c1==2){Lcd_WriteCmd(0x8a);}
if(c1==3){Lcd_WriteCmd(0x8b);} 不知所云 额。
看上去貌似 7920 你可以看看7920的资料,上面讲的有,是你没有设置好,单字节和双字节
点击此处下载 ourdev_473470.pdf(文件大小:1.77M) (原文件名:ST7920c34.pdf) 我知道怎么解决我的问题了,下面是我改完了的程序:
..............
case 1:key=1;
{a++;
if(a==1&&k==0)
{
j+=1;
Lcd_WriteCmd(0x80);
WriteStr("DesignedOutV ");
Lcd_WriteCmd(0x90);
WriteStr("(mV) ");
Lcd_WriteCmd(0x88);
WriteStr("0 0 0 0 ");
Lcd_WriteCmd(0x88);
Lcd_WriteCmd(0x0f);
WriteStr("0");
}
if(a==2&&k==0)
{
v+=1;
if(v==10) v=0;
Lcd_WriteCmd(0x80);
WriteStr("DesignedOutV ");
Lcd_WriteCmd(0x90);
WriteStr("(mV) ");
if(c1==0){Lcd_WriteCmd(0x88);}
if(c1==1){Lcd_WriteCmd(0x89);}
if(c1==2){Lcd_WriteCmd(0x8a);}
if(c1==3){Lcd_WriteCmd(0x8b);}
Lcd_WriteCmd(0x0f);
wait();
RS=1;
RW=0;
E=0;
delay(2);
LcdData=num1;
E=1;
delay(2);
E=0;
a=1;
}
....................................
这样就可以把我说的问题给避免了。
谢谢各位师傅热心帮忙,非常感谢!!!
页:
[1]