微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机数字钟程序

单片机数字钟程序

时间:12-31 来源:互联网 点击:

while(1)
{if(!P3_3)
{delayX1ms(10);
if(!P3_3)
{while(!P3_3)
{if(++c>=1000)
{c=0;
display();
while(!P3_3)
{display();if(++c>=10)
{c=0;
if(++month>12)month=1;
display();
}
}
}
}
if(++month>12)month=1;
c=0;
}
a=1;
b=0;
}
else
{if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
if(a)display();
else display2('m');
if(++b>=20)
{b=0;
a=!a;
}
}
if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
}

while(1)
{if(!P3_3)
{delayX1ms(10);
if(!P3_3)
{while(!P3_3)
{if(++c>=1000)
{c=0;
display();
while(!P3_3)
{display();if(++c>=10)
{c=0;
if(++year>=2100)year=2000;
display();
}
}
}
}
if(++year>=2100)year=2000;
c=0;
}
a=1;
b=0;
}
else
{if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
if(a)display();
else display2('y');
if(++b>=20)
{b=0;
a=!a;
}
}
if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
}
while(1)
{if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
if(a)display();
else display2('S');
if(++b>=20)
{b=0;
a=!a;
}
if(!P3_3)
{delayX1ms(10);
if(!P3_3)
sec=0;
}
if(!P3_2){delayX1ms(10);if(!P3_2){while(!P3_2); break;}}
}

}

uchar weekday(void)
{uint a=year-1;
uint b=0;
uchar i;
for(i=1;imonth;i++)
b+=monthdata[i-1];
b+=date;
if(month>2isleap())
b++;
i=(a+a/4-a/100+a/400+b)%7;
if(i)return i;
else return 8;
}

uchar daysofmonth(void) reentrant
{if(month!=2) return monthdata[month-1];
else if(isleap()) return 29;
else return 28;
}

bit isleap(void) reentrant
{return (year%4==0year%100!=0||year%400==0);
}

到这里这个单片机数字钟c程序就完毕了程序很长而且没什么注释,希望大家慢慢搞定。有什么问题可在本站论坛提出,马上为您解决。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top