不要ds1302做電子時鍾。
過程被我吃了。
lcd連線不用我說了吧。
開關(guan) 連4和A0口。
下麵是程序:
#include <EEPROM.h>
//斷電儲(chu) 存數據,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(;;)//死循環,沒啥用,腦子一熱就寫(xie) 上了
{
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);//寫(xie) 入斷電儲(chu) 存器
delay(1000);//延時
lcd.begin(16,2);//防熊孩子拔杜邦線,初始化
}
}