⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showyearmonthday.txt

📁 基于C51单片机开发一个能显示时间年月日期的代码
💻 TXT
字号:
#include <reg52.h>
unsigned int num,sec,min,hour,date,month,year1,year2,year;
Timer() interrupt 1 using 1
{unsigned int mon;
TH0=-50000/256;
TL0=-50000%256;
num++;
if (num==20)
{sec++;
num=0;}
if (sec==60)
{min++;
sec=0;}
if(min==60)
{hour++;
min=0;
}
if(hour==24)
{hour=0;
date++;
if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
 mon=32;
 else if ((month==2)&&(year%4==0 && (year%400==0 || year%100!=0)))
 {
mon=30;
}else if ((month==2)&&(!(year%4==0 && (year%400==0 || year%100!=0)))){
mon=29; }

else 
{mon=31;  }
if(date==mon)
{date=1;
month++;
if(month==13)
{month=0;
year++;
}}}
}

void dlmsl(void)
{
unsigned int i;
for(i=25000;i>0;i--)
{}
}
void dlms(void)
{
unsigned int j;
for(j=500;j>0;j--)
{}
}
unsigned char kbscan(void)
{unsigned char sccode,recode;
P1=0xf0;
if((P1&0xf0)!=0xf0)
{ dlms();
if((P1&0xf0)!=0xf0)
{sccode=0xfe;
while((sccode&0x10)!=0)
{
P1=sccode;
if((P1&0xf0)!=0xf0)
 {recode=P1&0xf0;
 sccode=sccode&0x0f;
 return(sccode+recode);
}
else
sccode=(sccode<<1)|0x01;
}
}

}
 return(0) ;

}
void dispshijian()
{unsigned int a,b;
unsigned char code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
if(sec%2==0)
{P0=0x0;
 P2=0x81;
 dlms();}
else{
 P0=0x80;
 P2=0x81;
 dlms();
}
a=min/10;
P0=tab[a];
P2=0x82;
dlms();
b=min%10;
P0=tab[b];
P2=0x83;
dlms();
a=hour/10;
P0=tab[a];
P2=0x80;
dlms();
b=hour%10;
P0=tab[b];
P2=0x81;
dlms();
}
void dispyueri()
{ unsigned int a,b;
unsigned char code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
a=date/10;
P0=tab[a];
P2=0x82;
dlms();
b=date%10;
P0=tab[b];
P2=0x83;
dlms();
a=month/10;
P0=tab[a];
P2=0x80;
dlms();
b=month%10;
P0=tab[b];
P2=0x81;
dlms();
}
void dispnian()
{ unsigned int a,b;
unsigned char code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
a=year2/10;
P0=tab[a];
P2=0x82;
dlms();
b=year2%10;
P0=tab[b];
P2=0x83;
dlms();
a=year1/10;
P0=tab[a];
P2=0x80;
dlms();
b=year1%10;
P0=tab[b];
P2=0x81;
dlms();
}
void main()
{unsigned char key,shikey,rikey,niankey,mon;
year1=20;
year2=8;
year=2008;
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
while(1)
{
key=kbscan();
if(key==0xd7)
{while(1)
{shikey=kbscan();
if((shikey==0xe7)||(shikey==0xeb))
break;
if(shikey==0xb7)
{hour++;
if(hour==24)
hour=0;}
else if(shikey==0x77)
{min++;
if(min==60)
{min=0;
hour++;}}
dispshijian();
dispshijian();
dispshijian();
dispshijian();
dispshijian();
}
}
if(key==0xe7)
{while(1)
{rikey=kbscan();
if((rikey==0xd7)||(rikey==0xeb))
break;
if(rikey==0xbb)
{month++;
if(month==13)
month=1;}
else if(rikey==0x7b)
{date++;
if((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12))
 mon=32;
 else if ((month==2)&&(year%4==0 && (year%400==0 || year%100!=0)))
 {
mon=30;
}else if ((month==2)&&(!(year%4==0 && (year%400==0 || year%100!=0)))){
mon=29; }

else 
{mon=31;  }
if(date==mon)
{date=1;
month++;}}
dispyueri();
dispyueri();
dispyueri();
dispyueri();
dispyueri();
}
}
if(key==0xeb)
{while(1)
{niankey=kbscan();
if((niankey==0xe7)||(niankey==0xd7))
break;
if(niankey==0xbd)
{year1++;
if(year1==100)
   year1=0;}
else if(niankey==0x7d)
{year2++;
if(year2==100)
   year2=0;}
year=year1*100+year2;
dispnian();
dispnian();
dispnian();
dispnian();
dispnian();
}
}
}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -