#include <LiquidCrystal_I2C.h> //引用I2C庫
LiquidCrystal_I2C lcd(0x27, 16, 2);//I2C設(shè)備地址、列數(shù),行數(shù)
unsigned long starttime;//計時開始時刻
unsigned long stoptime;//計時終止時刻
unsigned long looptime;//計時長度
unsigned char k=0;//光標初始位置
unsigned char Nowhour=12;//小時調(diào)整
unsigned char Nowminute=13;//分鐘調(diào)整
void setup() {
// put your setup code here, to run once:
lcd.init(); // 初始化LCD
lcd.backlight(); //設(shè)置LCD背景燈亮
starttime = millis();//上電計時開始(毫秒)
}
void loop() {
// put your main code here, to run repeatedly:
unsigned char Second, Hsecond, Lsecond, Minute, Hminute, Lminute, Hour, Hhour, Lhour;
stoptime = millis();
looptime = stoptime - starttime;
Second = (looptime / 1000) % 60;//計算秒
Hsecond = Second / 10;//秒的十位
Lsecond = Second % 10;//秒的個位
Minute = (Nowminute+(looptime / 1000) / 60) % 60;
Hminute = Minute / 10;//分鐘的十位
Lminute =Minute % 10;//分鐘的個位
Hour = (Nowhour+(looptime / 1000) / 3600) % 24;
Hhour = Hour / 10;//小時的十位
Lhour = Hour% 10;//小時的個位
Lcd_XianShi(k%16, 0, Hhour);//顯示小時的十位
Lcd_XianShi((k+1)%16, 0, Lhour);//顯示小時的個位
Lcd_XianShi((k+3)%16, 0, Hminute);//顯示分鐘的十位
Lcd_XianShi((k+4)%16, 0, Lminute);//顯示分鐘的個位
Lcd_XianShi((k+6)%16, 0, Hsecond);//顯示秒的十位
Lcd_XianShi((k+7)%16, 0, Lsecond);//顯示秒的個位
if (Second % 2 == 1)//顯示冒號
{
lcd.setCursor((k+2)%16, 0);
lcd.print(":");
lcd.setCursor((k+5)%16, 0);
lcd.print(":");
}
if (Second % 2 == 0)//不顯示冒號
{
lcd.setCursor((k+2)%16, 0);
lcd.print(" ");
lcd.setCursor((k+5)%16, 0);
lcd.print(" ");
}
}
void Lcd_XianShi(unsigned char a, unsigned char b, unsigned char c)
{
lcd.setCursor(a, b); //設(shè)置顯示光標位置
lcd.print(c);
}
|