單片機(jī)課程設(shè)計(jì)-作息時(shí)間控制器_第1頁(yè)
單片機(jī)課程設(shè)計(jì)-作息時(shí)間控制器_第2頁(yè)
單片機(jī)課程設(shè)計(jì)-作息時(shí)間控制器_第3頁(yè)
單片機(jī)課程設(shè)計(jì)-作息時(shí)間控制器_第4頁(yè)
單片機(jī)課程設(shè)計(jì)-作息時(shí)間控制器_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

河南理工大學(xué)電子設(shè)計(jì)綜合訓(xùn)練報(bào)告作息時(shí)間控制器姓名:李曉宇付道義學(xué)號(hào):310708020814310708020810專業(yè)班級(jí):自動(dòng)化07-8指導(dǎo)老師:譚興國(guó)所在學(xué)院:電氣工程與自動(dòng)化學(xué)院2010年7月2日摘要本設(shè)計(jì)是作息時(shí)間控制器,由單片機(jī)最小系統(tǒng)、按鍵模塊、數(shù)碼管顯示模塊、鬧鐘模塊組成。采用單片機(jī)AT89S52與12MHZ晶振相連;通過(guò)按鍵KI、K2、K3、K4控制時(shí)間的校正、鬧鐘時(shí)間設(shè)定;數(shù)碼管顯示模塊用來(lái)顯示時(shí)間,顯示格式為“時(shí)分”,并能夠根據(jù)需要顯示年、月、日,由數(shù)碼管小數(shù)點(diǎn)閃動(dòng)作為秒計(jì)數(shù);鬧鐘模塊進(jìn)行到時(shí)提醒并作出相應(yīng)動(dòng)作:發(fā)光二極管閃亮,同時(shí)播放音樂(lè)。本設(shè)計(jì)中,利用單片機(jī)定時(shí)器設(shè)計(jì)時(shí)間計(jì)時(shí)處理,采用單片機(jī)內(nèi)部的T0定時(shí)器溢出中斷來(lái)實(shí)現(xiàn),工作在T1方式下,定時(shí)50微妙,則連續(xù)中斷20次即為一秒,得到了我們所需時(shí)間的最小單位秒,60秒為一分,60分為一小時(shí),24小時(shí)為一天,1、3、5、7、8、10、12月為31天,4、6、9、11月為30天,閏年二月為29天,非閏年二月為28天,12個(gè)月為一年。采用這種時(shí)間設(shè)計(jì)思想來(lái)進(jìn)行時(shí)間設(shè)置。在整個(gè)系統(tǒng)的設(shè)計(jì)中,單片機(jī)的P0口輸出顯示信號(hào),P1口按鍵輸入控制、P2口用來(lái)掃描,為動(dòng)態(tài)顯示、P3口鬧鐘模塊。該設(shè)計(jì)用C51編寫程序,由于匯編語(yǔ)言的移植性比較差,而C語(yǔ)言則比較靈活。許多子函數(shù)都可以直接移植過(guò)去。作息時(shí)間控制器作息時(shí)間控制器#0x93,0xF0,//00233HZ,1#0x73,0xF1,//00247HZ,20x49,0xF2,//00262HZ,2#0x07,0xF3,//00277HZ,30xC8,0xF3,//00294HZ,40x73,0xF4,//00311HZ,4#0x1E,0xF5,//00330HZ,50xB6,0xF5,//00349HZ,5#0x4C,0xF6,//00370HZ,60xD7,0xF6,//00392HZ,6#0x5A,0xF7,//00415HZ,70xD8,0xF7,//00440HZ1//12TOC\o"1-5"\h\z0x4D,0xF8,//00466HZ1#//130xBD,0xF8,//00494HZ2//140x24,0xF9,//00523HZ2#//150x87,0xF9,//00554HZ3//160xE4,0xF9,//00587HZ4//170x3D,0xFA,//00622HZ4#//180x90,0xFA,//00659HZ5//190xDE,0xFA,//00698HZ5#//200x29,0xFB,//00740HZ6//210x6F,0xFB,//00784HZ6#//220xB1,0xFB,//00831HZ7//230xEF,0xFB,//00880HZ'10x2A,0xFC,//00932HZ'1#0x62,0xFC,//00988HZ'20x95,0xFC,//01046HZ'2#0xC7,0xFC,//01109HZ'30xF6,0xFC,//01175HZ'40x22,0xFD,//01244HZ'4#0x4B,0xFD,//01318HZ'50x73,0xFD,//01397HZ'5#0x98,0xFD,//01480HZ'60xBB,0xFD,//01568HZ'6#0xDC,0xFD,//01661HZ'7//35};//音樂(lè)符號(hào)串解釋函數(shù)changedata(uchar*song,uchar*diao,uchar*jie){uchari,i1,j;chargaodi;ucharbanyin;、ucharyinchang;//Oo3Qucharcodejie7[8]={0,12,14,16,17,19,21,23};*diao=*song;for(i=0,i1=0;;){gaodi=0;banyin=0;yinchang=4;if((*(song+i)=='|')||(*(song+i)==''))i++;switch(*(song+i)){case',':gaodi=-12;i++;break;case'、':gaodi=12;i++;break;}if(*(song+i)==0){*(diao+i1)=0;*(jie+i1)=0;return;}j=*(song+i)-0x30;i++;j=jie7[j]+gaodi;yinc:switch(*(song+i)){case'#':i++;j++;gotoyinc;case'-':yinchang+=4;i++;gotoyinc;case'_':yinchang/=2;i++;gotoyinc;case'.':yinchang=yinchang+yinchang/2;i++;gotoyinc;}*(diao+i1)=j;*(jie+i1)=yinchang;i1++;}}////奏樂(lè)函數(shù)voidplay(uchar*songdata){uchari,c,j=0;uintn;uchardiaodata[40];ucharjiedata[40];changedata(songdata,diaodata,jiedata);TR1=1;for(i=0;diaodata[i]!=0;i++){tl0_f=freq[diaodata[i]*2];th0_f=freq[diaodata[i]*2+1];for(c=0;c<jiedata[i];c++){for(n=0;n<24;n++){scankey();if(y==0){TR1=0;return;}display();}}TR1=0;for(n=0;n<500;n++);TR1=1;}TR1=0;}voidtime0(void)interrupt1{TH0=0x3c;TL0=0xb0;cnt++;if(y==1&&(set_h==h&&set_m==m))sd=~sd;elsesd=1;if(cnt==20){sec++;cnt=0;if(sec==60){sec=0;m++;if(m==60){m=0;h++;if(h==24){h=0;day++;switch(month){case1:if(day==32){month++;day=1;}break;case2:if(year%4==0){if(day==30){month++;day=1;}}else{if(day==29){month++;day=1;}}break;case3:if(day==32){month++;day=1;}break;case4:if(day==31){month++;day=1;}break;case5:if(day==32){month++;day=1;}break;case6:if(day==31){month++;day=1;}break;case7:if(day==32){month++;day=1;}break;case8:if(day==32){month++;day=1;}break;case9:if(day==31){month++;day=1;}break;case10:if(day==32){month++;day=1;}break;case11:if(day==31){month++;day=1;}break;case12:if(day==32){month++;day=1;}break;}if(month==13){month=1;year++;}}}}if(x==0)bianhuan1();}}timer1()interrupt3{TL1=tl0_f;TH1=th0_f;//調(diào)入預(yù)定值BEEP=~BEEP;//取反音樂(lè)輸出IO}voidmain(void){init();while(1){display();scankey();if(y==1&&(set_h==h&&set_m==m))play(mamahao);elseBEEP=0;}}voidinit(void){BEEP=0;TMOD=0x11;TH0=0x3c;TL0=0xb0;ET0=1;TR0=1;ET1=1;TR1=0;EA=1;}voiddisplay(void){P2=0xfe;P0=a[qian];if(x%2==1&&cnt>=10)P0&=0x00;delay(20);P2=0xfd;P0=a[bai];if(x%2==1&&cnt>=10)P0&=0x00;elseif(x==0&&cnt>=10)P0|=0x80;delay(20);P2=0xfb;P0=a[shi];if(((x%2==0&&x!=0)||x==7)&&cnt>=10)P0&=0x00;delay(20);P2=0xf7;P0=a[ge];if(((x%2==0&&x!=0)||x==7)&&cnt>=10)P0&=0x00;delay(20);}voidm_choose(void){switch(month){case1:if(day==32)day=1;elseif(day==0)day=31;break;case2:if(year%4==0){if(day==30)day=1;elseif(day==0)day=29;}else{if(day==29)day=1;elseif(day==0)day=28;}break;case3:if(day==32)day=1;elseif(day==0)day=31;break;case4:if(day==31)day=1;elseif(day==0)day=30;break;case5:if(day==32)day=1;elseif(day==0)day=31;break;case6:if(day==31)day=1;elseif(day==0)day=30;break;case7:if(day==32)day=1;elseif(day==0)day=31;break;case8:if(day==32)day=1;elseif(day==0)day=31;break;case9:if(day==31)day=1;elseif(day==0)day=30;break;case10:if(day==32)day=1;elseif(day==0)day=31;break;case11:if(day==31)day=1;elseif(day==0)day=30;break;case12:if(day==32)day=1;elseif(day==0)day=31;break;}voidset_time(void){qian=set_h/10;bai=set_h%10;shi=set_m/10;ge=set_m%10;}voidset_day(void){qian=month/10;bai=month%10;shi=day/10;ge=day%10;}voidbianhuan(void){qian=year/1000;bai=year%1000/100;shi=year%100/10;ge=year%10;}voidbianhuan1(void){qian=h/10;bai=h%10;shi=m/10;ge=m%10;}voidscankey(void){if(K1==0){delay(20);if(K1==0){while(K1==0);x++;if(x==3)set_time();elseif(x==5)set_day();elseif(x==7)bianhuan();elseif(x==8){x=0;bianhuan1();}}}if(K2==0){delay(20);if(K2==0){while(K2==0);switch(x){case0:break;case1:h++;if(h==24)h=0;bianhuan1();break;case2:m++;if(m==60)m=0;bianhuan1();break;case3:set_h++;if(set_h==24)set_h=0;set_time();break;case4:set_m++;if(set_m==60)set_m=0;set_time();break;case5:day++;m_choose();set_day();break;case6:month++;if(month==13)month=1;set_day();break;case7:year++;bianhuan();break;}}}if(K3==0){delay(20);if(K3==0){while(K3==0);y++;if(y==2)y=0;}}if(K4==0){delay(20);if(K4==0){while(K4==0);switch(x){case0:break;case1:h--;if(h==255)h=23;bianhuan1();break;case2:m--;if(m==255)m=59;bianhuan1();break;case3:set_h--;if(set_h==255)set_h=23;set_time();break;case4:set_m--;if(set_m==255)set_m=59;set_time();break;case5:day--;m_choose();set_day();break;case6:month--;if(month==0)month=12;set_day();break;case7:year--;bianhuan();break;}}}}voiddelay(uchart)//延時(shí)0.1毫秒{uchari;do{for(i=0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論