可編程作息時(shí)間控制器實(shí)驗(yàn)報(bào)告1_第1頁(yè)
可編程作息時(shí)間控制器實(shí)驗(yàn)報(bào)告1_第2頁(yè)
可編程作息時(shí)間控制器實(shí)驗(yàn)報(bào)告1_第3頁(yè)
可編程作息時(shí)間控制器實(shí)驗(yàn)報(bào)告1_第4頁(yè)
可編程作息時(shí)間控制器實(shí)驗(yàn)報(bào)告1_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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)介

1、物理與電子信息學(xué)院?jiǎn)纹瑱C(jī)與接口技術(shù)課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 可編程作息時(shí)間控制器 專 業(yè): 通信工程 班 級(jí): 13級(jí)通信工程 姓 名: 張宏、朱子龍、胡杰 教師評(píng)語(yǔ):成績(jī) 評(píng)閱教師 日期 課 程 設(shè) 計(jì) 劃 任 務(wù) 書(shū) 通信工程 系 通信工程 專業(yè) 學(xué)生姓名 朱子龍 班級(jí) 13級(jí) 學(xué)號(hào):130803100 學(xué)生姓名 胡杰 班級(jí) 13級(jí) 學(xué)號(hào):130803023 學(xué)生姓名 張宏 班級(jí) 13級(jí) 學(xué)號(hào):120803088 課程名稱: 單片機(jī)原理與接口技術(shù) 設(shè)計(jì)題目:數(shù)字音樂(lè)盒 課程設(shè)計(jì)內(nèi)容與要求:課程設(shè)計(jì)開(kāi)始日期2016 年1 月 14 日指導(dǎo)教師 黃云飛 課程設(shè)計(jì)結(jié)束日期 2016 年 3 月 4

2、 日 安徽師范大學(xué)物理與電子信息學(xué)院數(shù)字音樂(lè)盒摘 要本設(shè)計(jì)是基于單片機(jī)的數(shù)字音樂(lè)盒設(shè)計(jì),由單片機(jī)AT89C51芯片和LCD顯示器為核心,輔以必要的電路,構(gòu)成的一個(gè)單片機(jī)電子數(shù)字音樂(lè)盒。要求利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動(dòng)蜂鳴器,發(fā)出不同的音調(diào)并采用LCD顯示信息,從而演奏樂(lè)曲(最少三首樂(lè)曲,每首不少于30秒),開(kāi)機(jī)時(shí)有英文歡迎提示字符,播放時(shí)顯示歌曲序號(hào)(或名稱),可通過(guò)功能鍵選擇樂(lè)曲,暫停,播放。本設(shè)計(jì)采用4*4鍵盤(pán),用Protel99來(lái)畫(huà)系統(tǒng)硬件圖,采用匯編語(yǔ)言進(jìn)行編程,編程后利用KEIL C51來(lái)進(jìn)行編譯,再生成的HEX文件裝入芯片中,采用proteus軟件來(lái)仿真,檢驗(yàn)功能得以正常實(shí)

3、現(xiàn)。該音樂(lè)盒的設(shè)計(jì)可以通過(guò)按鍵選擇不同的曲目,播放和暫停,并通過(guò)LCD顯示歌曲號(hào)及播放時(shí)間。本設(shè)計(jì)鍵盤(pán)采用動(dòng)態(tài)掃描方式。每次掃描一行鍵盤(pán),送此行低電平,讀輸入口的狀態(tài)值,判斷有沒(méi)有鍵按下。若有鍵按下,根據(jù)讀入口的值選擇顯示值并送至顯示值寄存單元,判斷鍵值,啟動(dòng)計(jì)數(shù)器T0,根據(jù)次值為偏移地址找到要選擇的音樂(lè)的代碼的首地址,根據(jù)代碼產(chǎn)生一定頻率的脈沖,驅(qū)動(dòng)蜂鳴器,放出音。同時(shí)啟動(dòng)定時(shí)器T1,計(jì)算音樂(lè)的播放的時(shí)間。 關(guān)鍵詞:數(shù)字音樂(lè)盒;AT89C51;KEIL;PROTEUS;數(shù)碼管安徽師范大學(xué)物理與電子信息學(xué)院THE DESIGNATION OFCONTROLLABLE DIGITAL MUSIC

4、 BOX BASED ON 51 SCMABSTRACTThis paper explains the program designation of controllable digital music box based on AT89C51. This music box is designed by the idea that a multi-functional digital music box can be made based on the technical principle of single chip microcomputer (SCM), together with

5、using the PROTEUS to simulate the hardware circuit and using KEIL to programme the source of music box which is compiled with C language. This music box can produce square waves of different frequency in control of the timer inside SCM, and music of different tunes by driving speaker. The program is

6、 made use of to drive the sounding equipment to play pleasant music by the way of changing music score into the corresponding timing constant.This music box is totally designed with five songs, and also with three changeable patterns of LED colorful lights. While the songs are being performed, the c

7、olorful lights are flashing with tones. While the songs are stopped playing, the colorful lights start to flash with three changeable patterns. The songs and patterns can be free to switch. At the same time, the digital tube is also constantly changing figures to show the serial number of the songs

8、and the patterns of the colorful lights.Key words: Digital music box; AT89C51; KEIL; PROTEUS; Digital tube 目 錄1 前言-12 單片機(jī)和音樂(lè)盒硬件的功能-22.1 AT89C51芯片的功能-22.2 音樂(lè)盒的硬件及其功能-43 數(shù)字音樂(lè)盒的主體設(shè)計(jì)方案-53.1 音樂(lè)盒的主體結(jié)構(gòu)-53.2 主設(shè)計(jì)軟件的介紹-53.2.1 編程軟件KEIL的簡(jiǎn)介-53.2.2 仿真軟件PROTEUS的簡(jiǎn)介-64 音樂(lè)盒硬件設(shè)計(jì)-84.1 總設(shè)計(jì)框圖-84.2 各部分硬件的作用-84.2.1時(shí)鐘振蕩電路-8

9、4.2.2 LED和數(shù)碼管的設(shè)計(jì)-95 音調(diào)和節(jié)拍的設(shè)計(jì)-115.1 音調(diào)和節(jié)拍的設(shè)計(jì)以及音樂(lè)基礎(chǔ)知識(shí)-115.2 音調(diào)和節(jié)拍的編碼-136 源程序設(shè)計(jì)-146.1 音樂(lè)程序-146.2 LED花樣程序-156.3 數(shù)碼管程序-167 數(shù)字音樂(lè)盒總設(shè)計(jì)圖-177.1 仿真總設(shè)計(jì)圖-177.2 實(shí)物總設(shè)計(jì)圖-188 結(jié)論-19參考文獻(xiàn)-20致謝-21附錄A總程序源代碼及注釋-221 前言隨著科技越來(lái)越發(fā)達(dá),單片機(jī)技術(shù)也越來(lái)越純熟,單片機(jī)的應(yīng)用也越來(lái)越廣泛,可以說(shuō)幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。如今,單片機(jī)在各個(gè)領(lǐng)域都起著至關(guān)重要的作用1。單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技

10、術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。隨著人類社會(huì)的發(fā)展,人們對(duì)于視聽(tīng)方面的享受提出了更高的要求。而傳統(tǒng)的音樂(lè)盒大部分是機(jī)械型的,體積龐大,而且沉重,發(fā)音單調(diào),且不悅耳,不能實(shí)現(xiàn)大批量的生產(chǎn),所以很難滿足當(dāng)代人們的需求。但是本文設(shè)計(jì)的數(shù)字音樂(lè)盒是以單片機(jī)為核心元件的數(shù)字音樂(lè)盒。單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn)。因此該數(shù)字音樂(lè)盒也就具有體積小,重量輕,能演

