不要ds1302做電子時鐘。
過程被我吃了。
lcd連線不用我說了吧。
開關(guān)連4和A0口。
下面是程序:
#include <EEPROM.h>
//斷電儲存數(shù)據(jù),EEPROM
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
//LCD屏幕引腳設(shè)置
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(;;)//死循環(huán),沒啥用,腦子一熱就寫上了
{
if(digitalRead(14))//調(diào)時間用
{
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);//防熊孩子拔杜邦線,初始化
}
}