打印

在1602LCD中如何控制光标移位?

[复制链接]
7192|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaohq|  楼主 | 2009-3-22 14:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.一开始让光标在第二行第五位(0x80+0x40+5)处闪烁,想按一下KEY1光标就向右移一位继续闪,当移到第8位时就又返回到第5位,程序怎么写啊?
2.一开始让光标在第二行第五位(0x80+0x40+5)处闪烁,当按一下KEY2光标处的那个字符就从0到9循环加一并显示出来.怎么写?

刚学会了1602的部分显示方法.如写指令,写数据,光标定位.

相关帖子

沙发
NYWJLWJH| | 2009-3-24 18:01 | 只看该作者

这个好办

1.闪烁:在某一位间断写入带光标和不带光标的字符,光标就闪烁了。如在第二行第五位先发送一个字符“A”,0.5S后再在此位写一个带光标的字符“A",
那么光标就闪烁了。
2.光标移位:设一个光标位置计数器,当按一下KEY1时计数器加一或减一,根据光标位置计数器的内容来选择需闪动光标的位,光标就可以移位了。

3.一开始让光标在第二行第五位(0x80+0x40+5)处闪烁,当按一下KEY2光标处的那个字符就从0到9循环加一并显示出来.怎么写?

    按一下KEY2让闪烁位中的内容加1,加到10后将其清零。

使用特权

评论回复
板凳
gaohq|  楼主 | 2009-3-24 18:54 | 只看该作者

谢谢楼上.

目前读光标位置的命令还没调好.按楼主的法子可行但不具有通用性.
if(key3==0)
            {
                delay(10);
                if(key3==0)
                    {
                        while(key3==0);
                        //i++;
                        //if(i>10)
                        //i=8;
                        //possit(0x40+i);
                        write_com(0x14);   //此命令让光标右移一位.
                        i=readgb_add();    //读光标所处的位置.此命令不行.
                        if(i==0x4A)
                            i=0x48;
                        possit(i);
                    }
            }
                        
}
=============================
uchar readgb_add()
{    uchar add;
    rs=0;
    rw=1;
    en=1;
    _nop_();
    _nop_();
    add=P0;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    en=0;
    add=add<<1;
    return add;
}

使用特权

评论回复
地板
bin362422| | 2009-8-23 19:52 | 只看该作者
看看数据手册
为什么要左移一位呢,读进来的状态D0~D7是当前地址指针的数据啊。

这儿为什么QQ截图粘不上啊

使用特权

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

本版积分规则

378

主题

3763

帖子

5

粉丝