11、奏各種各樣的音樂(lè),功能多,外觀絢麗多彩,使用非常方便等諸多優(yōu)點(diǎn)。而且具有一定的開(kāi)發(fā)價(jià)值。2 單片機(jī)和音樂(lè)盒硬件的功能隨著當(dāng)代單片機(jī)技術(shù)的突飛猛進(jìn),單片機(jī)的功能也越來(lái)越強(qiáng)大,主要包括有:(1)單片機(jī)集成度高;(2)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,使用方便,實(shí)現(xiàn)模塊化; (3)單片機(jī)可靠性高,處理功能強(qiáng),速度快; (4)低電壓,低功耗,便于生產(chǎn)便攜式產(chǎn)品 ;(5)控制功能強(qiáng)大。而本文設(shè)計(jì)采用的是AT89C51單片機(jī),這是一款性價(jià)比非常高的單片機(jī)。2.1 AT89C51芯片的功能AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器。俗稱單片機(jī)2。如圖:2.2 音樂(lè)盒的硬件及其功

12、能本文設(shè)計(jì)的數(shù)字音樂(lè)盒,所需要的硬件有:AT89C51芯片:主控制器;LED彩燈:燈光閃爍,P1.0-P1.7控制八路LED彩燈;數(shù)碼管:音樂(lè)序號(hào)顯示,P0.0-P0.6控制數(shù)碼管;晶振:給單片機(jī)正常工作提供穩(wěn)定的時(shí)鐘信號(hào),電路為12MHZ晶振頻率工作,起振電路中C1、C2均為30PF。電容:保持一個(gè)恒定的偏執(zhí)電壓供給;喇叭:發(fā)出聲音,P3.7控制喇叭電源:供電;電阻;控制電路;開(kāi)關(guān):控制音樂(lè),P3.2控制LED彩燈花樣的切換,P3.3控制音樂(lè)的切換。3 數(shù)字音樂(lè)盒的主體設(shè)計(jì)方案3.1 音樂(lè)盒的主體結(jié)構(gòu)該音樂(lè)盒主要是通過(guò)控制單片機(jī)內(nèi)部的定時(shí)器來(lái)產(chǎn)生不同頻率的方波,驅(qū)動(dòng)喇叭發(fā)出不同音調(diào)的音樂(lè)。如

13、圖:本設(shè)計(jì)是一個(gè)基于AT89C51系列單片機(jī)的數(shù)字音樂(lè)盒,一共設(shè)計(jì)了五首不同風(fēng)格的歌曲,在播放歌曲同時(shí)八路LED彩燈隨音調(diào)變化而變化,同時(shí)利用數(shù)碼管顯示歌曲的序號(hào),以便切換歌曲。在不播放歌曲的時(shí)候還設(shè)計(jì)了八路LED彩燈,可以隨意變化三種花樣,給人們帶來(lái)視聽(tīng)的雙重享受。一共設(shè)計(jì)了兩個(gè)開(kāi)關(guān),一個(gè)用以切換LED彩燈花樣,一個(gè)用以切換歌曲。3.2 主設(shè)計(jì)軟件的介紹本次設(shè)計(jì)主要用到了兩款軟件,一款是用以對(duì)源代碼進(jìn)行C語(yǔ)言編程的KEIL軟件,另一款則是用以對(duì)實(shí)物設(shè)計(jì)進(jìn)行仿真的PROTEUS軟件4。3.2.1 編程軟件KEIL的簡(jiǎn)介要進(jìn)行單片機(jī)的開(kāi)發(fā)設(shè)計(jì),首先離不開(kāi)的就是軟件,而如果你使用C語(yǔ)言編程,那么K

14、EIL幾乎就是你的不二之選,即使不使用C語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。KEIL C51是美國(guó)KEIL Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。KEIL提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(uVision)將這些部分組合在一起。運(yùn)行KEIL軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。C51工具包的整體結(jié)構(gòu),uVision與Ishell分別是C5

