删除lcd上的单个字符

时间:2014-01-16 22:06:38

标签: arduino lcd

虽然我已经在这里通过作弊码成功清除了所有液晶显示屏(因为它没有真正清除显示)for (int i=0; i < 80; i++),现在我需要删除单个字符在我的液晶显示器上。

注意:的 我正在使用lcd module进行串行通信。我密切搜索互联网,但我找不到任何解决方案,有没有人有想法这样做?

2 个答案:

答案 0 :(得分:0)

HD44870命令集没有删除字符的规定。您需要在显示屏上读出所有以下字符,将它们写在适当的位置,然后再放一个或多个空格。

答案 1 :(得分:0)

在这里,我有一个使用键盘输入密码并将其显示在LCD上的示例:

bool enterPassword(char currentPassword[], byte lenghtMaxPassword)
{
    
    byte nextChar = 0;
    char changePassKeyPressed;
  
    while(nextChar <= lenghtMaxPassword)
    {
       changePassKeyPressed = keyboard.getKey();
      
       if(nextChar != lenghtMaxPassword)
       {     

           if(!changePassKeyPressed)
           {
                continue;
           }
           else if(changePassKeyPressed=='#')
           {
                return false; // stop entering the password
           }
           else if(changePassKeyPressed=='*')
           {
                if(nextChar != 0) // Don't try delete char, which is not exists.
                {
                  nextChar--;
                  lcd.setCursor(4 + nextChar,1); 
                  lcd.print(" ");
                  lcd.setCursor(4 + nextChar,1);                  
                }
           }
           else
           {
             lcd.print(changePassKeyPressed);
             currentPassword[nextChar] = changePassKeyPressed;
             nextChar++;
           }
       }
       else
       {
            if(changePassKeyPressed == 'D')
            {
                break;
            }
         
            if(changePassKeyPressed == '#')
            {
                return false;
            }
         
            if(changePassKeyPressed == '*')
            {
                nextChar--;
            }
       }
    }
  
    return true;
   
}

删除您在此处的单个字符...

else if(changePassKeyPressed=='*')
{
     if(nextChar != 0) // Don't try delete char, which is not exists.
     {
        nextChar--;
        lcd.setCursor(4 + nextChar,1); 
        lcd.print(" ");
        lcd.setCursor(4 + nextChar,1);                  
     }
}

在液晶显示器 lcd。 blink() 中启用光标时,外观上看起来实际上是在删除字符,实际上您替换了最后一个字符带有空格的字符。