打印

关于12864的疑问

[复制链接]
1430|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mlmbcsz|  楼主 | 2011-7-24 19:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
POS, os, se, LCD, CD
老师 void lcd_pos(uchar X,uchar Y)
{
     uchar pos;
    if (X==0)     {X=0x80;}
    else if (X==1)     {X=0x90;}
    else if (X==2)     {X=0x88;}
    else if (X==3)     {X=0x98;}
     pos = X+Y ;
     lcd_wcmd(pos);     //显示地址
}  
为什么在12864液晶上显示DS1302时间时,pos(0,0)可以显示两个00是挨着的,我再写pos(0,1)和“:”它也会挨着,但我再写pos(0,2)和“00”时,“:”和“00”就分开了。00:00:00而不是这样00:00:00,一直很困惑,12864一个汉字占两个字符,显示字符只用写一次地址,地址可以自加. 能不能确定一个字符的地址写一个字符呢 请指教!谢谢

相关帖子

沙发
cym0417| | 2011-7-24 20:01 | 只看该作者
12864液晶的一行16字节,但是只有8个地址,就是说,每个地址上有两字节。它可以从左到右一个字节一个字节的自加地址指针,但是就像你讲的,有8个字节的的地址是不能通过写指令来将指针移到相应的位置。也就是说你想在每个地址的第二字节,那你就必须写完第一个字节,连着写第二字节才能做到,而不能跳过第一个字节。如果你想写成00:00:00,每次写两个字节,那就分别每次刷新,其实液晶写的速度也相当快,你每次把这八个字节都刷新一遍就行了。

使用特权

评论回复
板凳
mlmbcsz|  楼主 | 2011-7-25 08:05 | 只看该作者
谢谢!
老师能不能写一个能刷新八个字节参考一下!十分感谢!

使用特权

评论回复
地板
mlmbcsz|  楼主 | 2011-7-25 10:12 | 只看该作者
老师,我好好看了你的提示,“每次写两个字节,那就分别每次刷新”其实在1602中我用过的,但也是要寻地址才可以
我写一个子函数
void Sfm(uchar add,uchar dat)
{
        uchar ge,shi;
        ge=dat%10;
        shi=dat/10;
        Write_comm(add);
        Write_dat(0x30+shi);
       Write_dat(0x30+ge);
}
我现在要在第一行显示00:00:00,就这样
lcd_pos(0,0);
Write_dat(0,dat1)//dat1就是前两个0;
但是我觉得还是要寻地址,第一个":"后面的两个0怎么刷新呢?
请指教!
谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

30

帖子

1

粉丝