生日歌流水燈課程設(shè)計.._第1頁
生日歌流水燈課程設(shè)計.._第2頁
生日歌流水燈課程設(shè)計.._第3頁
生日歌流水燈課程設(shè)計.._第4頁
生日歌流水燈課程設(shè)計.._第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄第1章概述1.1單片機簡介1.2任務(wù)簡介第2章系統(tǒng)總體方案設(shè)計2.1音樂的產(chǎn)生2.2系統(tǒng)方案第3章硬件設(shè)計3.1 89C51單片機 .1 12 335 6 63.2蜂鳴電路83.3流水燈電路93.4時鐘電路9第4章軟件設(shè)計 104.1.軟件設(shè)計 104.2設(shè)計方案11第5章系統(tǒng)調(diào)試與仿真 145.2系統(tǒng)的仿真調(diào)試階段155.3調(diào)試問題處理16第6章心得體會17參考文獻18附錄A:音樂播放器電路設(shè)計圖 19附錄B:程序清單200附錄C:程序清單202附錄D:程序清單203第1章概述1.1單片機簡介單片機又稱單片微控制器,它不是完成某一邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。概括

2、的講,一個芯片就成了一臺計算機。MCS-51單片機是美國INTEL公司于1980年推出的產(chǎn)品,于MCS-48單片機相比, 它的結(jié)構(gòu)更先進,功能更強,在原來的基礎(chǔ)上增加了更多的電路單元和指令,指令 數(shù)達111條,MCS-51單片機可以算是相當(dāng)成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機仍是應(yīng)用的主流產(chǎn)品,各高校及專業(yè)學(xué)校的培訓(xùn)教材仍與MCS-51單片機作為代表進行理論基礎(chǔ)學(xué)習(xí)。單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分為如下幾個范疇:一、在智能儀器儀表的應(yīng)用單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)

3、點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻 率、溫度、流量、速度、厚度、角度、長度、硬度、元素、濕度、壓力等物理量的 測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電 子或數(shù)字電路更加強大。例如精密的測量設(shè)備(功率計,示波器,各中分析儀)。二、在家用電器中的應(yīng)用可以這樣說,現(xiàn)在的家用電器基本上都采用了單片控制,從電飯煲、洗衣機、電冰箱、空調(diào)機、彩電、其他音響視頻器材、再到電子稱量設(shè)備,五花八門,無所 不在。三、在工業(yè)控制中的應(yīng)用用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,點滴智能化控制、各種報警系統(tǒng),與計算

4、機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。單片機現(xiàn)在可以說是百花齊放,百家爭鳴的時期,世界各大芯片制造公司都推出自己的單片機,從 8位、16位到32位、數(shù)不勝數(shù),應(yīng)有盡有,有與主流MCS-51系列兼容的,也有你兼容的,但他們各具特色,互成互補,為單片機的應(yīng)用提供了 廣闊的天地。1.2任務(wù)簡介以51系列單片機為核心,以開發(fā)板為平臺;設(shè)計一個音樂播放器,完成播放生 日快樂歌曲的功能,流水燈控制電路,使連接在該電路上的8個發(fā)光二極管按順序以次閃爍。設(shè)計任務(wù)包括控制系統(tǒng)硬件設(shè)計和應(yīng)用程序設(shè)計。21第2章系統(tǒng)總體方案設(shè)計2.1音樂產(chǎn)生原理2.1.1演奏音樂原理通過控制單片機定時器的定時時間產(chǎn)生不同頻率的音頻脈沖,經(jīng)放大

5、后驅(qū)動蜂 鳴器發(fā)出不同音節(jié)的聲音,即聲調(diào)。用軟件延時來控制發(fā)音時間的長短,控制節(jié)拍。 把樂譜中的音符和相應(yīng)的節(jié)拍變換為定時常數(shù)和延時常數(shù),作為數(shù)據(jù)表格存放在存 儲器中,由程序查表得到定時常數(shù)和延時常數(shù),分別用來控制定時器產(chǎn)生的脈沖頻 率和發(fā)出該音頻脈沖的持續(xù)時間。2.1.2定時常數(shù)(計數(shù)值)與延時常數(shù)的確定產(chǎn)生音樂通過單片機的I/O 口輸出高低不同的脈沖信號來控制蜂鳴器發(fā)音。要想產(chǎn)生音頻脈沖信號,需要算出某一音頻周期(1/頻率),然后將此周期除以 2,即為半周期的時間。利用單片機定時器計時這個半周期時間,每當(dāng)計時到后就將輸出 脈沖的I/O 口反相,然后重復(fù)計時此半周期時間再對I/O 口反相,這

