基于AT89C51音樂播放器_第1頁
基于AT89C51音樂播放器_第2頁
基于AT89C51音樂播放器_第3頁
基于AT89C51音樂播放器_第4頁
基于AT89C51音樂播放器_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機原理及系統(tǒng)課程設計報告單片機原理及系統(tǒng)課程設計評語:考勤(10)守紀(10)過程(40)設計報告(30)答辯(10)總成績(100)專 業(yè): 自動控制 班 級: 1103班 姓 名: 徐越 學 號: 201108902 指導教師: 李亞寧 蘭州交通大學自動化與電氣工程學院2013 年 9月 1 日單片機原理及系統(tǒng)課程設計報告基于單片機的音樂播放器設計摘 要隨著我國現(xiàn)代化技術建設的發(fā)展,電子產(chǎn)品多種多樣,但同類電子產(chǎn)品工作原理基本相同,只不過在硬件電路的是實現(xiàn)上有所不同。例如我們我們平時所用的MP3音樂播放器,就可以用單片機和一些電子元件來實現(xiàn)它的基本功能。我的設計是以89C51單片機作為

2、核心工作元件的音樂播放器,依據(jù)單片機技術原理,通過硬件電路制作以及軟件編譯,設計制作出一個多功能音樂盒。該音樂盒主要由按鍵電路、復位電路、時鐘電路以及蜂鳴器組成。本設計利用KEIL編程軟件對音樂盒源程序進行編程并調試,配合PROTEUS仿真軟件對硬件進行仿真調試,節(jié)約了設計時間。它在實現(xiàn)音樂播放功能上簡單易行,在制作硬件電路上也不困難。因此,此次課程設計,我除了完成了系統(tǒng)的軟件設計和實物電路仿真外,利用空余時間制作出了實物。關鍵字 音樂播放器,AT89C51單片機,KEIL,PROTEUS。1 引言1.1 設計目的此次制作的音樂播放器,只需將音樂編碼導入C語言程序,經(jīng)過KEIL軟件運行生成HE

3、X文件,經(jīng)BDM下載器導入單片機中即可??梢酝瑫r生成多首歌曲的音樂編碼,再次我選擇了兩首歌的音樂編碼。學生自己動手就可以制作屬于自己的個性化的音樂播放器,通過自己動手將所學的單片機知識應用到實踐中。1.2 設計要求 設計一個基于AT89C51的音樂播放器,利用軟件編程和相應的硬件電路實現(xiàn)不同歌曲的播放,先利用KEIL軟件編程,再用PROTEUS仿真實現(xiàn),生成可執(zhí)行的HEX文件,最后焊接實物電路。1.3 設計方法采用AT89C51單片機、蜂鳴器,晶體振蕩器,晶體管2N2905,復位開關為主要硬件。 PROTEUS仿真軟件設計和C語言編程方法實現(xiàn)播放器的模擬,用AT89C51實現(xiàn)音樂編碼的處理,用

4、晶體管2N2905對電路中電流放大,進而驅動蜂鳴器播放音樂。2 設計方案及原理按照系統(tǒng)設計要求,將系統(tǒng)分為主控模塊,電源電路復位電路、晶振電路、功率放大電路,蜂鳴器發(fā)聲電路等模塊。系統(tǒng)框圖如圖1所示。 圖1 系統(tǒng)組成框圖AT89C51簡介 AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器的低電壓,高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組

5、合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機外形及引腳排列如圖2所示。 圖2 AT89C51單片機引腳圖3 硬件設計3.1 晶振電路晶振電路,對于單片機系統(tǒng)而言是必須的,因為單片機內部是由各種各樣的數(shù)字邏輯器件構成,而這些器件又必須按時間順序完成。所以在管腳的XTAL1和XTAL2引腳外接石英晶體和倆個諧振電容,電容采用2個30pf電容,采用12M的石英晶體。這樣就可以構成單片機的基本時鐘電路,時鐘頻率為12M。如圖2所示 圖2晶振電路3.2 復位電路復位電路是對單片機進行初始化操作,使單片機處于一個確定的初始狀態(tài)。而

6、要AT89S51復位得在RESET引腳上加5V的高電平信號就可以了。復位電路參數(shù)為30U的電解電容和1k的電阻。如圖3為單片機的復位電路。圖3復位電路3.3 功率放大電路功率放大電路對工作電流進行放大,因為單片機電路本身的電流不足以帶動蜂鳴器發(fā)生,加一個三極管放大器2N2905可以帶動蜂鳴器發(fā)生。圖4功率放大電路3.4 晶振、復位、功放之間連線電路 圖5復位電路、晶振電路與單片機之間的連線圖3.4 系統(tǒng)連接圖整體硬件連接圖如圖6所示。圖6系統(tǒng)連接圖4 軟件設計4.1 主程序設計 主程序流程圖如圖6所示。 圖7主程序流程圖 5 系統(tǒng)仿真及調試軟件調試,先編寫顯示程序并進行硬件的正確性檢驗,然后分

7、別進行主程序,音樂播放程序和定時程序的編譯和調試;硬件調試,仔細檢查電路有沒有漏接或是錯接的地方,再接一個電壓表檢查供給蜂鳴器的電壓是否合適,調節(jié)電阻的阻值以調節(jié)工作電路的阻值。并且外接了一個數(shù)字濾波器檢測P1.7引腳的電平高低。如果不理想,繼續(xù)調整程序和硬件電路,直到得到正確結果。仿真圖詳見第4圖6。6 總結通過此次基于單片機的音樂播放器的設計,使我進一步加深了對課堂上知識的理解,對單片機的尋址方式及定時中斷的理解更加深刻,熟悉了單片機應用系統(tǒng)設計的各主要環(huán)節(jié)的設計,了解了三極管2N2905的參數(shù),及使用方法,蜂鳴器的正常工作條件,示波器在PROTEUS中的使用方法,使用外部晶體振蕩器如何選

8、取電容,及晶體振頻率。但是動手制作實物的過程的,動手焊接能力還是不行,容易把引腳焊接在一起,因此,在以后的學習要加強自己實踐能力的鍛煉。軟件調試,先編寫顯示程序并進行硬件的正確性檢驗,然后分別進行主程序,A/D轉換程序和LED顯示器程序編譯和調試;硬件調試,仔細檢查電路有沒有漏接或是錯接的地方,再接一個電壓表檢查LED顯示器顯示的數(shù)值是否和電壓表的示數(shù)一致,如果不理想,繼續(xù)調整程序,直到得到正確結果。附錄1音樂播放器源程序/音樂播放器代碼#include<reg52.h>#define uchar unsigned char#define uint unsigned intucha

9、r Count;sbit Speak =P17; /蜂鳴器器控制腳 /*以下數(shù)組是音符編碼*/unsigned char code SONG = /祝你平安0x26,0x20,0x20,0x20,0x20,0x20,0x26,0x10,0x20,0x10,0x20,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x30,0x10,0x30,0x80,0x26,0x20,0x20,0x20,0x20,0x20,0x1c,0x20,0x20,0x80,0x2b,0x20,0x26,0x20,0x20,0x20,0x2b,0x10,0x26,0x10,0x

10、2b,0x80,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x60,0x40,0x10,0x39,0x10,0x26,0x20,0x30,0x20,0x30,0x20,0x39,0x10,0x26,0x10,0x26,0x80,0x26,0x20,0x2b,0x10,0x2b,0x10,0x2b,0x20,0x30,0x10,0x39,0x10,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x20,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x

11、30,0x80,0x18,0x20,0x18,0x20,0x26,0x20,0x20,0x20,0x20,0x40,0x26,0x20,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x1c,0x20,0x1c,0x20,0x1c,0x20,0x30,0x20,0x30,0x60,0x39,0x10,0x30,0x10,0x20,0x20,0x2b,0x10,0x26,0x10,0x2b,0x10,0x26,0x10,0x26,0x10,0x2b,0x10,0x2b,0x80,0x18,0x20,0x18,0x20,0x

12、26,0x20,0x20,0x20,0x20,0x60,0x26,0x10,0x2b,0x20,0x30,0x20,0x30,0x20,0x1c,0x20,0x20,0x20,0x20,0x80,0x26,0x20,0x30,0x10,0x30,0x10,0x30,0x20,0x39,0x20,0x26,0x10,0x2b,0x10,0x2b,0x20,0x2b,0x40,0x40,0x10,0x40,0x10,0x20,0x10,0x20,0x10,0x2b,0x10,0x26,0x30,0x30,0x80,0x00, /路邊的野華不要采0x30,0x1C,0x10,0x20,0x40,0x

13、1C,0x10,0x18,0x10,0x20,0x10,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x1C,0x20,0x18,0x20,0x20,0x80,0xFF,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0xFF,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x

14、2B,0x40,0x20,0x20,0x1C,0x10,0x18,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x80,0x20,0x30,0x1C,0x10,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x

15、20,0x15,0x1F,0x05,0x20,0x10,0x1C,0x10,0x20,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x30,0x1C,0x10,0x18,0x20,0x15,0x20,0x1C,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x30,0x20,0x30,0x1C,0x10,0x18,0x40,0x1C,0x20,0x20,0x20,0x26,0x40,0x13,0x60,0x18,0x20,0x15,0x40,0x

16、13,0x40,0x18,0x80,0x00,;/* 名稱 : Time0_Init()* 功能 : 定時器的初始化,定時時間可用光碟中軟件計算,11.0592MZ晶振,10ms* 輸入 : 無* 輸出 : 無*/void Time0_Init()TMOD = 0x01;IE = 0x82;TH0 = 0xDC;TL0 = 0x00;/* 名稱 : Time0_Int()* 功能 : 定時器中斷,中斷中實現(xiàn) Count 加一* 輸入 : 無* 輸出 : 無*/void Time0_Int() interrupt 1TH0 = 0xDC;TL0 = 0x00;Count+;/長度加1/* 名稱

17、: Delay_x Ms()* 功能 : 延時子程序,經(jīng)過軟件調試,測得延時程序大概為55us.* 輸入 : x * 輸出 : 無*/void Delay_x Ms(uint x) uint i,j; for(i=0; i<x; i+) for(j=0; j<3; j+); /* 名稱 : Play_Song()* 功能 : 播放蜂鳴器控制程序* 輸入 : i (選擇播放哪首歌曲,0為“祝你平安”,1為“路邊的野花你不要采”* 輸出 : 無*/void Play_Song(uchar i)uchar Temp1,Temp2;uint Addr;Count = 0;/中斷計數(shù)器清0A

18、ddr = i * 217;while(1)Temp1 = SONGAddr+; if (Temp1 = 0xFF) /休止符 TR0 = 0; Delay_x Ms(100); else if (Temp1 = 0x00) /歌曲結束符 return; else Temp2 = SONGAddr+; TR0 = 1; while(1) Speak = Speak; Delay_xMs(Temp1); if(Temp2 = Count) Count = 0; break; /* 名稱 : Main()* 功能 : 主函數(shù)* 輸入 : 無* 輸出 : 無*/void Main()Time0_Init();/定時器0中斷初始化while(1)Play_Song(0);/Play_Song(0)為祝你平安 Play_Son

溫馨提示

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

評論

0/150

提交評論