15、1 for Windows和for Dos的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫(xiě)入程序存貯器如EPROM中。KEIL C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容

16、易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。 KEIL C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。是一款非常不錯(cuò)的軟件。3.2.2 仿真軟件PROTEUS的簡(jiǎn)介有了編譯軟件,同樣也少不了仿真軟件PROTEUS,這是一款非常強(qiáng)大的仿真軟件,有了它以后,我們就可以節(jié)省大量的精力和資源,僅僅通過(guò)電腦就能模擬我們想要的東西,直至滿足我們自己的要求為止。PROTEUS軟件是英國(guó)Labcenter electronics公司出版的EDA工具軟

17、件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛(ài)好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開(kāi)發(fā)應(yīng)用的科技工作者的青睞。PROTEUS是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC(10、12、16、18、24、30、DsPIC33)、AVR、ARM、8086和MSP430等,

18、2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、KEIL和MPLAB等多種編譯器。在PROTEUS繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件(.HEX),可以在PROTEUS的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過(guò)程。PROTEUS 是單片機(jī)課堂教學(xué)的先進(jìn)助手。PROTEUS不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過(guò)程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對(duì)應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例如:元器件選擇

19、、電路連接、電路檢測(cè)、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。4 音樂(lè)盒硬件設(shè)計(jì)4.1 總設(shè)計(jì)框圖通過(guò)前面的介紹,本文的設(shè)計(jì)思路已經(jīng)基本清晰,總設(shè)計(jì)框圖如下:4.2各部分硬件的作用硬件除了AT89C51芯片外,主要的就是時(shí)鐘振蕩電路、LED彩燈以及數(shù)碼管的設(shè)計(jì)。4.2.1時(shí)鐘振蕩電路AT89C51中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容C1,C2雖然沒(méi)有什么嚴(yán)格的要求,但電容容量的大小會(huì)輕微

20、影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易、程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF-10PF,而如果使用陶瓷振蕩器建議選擇40PF-10PF。用戶也可以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖示。這種情況下,外部時(shí)鐘脈沖接到XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時(shí)鐘信號(hào)是通過(guò)一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒(méi)有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。振蕩器電路圖如下:4.2.2 LED和數(shù)碼管的設(shè)計(jì)(1)八路LED彩燈,分別接在P1.0-P1.7這八個(gè)端口上,連接方式為共

21、陽(yáng)極,若為低電平,可使LED亮起。發(fā)光二極管的亮、熄由內(nèi)部程序控制,八個(gè)LED發(fā)光二極管分別對(duì)應(yīng)不同的音階,所以LED會(huì)隨著音階的變化按規(guī)律亮、熄。設(shè)計(jì)如圖:(2)數(shù)碼管接在AT89C51的P0端口上,數(shù)碼管采用的是共陰極數(shù)碼管5,在數(shù)碼管與端口之間接了上拉電阻以使數(shù)碼管能正常工作。如圖所示:5音調(diào)和節(jié)拍的設(shè)計(jì)5.1 音調(diào)和節(jié)拍的設(shè)計(jì)以及音樂(lè)基礎(chǔ)知識(shí)一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能像電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂(lè)只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間6。不同音高的樂(lè)音是用C、D、E、F、G、A、B來(lái)

22、表示,這7個(gè)字母就是音樂(lè)的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡(jiǎn)譜的1、2、3、4、5、6、7,相當(dāng)于漢字“多來(lái)米發(fā)梭拉西”的讀音,這是唱曲時(shí)樂(lè)音的發(fā)音,所以叫“音調(diào)”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個(gè)等份,每一個(gè)等份叫一個(gè)“半音”。兩個(gè)音之間的距離有兩個(gè)“半音”,就叫“全音”。在鋼琴等鍵盤(pán)樂(lè)器上,CD、DE、FG、GA、AB兩音之間隔著一個(gè)黑鍵,他們之間的距離就是全音;EF、BC兩音之間沒(méi)有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上號(hào)或者b號(hào)的叫變化音。叫升記號(hào),表

