[英]Only scrolling some Text in 16x2 LCD(HD44780 display programm
我有一個程序,顯示如下。
第一行:電壓:過電壓第二行:電流:過電流。
在LCD中,不能完全顯示字母OVer Voltage或Over Current。 我只想滾動這些。 但是Volt和current的字母會在那里,不需要滾動嗎?
因此,您將需要創建一個例程來循環瀏覽要顯示的消息。
例如,第一次發送“ Volt:Over Volta”,然后第二次發送“ Volt:ver Voltag”,然后發送“ Volt:er Voltage”,依此類推。
另一種選擇是在確定len之后創建例程以顯示帶有起始索引的值部分。
以下puesdo代碼未編譯/測試。
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.
}
您可能需要查看LCD是否具有滾動命令。 某些LCD上有字符緩沖區,您可以在其中寫入數據,然后發出滾動命令以移動顯示的內容。 例如,我使用的LCD可以在DDRAM中每行存儲40個字符,而只顯示16個字符。如果我沒記錯的話,則必須以這種方式一次滾動兩行。
如果這還沒有使您滿意,那么另一種方法是轉移代碼中的緩沖區並將其全部重新寫入LCD。 您可以足夠快地執行此操作,使其看起來並不可怕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.