辽东学院课程设计报告书 智能仪器仪表综合设计与实训
}
}
}
{ }
month=1; year++;
}
if(x==0)bianhuan1(); }
timer1() interrupt 3 {
TL1=tl0_f;TH1=th0_f; //调入预定值 BEEP=~BEEP; //取反音乐输出IO }
void main(void) {
init(); while(1) {
display(); scankey();
if(y==1&&(set_h==h&&set_m==m))play(mamahao);
else BEEP=0; }
- 30 -
辽东学院课程设计报告书 智能仪器仪表综合设计与实训
}
void init(void)//初始化函数 { BEEP=0; }
void display(void)//显示函数 {
P2=0xfe; P0=a[qian];
if(x%2==1&&cnt>=10)P0&=0x00; delay(15); P2=0xfd;
P0=a[bai];
if(x%2==1&&cnt>=10)P0&=0x00; else if(x==0&&cnt>=10)P0|=0x80; delay(15); P2=0xfb;
P0=a[shi];
if(((x%2==0&&x!=0)||x==7)&&cnt>=10)P0&=0x00; delay(15); P2=0xf7;
P0=a[ge];
- 31 -
TMOD=0x11; TH0=0x3c; TL0=0xb0; ET0=1; TR0=1; ET1=1; TR1=0; EA=1;
辽东学院课程设计报告书 智能仪器仪表综合设计与实训
}
if(((x%2==0&&x!=0)||x==7)&&cnt>=10)P0&=0x00; delay(15);
void m_choose(void)//月选择函数 { switch(month) {
case
if(day==0)day=31;break;
case
if(day==0)day=29;}
else{if(day==29)day=1;else
if(day==0)day=28;}break;
case
if(day==0)day=31;break;
case
if(day==0)day=30;break;
case
if(day==0)day=31;break;
case
if(day==0)day=30;break;
case
if(day==0)day=31;break;
case
if(day==0)day=31;break;
case
if(day==0)day=30;break;
case
if(day==0)day=31;break;
1:if(day==32)day=1;else
2:if(year%4==0){if(day==30)day=1;else
3:if(day==32)day=1;else
4:if(day==31)day=1;else
5:if(day==32)day=1;else
6:if(day==31)day=1;else
7:if(day==32)day=1;else
8:if(day==32)day=1;else
9:if(day==31)day=1;else
10:if(day==32)day=1;else
- 32 -
辽东学院课程设计报告书 智能仪器仪表综合设计与实训
case 11:if(day==31)day=1;else
if(day==0)day=30;break;
case
12:if(day==32)day=1;else
if(day==0)day=31;break; }
void set_time(void)//设定时间显示辅助函数 {
qian=set_h/10; bai=set_h;
}
shi=set_m/10; }
void set_day(void)//设定日期显示辅助函数 {
qian=month/10; bai=month; ge=set_m;
shi=day/10; }
void bianhuan(void)//年份显示辅助函数 { }
- 33 -
ge=day;
qian=year/1000; bai=year00/100; shi=year0/10; ge=year;
辽东学院课程设计报告书 智能仪器仪表综合设计与实训
void bianhuan1(void)//时间显示辅助函数 {
qian=h/10; bai=h;
shi=m/10; }
void scankey(void)//按键扫描函数 {
if(K1==0) { }
delay(20); if(K1==0) { }
while(K1==0); x++;
if(x==3)set_time(); else if(x==5)set_day(); else if(x==7)bianhuan(); else if(x==8){x=0;bianhuan1();}
ge=m;
if(K2==0) {
delay(20); if(K2==0) {
while(K2==0);
- 34 -