23、示把音在原來(lái)的基礎(chǔ)上升高半音,b叫降記音,表示在原來(lái)的基礎(chǔ)上降低半音。例如高音DO的頻率(1046Hz)剛好是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294 Hz)的一倍。要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)這半個(gè)周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O反相,就可在I/O腳上得到此頻率的脈沖。利

24、用AT89C51的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。此外結(jié)束符和休止符7可以分別用代碼00H和FFH來(lái)表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。在簡(jiǎn)譜中,數(shù)字上面帶一個(gè)點(diǎn)就是高8度,兩個(gè)點(diǎn)代表高16度。數(shù)字下面帶一個(gè)點(diǎn)就是低8度,兩個(gè)點(diǎn)代表低16度。若要構(gòu)成音樂(lè),光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂(lè)具有旋律(固定的律動(dòng)),而且可以調(diào)節(jié)各個(gè)音的快滿度?!肮?jié)拍”,即Beat,簡(jiǎn)單說(shuō)就是打拍子,就像我們聽(tīng)音樂(lè)不自主的隨之拍手或跺腳。若1拍實(shí)0.5s,則1/4 拍為0.125s。至于1拍多少秒,并沒(méi)有嚴(yán)格

25、規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點(diǎn),有些人慢一點(diǎn),只要聽(tīng)的悅耳就好。音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。一首音樂(lè)是由許多不同的音符組成的,而每個(gè)音符對(duì)應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對(duì)應(yīng)的延時(shí),構(gòu)成音樂(lè)。了解音樂(lè)的一些基礎(chǔ)知識(shí),我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂(lè)。對(duì)于單片機(jī)來(lái)說(shuō),產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機(jī)的定時(shí)、計(jì)數(shù)器來(lái)產(chǎn)生這樣的方波頻率信號(hào)。因此,需要弄清楚音樂(lè)中的音符和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。每個(gè)音符使用1個(gè)字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,圖5.2為

26、節(jié)拍碼的對(duì)照。如果1拍為0.4秒,1/4拍實(shí)0.1秒,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè)1/4拍為1DELAY,則1拍應(yīng)為4DELAY,以此類推。所以只要求得1/4拍的DELAY時(shí)間,其余的節(jié)拍就是它的倍數(shù),如圖5.3為1/4和1/8節(jié)拍的時(shí)間設(shè)定。5.2 音調(diào)和節(jié)拍的編碼do re mi fa so la si分別編碼為1-7,重音do編為8,重音re編為9,重音mi編為A,重音fa編為B,重音so編為C,重音la編為D,重音si編為E,停頓編為0。播放長(zhǎng)度以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個(gè)十六分音符,編為4,其它的播放時(shí)間以此類推。音調(diào)作為編碼的高4

27、位,而播放時(shí)間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個(gè)編碼。以0xff作為曲譜的結(jié)束標(biāo)志。舉例1:音調(diào)do,發(fā)音長(zhǎng)度為兩拍,即二分音符,將其編碼為0x18。舉例2:音調(diào)re,發(fā)音長(zhǎng)度為半拍,即八分音符,將其編碼為0x22。歌曲播放的設(shè)計(jì)。先將歌曲的簡(jiǎn)譜進(jìn)行編碼,儲(chǔ)存在一個(gè)數(shù)據(jù)類型為unsigned char 的數(shù)組中。程序從數(shù)組中取出一個(gè)數(shù),然后分離出高4位得到音調(diào),接著找出相應(yīng)的值賦給定時(shí)器0,使之定時(shí)操作蜂鳴器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低4位,得到延時(shí)時(shí)間,接著調(diào)用軟件延時(shí)。6.3 數(shù)碼管程序數(shù)碼管用以顯示序號(hào),當(dāng)播放第一首歌曲是顯示1,第二首為2,第三首為3,依此類推,當(dāng)不播放歌曲

28、只顯示三種花燈花樣時(shí)始終顯示0。如圖所示7 數(shù)字音樂(lè)盒總設(shè)計(jì)圖與總程序7.1 仿真總設(shè)計(jì)圖8 結(jié)論經(jīng)過(guò)一個(gè)多月的學(xué)習(xí)和研究,終于完成了凝聚了大學(xué)四年所學(xué)知識(shí)的畢業(yè)論文設(shè)計(jì),自己也感到十分高興和欣慰。通過(guò)本次設(shè)計(jì),我更加清楚地了解單片機(jī)的功能與價(jià)值,而且在設(shè)計(jì)過(guò)程中所遇到的問(wèn)題,最終都通過(guò)老師和同學(xué)的幫助再加上自己的努力一一解決,因此我從中不僅獲得了很多知識(shí),而且還獲得了很多寶貴經(jīng)驗(yàn),這都是我終身難忘的。在拿到設(shè)計(jì)題目之初,我還很擔(dān)心,這個(gè)題目怎么完成呢,但隨著設(shè)計(jì)的一步步成功,一下就讓我信心倍增,特別是當(dāng)問(wèn)題得到解決的時(shí)候,那種心情是無(wú)法言語(yǔ)的。雖然在設(shè)計(jì)過(guò)程中,我查閱了很多資料,遇到了一些很

29、棘手的問(wèn)題,而且在焊接實(shí)物器件的時(shí)候經(jīng)過(guò)了多次改裝、焊接、調(diào)試,但當(dāng)單片機(jī)芯片在燒錄我編輯的音樂(lè)程序后,放出優(yōu)美的音樂(lè)時(shí),那種美妙感永遠(yuǎn)都不會(huì)忘記。本次論文設(shè)計(jì),除了知識(shí)的增長(zhǎng)外,我從中找到了成功后的自信。這必將激勵(lì)我在以后的生活和工作中更加努力奮斗,更加斗志昂揚(yáng)。附錄A總程序源代碼及注釋主程序流程圖如圖:ORG 0000H LJMP MAINA ORG 000BH ;定時(shí)0中斷服務(wù)程序 LJMP T0INT ORG 001BH LJMP T1INT;- ORG 0040H;MAINA: JB p2.0,MAINB ;P2.1=1執(zhí)行KB0 AJMP NEXT0MAINB: JNB p2.0,

30、MAINA AJMP KB0NEXT0:JB P1.0,NEXT1 ACALL DELAY JB P1.0,NEXT1 MOV DPTR,#SONG1 AJMP MAINNEXT1:JB P1.1,NEXT2 ACALL DELAY JB P1.1,NEXT2 MOV DPTR,#SONG2 AJMP MAINNEXT2:JB P1.2,NEXT3 ACALL DELAY JB P1.2,NEXT3 MOV DPTR,#SONG3 AJMP MAINNEXT3:JB P1.3,NEXT4 ACALL DELAY JB P1.3,NEXT4 MOV DPTR,#SONG4 AJMP MAINNE

31、XT4:JB P1.4,NEXT5 ACALL DELAY JB P1.4,NEXT5 MOV DPTR,#SONG1 AJMP MAINNEXT5:JB P1.5,NEXT6 ACALL DELAY JB P1.5,NEXT6 MOV DPTR,#SONG2 AJMP MAINNEXT6:JB P1.6,NEXT7 ACALL DELAY JB P1.6,NEXT7 MOV DPTR,#SONG3 AJMP MAINNEXT7:JB P1.7,LOP ACALL DELAY JB P1.7,LOP MOV DPTR,#SONG4 AJMP MAINkb0:JB P1.0,kb1 ACALL

