實習(xí)修正版-音樂倒數(shù)計數(shù)器_第1頁
實習(xí)修正版-音樂倒數(shù)計數(shù)器_第2頁
實習(xí)修正版-音樂倒數(shù)計數(shù)器_第3頁
實習(xí)修正版-音樂倒數(shù)計數(shù)器_第4頁
實習(xí)修正版-音樂倒數(shù)計數(shù)器_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

東北石油大學(xué)課 程 設(shè) 計課程單片機(jī)課程設(shè)計題目音樂倒數(shù)計數(shù)器學(xué)院電氣信息工程學(xué)院專業(yè)班級 自動化11-1學(xué)生姓名 羅宏星學(xué)生學(xué)號 110601140121指導(dǎo)教師 李艷輝 邵克勇2014年7月7日東北石油大學(xué)課程設(shè)計任務(wù)書課程單片機(jī)課程設(shè)計題目音樂倒數(shù)計數(shù)器專業(yè)自動化姓名羅宏星學(xué)號110601140121(2)顯示主要內(nèi)容:利用 AT89C51單片機(jī)結(jié)合字符型 LCD顯示器設(shè)計一個簡易的倒數(shù)計數(shù)器,做一小段時間倒計數(shù),當(dāng)?shù)褂嫈?shù)為 0時,則發(fā)出一段音樂聲響?;疽螅憾〞r鬧鐘的基本功能如下。(1)字符型LCD(16 2)顯示器。格式為“TIME 分分:秒秒”。用4個按鍵操作來設(shè)置當(dāng)前想要倒計數(shù)的時間。 當(dāng)計數(shù)為0時,發(fā)出一陣音樂聲。程序執(zhí)行后工作指示燈 LED閃動,表示程序開始執(zhí)行。主要參考資料:張毅剛.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2003.李廣第.單片機(jī)基礎(chǔ)[M].北京:北京航空航天打?qū)W出版社,2009.吳金戎.8051單片機(jī)實踐與應(yīng)用[M].北京:清華大學(xué)出版社,2003.楊文龍.單片機(jī)技術(shù)及其應(yīng)用[M].北京:電子工業(yè)出版社,2008.王德彪.MCS-51單片機(jī)原理及接口技術(shù)[M].北京:電子工業(yè)出版社,2005.完成期限 2014.6.30-2014.7.4指導(dǎo)教師 李艷輝 邵克勇專業(yè)負(fù)責(zé)人目錄第1章概述. 11.1發(fā)展前景 11.2設(shè)計要求 11.3設(shè)計方案 1第2章系統(tǒng)結(jié)構(gòu)及主要元器件 . 22.1AT89C51單片機(jī) 22.2LCD顯示器 3第3章硬件設(shè)計. 43.1顯示電路 43.2輸入電路 43.3復(fù)位電路 53.4報警電路 5第4章軟件設(shè)計. 64.1程序流程圖 64.2程序源代碼 6第5章系統(tǒng)仿真及調(diào)試. 155.1軟件調(diào)試 155.2軟硬件調(diào)試 155.3系統(tǒng)仿真 17參考文獻(xiàn). 191單片機(jī)控制系統(tǒng)課程設(shè)計(報告)第1章概述1.1 發(fā)展前景隨著人們生活水平的不斷提高單片機(jī)控制無疑是人們追求的目標(biāo)之一,它給人帶來的方便也是不可置否的,人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從單片機(jī)技術(shù)入手, 一切向著數(shù)字化控制,智能化控制方向發(fā)展。本設(shè)計利用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計一個簡易的倒數(shù)計數(shù)器,可用來煮方便面、煮開水或小睡片刻等。做一小段時間倒計數(shù),當(dāng)?shù)褂嫈?shù)為0時,則發(fā)出一段音樂聲響,通知倒計數(shù)終了,該做應(yīng)當(dāng)做的事。1.2 設(shè)計要求利用數(shù)字AT89C51單片機(jī)實現(xiàn)倒數(shù)計數(shù)器的功能,設(shè)定時間后在LED數(shù)碼管上顯示相應(yīng)的時間。其功能和性能指標(biāo)如下:1、字符型LCD(16 2)顯示器,顯示格式為“ TIME 分分:秒秒”。2、用4個按鍵操作來設(shè)置當(dāng)前想要倒計數(shù)的時間。3、一旦按下鍵則開始倒計數(shù),當(dāng)計數(shù)為 0時,發(fā)出一陣音樂聲。4、程序執(zhí)行后工作指示燈 LED閃動,表示程序開始執(zhí)行,按下操作鍵 K1~K4動作如下:1)K1—可調(diào)整倒計數(shù)的時間1~60分鐘。2)K2—設(shè)置倒計數(shù)的時間為5分鐘,顯示“0500”。3)K3—設(shè)置倒計數(shù)的時間為10分鐘,顯示“1000”。4)K4—設(shè)置倒計數(shù)的時間為20分鐘,顯示“2000”。5、復(fù)位后LCD的畫面應(yīng)能顯示倒計時的分鐘和秒數(shù),此時按K1鍵,則在LCD上顯示出設(shè)置畫面。此時,若:1)按操作鍵K2—增加倒計數(shù)的時間1分鐘。2)按操作鍵K3—減少倒計數(shù)的時間1分鐘。3)按操作鍵K4—設(shè)置完成。1.3 設(shè)計方案音樂倒數(shù)計數(shù)器所倒數(shù)的時間由數(shù)字顯示,控制器使用單片機(jī)AT89C51。本設(shè)計基于單片機(jī)技術(shù)原理,以單片機(jī)芯片AT89C51作為核心控制器,通過硬件電路的制作以及軟件程序的編制,設(shè)計制作出一個計數(shù)器,包括以下功能:輸出時間,按下鍵就開始計時,并將時間顯示在LCD1602顯示器上。當(dāng)?shù)褂嫈?shù)為0時,蜂鳴器就發(fā)出音樂聲響等等。該1單片機(jī)控制系統(tǒng)課程設(shè)計(報告)計數(shù)器系統(tǒng)主要由計數(shù)器模塊、LCD顯示器模塊、蜂鳴器模塊、鍵盤模塊、復(fù)位模塊等部分組成??傮w設(shè)計方框圖如圖1-1所示。復(fù)位電路LCD1602AT89C51鍵盤 蜂鳴器圖1-1總體設(shè)計方框圖第2章系統(tǒng)結(jié)構(gòu)及主要元器件2.1AT89C51單片機(jī)AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器( FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。圖2-1AT89C51單片機(jī)引腳2單片機(jī)控制系統(tǒng)課程設(shè)計(報告)2.2LCD顯示器1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5×7或者5×11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。圖2-2LCD1602引腳圖表2-1LCD1602各引腳功能表引腳符號功能說明1VSS一般接地2VDD接電源+5V3V0液晶顯示器對比度調(diào)整4RS高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器5R/W高電平1時進(jìn)行讀操作、低電平0時進(jìn)行寫操作6E使能端,下降沿使能7DB0低4位三態(tài)、雙向數(shù)據(jù)總線0位8DB1低4位三態(tài)、雙向數(shù)據(jù)總線1位9DB2低4位三態(tài)、雙向數(shù)據(jù)總線2位10DB3低4位三態(tài)、雙向數(shù)據(jù)總線3位11DB4高4位三態(tài)、雙向數(shù)據(jù)總線4位12DB5高4位三態(tài)、雙向數(shù)據(jù)總線5位13DB6高4位三態(tài)、雙向數(shù)據(jù)總線6位14DB7高4位三態(tài)、雙向數(shù)據(jù)總線7位15BLA背光電源正級16BLK背光電源負(fù)極3單片機(jī)控制系統(tǒng)課程設(shè)計(報告)第3章硬件設(shè)計3.1 顯示電路顯示電路硬件連接如圖3-1所示,有單片機(jī)和一個LCD1602液晶顯示器組成,P0為輸入口,P2為片選口。圖3-1 顯示電路連接圖3.2 輸入電路按鍵用于控制數(shù)碼顯示、LCD顯示、揚聲器等模塊的工作。通過掃描按鍵是否按下,來設(shè)定各模塊的工作情況,使各模塊可以在按鍵的控制下,有序地進(jìn)行工作。設(shè)計中使用單個按鍵實現(xiàn)單個功能,屬于較為簡單的控制方式。在多功能系統(tǒng)設(shè)計的試驗中我們使用五個按鍵分別與單片機(jī)的P1.0、P1.1、P1.2、P1.3、P1.4相連。通過按下相應(yīng)的按鍵來處理相應(yīng)的程序。輸入電路連接圖如圖 3-2所示。圖3-2輸入電路連接圖4單片機(jī)控制系統(tǒng)課程設(shè)計(報告)3.3 復(fù)位電路當(dāng)MCS-5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個機(jī)器周期以上的高電平時,單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。當(dāng)單片機(jī)已在運行當(dāng)中時,按下復(fù)位鍵后松開,也能使RST為一段時間的高電平,從而實現(xiàn)上電或開關(guān)復(fù)位的操作。復(fù)位電路連接如3-4所示。圖3-3 復(fù)位電路連接圖3.4 報警電路利用I/O定時翻轉(zhuǎn)電平來產(chǎn)生驅(qū)動波形的方式必須利用定時器來做定時,通過定時翻轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個波形就可以用來驅(qū)動蜂鳴器了。比如為2500Hz的蜂鳴器的驅(qū)動,可以知道周期為400μs,這樣只需要驅(qū)動蜂鳴器的I/O口每200μs翻轉(zhuǎn)一次電平就可以產(chǎn)生一個頻率為2500Hz,占空比為1/2duty的方波,再通過三極管放大就可以驅(qū)動這個蜂鳴器了。本設(shè)計中用單片機(jī)的P1.5引腳控制蜂鳴器。報警電路連接圖如圖3-4所示。圖3-4 報警電路連接圖5單片機(jī)控制系統(tǒng)課程設(shè)計(報告)第4章軟件設(shè)計4.1 程序流程圖主程序開始初始化,然后掃描鍵盤、復(fù)位電路和計數(shù)器。當(dāng)鍵盤按鍵有按下時,調(diào)整計數(shù)器值,LCD顯示新值。當(dāng)K5鍵按下時開始計時,當(dāng)計數(shù)器值倒計為 0時,蜂鳴器發(fā)出聲音,計數(shù)器停止倒計,程序結(jié)束。主程序流程圖如圖 4-1所示。開始初始化是掃描計數(shù)器掃描鍵盤是否按K5是否是否為按下零下是是否hi否蜂鳴器發(fā)聲調(diào)整計時器否LCD顯示計數(shù)值計數(shù)器停止計數(shù)結(jié)束圖4-1 主程序流程圖4.2程序源代碼#include<reg51.h>6單片機(jī)控制系統(tǒng)課程設(shè)計(報告)#include<intrins.h>#definetime100#defineuintunsignedint#defineucharunsignedcharuintt,flag,flag0,flag1,flag2,flag3,flag4,flag5,minute,second=60;ucharnum,j,i,k=0;ucharcodetable[]="TIME 00:00";uintcodetable1[]={64580,64684,64777,64820,64898,64968,65030};sbitkey1=P1^0;sbitkey2=P1^1;sbitkey3=P1^2;sbitkey4=P1^3;sbitkey5=P1^4;sbitP1_5=P1^5;sbitRS=P2^6;sbitRW=P2^5;sbitLcdE=P2^7;sbitled_green=P2^0;voidwrite_time(uintaddr,uintdate);voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voiddelay1(void){uchara,b,c;for(c=13;c>0;c--)for(b=247;b>0;b--)for(a=142;a>0;a--);_nop_();}voidwrite_com(ucharcom){RS=0;RW=0;7單片機(jī)控制系統(tǒng)課程設(shè)計(報告)P0=com;delay(5);LcdE=1;delay(10);LcdE=0;}voidwrite_date(uchardate){RS=1;RW=0;P0=date;delay(5);LcdE=1;delay(10);LcdE=0;}voidKEY1(){while(flag1){if(key2==0){delay(time);if(key2==0){if(minute<60)minute=minute+1;write_time(7,minute);}}if(key3==0){delay(time);if(key3==0){if(minute>0)8單片機(jī)控制系統(tǒng)課程設(shè)計(報告)minute=minute-1;write_time(7,minute);}}if(key4==0||key5==0){delay(150);if(key4==0||key5==0){flag1=0;flag=1;TR0=1;}}}}voidKEY2(){minute=5;write_time(7,minute);while(flag2){if(key5==0){delay(time);if(key5==0){flag2=0;flag=1;TR0=1;}}}}voidKEY3(){9單片機(jī)控制系統(tǒng)課程設(shè)計(報告)minute=10;write_time(7,minute);while(flag3){if(key5==0){delay(time);if(key5==0){flag3=0;flag=1;TR0=1;}}}}voidKEY4(){minute=20;write_time(7,minute);while(flag4){if(key5==0){delay(150);if(key5==0){flag4=0;flag=1;TR0=1;}}}}voidwrite_time(uintaddr,uintdate){10單片機(jī)控制系統(tǒng)課程設(shè)計(報告)uintge,shi;ge=date%10;shi=date/10;write_com(0x80+addr);write_date(0x30+shi);write_date(0x30+ge);if(addr==7&&date==0)j=1;if(j==1&&addr==10&&date==0){flag0=1;TR0=0;TR1=1;flag5=1;}}voidinit(){P1=0xff;RW=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);TMOD=0x11;TH1=(65536-50000)/256;TL1=(65536-50000)%256;TH0=0xff;TL0=0xff;ET0=1;ET1=1;TR0=0;TR1=0;EA=1;flag0=1;11單片機(jī)控制系統(tǒng)課程設(shè)計(報告)for(num=0;num<12;num++){write_date(table[num]);delay(20);}}voidstart(){if(key1==0){delay(time);if(key1==0){flag0=0;flag1=1;KEY1();}}if(key2==0){delay(time);if(key2==0){flag0=0;flag2=1;KEY2();}}if(key3==0){delay(time);if(key3==0){flag0=0;flag3=1;KEY3();12單片機(jī)控制系統(tǒng)課程設(shè)計(報告)}}if(key4==0){delay(150);if(key4==0){flag0=0;flag4=1;KEY4();}}}voidwrite_time0(){minute=minute-1;write_time(7,minute);write_time(10,59);flag=0;}voidcounter(){if(t==20){led_green=led_green^1;if(flag==1)write_time0();t=0;second=second-1;write_time(10,second);if(k==1&&second==59){if(minute>0)minute=minute-1;write_time(7,minute);}13單片機(jī)控制系統(tǒng)課程設(shè)計(報告)if(second==0){k=1;second=60;}}}intmain(){init();while(1){while(flag0)start();counter();while(flag5){delay1();i++;if(i>7)i=0;}}return0;}voidTimer0() interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;t++;}voidTimer1()interrupt3{TH1=table1[i]/256;TL1=table1[i]%256;P1_5=~P1_5;14單片機(jī)控制系統(tǒng)課程設(shè)計(報告)if(key5==0){delay(100);if(key5==0){TR1=0;flag5=0;k=0;j=0;}}}第5章系統(tǒng)仿真及調(diào)試5.1 軟件調(diào)試軟件調(diào)試是通過對程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。通過反復(fù)調(diào)試修改找出了程序中的語法與邏輯錯誤,并加以改正,最后調(diào)試成功。5.2軟硬件調(diào)試軟硬件聯(lián)調(diào)是指把調(diào)試無誤的軟件程序燒制進(jìn)單片機(jī)芯片內(nèi)部, 通上電源后,檢查硬件工作是否有預(yù)期的效果,如果沒有則需要檢測軟件是否在實現(xiàn)功能上有欠缺。若有錯誤,通過改寫軟件來調(diào)試,直至達(dá)到預(yù)期效果,則設(shè)計圓滿成功。本程序在調(diào)試時發(fā)現(xiàn)k1鍵未達(dá)到預(yù)期效果,通過反復(fù)試驗,不斷修改最后達(dá)到了預(yù)期效果。修改后的部分程序如下。voidKEY1(){while(flag1){if(key2==0){delay(time);if(key2==0){15單片機(jī)控制系統(tǒng)課程設(shè)計(報告)if(minute<60)minute=minute+1;write_time(7,minute);}}if(key3==0){delay(time);if(key3==0){if(minute>0)minute=minute-1;write_time(7,minute);}}if(key4==0||key5==0){dela

溫馨提示

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

評論

0/150

提交評論