unsigned char cen1=0;
void interserve() interrupt 1 {
time++; if(time==20) {
time=0; second++; }
if(second==60) { second=0; minute++; if(minute==60) {
minute=0; hour++;
if(hour==24) { hour=0;
day++;
if(month!=2&&month!=4&&month!=6&&month!=9&&month!=11) {
if(day==32) {day=0;month++;} }
else {
if(month!=2) {if(day==31)
{day=0;month++;} } else
{
cen1=cent*100+year;
if((cen1%4==0&&cen10!=0)||(cen1@0==0)) //闰年 {if(day==30) {day=0;month++;} } else
{
if(day==29)
{day=0;month++;}
} } } } }
if(month==13) {
month=0; year++; if(year==100) { year=0; cent++; } } }
TH0=(65536-46083)/256; TL0=(65536-46083)%6; }
void DisplayWord(void) //字符 {
Out_Char(0, 3, 1,\时间\ Out_Char(30, 0, 1,\年\ Out_Char(60, 0, 1,\月\ Out_Char(90, 0, 1,\日\ Out_Char(37, 3, 1,\ Out_Char(67, 3, 1,\ Out_Char(97, 3, 1,\ Out_Char(0, 6, 1,\温度\ Out_Char(36, 6, 1,\ Out_Char(60, 6, 1,\℃\ }
void DisplaySec(void) {
i[0]=(second/10)+0x30;
i[1]=(second)+0x30; Out_Char(105, 3, 1,i); }
void DisplayMin(void) {
i[0]=(minute/10)+0x30; i[1]=(minute)+0x30; Out_Char(75, 3, 1,i); }
void DisplayHou(void) {
i[0]=(hour/10)+0x30; i[1]=(hour)+0x30; Out_Char(45, 3, 1,i); }
void DisplayDay(void) {
i[0]=(day/10)+0x30; i[1]=(day)+0x30; Out_Char(75, 0, 1,i); }
void DisplayMon(void) {
i[0]=(month/10)+0x30; i[1]=(month)+0x30; Out_Char(45, 0, 1,i); }
void DisplayCen(void) {
i[0]=(cent/10)+0x30; i[1]=(cent)+0x30; Out_Char(0, 0, 1,i); }
void DisplayYea(void) {
i[0]=(year/10)+0x30; i[1]=(year)+0x30; Out_Char(15, 0, 1,i); }
void main()
{
EA=1; ET0=1;
TMOD=0x11;
TH0=(65536-46083)/256;
TL0=(65536-46083)%6; //50/1.085 即50ms一次中断
TR0=1; LCD_Init(); //SetFlag(); while(1) {
if(!KEY1) {
delay(50); //消抖
if(!KEY1) { minute++;if(minute==60)minute=0;
} } if(!KEY2) {
delay(50); if(!KEY2)
{
hour++;if(hour==24)hour=0;
} }
if(!KEY3) {
delay(50); if(!KEY3) {
day++;
if(month!=2&&month!=4&&month!=6&&month!=9&&month!=11) {
if(day==32) day=0 ; } else
{
if(month!=2) {if(day==31)
day=0;}
else {
cen1=cent*100+year;
if((cen1%4==0&&cen10!=0)||(cen1@0==0)) {if(day==30) day=0; } else {
if(day==29) day=0; } } } } }
if(!KEY4) { delay(50); if(!KEY4)
{ month++;if(month==13)month=0; } } if(!KEY5) { delay(50); if(!KEY5) {
year++;
if(year==100) {year=0;cent++;} } }
if(!KEY6) { delay(50); if(!KEY6)
{ year--;
if(year==255) {year=99;cent--;} }
}
if(hour==6&&minute==0) {if(second<5) LED=0; else LED=1; }
DisplayTemp(); DisplayWord(); DisplayMin(); DisplaySec(); DisplayHou(); DisplayDay(); DisplayMon(); DisplayYea(); DisplayCen(); } }
相关推荐: