单片机课程设计
WRITE_LCD1602_DAT('o'); WRITE_LCD1602_DAT('f'); WRITE_LCD1602_DAT('f'); } else { WRITE_LCD1602_DAT(' '); WRITE_LCD1602_DAT('o'); WRITE_LCD1602_DAT('n'); } } }
/************************************ 主界面
************************************/ void Main_display(void) { static uchar Year=80,Month=80,Day=80,Week=80,Hour=80,Min=80,Sec=80; static uchar i; static time_hour1=0; static time_min1=0; i++; if(i>10) i=0; if(beep_flag&&!Timing_flag) { Timing_flag=1; autoplay(VoiceAddTab[23]); } else if(!beep_flag) { Timing_flag=0; } if(Again_flag) { Again_flag=0; Year=80;Month=80;Day=80;Hour=80;Min=80;Sec=80;Week=80; } if(SET_TIM_FLAG==0) { Tim_red_tab[0]=READ_DS1302(READ_DS1302_YEAR); Tim_red_tab[1]=READ_DS1302(READ_DS1302_MONTH);
28
单片机课程设计
Tim_red_tab[2]=READ_DS1302(READ_DS1302_DAY); Tim_red_tab[3]=READ_DS1302(READ_DS1302_WEEK); Tim_red_tab[4]=READ_DS1302(READ_DS1302_HOUR); Tim_red_tab[5]=READ_DS1302(READ_DS1302_MINUTE); Tim_red_tab[6]=READ_DS1302(READ_DS1302_SECOND); if(Timing_min>49) {
if(Timing_hour==23) time_hour1=0; else
time_hour1=Timing_hour+1; time_min1=(Timing_min-50); } else {
time_hour1=Timing_hour;
time_min1=Timing_min+10; }
if(Tim_red_tab[4]==Timing_hour&&Tim_red_tab[5]==Timing_min&&Tim_red_tab[6]<3) beep_flag=1; else
if(Tim_red_tab[4]==Timing_hour&&Tim_red_tab[5]==Timing_min&&Tim_red_tab[6]>45) beep_flag=0;
// if(Tim_red_tab[4]==time_hour1&&Tim_red_tab[5]==time_min1&&Tim_red_tab[6]<3) // beep_flag=1; // else
if(Tim_red_tab[4]==time_hour1&&Tim_red_tab[5]==time_min1&&Tim_red_tab[6]>30) // beep_flag=0; if(Year!=Tim_red_tab[0]) { Year=Tim_red_tab[0]; WRITE_LCD1602_COM(0x80+2); //指定显示字符的地址 WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[0]/10]); //年 WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[0]]); //年 } if(Month!=Tim_red_tab[1]) { Month=Tim_red_tab[1]; WRITE_LCD1602_COM(0x80+5); //指定显示字符的地址 WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[1]/10]); //月 WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[1]]); //月 }
29
单片机课程设计
if(Day!=Tim_red_tab[2]) {
Day=Tim_red_tab[2];
WRITE_LCD1602_COM(0x80+8); //指定显示字符的地址
WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[2]/10]); //日 WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[2]]); //日 }
if(Week!=Tim_red_tab[3]) {
Week=Tim_red_tab[3];
WRITE_LCD1602_COM(0x80+12); //指定显示字符的地址 switch(Week) {
case 0:
WRITE_LCD1602_DAT('S'); WRITE_LCD1602_DAT('U'); WRITE_LCD1602_DAT('N'); break; case 1:
WRITE_LCD1602_DAT('M'); WRITE_LCD1602_DAT('O'); WRITE_LCD1602_DAT('N'); break; case 2:
WRITE_LCD1602_DAT('T'); WRITE_LCD1602_DAT('U'); WRITE_LCD1602_DAT('E'); break; case 3:
WRITE_LCD1602_DAT('W'); WRITE_LCD1602_DAT('E'); WRITE_LCD1602_DAT('D'); break; case 4:
WRITE_LCD1602_DAT('T'); WRITE_LCD1602_DAT('H'); WRITE_LCD1602_DAT('U'); break; case 5:
WRITE_LCD1602_DAT('F'); WRITE_LCD1602_DAT('I'); WRITE_LCD1602_DAT('R'); break; case 6:
30
单片机课程设计
WRITE_LCD1602_DAT('S'); WRITE_LCD1602_DAT('A'); WRITE_LCD1602_DAT('T'); break; default:
WRITE_DS1302(DS1302_WRITE_PROTECT,DS1302_WRITE_PROTECT_NO); //禁止写保护
WRITE_DS1302(WRITE_DS1302_WEEK,0); //星期
WRITE_DS1302(DS1302_WRITE_PROTECT,DS1302_WRITE_PROTECT_OFF); //允许写保护
break; } }
if(Hour!=Tim_red_tab[4]) {
Hour=Tim_red_tab[4];
WRITE_LCD1602_COM(0x80+0x40); //指定显示字符的地址
WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[4]/10]); //时 WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[4]]); //时 }
if(Min!=Tim_red_tab[5]) {
Min=Tim_red_tab[5];
WRITE_LCD1602_COM(0x80+0x40+3); //指定显示字符的地址 WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[5]/10]); //分 WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[5]]); //分 }
//if(Sec!=Tim_red_tab[6]) //{
Sec=Tim_red_tab[6];
WRITE_LCD1602_COM(0x80+0x40+6); //指定显示字符的地址 WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[6]/10]); //秒 WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[6]]); //秒 // WRITE_LCD1602_DAT(' '); //} } else {
beep_flag=0;
WRITE_LCD1602_COM(0x80+2); //指定显示字符的地址
if(i<5&&SET_TIM_FLAG==1){WRITE_LCD1602_DAT(' ');WRITE_LCD1602_DAT(' ');}
else{WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[0]/10]);WRITE_LCD1602_DAT(LCD16
31
单片机课程设计
02_Table[Tim_red_tab[0]]);}
WRITE_LCD1602_COM(0x80+5); //指定显示字符的地址
if(i<5&&SET_TIM_FLAG==2){WRITE_LCD1602_DAT(' ');WRITE_LCD1602_DAT(' ');}
else{WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[1]/10]);WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[1]]);}
WRITE_LCD1602_COM(0x80+8); //指定显示字符的地址
if(i<5&&SET_TIM_FLAG==3){WRITE_LCD1602_DAT(' ');WRITE_LCD1602_DAT(' ');}
else{WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[2]/10]);WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[2]]);}
WRITE_LCD1602_COM(0x80+12); //指定显示字符的地址 if(i<5&&SET_TIM_FLAG==4){WRITE_LCD1602_DAT(' ');WRITE_LCD1602_DAT(' ');WRITE_LCD1602_DAT(' ');} else {
switch(Tim_red_tab[3]) {
case 0:
WRITE_LCD1602_DAT('S'); WRITE_LCD1602_DAT('U'); WRITE_LCD1602_DAT('N'); break; case 1:
WRITE_LCD1602_DAT('M'); WRITE_LCD1602_DAT('O'); WRITE_LCD1602_DAT('N'); break; case 2:
WRITE_LCD1602_DAT('T'); WRITE_LCD1602_DAT('U'); WRITE_LCD1602_DAT('E'); break; case 3:
WRITE_LCD1602_DAT('W'); WRITE_LCD1602_DAT('E'); WRITE_LCD1602_DAT('D'); break; case 4:
WRITE_LCD1602_DAT('T'); WRITE_LCD1602_DAT('H'); WRITE_LCD1602_DAT('U');
32