6、樣就能在此I/O口上得到此頻率的脈沖。用軟件延時來控制發(fā)音時間的長短,控制節(jié)拍,各調(diào)1/4節(jié)拍時間如下:曲調(diào)值延時時間調(diào)4/4125ms調(diào)3/4187ms調(diào)2/4250ms本課題要求以單片機為核心設(shè)計一個簡易音樂播放器,具有自動播放樂曲的功 能。一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們 就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,音階對應(yīng)頻率關(guān)系 圖:C調(diào)各音符頻率與計數(shù)值T的關(guān)系音符頻率(Hz)半周期(mS簡譜碼T 值定時值(H)簡譜碼T值定時值(D)低1 Do2621.90F894H62628低2 Re2941.70F95CH63835低3 Mi33

7、01.51FA1AH64021低4 Fa3491.43FA6AH64103低5 So3921.28FB00H64260低6 La4401.14FB8CH64400低7 Si4941.01FC0EH64524中1 Do5230.95FC4AH64580中2 Re5870.85FCAEH64684中3 Mi6590.76FD08H64777中4 Fa6980.72FD30H64820中5 So7840.64FD80H64896中6 La8800.57FDC6H64966中7 Si9880.51FE02H65030咼1 Do10460.47FE2AH65058咼2 Re11750.42FE5CH65

8、110高3 Mi13180.38FE84H65157高4 Fa13970.36FE98H65178高5 So15680.32FEC0H65217咼6 La17600.28FEE8H65252高7 Si19670.25FF06H652832.2系統(tǒng)方案本設(shè)計用89C51單片機為核心,在上個程序中我們是逐個控制P1端口的每個位來實現(xiàn)的,因此程序顯得有點復(fù)雜,下面我們利用循環(huán)移位指令,采用循環(huán)程序 結(jié)構(gòu)進行編程。我們在程序一開始就給 P1 口送一個數(shù),這個數(shù)本身就讓 P1.0先低, 其他位為高,然后延時一段時間,再讓這個數(shù)據(jù)向高位移動,然后再輸出至P1 口,這樣就實現(xiàn)“流水”效果啦。由于8051系列

9、單片機的指令中只有對累加器ACC中數(shù)據(jù)左移或右移的指令,因此實際編程中我們應(yīng)把需移動的數(shù)據(jù)先放到ACC中,讓其移動,然后將ACCS動后的數(shù)據(jù)再轉(zhuǎn)送到 P1 口,這樣就可以實現(xiàn)“流水”效果。同 時揚聲器播放生日快樂歌曲!按復(fù)位鍵,單片機重新工作!第3章硬件設(shè)計3.1 89C51單片機AT89C51 簡介AT89C51 是一種帶 4K 字節(jié) FLASH 存儲器(FPEROM Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8 位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機編輯本

10、段管腳說明:VCC :供電電壓。GND :接地。P0 口: P0 口為一個 8位漏級開路雙向I/O 口,每腳可吸收8TTL門電流。當(dāng)P0 口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。 在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1 口: P1 口是一個內(nèi)部提供上拉電阻的8位雙向I/O 口,P1 口緩沖器能接收輸出 4TTL門電流。P1 口管腳寫入 1后,被內(nèi)部上拉為高,可用作輸 入,P1 口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗

11、時,P1 口作為第八位地址接收。P2 口: P2 口為一個內(nèi)部上拉電阻的8位雙向I/O 口,P2 口緩沖器可接收,輸出 4個TTL門電流,當(dāng) P2 口被寫“ 1 ”時,其管腳被內(nèi)部上拉電阻 拉高,且作為輸入。并因此作為輸入時,P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2 口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2 口輸出地址的高八位。在給出地址“1 ”時,它利P2 口輸出其特用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,殊功能寄存器的內(nèi)容。P2 口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3 口: P3 口管腳是 8個帶內(nèi)部上拉

12、電阻的雙向I/O 口,可接收輸出4個TTL門電流。當(dāng) P3 口寫入“ 1”后,它們被內(nèi)部上拉為高電平,并用作輸 入。作為輸入,由于外部下拉為低電平,P3 口將輸出電流(ILL )這是由于上拉的緣故。P3 口也可作為 AT89C51的一些特殊功能口,如下表所示:口管腳備選功能P3.0 RXD (串行輸入口)P3.1 TXD (串行輸出口)P3.2 /INTO (外部中斷 0)P3.3 /INT1 (外部中斷 1)P3.4 T0 (記時器0外部輸入)P3.5 T1 (記時器1外部輸入)P3.6 /WR (外部數(shù)據(jù)存儲器寫選通)P3.7 /RD (外部數(shù)據(jù)存儲器讀選通)P3 口同時為閃爍編程和編程校

13、驗接收一些控制信號。RST :復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG :當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止 ALE的輸出可在 SFR8EH地址上置 0。此時, ALE只有在執(zhí)行 MOVX,MOVC 指令是 ALE才起作用。 另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁

14、止,置位無 效。/PSEN :外部程序存儲器的選通信號在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP :當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH ),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為 RESET ;當(dāng)/EA端保持高電平時, 此間內(nèi)部程序存儲器。 在FLASH 編程期間,此引腳也用于施加12V編程電源(VPP )。XTAL1 :反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2 :來自反向振蕩器的輸出。3.2蜂鳴電路發(fā)音由單片機程序控制,P3

15、.7端口輸出不同頻率的高低電平, P3.7輸出的脈沖頻率不同,從而揚聲器根據(jù)不同頻率的脈沖發(fā)出的聲音也不相同,發(fā)音電路如下圖XL丄 2豈711 1-1111 I所示:P3.0/RXD P31ffXD P3.2JNTTP3.3/INT1F3ATTOP3.5riP3.6AM?P3.7/RDSOUNDER=TEX3.3流水燈電路單片機給pi 口送一個數(shù),這個數(shù)本身就讓 P1.0先低,其他位為高,然后延時一段 時間,再讓這個數(shù)據(jù)向高位移動,然后再輸出至pi 口,這樣就實現(xiàn)“流水”效果。如下圖P3F1HF3JF1.1F3.P121F3P3:科*P 1_5FIF1J5P3F17F;Z73.4最小系統(tǒng)電路如

16、圖C122uFC2二 X112M10uF第4章軟件設(shè)計4.1.軟件設(shè)計主程序設(shè)計的第一步為初始化,初始化I/O 口,設(shè)置定時器定時時間,寫定時器工作方式寄存器,設(shè)置允許 TO中斷。剛開始需要將存儲單元置1,全部置1之后更新顯示緩沖區(qū)。接著進行顯示初始化,開定時器TO,這樣就可以開始顯示了。設(shè)置完以后程序就不斷檢測按鍵情況。檢測使用軟件去抖,也就是第一次檢測到有鍵按 下后,如果有鍵按下則執(zhí)行相應(yīng)指令。本設(shè)計還設(shè)計了防誤操作程序,也就是對于 一個鍵,按一下和一直按著的效果是一樣的,這樣可以防止用戶還沒放開此鍵時, 程序已進行第二次或多次同樣的操作。程序中根音選取的是 C調(diào)三個8度內(nèi)的音符,共21個

17、音。每個音符對應(yīng)頻率由 定時器TO產(chǎn)生(音符頻率及對應(yīng)計數(shù)初值見附表 )。為了程序調(diào)用方便,每個音符都 對應(yīng)一個編碼,占用一個字節(jié)。在程序中以查表的方式加載計數(shù)初值。當(dāng)值為00H時表示空拍,與節(jié)拍碼配合完成節(jié)拍發(fā)音。節(jié)拍碼也占一個字節(jié),其總時間長度等 于基本時間乘以節(jié)拍碼的值。節(jié)拍碼值為01H時,表示當(dāng)前樂曲結(jié)束,為00H時,表示全部樂曲結(jié)束。為了編碼簡單,一般節(jié)拍碼高半字節(jié)表示整拍,低半字節(jié)表示 分數(shù),只要基本延時設(shè)定恰當(dāng)即可,為了及時響應(yīng)鍵盤操作,鍵掃描指令安排在基 本延時時間子程序中。按鍵每按下一次,樂曲數(shù)目計數(shù)器R5加1或減1,然后根據(jù)R5的內(nèi)容轉(zhuǎn)向不同的樂曲。4.2系統(tǒng)方案系統(tǒng)初始化

18、后,進入播放功能。開始從第一首曲目開始循環(huán)播放。播放過程中 如果出現(xiàn)跳選曲目則進入相應(yīng)的曲目程序程序設(shè)計流程如下所示。根據(jù)流程圖寫程序:#in clude#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit BEEP=P3A7;uchar code SONG_TONE=212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,0;uchar code SONG_LONG=9,3,12

19、,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0;void DelayMS(ui nt x) uchar t;while(x-) for(t=0;t120;t+);void PlayMusic()uint i=O,j,k;P1=0xfe;while(SONG_LONGi!=0|SONG_TONEi!=0)for(j=0;jSONG_LONGi*20;j+)BEEP=BEEP;for(k=0;kSONG_TONEi/3;k+);P1 = 1;P1 |= 0x01;DelayMS(10);i+;if(P1 = 0x7f)D

20、elayMS(30);P仁 Oxfe;void mai n()BEEP=0;while(1)PlayMusic();DelayMS(500);第5章系統(tǒng)調(diào)試與仿真5.1軟件仿真階段單片的程序用KEIL編寫的。在keil內(nèi)建立工程后建立匯編文件,編寫MCS-51程序。1、編譯成功后,分模塊調(diào)試,分別采用“白盒”和“黑盒”測試法 驗證程序的正確性2、將調(diào)試成功的各模塊,合并到總程序中,進行總體性能測試。3、聯(lián)調(diào)PROTEUS進行硬件仿真,單步,斷點調(diào)試,觀察運行結(jié)果,并修改源程序5.2系統(tǒng)的仿真調(diào)試階段基于單片機的音樂播放器的是利用 PROTEUS軟件來實現(xiàn)電腦仿真的,仿真步驟如下:4、打開PRO

21、TEUS軟件,選擇器件,連接電路圖;5、添加已經(jīng)編譯的HEX文件到單片機內(nèi);6、單步運行,觀察結(jié)果,比較預(yù)定結(jié)果,修改源程序;7、總體調(diào)試運行;&分組測試,看是否達到任務(wù)要求。調(diào)試圖1!&:JTAL1XTAL2陋P0W1IPC2TAP71OJFR1FCSA&GPCI.7W&7 C3 Qktf31HPEENALE嚀那1 口 FZAIIFZ.M12F2JffA1+:r=T| MgTEXT=-姑一3遵一一abzltga注誥一盤“一竺證E5語-秋汎“汀貳戶訂徉e5.3調(diào)試問題處理1、是否短路用萬用表檢查P2兩端是短路。電阻為0,則短路,電阻為一適值, 電路正常。2、焊接順序焊接的順序很重要,按功能劃分

22、的器件進行焊接,順序是功 能部件的焊接-調(diào)試-另一功能部件的焊接,這樣容易找到問題的所 在。3、器件功能1 )檢查原理圖連接是否正確2 )檢查原理圖與器件的 DATASHEET引腳是否一致3 )用萬用表檢查是否有虛焊,引腳短路現(xiàn)象4 )查詢器件的DATASHEET分析一下時序是否一致,同時分 析一下命令字是否正確4、另外,我們有在同學(xué)的幫助下做一硬件開發(fā)板,由于開發(fā)板上用 12MHZ勺晶振管的晶振管,而老師給的樂譜轉(zhuǎn)換條件為 6MHZ導(dǎo)致在 音譜轉(zhuǎn)換過程中,是按6MHZ進行的,在實際播放時,音樂的播放不 是特別的清楚。第6章心得體會這學(xué)期學(xué)習(xí)單片機的時間只有2周時間,對單片機的硬件設(shè)計,軟件設(shè)

23、計掌握的深度不夠,但通過此次課程設(shè)計,卻改變了很多,首先對于硬件電路的工作原 理有了進一步的學(xué)習(xí),同樣就有了進一步的認識;其次軟件方面,在程序的設(shè)計, 程序的調(diào)試方面都學(xué)到了很多東西,這是第一次編寫單片機的大程序,很有成就感。2 . 在一個好的氛圍里才能踏下心來做東西,在這幾天課設(shè)的時間里,實驗室的氛 圍對我們的影響很大,大家一起努力,這也是我們能完成課設(shè)的動力。另外在編程 中出現(xiàn)問題時,一定要戒驕戒躁,腳踏實地,認真看書,仔細分析,仔細調(diào)試,就 一定會發(fā)現(xiàn)錯誤,克服困難,我們也是這么做的,這在課設(shè)中十分重要。 3這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,最后在周向紅老師的辛勤指導(dǎo)下,終于游逆而解。同時,在周老師那里我學(xué)得到很多實用的知識, 在次我表示感謝!同時,對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的 感謝!參考文獻1、單片機原理與應(yīng)用 王迎旭等編機械工業(yè)出版社2、51系列單片機設(shè)計實例 樓然苗等編北京航空航天大學(xué)出版社3、計算機硬件技術(shù)基礎(chǔ)實驗教程 黃勤等編 重慶大學(xué)出版社4、 微型計算機接口技術(shù)及應(yīng)用劉樂善主編 華中科技大學(xué)出版社5、單片微型計算機原理及接口技術(shù)陳光東等編 華中科技大學(xué)出版社6單片機典型模塊設(shè)計實例導(dǎo)航求是科技編著人民郵電出版社出版7、單片機程序設(shè)計實例 先鋒工作室編著清華大學(xué)出版社出附錄A:音樂播放器電

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論