2015届电子信息科学与技术专业学士学位毕业论文(设计)
else { for(i=0;i<48;i++) date[i]=init_date[i]; time_to_buff_all(); } } if(half_sec_flag==1) { half_sec_flag=0; time_to_buff_all(); switch(status){ case 0: break; case 1: date[10]=15,date[11]=15; break; case 2: date[14]=15,date[15]=15; break; case 3: date[18]=15,date[19]=15; break; case 4: date[27]=15,date[28]=15; break; case 5: date[30]=15,date[31]=15; break; case 6: date[33]=15,date[34]=15; break; case 7: date[36]=15,date[37]=15; break; default: break; } } if(one_sec_flag==1) {one_sec_flag=0; if(disp_mode==8||k==0) ReadTemperature(&date,39); date[32]=11; date[35]=11; time_to_buff_all(); } }
void display(unsigned char mode) { unsigned char i; //送显示数据 switch(mode) { case 0:if(switch_flag==1) {k=0;switch_flag=0;} //流动暂停显示 for(i=0;i<8;i++)SendByte(a[date[k+i]][disrow]); Send2Byte(a[date[k+8]][disrow],offset); if(offset==8) { offset=0;k++; if(k==30&&nongli_flag==0) {stop_bit=1,stop_time=900,disp_mode=1;} if(k==39&&nongli_flag==0) {stop_bit=1,stop_time=120;} //温度停一下。 if(k>45&&nongli_flag==0) {k=0; nongli_flag=~nongli_flag; nongli_change_flag=1; } if(k>24&&festival_flag==0&&nongli_flag==1)
{ k=0; nongli_flag=~nongli_flag; nongli_change_flag=1; } else if(k>30&&festival_flag==1&&nongli_flag==1) { k=0; nongli_flag=~nongli_flag; nongli_change_flag=1; } } break;
case 7: //全部流动显示 if(switch_flag==1) {k=0;switch_flag=0;} for(i=0;i<8;i++)SendByte(a[date[k+i]][disrow]); Send2Byte(a[date[k+8]][disrow],offset); if(offset==8) { offset=0;k++; if(nongli_flag==0&&k>45) {k=0; nongli_flag=~nongli_flag; nongli_change_flag=1; } if(k>24&&festival_flag==0&&nongli_flag==1)
{ k=0; nongli_flag=~nongli_flag; nongli_change_flag=1; } else if(k>30&&festival_flag==1&&nongli_flag==1) { k=0; nongli_flag=~nongli_flag; nongli_change_flag=1; } } break;
case 8: //固定显示温度
for(i=0;i<8;i++) SendByte(a[date[39+i]][disrow]); break; case 1: shutter_clock(); break; //翻页钟显示 case 2: //显示时间 if(switch_flag==1) {/*k=23;*/switch_flag=0;} if(k<30){for(i=0;i<8;i++) //送往8个4094的数据. SendByte(a[date[k+i]][disrow]); Send2Byte(a[date[k+8]][disrow],offset); if(offset==8) {offset=0;k++;} } if(k==30) {for(i=0;i<8;i++) SendByte(a[date[30+i]][disrow]); } break;
19
2015届电子信息科学与技术专业学士学位毕业论文(设计)
case 3: //显示年 if(switch_flag==1) {k=0;switch_flag=0;} if(k<10) {for(i=0;i<8;i++) //送往8个4094的数据. SendByte(a[date[k+i]][disrow]); Send2Byte(a[date[k+8]][disrow],offset); if(offset==8) {offset=0;k++;} } if(k==10) { for(i=0;i<8;i++) SendByte(a[date[10+i]][disrow]); } break; case 4: //显示月 if(switch_flag==1) {k=10;switch_flag=0;} if(k<14) {for(i=0;i<8;i++) //送往8个4094的数据. SendByte(a[date[k+i]][disrow]); Send2Byte(a[date[k+8]][disrow],offset); if(offset==8) {offset=0;k++;} } if(k==14) {for(i=0;i<8;i++) SendByte(a[date[14+i]][disrow]); } break; case 5: //显示日 if(switch_flag==1) {k=14;switch_flag=0;} if(k<18) {for(i=0;i<8;i++)SendByte(a[date[k+i]][disrow]);Send2Byte(a[date[k+8]][disrow],offset); if(offset==8) {offset=0;k++;} } if(k==18) {for(i=0;i<8;i++) SendByte(a[date[18+i]][disrow]); }break; case 6: //显示星期 if(switch_flag==1) {k=18;switch_flag=0;} if(k<23) {for(i=0;i<8;i++)SendByte(a[date[k+i]][disrow]); Send2Byte(a[date[k+8]][disrow],offset); if(offset==8) {offset=0;k++;} } if(k==23) {for(i=0;i<8;i++)SendByte(a[date[23+i]][disrow]); }break; default: break; } }
void shutter_clock(void) { if(date[30]!=temp_time[0]) f1=0; //时十位 if(f1<17) { if(date[30]==0) SendByte(a[17][disrow+f1]); else SendByte(a[date[30]-1][disrow+f1]); } else SendByte(a[date[30]][disrow]); if(date[31]!=temp_time[1]) f2=0; //时个位 if(f2<17) { if(date[31]==0) SendByte(a[19][disrow+f2]); else SendByte(a[date[31]-1][disrow+f2]); } else SendByte(a[date[31]][disrow]); SendByte(a[date[32]][disrow]); //冒号 if(date[33]!=temp_time[2]) f3=0; //分十位 if(f3<17) { if(date[33]==0) SendByte(a[21][disrow+f3]); else SendByte(a[date[33]-1][disrow+f3]); } else SendByte(a[date[33]][disrow]); if(date[34]!=temp_time[3]) f4=0; //分个位 if(f4<17) { if(date[34]==0) SendByte(a[23][disrow+f4]); else SendByte(a[date[34]-1][disrow+f4]); }
20
2015届电子信息科学与技术专业学士学位毕业论文(设计)
else SendByte(a[date[34]][disrow]); SendByte(a[date[35]][disrow]); //冒号 if(date[36]!=temp_time[4]) f5=0; //秒十位 if(f5<17) { if(date[36]==0) SendByte(a[21][disrow+f5]); else SendByte(a[date[36]-1][disrow+f5]); } else SendByte(a[date[36]][disrow]); if(date[37]!=temp_time[5]) f6=0; //秒个位 if(f6<17) { if(date[37]==0) SendByte(a[23][disrow+f6]); else SendByte(a[date[37]-1][disrow+f6]); } else SendByte(a[date[37]][disrow]); }
void delay_nms(unsigned int count){ //软件延时 unsigned int i,j; for(i=0;i void time_to_buff_all(void) { DS1302_GetTime_ALL(&CurrentTime); //读取全部时间 temp_time[0]=date[30]; temp_time[1]=date[31]; temp_time[2]=date[33]; temp_time[3]=date[34]; temp_time[4]=date[36]; temp_time[5]=date[37]; date[30]=CurrentTime.Hour/10; date[31]=CurrentTime.Hour; //小时 date[33]=CurrentTime.Minute/10; date[34]=CurrentTime.Minute; //分钟 date[36]=CurrentTime.Second/10; date[37]=CurrentTime.Second; //秒 date[10]=CurrentTime.Year/10; date[11]=CurrentTime.Year; //年 date[14]=CurrentTime.Month/10; date[15]=CurrentTime.Month; //月 date[18]=CurrentTime.Day/10; date[19]=CurrentTime.Day; //日 date[27]=week_data[CurrentTime.Week];date[28]=week_data[CurrentTime.Week]+1;//星期 } void key_scan(void) { //扫描按键 static unsigned char mode_counter=0; if(adj_flag==1) { adj_flag=0; stop_bit=0; offset=0; switch_flag=1; status++; if(status>7) status=1; time_to_buff_all(); } if(esc_flag==1) { esc_flag=0; stop_bit=0; disp_mode=0; //退出时方式为流动显示 k=0; offset=0; status=0; time_to_buff_all(); } switch(status) { case 0: //显示模式调整 if(add_flag==1) { add_flag=0; stop_bit=0; offset=0; switch_flag=1; mode_counter++; if(mode_counter>3) mode_counter=0; disp_mode=mode[mode_counter]; }break; case 1: //年调整 disp_mode=3; if(add_flag==1) { add_flag=0; CurrentTime.Year++; if(CurrentTime.Year>99) CurrentTime.Year=0; DS1302_SetTime(DS1302_YEAR,(CurrentTime.Year)); } if(dec_flag==1) { dec_flag=0; if(CurrentTime.Year>0) CurrentTime.Year--; if(CurrentTime.Year==0) CurrentTime.Year=99; DS1302_SetTime(DS1302_YEAR,(CurrentTime.Year)); }break; case 2: //月调整 disp_mode=4; if(add_flag==1) { add_flag=0; CurrentTime.Month++; if(CurrentTime.Month>12) CurrentTime.Month=1; DS1302_SetTime(DS1302_MONTH,(CurrentTime.Month)); } 21 2015届电子信息科学与技术专业学士学位毕业论文(设计) if(dec_flag==1) { dec_flag=0; if(CurrentTime.Month>0) CurrentTime.Month--; if(CurrentTime.Month==0) CurrentTime.Month=12; DS1302_SetTime(DS1302_MONTH,(CurrentTime.Month)); } break; case 3: //日调整 disp_mode=5; if(add_flag==1) {add_flag=0; CurrentTime.Day++; if(CurrentTime.Day>31) CurrentTime.Day=1; DS1302_SetTime(DS1302_DAY,(CurrentTime.Day)); } if(dec_flag==1) { dec_flag=0; if(CurrentTime.Day>0) CurrentTime.Day--; if(CurrentTime.Day==0) CurrentTime.Day=31; DS1302_SetTime(DS1302_DAY,(CurrentTime.Day)); } break; case 4: //星期调整 disp_mode=6; if(add_flag==1){add_flag=0; CurrentTime.Week++; if(CurrentTime.Week>7) CurrentTime.Week=1; DS1302_SetTime(DS1302_WEEK,(CurrentTime.Week)); } if(dec_flag==1) {dec_flag=0; if(CurrentTime.Week>1) CurrentTime.Week--; if(CurrentTime.Week==1) CurrentTime.Week=7; DS1302_SetTime(DS1302_WEEK,(CurrentTime.Week)); } break; case 5: //小时调整 disp_mode=2; if(add_flag==1) {add_flag=0; CurrentTime.Hour++; if(CurrentTime.Hour>23)CurrentTime.Hour=0; DS1302_SetTime(DS1302_HOUR,(CurrentTime.Hour));} if(dec_flag==1) { dec_flag=0; if(CurrentTime.Hour>0) CurrentTime.Hour--; if(CurrentTime.Hour==0) CurrentTime.Hour=23; DS1302_SetTime(DS1302_HOUR,(CurrentTime.Hour)); } break; case 6: //分钟调整 disp_mode=2; if(add_flag==1) {add_flag=0; CurrentTime.Minute++;if(CurrentTime.Minute>59) CurrentTime.Minute=0; DS1302_SetTime(DS1302_MINUTE,(CurrentTime.Minute)); } if(dec_flag==1) { dec_flag=0; if(CurrentTime.Minute>0) CurrentTime.Minute--; if(CurrentTime.Minute==0) CurrentTime.Minute=59; DS1302_SetTime(DS1302_MINUTE,(CurrentTime.Minute)); } break; case 7: //秒调整 disp_mode=2; if(add_flag==1){ add_flag=0;CurrentTime.Second++;if(CurrentTime.Second>59)CurrentTime.Second=0; DS1302_SetTime(DS1302_SECOND,(CurrentTime.Second)); } if(dec_flag==1){ dec_flag=0; if(CurrentTime.Second>0) CurrentTime.Second--; if(CurrentTime.Second==0) CurrentTime.Second=59; DS1302_SetTime(DS1302_SECOND,(CurrentTime.Second)); }break; default: break; } } 22 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的16X64LED点阵显示屏设计(6)在线全文阅读。
相关推荐: