單片機(jī)課程設(shè)計(jì)-音樂播放器.doc_第1頁
單片機(jī)課程設(shè)計(jì)-音樂播放器.doc_第2頁
單片機(jī)課程設(shè)計(jì)-音樂播放器.doc_第3頁
單片機(jī)課程設(shè)計(jì)-音樂播放器.doc_第4頁
單片機(jī)課程設(shè)計(jì)-音樂播放器.doc_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

此文檔收集于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系網(wǎng)站刪除徐 州 師 范 大 學(xué) 科 文 學(xué) 院本 科 生 課 程 設(shè) 計(jì)課 程 名 稱: 單片機(jī)課程實(shí)訓(xùn) 題 目: 播放音樂 專 業(yè) 班 級: 08 電信 學(xué) 生 姓 名: 學(xué) 生 學(xué) 號: 日 期: 2011-6-15 指 導(dǎo) 教 師: 科文學(xué)院教務(wù)部印制一、課程設(shè)計(jì)目的、任務(wù)和內(nèi)容要求: 單片機(jī)在各個(gè)領(lǐng)域的應(yīng)用日趨深入單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,在人們的生活中也隨處可見。本課題就單片機(jī)的控制應(yīng)用展開,設(shè)計(jì)能播放簡單音樂的音樂播放器,外部電路能夠?qū)纹瑱C(jī)進(jìn)行簡單控制。具體設(shè)計(jì)任務(wù)如下:1、了解單片機(jī)工作原理;2、掌握單片機(jī)外圍電路設(shè)計(jì);3、掌握單片機(jī)程序設(shè)計(jì)方法;4、提高動(dòng)手操作能力。 5、寫課程設(shè)計(jì)報(bào)告。設(shè)計(jì)要求:設(shè)計(jì)播放簡單音樂的音樂播放器。要求:一般情況下,接通電源,自動(dòng)播放音樂。 二、進(jìn)度安排:第3天: 查找資料,熟悉播放音樂的設(shè)計(jì)原理,給出設(shè)計(jì)總體方案;第46天: 各模塊的詳細(xì)設(shè)計(jì);第712天: 硬件連線,調(diào)試;第1314天:寫課程設(shè)計(jì)報(bào)告。三、主要參考文獻(xiàn):1謝自美. 電子線路設(shè)計(jì)-實(shí)驗(yàn)-測試M .武漢:華中科技大學(xué)出版社, 20002高峰 單片微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)及實(shí)用技術(shù) 機(jī)械工業(yè)出版社 20043鄭郁正.單片機(jī)原理及應(yīng)用.四川大學(xué)出版社,2003。4侯玉寶, 陳忠平,,李成群. 基于Proteus的51系列單片機(jī)設(shè)計(jì)與仿真. 北京 電 子工業(yè)出版社,20085.張毅剛、彭喜元、姜守達(dá)、喬立巖新編MCS-51系列單片機(jī)應(yīng)用設(shè)計(jì)哈爾濱工業(yè)大學(xué)出版社,2003.66.馬忠梅 單片機(jī)C語言應(yīng)用程序設(shè)計(jì) 機(jī)械工業(yè)出版社 1997 指導(dǎo)教師簽字: 年 月 日精品文檔目 錄摘 要 IIAbstract . II1 課題背景(或緒論、概述). 11.1 XXXX .11.2 XXXX . x2 設(shè)計(jì)方案簡述 . x2.1 XXXX .x 2.2 XXXX .x 2.3 XXXX .x 3 詳細(xì)設(shè)計(jì). x3.1 XXXX .x 3.1 XXXX .x 4 設(shè)計(jì)結(jié)果及分析. x4.1 XXXX .x 4.2 XXXX .x 4.3 XXXX .x 5總 結(jié) .x 參考文獻(xiàn) .x 附錄 主要程序代碼 .x 摘 要單片機(jī)具有優(yōu)異的性能價(jià)格比,并且具備集成度高、體積小、可靠性高、控制功能強(qiáng)、低電壓、低功耗等優(yōu)點(diǎn)。因此隨著單片機(jī)技術(shù)的發(fā)展,單片機(jī)正逐步應(yīng)用到人們生活中的各個(gè)方面:1、在智能儀器儀表中的應(yīng)用:在各類儀器儀表中引入單片機(jī),使儀器儀表智能化,提高測試的自動(dòng)化程度和精度,簡化儀器儀表的硬件結(jié)構(gòu),提高其性能價(jià)格比。 2、在實(shí)時(shí)過程控制中的應(yīng)用:用單片機(jī)實(shí)時(shí)進(jìn)行數(shù)據(jù)處理和控制,使系統(tǒng)保持最佳工作狀態(tài),提高系統(tǒng)的工作效率和產(chǎn)品的質(zhì)量。 本次課程設(shè)計(jì)我們就充分利用所學(xué)的單片機(jī)技術(shù)設(shè)計(jì)制作一個(gè)音樂播放器,通過實(shí)際單片機(jī)線路設(shè)計(jì)以及匯編語言程序設(shè)計(jì)鞏固所學(xué)知識,鍛煉動(dòng)手能力,體驗(yàn)匯編語言程序設(shè)計(jì)中可能出現(xiàn)的各種問題,并努力解決。關(guān)鍵詞:單片機(jī) ;揚(yáng)聲器 ;音符 ; 音樂 ; I/O接口 AbstractSCM has excellent performance to price, and have high level of integration, small size, high reliability and control function is strong, low voltage, low power consumption, etc. So with the development of the single chip microcomputer, microcontroller is gradually applied to people living in all aspects: 1, intelligent instruments in the application of all kinds of instruments in introducing a single-chip microcomputer, make instruments intelligent, improve test automation degree and precision, simplify the instruments of hardware structure, improve its performance to price. 2, in real time the application process control with single-chip computer: real-time data processing and control, make the system to keep the best working state, and improve the system of work efficiency and the quality of the products. In this class, we will make full use of my knowledge and design of the single chip microcomputer design a music player, through the actual line design and assembly language chip program design consolidate knowledge, exercise beginning ability, experience in assembler language programming possible problems, and work hard to solve.Keywords:SCM ;speaker notes ;music; I/O interface1 概述1.1課題的背景和意義1.1.1單片機(jī)概述 單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講,一塊芯片就成了一臺計(jì)算機(jī)。 MCS-51單片機(jī)是美國INTEL公司于1980年推出的產(chǎn)品,與MCS- 48單片機(jī)相比,它的結(jié)構(gòu)更先進(jìn),功能更強(qiáng),在原來的基礎(chǔ)上增加了更多的電路單元和指令,指令數(shù)達(dá)111條,MCS-51單片機(jī)可以算是相當(dāng)成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機(jī)仍是應(yīng)用的主流產(chǎn)品,各高校及專業(yè)學(xué)校的培訓(xùn)教材仍與MSC-51單片機(jī)作為代表進(jìn)行理論基礎(chǔ)學(xué)習(xí)。 MCS-51系列單片機(jī)主要包括8031、8051和8751等通用產(chǎn)品。DP-51S單片機(jī)仿真實(shí)驗(yàn)儀是由廣州致遠(yuǎn)電子有限公司設(shè)計(jì)的DP系列單片機(jī)仿真實(shí)驗(yàn)儀之一,是一種功能強(qiáng)大的單片機(jī)應(yīng)用技術(shù)學(xué)習(xí)、調(diào)試。1.1.2 單片機(jī)的應(yīng)用領(lǐng)域 單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分為如下幾個(gè)范疇: 一、在智能儀器儀表的應(yīng)用 單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測量設(shè)備(功率計(jì),示波器,各種分析儀)。 二、在家用電器中的應(yīng)用可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯煲、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。三、在工業(yè)控制中的應(yīng)用 用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。四、在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī)、電話機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動(dòng)電話,集群移動(dòng)通信,無線電對講機(jī)等。 五、單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。 此外,單片機(jī)在工商、金融、科研、教育、國防航空等領(lǐng)域都有著十分廣泛的用途。1.2 課題目的 基于單片機(jī)的音樂播放器可應(yīng)用于mp3,MP4,擴(kuò)音器等很多方面,并可作為很多系統(tǒng)的輔助功能,作為單片機(jī)的重要硬件資源之一,利用定時(shí)器可以產(chǎn)生各種固定頻率的方波信號,也可以產(chǎn)生包括Do、Re、Me-等音階在內(nèi)的各種頻率聲音。將各個(gè)音階連接在一起,便可組成一支曲子或是演奏一段旋律?;谶@個(gè)思想,我設(shè)計(jì)了一款特殊的音樂播放器,本播放器可實(shí)現(xiàn)播放、暫停、復(fù)位等功能。為了體現(xiàn)樂曲播放過程中的動(dòng)態(tài)效果,增加了1只LED,作隨機(jī)閃爍以指示旋律的節(jié)奏。由于時(shí)間及條件限制,本設(shè)計(jì)實(shí)現(xiàn)了一種簡單的音樂播放器,其核心器件采用AT89C51單片機(jī),本播放器具有電路簡單,功能強(qiáng)大,易于拓展等特點(diǎn)。2 設(shè)計(jì)方案簡述2.1 總體流程圖主程序?qū)崿F(xiàn)對單片機(jī)進(jìn)行初始化后,進(jìn)入曲目識別子程序,進(jìn)行歌曲曲目判斷。確定歌曲曲目后,數(shù)碼管再進(jìn)行顯示。然后,子程序?qū)κ欠癫シ胚M(jìn)行循環(huán)判斷,得到播放中斷的指令后再進(jìn)行播放。執(zhí)行播放后,關(guān)閉數(shù)碼管顯示并調(diào)用查表子程序進(jìn)行播放音樂。在播放音樂的過程中,查表子程序循環(huán)判斷音樂是否結(jié)束。當(dāng)音樂結(jié)束時(shí),程序跳轉(zhuǎn)回曲目識別子程序。 圖2-1 總體流程圖2.2設(shè)計(jì)方案 圖2-2 電路設(shè)計(jì)原理圖設(shè)計(jì)一個(gè)音樂播放器,將要播放的音樂編寫成程序,并通過放大電路和喇叭輸出聲音。電路主要由AT89C51芯片,LED發(fā)光二極管,喇叭,晶振電路組成,由引腳輸出定時(shí)器產(chǎn)生的各種固定頻率的方波信號,然后由喇叭產(chǎn)生各種頻率的聲音。由于該方案中使用內(nèi)部振蕩電路,XTAL1、XTAL2引腳外界石英晶體和微調(diào)電容構(gòu)成的晶振電路??傮w原理:樂曲中不同的音符,實(shí)質(zhì)就是不同頻率的聲音。通過單片機(jī)產(chǎn)生不同的頻率的脈沖信號,經(jīng)過放大電路,由蜂鳴器放出,就產(chǎn)生了美妙和諧的樂曲。2.3.總體電路設(shè)計(jì) 圖2-3 總電路圖2.4核心器件AT89C51介紹AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖所示圖2-3 AT89C51外形圖及引腳序列主要特性:與MCS-51 兼容 4K字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年全靜態(tài)工作:0Hz-24MHz三級程序存儲器鎖定1288位內(nèi)部RAM32可編程I/O線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示表2.1 P3口被選功能管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時(shí)器0外部輸入)P3.5 T1(記時(shí)器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號要通過一個(gè)二分頻觸發(fā)器,因此對外部時(shí)鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。芯片擦除:整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。3 詳細(xì)設(shè)計(jì)3.1 AT89S52引腳圖 89C52單片機(jī)擁有4KB的片內(nèi)ROM和128B的片內(nèi)RAM。ROM和RAM的片外尋址范圍都為64KB。單片機(jī)擁有32個(gè)并行口和1個(gè)串行口。在89C51單片機(jī)中存在5個(gè)中斷源,其中有兩個(gè)外部中斷源、兩個(gè)內(nèi)部中斷源和一個(gè)串行中斷源。 圖3-1 89C51單片機(jī)3.2單片機(jī)最小系統(tǒng)單片機(jī)要想正常工作,必須給出晶振電路,以提供時(shí)鐘信號;還要有復(fù)位電路,因?yàn)閱纹瑱C(jī)必須有可靠的復(fù)位后才能運(yùn)行程序;必須有電源供應(yīng),以提供電能;要想使用內(nèi)部程序存儲器,還必須有把EA引腳接高電平。圖中,c2 ,c3為30pf電容,C1為10UF電容;電阻R1為10,R2為10K;X1為11.0592MHZ的晶振。電源電壓為正5伏。 圖3-2 單片機(jī)最小系統(tǒng)3.3 晶振時(shí)間電路設(shè)計(jì)晶振電路由兩個(gè)22pF的電容和一個(gè)6Mhz的晶體振蕩器組成。節(jié)點(diǎn)1與單片機(jī)的XTAL2相連接,節(jié)點(diǎn)2與單片機(jī)的XTAL1相連接,從而為單片機(jī)提供時(shí)間信號,為音樂的播放節(jié)拍控制提供基本時(shí)間單位:當(dāng)晶體振蕩頻率為6.MHz,定時(shí)器工作在方式1下時(shí),若各音階相對應(yīng)的定時(shí)器計(jì)數(shù)初值為X,則可根據(jù)下式計(jì)算X: 圖3-3 晶振電路3.4 控制電路設(shè)計(jì)控制電路,鍵一與p3.2相連、鍵二與p3.3相連、鍵3與p3.5相連。當(dāng)電鍵按下時(shí)接口接低電平,從而實(shí)現(xiàn)對音樂播放器的控制。鍵一聯(lián)通實(shí)現(xiàn)上一曲更換,鍵二聯(lián)通實(shí)現(xiàn)下一曲更換,鍵三聯(lián)通實(shí)現(xiàn)開始暫停操作。鍵控子程序主要由播放/暫停子程序、上一曲子程序、下一曲子程序組成,分別由一個(gè)計(jì)數(shù)器中斷和兩個(gè)外部中斷實(shí)現(xiàn)。3.4.1 播放/暫停子程序播放/暫停在程序利用內(nèi)部中斷T0口。將T0口設(shè)為計(jì)數(shù)中斷并工作在方式2下。標(biāo)識符初值賦值為R1=00H,計(jì)數(shù)初值設(shè)為TH0=0FFH,TL0=0FFH。當(dāng)按鍵第一次產(chǎn)生中斷信號時(shí),播放/暫停子程序改變標(biāo)志符R1,將其賦值為01H。此時(shí)播放器由暫停狀態(tài)進(jìn)入播放狀態(tài)。當(dāng)按鍵第二次產(chǎn)生中斷信號時(shí),播放/暫停子程序判斷R1是否為02H后,將R1再次賦值為00H。此時(shí),播放器由播放狀態(tài)進(jìn)入暫停狀態(tài)。3.4.2 曲目選擇子程序曲目選擇子程序分為上一曲子程序和下一曲子程序。上一曲和下一曲功能實(shí)現(xiàn)方式類似,分別由外部中斷和外部中斷。下面以實(shí)現(xiàn)上一曲功能為例:首先設(shè)置標(biāo)識符R7初始值為00H。當(dāng)按鍵產(chǎn)生中斷信號,上一曲中斷子程序改變標(biāo)識符R7的值為01H并改變曲目R0的值。播放子程序判斷出標(biāo)識符R7改變后,先將R7賦值為00H,然后跳轉(zhuǎn)到曲目識別子程序。 圖3-4 復(fù)位電路3.5顯示電路設(shè)計(jì)顯示電路是一個(gè)8位共陰極LED數(shù)碼管。 單片機(jī)的P1.0-P1.7分別與數(shù)碼管的A、B、C、D、E、F、G、DP相連接。 圖3-5 8位共陰極LED燈3.6輸出電路設(shè)計(jì)發(fā)聲電路由數(shù)字揚(yáng)聲器連接p2.0接口實(shí)現(xiàn)音樂的輸出,由控制電路發(fā)出操作指令后,單片機(jī)調(diào)用相應(yīng)程序,并將音樂信號由p2.0口輸出,通過驅(qū)動(dòng)揚(yáng)聲器發(fā)出美妙的音樂。 圖3-6輸出電路3.7 單片機(jī)產(chǎn)生不同頻率脈沖信號的原理(1)要產(chǎn)生音頻脈沖,只要算出某一音頻的脈沖1/頻率),然后將此周期除以2,即為半周期的時(shí)間,利用定時(shí)器計(jì)時(shí)這個(gè)半周期的時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期的時(shí)間再對I/O反相,就可以在I/O腳上得到此頻率的脈沖。 ( 2 ) 利用8051的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法如下:例如,頻率為523Hz,其周期天/523 S=1912uS,因此只要令計(jì)數(shù)器計(jì)時(shí) 956uS/1us=956,在每計(jì)數(shù)956次時(shí)就將I/O反接,就可得到中音DO(532Hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下: N=Fi/2/Fr (N:計(jì)數(shù)值,F(xiàn)i:內(nèi)部計(jì)時(shí)一次為1uS,故其頻率為1MHz,F(xiàn)r:要產(chǎn)生的頻率 )(3)其計(jì)數(shù)值的求法如下:T=65536-N=65536-Fi/2/Fr計(jì)算舉例:設(shè)K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計(jì)數(shù)值。T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1047=65059(4 )C調(diào)個(gè)音符頻率與計(jì)數(shù)值T的對照表如下表所示:表3-7-1 C調(diào)各音符頻率與計(jì)數(shù)值T的對照表音 符頻率(Hz)簡譜碼(T值)音 符頻率(Hz)簡譜碼(T值)低1DO26263628#4FA#74064860#1DO#27763731中5SO 78464898低2RE29463835#5SO#83164923#2RE#31163928中6LA88064968低3M33064103#693264994低4FA34964204中7SI98865030#4FA#37064260高1DO104665058低5SO39264261#1DO#110965085#5SO#41564400高2RE117565110低6LA44064443#2RE#124565124#646664524高3M131865157低7SI49464524高4FA139765178中1DO52364331#4FA#148065189(5) 每個(gè)音符使用1個(gè)字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,下表為節(jié)拍碼的對照。但如果1拍為0.4秒,1/4拍是0.1秒,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè)1/4節(jié)拍為1DELAY,則1拍應(yīng)為4DELAY,以此類推。所以只要求得1/4拍的DELAY時(shí)間,其余的節(jié)拍就是它的倍數(shù),如下表為1/4和1/8節(jié)拍的時(shí)間設(shè)定。 表3-7-2 節(jié)拍碼對照表1/4節(jié)拍 1/8節(jié)拍節(jié)拍碼節(jié)拍數(shù)節(jié)拍碼節(jié)拍數(shù)11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51又1/4拍55/8拍61又1/2拍63/4拍71又3/4拍77/8拍82拍81拍92又1/4拍91又1/8拍A2又1/2拍A1又1/4拍B2又3/4拍B1又3/8拍C3拍C1又1/2拍D3又1/4拍D1又5/8拍E3又1/2拍E1又3/4拍F3又3/4拍F1又7/8拍表3-7-3 各調(diào)節(jié)拍的時(shí)間設(shè)定表1/4節(jié)拍1/8節(jié)拍曲調(diào)值DELAY曲調(diào)值DELAY調(diào)4/4125毫秒調(diào)4/462毫秒調(diào)3/4187毫秒調(diào)3/494毫秒調(diào)2/4250毫秒調(diào)2/4125毫秒四分之一拍延時(shí)代碼設(shè)計(jì):1/4拍的延遲時(shí)間=187毫秒DELAY: MOV R7,#2D2: MOV R4,#187D3: MOV R3,#248DJNZ R3,$DJNZ R4,D3DJNZ R7,D2RET3.8 音樂代碼實(shí)現(xiàn)3.8.1音樂代碼庫的建立方法(1)先找出樂曲的最低音和最高音范圍,然后確定音符表T的順序。(2)把T值表建立在TABLE1,構(gòu)成發(fā)音符的計(jì)數(shù)值放在“TABLE”。(3)簡譜碼(音符)為高位,節(jié)拍為(節(jié)拍數(shù))為低4位,音符節(jié)拍碼放在程序的“TABLE”處。(4)音符節(jié)拍碼00H為音樂結(jié)束標(biāo)記。3.8.2選曲在一個(gè)程序中,需要演奏兩首或兩首以上的歌曲時(shí),音樂代碼庫的建立有兩種方法:(1)將每首歌曲建立相互獨(dú)立的音符表T和發(fā)音符計(jì)數(shù)值TABLE。(2)在建立公用音符表T后,再寫每首歌的發(fā)音計(jì)數(shù)值TABLE中的代碼不管采用那種方法,每首歌曲結(jié)束時(shí),在TABLE中均需加上音樂結(jié)束符00H。4 設(shè)計(jì)結(jié)果及分析4.1 電路仿真調(diào)試4.1.1 仿真平臺 仿真平臺為Proteus軟件。Proteus軟件是世界上著名的EDA工具,能完成原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì)它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件,是目前最好的仿真單片機(jī)及外圍器件的工具。4.1.2仿真測試開始仿真后,音樂播放器處于暫停狀態(tài)如圖: 點(diǎn)擊播放,播放器進(jìn)入播放狀態(tài),數(shù)碼管顯示為一,開始默認(rèn)從第一首軍港之夜開始播放如圖: 4.2 設(shè)計(jì)結(jié)果分析音樂播放器很好的實(shí)現(xiàn)了播放/暫停、上一曲、下一曲的功能,并滿足了數(shù)碼管顯示的特殊要求。 音效良好,能很好聽出樂曲的曲名。當(dāng)然設(shè)計(jì)的音樂播放器也存在著不足之處。8位LED數(shù)碼管只能顯示10以內(nèi)的歌曲曲目,超過10將無法顯示。調(diào)試過程中所遇到的問題:運(yùn)行程序時(shí)LED4位共陰數(shù)碼管顯示程亂碼。原因分析:數(shù)碼管初始設(shè)置有錯(cuò)。解決方案:重新設(shè)置數(shù)碼管顯示參數(shù),2)數(shù)碼管顯示的時(shí)間與真正的時(shí)間進(jìn)度不一致。原因分析:定時(shí)器初值設(shè)置有誤。本次設(shè)計(jì)的晶振為6MHZ,而程序中的初值卻設(shè)置成了6MHZ晶振所采用的值5000,導(dǎo)致顯示的時(shí)間比真正的時(shí)間要慢。解決方案:將定時(shí)器初值改為6MHZ晶振初值的一半,及2500即可。5 總結(jié) 幾周的課程設(shè)計(jì)結(jié)束了,我相信每個(gè)人都會又不小的收獲。在這幾周中,我們一起完成了我們的任務(wù),我學(xué)到了很多,也發(fā)現(xiàn)了很多不足?,F(xiàn)在單片機(jī)技術(shù)飛速的發(fā)展,而且單片機(jī)是實(shí)現(xiàn)自動(dòng)化的重要途徑。如今,單片機(jī)已經(jīng)深入到了我們生活的各個(gè)領(lǐng)域。而這次單片機(jī)的課設(shè)給了我們一個(gè)很好的機(jī)會然我們?nèi)ソ佑|和控制單片機(jī)。課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說得是無處不在。因此作為計(jì)算機(jī)專業(yè)的學(xué)生來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。 我的題目是單片機(jī)播放音樂的設(shè)計(jì),對于我們來說,這是一次考驗(yàn)。怎么才能找到課堂所學(xué)與實(shí)際應(yīng)用的最佳結(jié)合點(diǎn)?怎樣讓自己的計(jì)劃更具有序性,而不會忙無一用?這都是我們所要考慮和努力的。這次課程設(shè)計(jì)我學(xué)到很多很多的東西,學(xué)會了怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃。不僅鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識,掌握了一種系統(tǒng)的研究方法,可以進(jìn)行一些簡單的編程。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。雖然前期進(jìn)行了完備的設(shè)計(jì)分析和充分的準(zhǔn)備工作,在實(shí)際操作中我們還是遇到諸多困難。我們花費(fèi)大量時(shí)間對方案進(jìn)行討論修改,考慮到制作的簡單易行,芯片功能,我們對設(shè)計(jì)方案進(jìn)行不斷改進(jìn),在理論和實(shí)踐上實(shí)現(xiàn)協(xié)調(diào)統(tǒng)一;課下我們從圖書館和網(wǎng)上查找資料,不斷豐富自己的相關(guān)知識,并與老師保持溝通,獲得寶貴意見。為了盡早完成作品,經(jīng)過課下大量的實(shí)踐操作,我們提高了焊接技能和效率,豐富了各種器件常識,收獲了難得的實(shí)踐經(jīng)驗(yàn)。通過課設(shè)更使我明白了學(xué)習(xí)是用來服務(wù)的,我們不能只學(xué)習(xí)書上的知識,我們學(xué)習(xí)是為了更好的生活,要學(xué)以致用,要能夠理論聯(lián)系實(shí)際。 同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,對單片機(jī)語言掌握得不夠好。這次課程設(shè)計(jì)通過自己的努力,同學(xué)的幫助,還有老師的辛勤指導(dǎo)下,最終順利完成了。參考文獻(xiàn)1謝自美. 電子線路設(shè)計(jì)-實(shí)驗(yàn)-測試M .武漢:華中科技大學(xué)出版社, 20002高峰 單片微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)及實(shí)用技術(shù) 機(jī)械工業(yè)出版社 20043鄭郁正.單片機(jī)原理及應(yīng)用.四川大學(xué)出版社,2003。4侯玉寶, 陳忠平,李成群. 基于Proteus的51系列單片機(jī)設(shè)計(jì)與仿真. 北 京電子工業(yè)出版社,20085.張毅剛、彭喜元、姜守達(dá)、喬立巖新編MCS-51系列單片機(jī)應(yīng)用設(shè)計(jì)哈爾濱工業(yè)大學(xué)出版社,2003.66.馬忠梅 單片機(jī)C語言應(yīng)用程序設(shè)計(jì) 機(jī)械工業(yè)出版社 1997附錄OUT BIT P2.0 ;定義音頻輸出端口,p2.0N EQU 3 ;歌曲總數(shù)OUT_NUM EQU P1 ;數(shù)碼管顯視當(dāng)前所放歌曲曲數(shù) ORG 0000H AJMP MAIN ORG 0003H AJMP LAST_SONG ;外部中斷0用于接上一曲歌按鍵 ORG 000BH AJMP F_T0 ;定時(shí)器0用于定時(shí),作音符發(fā)生器用 ORG 0013Hq4: AJMP NEXT_SONG ;外部中斷1接下一曲歌按鍵 ORG 001BH AJMP START_PAUSE ;定時(shí)器1用計(jì)數(shù),這里用作中斷,接開始/暫停鍵,初值為0ffH,方式2 ORG 0030HMAIN: MOV SP,#60H MOV DPTR,#TABLE ;DPRT指向每首歌曲的入口地址的地址。 MOV R0,#30H ;R0中存入數(shù)據(jù)30H,這里在以30H開始的單元存放每首歌曲的入口地址,其中30H,31H存放 ;歌曲的節(jié)拍入口地址,32H,33H存放歌曲音符入口地址,每首歌占用四個(gè)存儲存單元。 MOV R5,#00H ;R5中存放表TABLE中正在執(zhí)行操作的序號 MOV R6,#1 ;R6存放正在設(shè)置入口信息的歌曲數(shù)SET_TAB: MOV A,R5 ;設(shè)置每首歌曲的入口信息,存放在以30H開始的存儲單元中。 MOVC A,A+DPTR MOV R0,A INC R5 INC R0 MOV A,R5 MOVC A,A+DPTR MOV R0,A INC R5 INC R0 MOV A,R5 MOVC A,A+DPTR MOV R0,A INC R0 INC R5 MOV A,R5 MOVC A,A+DPTR MOV R0,A INC R0 INC R5 INC R6 ;設(shè)置完一首歌曲后,歌曲數(shù)加一 CJNE R6,#N+1,SET_TAB ;是否設(shè)置完,沒有便繼續(xù),否則進(jìn)行下面的操作 ;* 對中斷,計(jì)數(shù)器的相關(guān)參數(shù)進(jìn)行設(shè)置 MOV TMOD, #61H ;計(jì)數(shù)器0工作方式1,計(jì)數(shù)器1工作方式2 MOV TH1,#0FFH ;給計(jì)數(shù)器1置初值0FFH,又由于是工作方式2,所以 MOV TL1,#0FFH ;計(jì)數(shù)器計(jì)數(shù)為1,相當(dāng)于一外部中斷。 SETB ET1 ;允許計(jì)數(shù)器1中斷 SETB ET0 ;允許計(jì)數(shù)器具0中斷 CLR PT0 ;計(jì)數(shù)器0為低優(yōu)先級 SETB PT1 ;計(jì)數(shù)器1為高優(yōu)先級 SETB IT0 ;外部中斷0為跳沿觸發(fā) SETB PX0 ;高優(yōu)先級 SETB IT1 ;外部中斷1為跳沿觸發(fā) SETB PX1 ;高優(yōu)先級 SETB EX1 ;允許外部中斷1中斷 SETB EX0 ;允許外部中斷定0中斷 SETB EA ;開中斷總開關(guān) SETB TR1 ;定時(shí)器1開始工作,作中斷用 SETB OUT ;音頻輸出端口初始化 ;* ;設(shè)置結(jié)束 CLR F0 ;設(shè)置F0=0,用來作暫停/播放的標(biāo)置位用 MOV 22H,#01H ;22H單元中存放正在播放的歌曲編號 MOV DPTR,#OUT_TAB ;將正在播放的歌曲編號送數(shù)碼管顯視 MOV A,22H MOVC A,A+DPTR MOV OUT_NUM,A MOV R7,#00H ;R7中存放歌曲總信息的入口地址 START0:MOV R4,#00H ;R4存放當(dāng)前正在播放歌曲的第幾個(gè)節(jié)拍數(shù) MOV R0,#30H ;30H開始的單元中存放歌曲的入口信息 MOV A,R7 ;將歌曲的節(jié)拍表的入

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論