標(biāo)題:
單片機(jī)電子時鐘程序加原理圖
[打印本頁]
作者:
無法為
時間:
2020-6-11 10:48
標(biāo)題:
單片機(jī)電子時鐘程序加原理圖
電子時鐘的主程序加原理圖
if(s1num==8)
{
s1num=0;
write_com(0x0c);
TR0=1;
}
}
if(s1num!=0)
{
if(s2==0)
{
delay(5);
if(s2==0)
while(!s2);
if(s1num==1)
{
miao++;
if(miao==60)
miao=0;
write_sfm(10,miao);
write_com(0x80+0x40+10);
}
if(s1num==2)
{
fen++;
if(fen==60)
fen=0;
write_sfm(7,fen);
write_com(0x80+0x40+7);
}
if(s1num==3)
{
shi++;
if(shi==24)
shi=0;
write_sfm(4,shi);
write_com(0x80+0x40+4);
}
if(s1num==4)
{
xingqi++;
if(xingqi==8)
xingqi=1;
write_com(0x80+14);
write_sf(14,xingqi);
}
if(s1num==5)
{
tian++;
if(tian==32)
tian=1;
write_sf(9,tian);
write_com(0x80+9);
}
if(s1num==6)
{
yue++;
if(yue==13)
yue=1;
write_sf(6,yue);
write_com(0x80+6);
}
if(s1num==7)
{
nian++;
if(nian==100)
nian=00;
write_sf(3,nian);
write_com(0x80+3);
}
}
}
if(s3==0)
{
delay(5);
if(s3==0)
{
while(!s3);
if(s1num==1)
{
miao--;
if(miao==-1)
miao=59;
write_sfm(10,miao);
write_com(0x80+0x40+10);
}
if(s1num==2)
{
fen--;
if(fen==-1)
fen=59;
write_sfm(7,fen);
write_com(0x80+0x40+7);
}
if(s1num==3)
{
shi--;
if(shi==-1)
shi=23;
write_sfm(4,shi);
write_com(0x80+0x40+4);
}
if(s1num==4)
{
xingqi--;
if(xingqi==0)
xingqi=7;
write_sf(14,xingqi);
write_com(0x80+14);
}
if(s1num==5)
{
tian--;
if(tian==0)
tian=31;
write_com(0x80+9);
}
if(s1num==6)
{
yue--;
if(yue==0)
yue=12;
write_sf(6,yue);
write_com(0x80+6);
}
if(s1num==7)
{
nian--;
if(nian==0)
nian=99;
write_sf(3,nian);
write_com(0x80+3);
}
}
}
}
if(s4==0)
{
delay(5);
if(s4==0)
{
s1num=0;
TR0=1;
}
while(!s4);
delay(5);
}
}
void main()
{
init();
while(1)
{
keyscan();
if(fen==0)
{ s5=1;}
else
{s5=0;}
}
}
uchar leap(uchar nian) //判斷是否閏年并返回二月份的天數(shù)
{ //閏年返回29,平年返回28
nian+=2000;
if(nian%4==0)
{if(nian%100==0)
{if(nian%400==0)
return 29;
else return 28;
}
else return 29;
}
else return 28;
}
uchar mon(uchar yue) //計(jì)算并返回每個月的天數(shù)
{
switch(yue)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:return 31;break; //1,3,5,7,8,10,12月每月31天
case 4:
case 6:
case 9:
case 11:return 30;break; //4,6,9,11月每月30天
case 2: return leap(nian);break;//返回二月份的天數(shù)
default:break;
}
}
void time0() interrupt 1
{
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
count++;
if(count==20)
{
count=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
{
shi=0;
n=mon(yue);
tian++;
xingqi++;
if(++tian>n)
{
tian=01;
yue++;
if(yue==13)
{
yue=0;
nian++;
}
write_sf(3,nian);
write_com(0x80+3);
}
write_sf(6,yue);
write_com(0x80+6);
}
write_sf(14,xingqi);
write_com(0x80+14);
write_sf(9,tian);
write_com(0x80+9);
}
write_sfm(4,shi);
write_com(0x80+0x40+4);
}
write_sfm(7,fen);
write_com(0x80+0x40+7);
}
write_sfm(10,miao);
write_com(0x80+0x40+10);
}
復(fù)制代碼
51hei圖片20200611104814.png
(20.96 KB, 下載次數(shù): 42)
下載附件
2020-6-11 10:47 上傳
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1