32、DELAY JB P1.0,kb1 MOV DPTR,#TAB1 AJMP MAINkb1:JB P1.1,kb2 ACALL DELAY JB P1.1,kb2 MOV DPTR,#TAB2 AJMP MAINkb2:JB P1.2,kb3 ACALL DELAY JB P1.2,kb3 MOV DPTR,#TAB3 AJMP MAINkb3:JB P1.3,kb4 ACALL DELAY JB P1.3,kb4 MOV DPTR,#TAB4 AJMP MAINkb4:JB P1.4,kb5 ACALL DELAY JB P1.4,kb5 MOV DPTR,#TAB5 AJMP MAINkb

33、5:JB P1.5,kb6 ACALL DELAY JB P1.5,kb6 MOV DPTR,#TAB6 AJMP MAINkb6:JB P1.6,kb7 ACALL DELAY JB P1.6,kb7 MOV DPTR,#TAB7 AJMP MAINkb7:JB P1.7,LOP ACALL DELAY JB P1.7,LOP MOV DPTR,#TAB8 AJMP MAINLOP: LJMP MAINA;MAIN: MOV SP,#40H ;初始化堆棧 MOV IP,#08H MOV TMOD,#11H SETB EA SETB ET1 SETBET0 SETB TR1 SETBTR0NE

34、XT: MOV A,#00hMOVC A,A+DPTRCJNE A,#'$',COUNTLJMP EXITCOUNT: RL A MOV R7,AINC DPTRMOV A,#00HMOVC A,A+DPTR;RL AMOV R6,AINC DPTRPUSH DPHPUSH DPLMOV DPTR,#TABLEMOV A,R7MOVC A,A+DPTRMOV TH0,AMOV A,R7INC AMOVC A,A+DPTRMOV TL0,AMOV TH1,#0BHMOV TL1,#0DCH ;0BDCH=62.5ms 1/8拍POP DPLPOP DPHHERE1:CJNE R6

35、,#00H,HERE1LJMP NEXTEXIT: CLR TR0CLR TR1CLR P0.0LJMP MAINA;外部中斷0服務(wù)程序T0INT: CPL P0.0PUSH DPHPUSH DPLMOV DPTR,#TABLEMOV A,R7MOVC A,A+DPTRMOV TH0,AMOV A,R7INC AMOVC A,A+DPTRMOV TL0,APOP DPLPOP DPHRETI;外部中斷1服務(wù)程序T1INT: MOV TH1,#0CHMOV TL1,#0DCHDEC R6RETIDELAY:MOV R6,#10 DEL1:MOV R5,#125DEL2:NOPNOPDJNZ R5

36、,DEL2DJNZ R6,DEL1RET;曲調(diào)代碼SONG1:DB 13,04,14,04,15,12,14,04,15,08,17,08,14,24 DB 10,04,10,04,13,12,12,04,13,08,15,08,12,24 DB 10,04,10,04,11,12,10,04,11,04,15,12,10,16 DB 15,08,15,04,15,04,14,12,11,04,11,08,14,08,14,24 DB 13,04,14,04,15,12,14,04,15,08,17,08,14,24 DB 10,04,10,04,13,12,12,04,13,08,15,08

37、,12,28 DB 10,04,11,08,15,04,14,04,14,08,15,08,16,04,16,04,17,04,15,16 DB 15,08,14,04,13,04,13,04,14,08,12,08,13,24 DB 15,04,16,04,17,12,16,04,17,08,19,08,16,24 DB 12,04,12,04,15,04,14,04,15,08,17,08,17,32 DB 13,04,14,04,15,08,14,08,16,04,16,04,15,12,12,04,12,16 DB 18,08,17,08,16,08,15,08,17,24,17,16 DB 17,08,20,16,19,08,19,08,17,04,16,04,15,12 DB 15,04,16,08,15,04,16,04,16,04,19,08,17,24 DB 17,08,20,16,19,16,17,04,16,04,15,20 DB 15,04,16,08,15,04,16,04,16,04,14,08,13,24,13,04,14,04,'$'SONG2: DB 13,08,15,08,16,08,15,04,13,04,13,08,15,08,16,24,15,04,13,04 DB

溫馨提示

  • 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)論