新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > LCD1602液晶顯示屏顯示時鐘且能修改時間

LCD1602液晶顯示屏顯示時鐘且能修改時間

作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏

void display(uchar hour,uchar minutes,uchar seconds)//接收并發(fā)送數(shù)據(jù)到液晶屏幕
{
uchar hourge,hourshi,minutesshi,minutesge,secondsshi,secondsge;
hourshi=hour/10;
hourge=hour%10;
write_command(0x80+0x40);
write_date(hourshi+48);
delay(1);
write_date(hourge+48);
delay(1);

本文引用地址:http://butianyuan.cn/article/201612/324165.htm

minutesshi=minutes/10;
minutesge=minutes%10;
write_command(0x80+0x43);
write_date(minutesshi+48);
delay(1);
write_date(minutesge+48);
delay(1);

secondsshi=seconds/10;
secondsge=seconds%10;
write_command(0x80+0x46);
write_date(secondsshi+48);
delay(1);
write_date(secondsge+48);
delay(1);
}
void revise()
{
if(K1==0)
{
delay(5);
if(K1==0)
{
cnt++;//計數(shù)第幾次按下
TR0=0;
}
while(!K1);
delay(5);
while(!K1);
}
if(cnt==1)//第一次按下,調(diào)整秒鐘,調(diào)整時秒鐘有光標閃爍
{
write_command(0x80+0x46);
write_command(0x0f);
if(K2==0)
{
delay(5);
if(K2==0)
{
seconds++;
if(seconds==60)
{
seconds=0;
}
}
while(!K2);
delay(5);
while(!K2);
}
if(K3==0)
{
delay(5);
if(K3==0)
{
seconds--;
if(seconds==-1)//here is a bug
{
seconds=59;
}
}
while(!K3);
delay(5);
while(!K3);
}
}

if(cnt==2)//第二次按下,調(diào)整分鐘,調(diào)整時秒鐘有光標閃爍
{
write_command(0x80+0x43);
write_command(0x0f);
if(K2==0)
{
delay(5);
if(K2==0)
{
minutes++;
if(minutes==60)
{
minutes=0;
}
}
while(!K2);
delay(5);
while(!K2);
}
if(K3==0)
{
delay(5);
if(K3==0)
{
minutes--;
if(minutes==-1)//here is a bug
{
minutes=59;
}
}
while(!K3);
delay(5);
while(!K3);
}
}
if(cnt==3)//第三次按下,調(diào)整時鐘,調(diào)整時秒鐘有光標閃爍
{
write_command(0x80+0x40);
write_command(0x0f);
if(K2==0)
{
delay(5);
if(K2==0)
{
hour++;
if(hour==24)
{
hour=0;
}
}
while(!K2);
delay(5);
while(!K2);
}
if(K3==0)
{
delay(5);
if(K3==0)
{
hour--;
if(hour==-1)//here is a bug
{
hour=23;
}
}
while(!K3);
delay(5);
while(!K3);
}
}
if(cnt==4)
{
TR0=1;
cnt=0;
}
}
void main()
{
LCDinit();
Time0init();
Clockinit();
while(1)
{
revise();
display(hour,minutes,seconds);
}
}
void Time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==20)
{
count=0;
seconds++;
if(seconds==60)
{
seconds=0;
minutes++;
if(minutes==60)
{
minutes=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
}
}


上一頁 1 2 下一頁

評論


技術(shù)專區(qū)

關(guān)閉