首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LCD上的闪烁字符

LCD上的闪烁字符
EN

Stack Overflow用户
提问于 2014-03-07 17:50:12
回答 2查看 7.6K关注 0票数 0

我有个小问题要问。我有一个16x2的液晶显示屏,它与arduino.In接口,在闪烁的时候我可以闪烁光标,但我想闪烁的是数字而不是光标。如何在这里使用arduino。Keypad shield used我想在上面的日期变量上眨眼。怎么做?

代码语言:javascript
复制
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 7, 6, 5, 4);
int Blink_pos[6][2]={
  {
    5,0  }
  ,
  {
    8,0  }
  ,
  {
    11,0  }
  ,
  { 
    5,1  }
  ,
  { 
    8,1  } 
  , 
  {
    11,1  }                          
}; 
enum _Screen_edit_item
{ 
  EDIT_DAY,
  EDIT_MONTH,
  EDIT_YEAR, 
  EDIT_HOUR,
  EDIT_MINUTE, 
  EDIT_SEC
};
typedef enum _Screen_edit_item EDIT_SCREEN_ITEM;
static int local_day=1;
static int local_month=3;
static int local_year=2014;
int local_s=12;
static int local_h=23;
static int local_m=1;
void setup(){ 
  lcd.begin(16,2); 
  lcd.clear(); 
} 

void loop()
{   
  Blink_LCD(); 
}  
void Blink_LCD(){ 
  int j=0;
  for(int j=0; j<6;j++)
  {
    digitalClockDisplay(); 
    lcd.setCursor(Blink_pos[j][0],Blink_pos[j][1]);
    Serial.print(Blink_pos[j][0]); 
    Serial.print(" ");
    Serial.println(Blink_pos[j][1]); 

    delay(300); 
    switch(j)
{
case EDIT_DAY: 
  lcd.print(local_day); goto LABEL;
  break;
case EDIT_MONTH:
  lcd.print(local_month); goto LABEL; 
  break;
case EDIT_YEAR:
  lcd.print(local_year); goto LABEL; 
  break;
case EDIT_HOUR:
  lcd.print(local_h);  goto LABEL;
  break;
case EDIT_MINUTE:
  lcd.print(local_m); goto LABEL; 
  break;
case EDIT_SEC:
  lcd.print(local_s);  goto LABEL;
  break;

}
LABEL: lcd.setCursor(Blink_pos[j][0],Blink_pos[j][1]);
      lcd.print("_");
      delay(300);
      }

}
void digitalClockDisplay()
{ 
  Serial.print(local_s);

  lcd.begin(16,2);
  lcd.setCursor(0,0); 
  lcd.print("Date:");
  if((local_day>0) &&(local_day<10) )
  {  
    lcd.print("0");  
    lcd.print(local_day);
  }
  else{ 
    lcd.print(local_day);
  }  
  lcd.print("/");
  if((local_month>0) &&(local_month<10) )
  {   
    lcd.print("0");  
    lcd.print(local_month);
  }
  else{   
    lcd.print("0");  
    lcd.print(local_month);
  }  
  lcd.print("/"); 
  lcd.print(local_year);
  lcd.print("    ");  
  lcd.setCursor(0,1);   
  lcd.print("Time:");
  if((local_h>0) &&(local_h<10) ){   
    lcd.print("0");  
    lcd.print(local_h);
  }
  else{ 
    lcd.print(local_h); 
  }  
  lcd.print(":"); 
  if((local_m>0) &&(local_m<10) ){   
    lcd.print("0");  
    lcd.print(local_m);
  }
  else{ 
    lcd.print(local_m); 
  }  
  lcd.print(":");
  if((local_s>0) &&(local_s<10) ){   
    lcd.print("0");  
    lcd.print(local_s);
  }
  else{ 
    lcd.print(local_s); 
  } 
  lcd.print("    ");
}
EN

回答 2

Stack Overflow用户

发布于 2014-03-07 17:52:11

在显示数字和在适当位置显示空格之间交替。

票数 2
EN

Stack Overflow用户

发布于 2014-11-29 06:54:07

在循环中使用lcd.display();和lcd.noDisplay();使文本闪烁,同时使用延迟函数

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

https://stackoverflow.com/questions/22246699

复制
相关文章

相似问题

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