基于51单片机的电子万年历Word下载.docx
- 文档编号:17660120
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:14
- 大小:27.23KB
基于51单片机的电子万年历Word下载.docx
《基于51单片机的电子万年历Word下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机的电子万年历Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
0x4f,0x66,0x6d,
0x7d,0x07,0x7f,
0x6f,0x77,0x7c,
0x39,0x5e,0x79,
0x71};
//共阴数码管0-F编码
voiddelay(u16z)
{
u16x,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
}
/*通过count获得hour,min,sec变量值*/
voidtimecontrol()
sec++;
if(sec==60)
{
sec=0;
min++;
if(min==60)
min=0;
hour++;
if(hour>
=24)//1d
{
hour=0;
day++;
switch(mon){
case1:
case3:
case5:
case7:
case8:
case10:
case12:
if(day==32)
{//一个月
day=0;
mon++;
}
break;
case4:
case6:
case9:
case11:
if(day==31)
{//一个月
}
default:
//2月
if((year%4==0&
&
year%100!
=0)||(year%100==0&
year%400==0))//闰年
{
if(day==30)
{
}
else
if(day==29)
break;
if(mon>
=12)//1年
mon=0;
year++;
if(year>
=9999)
year=0;
}
voiddisplay(u16year1,u8mon1,u8day1,u8zs,u8zm,u8zh)
led=1;
DATA=0x00;
A=0;
BA=0;
C=0;
DATA=table[zh/10];
delay(3);
DATA=0x00;
A=1;
DATA=table[zh%10]|0x80;
BA=1;
DATA=table[zm/10];
DATA=table[zm%10]|0x80;
C=1;
led=1;
DATA=table[zs/10];
DATA=table[zs%10]|0x80;
led=0;
DATA=table[year1/1000];
delay(3);
DATA=table[year1%1000/100];
DATA=table[year1%1000%100/10];
DATA=table[year1%10];
DATA=table[mon1/10];
DATA=table[mon1%10];
DATA=table[day1/10];
DATA=table[day1%10];
voidkeyscan_settime()//时间设置模块
u16ye;
u8mo,da,st,mt,ht;
if(k1==0)
delay(10);
st=sec,mt=min,ht=hour,ye=year,mo=mon,da=day;
TR0=0;
//关闭定时器
while(k1==0)//等待用户按键
display(ye,mo,da,st,mt,ht);
if(k3==0)
if(k3==0)
while(!
k3);
ss++;
if(ss==6)ss=0;
/*通过ss选择时分秒设置*/
if(k4==0)//加数
if(k4==0)
k4);
switch(ss)
case0:
st++;
if(st==60)st=0;
break;
case1:
mt++;
if(mt==60)mt=0;
case2:
ht++;
if(ht==24)ht=0;
case3:
ye++;
if(ye==9999)ye=0;
case4:
mo++;
if(mo==13)mo=0;
case5:
da++;
if(da==32)da=0;
default:
;
}
if(k5==0)//减数
if(k5==0)
k5);
if(st>
0)st--;
elsest=0;
if(mt>
0)mt--;
elsemt=0;
if(ht>
0)ht--;
elseht=0;
if(ye>
0)ye--;
elseye=0;
if(mo>
0)mo--;
elsemo=0;
if(da>
0)da--;
elseda=0;
;
TR0=1;
sec=st,min=mt,hour=ht,day=da,mon=mo,year=ye;
display(year,mon,day,sec,min,hour);
voidkeyscan_time()//用户定时模块
if(k2==0)
s=sec;
m=min;
h=hour,y=year,month=mon,d=day;
while(k2==0)//开始定时设置
display(y,month,d,s,m,h);
s++;
if(s==60)s=0;
m++;
if(m==60)m=0;
h++;
if(h==24)h=0;
y++;
if(y==9999)y=0;
month++;
if(month==13)month=0;
d++;
if(d==32)d=0;
if(s>
0)s--;
elses=0;
if(m>
0)m--;
elsem=0;
if(h>
0)h--;
elseh=0;
if(y>
0)y--;
elsey=0;
if(month>
0)month--;
elsemonth=0;
if(d>
0)d--;
elsed=0;
}}
voidbuz()
if((year==y)&
(mon==month)&
(day==d)&
(hour==h)&
(min==m)&
(sec==s))
s7=0;
delay(1000);
s7=1;
voidtime0_init()
TMOD=0x01;
TH0=0x4b;
TL0=0xfe;
EA=1;
ET0=1;
voidmain(void)
time0_init();
while
(1)
keyscan_settime();
keyscan_time();
buz();
voidTime0()interrupt1
count++;
if(count==20)
count=0;
timecontrol();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 电子 万年历