电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 基础入门 >> Arduino开发学习 >> 正文

arduino1602液晶屏电子时钟

作者:佚名    文章来源:本站原创    点击数:    更新时间:2021/10/17

不要ds1302做电子时钟。
过程被我吃了。

lcd连线不用我说了吧。

开关连4和A0口。

下面是程序:

#include <EEPROM.h>
//断电储存数据,EEPROM
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
//LCD屏幕引脚设置
int lhour=0,lmin=0,lsec=0;
void setup()
{
  lhour=EEPROM.read(1);
  lmin=EEPROM.read(2);
  lsec=EEPROM.read(3);//读取上一次的时间
  pinMode(2,OUTPUT);
  digitalWrite(2,HIGH);
  pinMode(3,OUTPUT);
  digitalWrite(3,LOW);
  pinMode(4,OUTPUT);
  digitalWrite(4,HIGH);
  pinMode(6,INPUT);
  lcd.begin(16,2);
  lcd.clear(); //初始化
}
void screen()//屏幕输出
{
  lcd.setCursor(4,0);
  if(lhour<10)
  {
    lcd.print("0");
  }
  lcd.print(lhour);lcd.print(":");
   if(lmin<10)
  {
    lcd.print("0");
  }
  lcd.print(lmin);lcd.print(":");
   if(lsec<10)
  {
    lcd.print("0");
  }
  lcd.print(lsec);
}
void loop()
{
  for(;;)//死循环,没啥用,脑子一热就写上了
  {
    if(digitalRead(14))//调时间用
    {
      for(;digitalRead(14);)
      {
        lmin++;
        if(lsec>=60) {lmin++; lsec=0;}
        if(lmin>=60) {lhour++; lmin=0;}
        if(lhour>=24) {lhour=0;}
        screen();
        delay(300);
        lcd.clear();
      }
    }
    if(lsec>=60) {lmin++; lsec=0;}
    if(lmin>=60) {lhour++; lmin=0;}
    if(lhour>=24) {lhour=0;}//时间进位
    screen();
    lsec++;
    EEPROM.write(1,lhour);EEPROM.write(2,lmin);EEPROM.write(3,lsec);//写入断电储存器
    delay(1000);//延时
    lcd.begin(16,2);//防熊孩子拔杜邦线,初始化
  }

}

Tags:Arduino,介绍  
责任编辑:admin
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询