首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在16x2lcd中滚动部分文本(HD44780显示程序)

仅在16x2lcd中滚动部分文本(HD44780显示程序)
EN

Stack Overflow用户
提问于 2016-01-15 15:15:50
回答 2查看 683关注 0票数 1

我有一个程序,显示如下。

第一线:电压:过电压二线:电流:过电流。

在液晶显示器中,不能充分显示字母OVer电压或过电流。我只想滚动这些。但伏特:和当前:字母会在那里,将不需要滚动?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-15 22:58:21

因此,您需要创建一个例程来循环您想要显示的消息。

例如,第一次发送"Volt: Over“,然后再发送"Volt: Voltag”,再发送"Volt: ErVol电压“等等。

另一个选项是创建一个例程,在确定len之后用一个起始索引显示值部分。

未编译/测试下列puesdo代码。

代码语言:javascript
复制
char buf[17];
char label[]= "Current";
char value[]= "Over Current";

while(1)
{
    if (++start_pos >= (strlen(value)+strlen(label)-16)
    {
          start_pos=0;
          delay(500); //ms
    }
    snprintf(buf,16,"%s: %s",label,value[start_pos]);
    puts(buf);  // whatever the name of your routine to send string to LCD
    if (start_pos==0)
    {
         delay(500); //ms
    }
    delay(1000); //ms NOTE: you probably want to go do some other code during this time.
 }
票数 1
EN

Stack Overflow用户

发布于 2016-01-18 06:38:17

您可能想看看您的LCD是否有滚动命令。有些LCD有一个字符缓冲区,您可以在其中写入数据,然后给出滚动命令来转移显示的内容。例如,我使用了一个LCD,它可以在DDRAM中存储40个字符,同时只显示16个字符。如果我没记错的话,你必须同时滚动这两条线。

如果这不让你的幻想发痒,另一种方法是在代码中转换你的缓冲区,并将其全部重写到液晶显示器上。你可以做得足够快,这样看起来就不可怕了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34814207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档