單片機課程設計基于單片機的數(shù)字音樂盒設計_第1頁
單片機課程設計基于單片機的數(shù)字音樂盒設計_第2頁
單片機課程設計基于單片機的數(shù)字音樂盒設計_第3頁
單片機課程設計基于單片機的數(shù)字音樂盒設計_第4頁
單片機課程設計基于單片機的數(shù)字音樂盒設計_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、湖南湖南鐵鐵路科技路科技職業(yè)職業(yè)技技術(shù)術(shù)學院學院 單單片機片機課課程程設計設計 題題 目:基于目:基于單單片機的數(shù)字音片機的數(shù)字音樂樂盒盒設計設計 專專 業(yè)業(yè):機:機電電一體化一體化 系系 部:機械工程系部:機械工程系 姓姓 名:名: 班班 級級: :309-2 班班 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 1 基于單片機的數(shù)字音樂盒設計 任 務 書 一、任務 設計一款基于 at89c51 單片機的數(shù)字音樂盒。 二、設計要求 (1)利用單片機的 i/o 口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不 同的音調(diào),從而演奏樂曲。 (2)共有10首音樂,每

2、首樂曲都由相應的按鍵控制,并有開關(guān)鍵、暫 停鍵、上一曲及下一曲控制鍵; (3)利用 lcd 液晶顯示歌曲的序號、播放時間,開機時顯示英文歡迎 提示字符。 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 2 目 錄 任任 務務 書書 .1 1 目目 錄錄 .2 2 1 概述 .5 5 1.1 單片機數(shù)字音樂盒有關(guān)介紹.5 5 1.2 led 顯示屏控制技術(shù)狀況.9 1.3 本設計任務 .10 2 總體方案論證與設計.1212 2.1 單片機的選取 .12 2.2 led 顯示方式.13 2.3 led 驅(qū)動模塊.13 2.4 系統(tǒng)總體結(jié)構(gòu)框圖 .14 3

3、 系統(tǒng)硬件設計 .1515 3.1 at89c51 芯片功能和硬件連接.15 3.2 led 顯示器.18 3.3 鍵盤 .19 3.4 系統(tǒng)復位電路的設計 .20 3.5 時鐘電路模塊 .20 3.6 輸出顯示電路 .21 3.7 音頻輸出部分 .21 3.8 整體硬件電路 .23 4 系統(tǒng)軟件設計.25 4.1 主模塊的設計 .25 4.2 外部中斷源系統(tǒng)設計 .26 4.3 基本顯示模塊設計 .27 4.4 系統(tǒng)初始化程序 .28 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 3 4.5 音調(diào)、節(jié)拍以及編碼的確定方法.28 4.6 程序流程圖.

4、33 4.7 文檔頂端程序清單 .35 5 調(diào)試結(jié)果 .46 5.1 系統(tǒng)總電路圖 .46 5.2 運行結(jié)果及分析 .46 總 結(jié) .48 參考文參考文獻獻 .4949 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 4 1 概述 傳統(tǒng)的音樂盒多是機械音樂盒,其工作原理是通過齒輪帶動一個帶有 鐵釘?shù)蔫F桶轉(zhuǎn)動,鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是, 機械式的音樂盒體積比較大,比較笨重,且發(fā)音單調(diào)。水、灰塵等外在因 素,容易使內(nèi)部金屬發(fā)音條變形,從而造成發(fā)音跑調(diào)。另外,機械音樂盒 放音時為了讓音色穩(wěn)定,必須放平不能動搖,而且價格昂貴,不能實現(xiàn)

5、大批 量生產(chǎn)?;趩纹瑱C設計制作的電子式音樂盒。與傳統(tǒng)的機械式音樂盒相 比更小巧,音質(zhì)更優(yōu)美且能演奏和弦音樂。電子式音樂盒動力來源是電池, 制作工藝簡單,可進行批量生產(chǎn),所以價格便宜。基于單片機制作的電子 式音樂盒,控制功能強大,可根據(jù)需要選歌,使用方便。所放歌曲的節(jié)奏 可以根據(jù)需要進行設置,根據(jù)存儲容量的大小,可以盡可能多的存儲歌曲。 另外,可以設計彩燈外觀效果,增設放歌時間、序號顯示燈功能,使音樂 盒的功能更加豐富。 1.1 單片機數(shù)字音樂盒有關(guān)介紹 電子音樂已廣泛地應用于社會生活的各個領(lǐng)域。其類型從音樂卡片到 cd、mp3 等多種多樣,制作原理也各不相同。聲音是通過振動產(chǎn)生的。單 片機對

6、某一 i/o 引腳以一定的頻率循環(huán)置 1 和清 0,這一引腳便產(chǎn)生一定頻 率的方波,該方波通過放大后作用于揚聲器便產(chǎn)生一定頻率的聲音。若改 變輸出方波的頻率,產(chǎn)生的聲音也就改變了。通過控制輸出方波的時間長 短,聲音的長短也就得到控制。因此,根據(jù)樂譜,單片機就可產(chǎn)生電子音樂。 音樂中最關(guān)鍵的兩個要素是音符和節(jié)拍。單片機控制的音樂發(fā)生器系統(tǒng)由 硬件電路和軟件兩部分構(gòu)成。利用單片機控制的電子音樂發(fā)生器軟硬件上 具有獨特的優(yōu)點,系統(tǒng)的開發(fā)周期短,成本低,電路制作容易。更換歌曲 時,硬件電路無需作任何修改,只需修改軟件即可實現(xiàn)。軟件編程時,可 用 51 系列單片機的匯編語言或 c51 語言實現(xiàn)。同時還可

7、根據(jù)個人的習好通 過軟件改變節(jié)拍的延時時間,增加電子音樂的趣味性。 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 5 1.1.1 發(fā)音原理介紹 發(fā)音原理:播放一段音樂需要的是兩個元素,一個是音調(diào),另一個是 音符。首先要了解對應的音調(diào),音調(diào)主要由聲音的頻率決定,同時也與聲 音強度有關(guān)。對一定強度的純音,音調(diào)隨頻率的升降而升降;對一定頻率 的純音、低頻純音的音調(diào)隨聲強增加而下降,高頻純音的音調(diào)卻隨強度增 加而上升。另外,音符的頻率有所不同?;谏厦娴膬?nèi)容,這樣就對發(fā)音 的原理有了一些初步的了解。 音符的發(fā)音主要靠不同的音頻脈沖。利用單片機的內(nèi)部定時器/計

8、數(shù)器 0,使其工作在模式 1,定時中斷,然后控制 p3.7 引腳的輸出音樂。只要算 出某一音頻的周期(1/頻率),然后將此周期除以 2,即為半周期的時間, 利用定時器計時這個半周期時間,每當計時到后就將輸出脈沖的 i/o 反相, 然后重復計時此半周期時間再對 i/o 反相,就可在 i/o 腳上得到此頻率的脈 沖。 1.1.2 音符頻率的產(chǎn)生 音符及定時器初始值: 例如:中音 1(do)的音頻=523hz,周期 t=1/523s=1912 s 定時器/計數(shù)器 0 的定時時間為:t/2=1912/2 s =956 s 定時器 956 s 的計數(shù)值=定時時間/機器周期=956 s /1 s =956

9、(時鐘頻 率=12mhz) 裝入 t0 計數(shù)器初值為 65536-956=64580 將 64580 裝入 t0 寄存器中,啟動 t0 工作后,每計數(shù) 956 次時將產(chǎn)生 溢出中斷,進入中斷服務時,每次對 p3.0 引腳的輸出值進行取反,就可得 到中音 do(523hz)的音符音頻。將 51 單片機內(nèi)部定時器工作在計數(shù)器 模式 1 下,改變計數(shù)初值 th0,tl0 以產(chǎn)生不同的頻率。下表 1.1 是 c 調(diào)各 音符頻率與計數(shù)初值 t 的對照表: 表 1.1 c 調(diào)各音符頻率與計數(shù)初值 t 的對照表 音符頻率(hz)/初值( s )音符頻率(hz)/初值( s ) 低 1do262/63627中

10、 1do 523/64580 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 6 高 1do1042/65056低 2re 294/63835 中 2re589/64687高 2re 1245/65134 低 3m330/64021中 3m 661/64780 高 3m1318/65157低 4fa 350/64107 中 4fa700/64822高 4fa 1397/65178 低 5so393/64264中 5so 786/64900 高 5so1568/65217低 6la 441/64402 中 6la 882/64969高 6la 1760/

11、65252 低 7si 495/64526中 7si 990/65031 高 7si 1967/65282 音符、音符編碼及定時器初始值: 為了產(chǎn)生音符,必須求出音符低音 5高音 5 的計數(shù)初值。例如 c 調(diào)的 低 1do 的 thtl=65536-50000/262=63627,中音 do 的 thtl=65536- 500000/523=64580,高音 do 的 thtl=65536-500000/1042=65056。為了方便 寫譜,對其進行簡單的編碼,在編程時,根據(jù)音符編碼(表 1.2)查找對應 的計數(shù)初值。比如說音樂是 c 調(diào)的,那么出現(xiàn)低音的 5so,直接將代碼寫為 1;出現(xiàn)低音

12、 6la,直接寫一個 2 的代碼;出現(xiàn)低音 7si,直接寫一個 3 代碼。 表 1.2 音符編碼表 音符音符編碼 音符音符編碼 不發(fā)音0低 5so1 低 6la2 低 7si3 中 1do4中 2re5 中 3m6中 4fa7 中 5so8 中 6la9 中 7sia高 1dob 高 2rec高 3md 高 4fae 高 5sof 高 6lag 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 7 1.1.3 節(jié)拍頻率的產(chǎn)生 節(jié)拍的產(chǎn)生與編碼: 音樂中的節(jié)拍用延時時間產(chǎn)生。例如,1 拍=0.4s,1/4 拍=0.1s,以此 類推。假設 1/4 拍執(zhí)行一次

13、延時程序,則 1/2 拍就執(zhí)行兩次延時程序,所 以只要求出 1/4 拍的延時時間,其余節(jié)拍就是它的倍數(shù)。為了方便,將節(jié) 拍數(shù)也進行了編碼,并且計算了樂譜節(jié)拍編程時的延時時間,如表 1.3 和 表 1.4 所示。 表 1.3 節(jié)拍數(shù)編碼表 按 1/4 拍為一個延時時間的節(jié)拍編碼與節(jié) 拍對應的表 按 1/8 拍為一個延時時間的節(jié)拍編碼與節(jié) 拍對應的表 節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍 11/466/411/866/8 22/488/422/888/8 33/4a10/433/8a10/8 44/4c12/444/8c12/8 55/4f15/455/8 表 1.4 樂譜節(jié)拍編程時的

14、時間延時表 樂譜節(jié)拍1/4 拍的延時時間樂譜節(jié)拍1/8 拍的延時時間 4/4125 ms4/462 ms 3/4187 ms3/494 ms 2/4250 ms2/4125 ms 音符編碼和節(jié)拍編碼完成后,在編程時,每個音符占一個字節(jié),高四位是 音符編碼,低四位是節(jié)拍編碼。 1.2 led 顯示屏控制技術(shù)狀況 顯示屏的控制系統(tǒng)包括輸入接口電路、信號控制、轉(zhuǎn)換和數(shù)字化處理 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 8 電路及輸出接口電路等,涉及的具體技術(shù)很多,其關(guān)鍵技術(shù)包括串行傳輸 與并行傳輸技術(shù)、動態(tài)掃描與靜態(tài)鎖存技術(shù)、自動檢測及遠程控制技術(shù)等。

15、 1.2.1 串行傳輸與并行傳輸技術(shù) led 顯示屏的數(shù)據(jù)傳輸方式主要有串行和并行兩種。日前普遍采用串行 控制技術(shù),顯示屏每個單元內(nèi)部的不同驅(qū)動電路和各級聯(lián)單元之間,每個 時鐘僅傳送一位數(shù)據(jù)。采用這種方式的驅(qū)動 ic 種類較多,不同顯示單元之 間的聯(lián)線較少,可減少顯示單元的數(shù)據(jù)傳輸驅(qū)動元件,從而提高整個系統(tǒng) 的可靠性和性價比,具體工程實現(xiàn)也較為容易。 1.2.2 動態(tài)掃描與靜態(tài)鎖存技術(shù) led 顯示屏控制系統(tǒng)實現(xiàn)顯示信息的刷新技術(shù)有動態(tài)掃描和靜態(tài)鎖存兩 種方式。一般室內(nèi)顯示屏多采用動態(tài)掃描技術(shù),即一行發(fā)光二極管共用一 行驅(qū)動寄存器,根據(jù)共用一行驅(qū)動寄存器的發(fā)光二極管像素數(shù)目,分為 1/4、1/

16、16 掃描等。室外顯示屏基本上采用靜態(tài)鎖存技術(shù),即每一個發(fā)光一 極管都對應有一個驅(qū)動寄存器,無需時分工作,從而保證了每一個發(fā)光一 極管的亮度占空比為 100%。動態(tài)掃描法可以大大減少控制器的 i/o 口,因 此應用較廣。 1.2.3 自動檢測及遠程控制技術(shù) led 顯示屏的構(gòu)成復雜,特別是室外顯示屏,供電、環(huán)境亮度、環(huán)境溫 度條件等都直接影響顯示屏的正常運行。在 led 顯示屏的控制系統(tǒng)中,因 根據(jù)需要對溫度、亮度、電源等進行自動檢測控制,也可根據(jù)需要,遠程 實現(xiàn)對顯示屏的亮度、色度調(diào)節(jié)、圖像水平和垂直位置的調(diào)節(jié)以及工作方 式的轉(zhuǎn)換等。 1.3 本設計任務 隨著人類社會的發(fā)展,人們對視覺、聽覺

17、方面的享受提出了越來越高 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 9 的要求。小小的音樂盒可以給人們帶來美好的回憶,提高人們的精神文化 享受。傳統(tǒng)的音樂盒多是機械型的,體積笨重,發(fā)音單調(diào),不能實現(xiàn)批量 生產(chǎn)。本文設計的音樂盒是以單片機為核心元件的電子式音樂盒,體積小, 重量輕,能演奏和旋音樂,功能多,使用方便,可以批量生產(chǎn),具有一定 的商業(yè)價值。 本設計是基于單片機控制的數(shù)字音樂盒的設計,由單片機 at89c51 芯片 和 led 數(shù)碼管為核心,輔以必要的電路,構(gòu)成的一個單片機數(shù)字音樂盒。 若該設計使用數(shù)字電路完成,所設計的電路相當復雜,大概需

18、要十幾片 數(shù)字集成塊,其功能也主要依賴于數(shù)字電路的各功能模塊的組合來實現(xiàn),焊 接的過程比較復雜,成本也非常高。若用單片機來設計制作完成,由于其功 能的實現(xiàn)主要通過軟件編程來完成,那么就降低了硬件電路的復雜性,而且 其成本也有所降低,所以在該設計中采用單片機利用 at89c51,它是低功耗、 高性能的 cmos 型 8 位單片機。片內(nèi)帶有 4kb 的 flash 存儲器,且允許在系 統(tǒng)內(nèi)改寫或用編程器編程。另外, at89c51 的指令系統(tǒng)和引腳與 8051 完全 兼容,片內(nèi)有 128b 的 ram、32 條 i/o 口線、2 個 16 位定時計數(shù)器、5 個中 斷源、一個全雙工串行口等。 在該設

19、計中利用單片機 i/o 口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā) 出各種不同的音調(diào),從而演奏樂曲,并能夠由 lcd 顯示信息。鍵盤在單片 機應用系統(tǒng)中能實現(xiàn)向單片機輸入數(shù)據(jù),傳送命令等功能,是人工干預單 片機的主要手段。本設計采用 4*4 鍵盤,16*2 lcd,七段顯示數(shù)碼管 led。 在開機按鈕按下時有英文歡迎提示字符,播放時顯示歌曲序號(或名 稱)。在演奏過程中可通過功能鍵選擇樂曲,暫停,播放。 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 10 2 總體方案論證與設計 本設計是基于單片機的數(shù)字音樂盒設計,由單片機 at89c51 芯片和 led

20、數(shù)碼管為核心,輔以必要的電路,構(gòu)成的一個單片機電子數(shù)字音樂盒。要 求利用 i/o 口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào)并采用 lcd 顯示信息,從而演奏樂曲,開機時有英文歡迎提示字符,播放時顯示歌 曲序號(或名稱),可通過功能鍵選擇樂曲,暫停,播放。本設計采用 4*4 鍵盤,16*2 lcd,七段顯示數(shù)碼管 led。下面對各模塊的設計逐一進行論證 比較。 2.1 單片機的選取 首先選擇單片機中最為普遍的 mcs51 系列。其中 at89c2051 是美國 atmel 公司生產(chǎn)的低電壓、高性能 cmos 8 位單片機,片內(nèi)含 2k bytes 的可 反復擦寫的只讀程序存儲器(pero

21、m)和 128bytes 的隨機數(shù)據(jù)存儲器 (ram),器件采用 atmel 公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標 準 mcs-51 指令系統(tǒng),片內(nèi)置通用 8 位中央處理器和 flash 存儲單元,功能 強大的 at89c2051 單片機可應用于許多高性價比的應用場合。 主要性能: 和 mcs-51 產(chǎn)品兼容; 2kb 可重編程 flash 存儲器(1000 次); 2.7-6v 電壓范圍; 全靜態(tài)工作:0hz-24khz 2 級程序存儲器保密鎖定 128*8 位內(nèi)部 ram 15 條可編程 i/o 線 兩個 16 位定時器/計數(shù)器 6 個中斷源 可編程串行通道 高精度電壓比較器(p1.

22、0,p1.1,p3.6) 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 11 直接驅(qū)動 led 的輸出端口 由于完成核心功能音頻輸出只需一個 i/o 口,并且額外功能 led 移位顯示可根據(jù)所選單片機的剩余 i/o 口進行設計,因此 at89c2051 足以 滿足基本要求。其 20 個引腳體積小巧,內(nèi)部 2k 字節(jié)的程序存儲器容量適 中,低壓低頻工作條件,并且價格低廉容易購得。 綜上,本次設計選擇 at89c2051 單片機。 2.2 led 顯示方式 方案一:靜態(tài)顯示。將一幀圖像中的每一個二極管的狀態(tài)分別用 0 和 1 表示,若為 0,則表示 le

23、d 無電流,即暗狀態(tài);若為 1 則表示二極管被點 亮。若給每一個發(fā)光二極管一個驅(qū)動電路,一幅畫面輸入以后,所有 led 的狀態(tài)保持到下一幅畫。對于靜態(tài)顯示方式,所需的譯碼驅(qū)動裝置很多, 引線多而復雜,成本高,且可靠性也較低。 方案二:動態(tài)顯示。對一幅畫面進行分割,對組成畫面的各部分分別 顯示,是動態(tài)顯示方式。動態(tài)顯示方式,可以避免靜態(tài)顯示的問題。但設 計上如果處理不當易造成亮度低,閃爍問題。因此合理的設計既應保證驅(qū)動 電路易實現(xiàn),又要保證圖像穩(wěn)定、無閃爍。動態(tài)顯示采用多路復用技術(shù)的 動態(tài)掃描顯示方式,復用的程度不是無限增加的,因為利用動態(tài)掃描顯示 使我們看到一幅穩(wěn)定畫面的實質(zhì)是利用了人眼的暫留

24、效應和發(fā)光二極管發(fā) 光時間的長短,發(fā)光的亮度等因素。通過實驗發(fā)現(xiàn),當掃描刷新頻率(發(fā) 光二極管的停閃頻率)為 50hz,發(fā)光二極管導通時間1ms 時顯示亮度較 好,無閃爍感。 鑒于上述原因,采用方案二。 2.3 led 驅(qū)動模塊 方案一:采用靜態(tài)鎖存方式,將每一個 led 發(fā)光管的一端接至單片機 的一個 i/o 口,另一端通過電阻接電源。這種方法可以直接驅(qū)動 led,原理 簡單,驅(qū)動能力強,led 的亮度也可以通過限流電阻調(diào)節(jié),非常方便,但此 種方法太浪費單片機的 i/o 口,只適合于較小的系統(tǒng)。 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 12

25、方案二:采用動態(tài)掃描方式,通過三極管驅(qū)動并聯(lián)在一起的 led 發(fā)光 管的一端(共陰或共 2 端),led 發(fā)光管的另一腳接通用 i/o 口,控制其亮滅。 該方法能驅(qū)動較多的 led,控制方式較靈活,而且節(jié)省單片機的資源。 比較以上兩種方案,系統(tǒng)設計中采用方案二。 2.4 系統(tǒng)總體結(jié)構(gòu)框圖 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 13 3 系統(tǒng)硬件設計 本設計中用到了 at89c51 單片機,4*4 鍵盤,蜂鳴器,2 lcd 等硬件電 路常用元器件。 3.1 at89c51 芯片功能和硬件連接 at89c51 是一種帶 4k 字節(jié)閃爍可編程可擦除

26、只讀存儲器的低電壓,高 性能 cmos8 位微處理器,俗稱單片機。該器件采用 atmel 高密度非易失存 儲器制造技術(shù)制造,與工業(yè)標準的 mcs-51 指令集和輸出管腳相兼容。由于 將多功能 8 位 cpu 和閃爍存儲器組合在單個芯片中,atmel 的 at89c51 是一 種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方 案。 3.1.1 主要特性: 與 mcs-51 兼容 4k 字節(jié)可編程閃爍存儲器 壽命:1000 寫/擦循環(huán) 數(shù)據(jù)保留時間:10 年 全靜態(tài)工作:0hz-24hz 三級程序存儲器鎖定 128*8 位內(nèi)部 ram 32 可編程 i/o 線 兩個 16 位定時器

27、/計數(shù)器 5 個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘電路 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 14 3.1.2 管腳說明(如圖 3.1): 圖 3.1 vcc:供電電壓。 gnd:接地。 p0 口:p0 口為一個 8 位漏級開路雙向 i/o 口,每腳可吸收 8ttl 門電 流。當 p1 口的管腳第一次寫 1 時,被定義為高阻輸入。p0 能夠用于外部程 序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在 fiash 編程時,p0 口作為原碼輸入口,當 fiash 進行校驗時,p0 輸出原碼,此時 p0 外部必須 被

28、拉高。 p1 口:p1 口是一個內(nèi)部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖器 能接收輸出 4ttl 門電流。p1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸 入,p1 口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。 在 flash 編程和校驗時,p1 口作為第八位地址接收。 p2 口:p2 口為一個內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 口緩沖器可 接收,輸出 4 個 ttl 門電流,當 p2 口被寫“1”時,其管腳被內(nèi)部上拉電 阻拉高,且作為輸入。并因此作為輸入時,p2 口的管腳被外部拉低,將輸 出電流。這是由于內(nèi)部上拉的緣故。p2 口當用于外部程序存儲器

29、或 16 位地 址外部數(shù)據(jù)存儲器進行存取時,p2 口輸出地址的高八位。在給出地址“1” 時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2 口輸出其特殊功能寄存器的內(nèi)容。p2 口在 flash 編程和校驗時接收高八位 地址信號和控制信號。 p3 口:p3 口管腳是 8 個帶內(nèi)部上拉電阻的雙向 i/o 口,可接收輸出 4 個 ttl 門電流。當 p3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作 輸入。作為輸入,由于外部下拉為低電平,p3 口將輸出電流(ill)這是由 于上拉的緣故。p3 口也可作為 at89c51 的一些特殊功能口,如下表所示: 管口管腳 備選功能 p3.0

30、rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷 0) p3.3 /int1(外部中斷 1) 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 15 p3.4 t0(記時器 0 外部輸入) p3.5 t1(記時器 1 外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲器讀選通) p3 口同時為閃爍編程和編程校驗接收一些控制信號。 rst:復位輸入。當振蕩器復位器件時,要保持 rst 腳兩個機器周期的 高電平時間。 ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存 地

31、址的地位字節(jié)。在 flash 編程期間,此引腳用于輸入編程脈沖。在平時, ale 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6。因 此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用 作外部數(shù)據(jù)存儲器時,將跳過一個 ale 脈沖。如想禁止 ale 的輸出可在 sfr8eh 地址上置 0。此時, ale 只有在執(zhí)行 movx,movc 指令是 ale 才起作 用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ale 禁止, 置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間, 每個機器周期兩次/psen 有效。但在訪問外部數(shù)據(jù)存儲器

32、時,這兩次有效的 /psen 信號將不出現(xiàn)。 /ea/vpp:/ea 保持低電平時,在此期間外部程序存儲器(0000h- ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式 1 時,/ea 將內(nèi)部鎖 定為 reset;當/ea 端保持高電平時,此間內(nèi)部程序存儲器。在 flash 編程 期間,此引腳也用于施加 12v 編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。 3.1.3 振蕩器特性: xtal1 和 xtal2 分別為反向放大器的輸入和輸出。該反向放大器可以配 置為 片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時

33、鐘源驅(qū)動 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 16 器件,xtal2 應不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器, 因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求 的寬度。 3.1.4 芯片擦除: 整個 perom 陣列和三個鎖定位的電擦除可通過正確的控制信號組合, 并保持 ale 管腳處于低電平 10ms 來完成。在芯片擦操作中,代碼陣列全被寫 “1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。此外, at89c51 設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟 件可選的掉電模式。在閑置

34、模式下,cpu 停止工作。但 ram,定時器,計數(shù) 器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存 ram 的內(nèi)容并且凍結(jié) 振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。 3.2 led 顯示器 led(light emitting diode)是發(fā)光二極管英文名稱的縮寫。led 顯示器是由發(fā)光二極管構(gòu)成的,所以在顯示器前面冠以“l(fā)ed”。led 顯示 器在單片機系統(tǒng)中的應用非常普遍。 3.23.2.1.1 led 顯示器的結(jié)構(gòu) 常用的 led 顯示器為 8 段。每一個段對應 1 個發(fā)光二極管,這種顯示 器有共陽極和共陰極兩種:共陰極 led 顯示器的發(fā)光二極管的陰極連接在 一起,通常

35、此公共陰極接地。當某個發(fā)光二極管的陽極為高電平時,發(fā)光 二極管點亮,相應的段被顯示。同樣,共陽極 led 顯示器的發(fā)光二極管的 陽極連接在一起,通常此公共陽極接正電壓,當某個發(fā)光二極管的陰極接 低電平時,發(fā)光二極管被點亮,相應的段被顯示。為了使 led 顯示器顯示 不同的符號或數(shù)字,就要把不同段的發(fā)光二極管點亮,這樣就要為 led 提 供代碼,因為這些代碼可使 led 相應的段發(fā)光,從而顯示不同字型,因此 該代碼稱為段碼。 7 段發(fā)光二極管,再加上 1 個小數(shù)點位,共計 8 位。因此提供給 led 顯 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 1

36、7 示器的段碼正好是 1b。各段與字節(jié)中各位對應關(guān)系如下表 3.1: 表 3.1 8 段 led 結(jié)構(gòu)及外形 代碼位d7d6d5d4d3d2d1d0 顯示位dpgfedcba 3.23.2.2.2 led 顯示器工作原理 由 n 個 led 顯示塊可以拼接成 n 位的 led 顯示器。 如圖是 led 顯示器的結(jié)構(gòu)原理圖 3.2。 n 個 led 顯示器有 n 個位選線和 8*n 位 根段碼線。 段碼線控制顯示字符的字型,而位選線為各個 led 顯示塊中 各段的公共端,它控制該 led 顯示位的亮或暗。led 顯示器 有靜態(tài)顯示和動態(tài)顯示兩種。 3.3 鍵盤 鍵盤在單片機應用系統(tǒng)中能實現(xiàn)向單片

37、機輸入數(shù)據(jù),傳送命令等功能, 是人工干預單片機的主要手段。 3.33.3.1.1 鍵盤輸入的特點 鍵盤實質(zhì)上是一級按鍵開關(guān)的集合。通常,鍵盤開關(guān)利用了機械觸點 的合、斷作用。 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 18 3.33.3.2.2 按鍵的確認 鍵的閉合與否,反映在行線輸出電壓上就呈現(xiàn)高電平或低電平,如果 高電平表示鍵斷開,低電平則表示鍵閉合,通過對行線電平高低狀態(tài)的檢 測,便可確認按鍵按下與否。為了確保 cpu 對一次按鍵動作只確認一次按 鍵有效,必須消除抖動的影響。按鍵輸入電路由 4*4 矩陣鍵盤組成, p1 口 作為輸入控制按鍵

38、,其中 p1.0p1.3 掃描行,p1.4p1.7 掃描列。 3.33.3.3.3 如何消除按鍵的抖動 采用軟件來消除按鍵抖動的基本思想是:在一次檢測到有鍵按下時, 該鍵所對應的行線為低電平,執(zhí)行一段延時 10ms 的子程序后,確認該行線 電平是不否仍為低電平,如果仍為低電平,則確認為該行確實有鍵按下。 當按鍵松開時,行線的低電平變?yōu)楦唠娖?,?zhí)行一段延時 10ms 的子程序后, 檢測該行線為高電平,說明按鍵確實已經(jīng)松開。 3.4 系統(tǒng)復位電路的設計 智能系統(tǒng)一般應有手動或上電復位電路。復位電路的實現(xiàn)通常有兩種 方式:rc 復位電路和專用 監(jiān)控電路。前者實現(xiàn)簡單,成本低,但復位 可靠性相對較低;

39、后者成本較高,但復位可靠性高,尤其是高可靠重復復 位。對于復位要求高、并對電源電壓進行監(jiān)視的場合,大多采用這種方式。 本次課程設計采用了上電按鈕電平復位電路,如圖 3.2 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 19 圖 3.2 3.5 時鐘電路模塊 時鐘電路在單片機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作 的基礎(chǔ)。在一個單片機應用系統(tǒng)中,時鐘是保障系統(tǒng)正常工作的基準振蕩 定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系 統(tǒng)工作的快慢。為達到振蕩周期是 12mhz 的要求,這里要采用 12mhz 的晶 振,另外有兩個 22p

40、 的獨石電容,兩晶振引腳分別連到 xtal1 和 xtal2 振 蕩脈沖輸入引腳。具體連接圖如圖 3.3 所示: 圖 3.3 3.6 輸出顯示電路 用 p2.0p2.2 作為 lcd 的 rs、r/w、e 的控制信號;用 p0.0p0.7 作為 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 20 lcd 的 d0d7 的控制信號。由于 p0 口作為輸出,應加上拉電阻。 3.7 音頻輸出部分 整個輸出部分由一個 100uf 電容、兩個 s9013 npn 三極管和一個蜂鳴 器/喇叭組成,原理圖如右圖所示: 100uf 電容是用來濾波的,兩個 npn 三

41、極管起到放大信號的作用,最后 由蜂鳴器/喇叭表現(xiàn)出信號。用 p3.7 口控制蜂鳴器。輸出顯示電路如圖 3.4 所示: xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/in

42、t1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c51 ls1 speaker q1 pnp r1 1k d7 14 d6 13 d5 12 d4 11 d3 10 d2 9 d1 8 d0 7 e 6 rw 5 rs 4 vss 1 vdd 2 vee 3 lcd1 lm016l 2 3 4 5 6 7 8 9 1 rp1 respack-8

43、 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 21 圖 3.4 輸出顯示電路 3.8 整體硬件電路 如圖 3.5 所示: 圖 3.5 音樂盒硬件電路原理圖 3.8.1 原理說明: 當鍵盤有鍵按下時,判斷鍵值,啟動計數(shù)器 t0,產(chǎn)生一定頻率的脈沖, 驅(qū)動蜂鳴器,放出樂曲。同時啟動定時器 t1,顯示樂曲播放的時間,并驅(qū) 動 lcd,顯示歌曲號及播放時間。 1) 硬件電路中用 p1.0p1.7 控制按鍵,其中 p1.0p1.3 掃描行, 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 22 p1.4p1.7 掃描

44、列; 2)用 p2.0p2.2 作為 lcd 的 rs、r/w、e 的控制信號; 3)用 p0.0p0.7 作為 lcd 的 d0d7 的控制信號; 4)用 p3.7 口控制蜂鳴器; 5)電路為 12mhz 晶振頻率工作,起振電路中 c1,c2 均為 30pf。 3.8.2 鍵盤按鍵 鍵盤按鍵分布如下: 012 3 45 6 7 89ab cde f 按鍵功能說明: 1a十首歌曲 c下一首歌曲 d上一首歌曲 e暫停 f開機畫面 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 - -23 4 系統(tǒng)軟件設計 4.1 主模塊的設計 主模塊是系統(tǒng)軟件的主框架。

45、結(jié)構(gòu)化程序設計一般有“自上而下”和 “自下而上”兩種方式,“自上而下”法的核心就是主框架的構(gòu)建。它的 合理與否關(guān)系到程序最終的功能的多少和性能的好壞。本系統(tǒng)的主模塊的 程序框圖如下圖 6 所示: 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 - -24 圖 6 4.2 外部中斷源系統(tǒng)設計 在本設計中中斷源是采用外部中斷 0 方式,其入口地址是 0003h。其中 斷響應級別最高。 (1)定時器/計數(shù)器 工作方式寄存器 tmod 用于選擇定時器/計數(shù)器的工作方式和工作模式。 其格式如下表 4.1: d7d6d5d4d3d2d1d0 gatem1m0gat

46、em1m0 tmod t1 方式字段t0 方式字段 表 4.1 下面表 4.2 對 tmod 各位進行說明: 門控位gate 工作方式選擇位m1、m0 m1m0 工作方式 00 方式 0,為 13 位定時器/計數(shù)器 01 方式 1,為 16 位定時器/計數(shù)器 10 方式 2,8 位的常數(shù)自動重新裝載的定時器/計數(shù)器 11 方式 3,僅適用于 t0 表 4.2 其中,在本設計中采用方式 1 的 16 位定時器/計數(shù)器。 計數(shù)器模式和定時器模式選擇位 =0,為定時器模式。 =1,為計數(shù)模式。 定時器/計數(shù)器控制寄存器 tcon,其格式如下表 4.3: 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖

47、南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 - -25 d7d6d5d4d3d2d1d0tcon tf1tr1tf0tr0ie1it1ie0ito 表 4.3 其各位的功能如下: tf1、tf0計數(shù)溢出標志位當計數(shù)器溢出時,該位置 1。 tr1、tr0計數(shù)運行控制位 4.3 基本顯示模塊設計 基本顯示模塊設計的重點是由顯示代碼取得相應的段碼,顯示段碼數(shù) 據(jù)的并行發(fā)送,高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于 電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好, 使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計時時,譯碼代替 機械式傳動,用 led 顯示器代替顯示器代替

48、指針顯示進而顯示時間,減小 了計時誤差,這種表具有時,分,秒顯示時間的功能,還可以進行時和分 的校對,片選的靈活性好。 程序流程如圖 4.4 所示。 圖 4.4 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 - -26 4.4 系統(tǒng)初始化程序 rs bit p2.0;定義液晶顯示端 口標 rw bit p2.1 e bit p2.2 l50ms equ 60h l1ms equ 61h l250ms equ 62h sec equ 65h min equ 64h hou equ 63h org 0000h ljmp main ljmp tt0 org

49、 001bh ljmp t1int org 1000h main: 液晶初始化 mov sp,#70h mov p0,#01h ;清屏 call enable mov p0,#38h ;8 位,2 行顯示 lcall enable org 000bh 4.5 音調(diào)、節(jié)拍以及編碼的確定方法 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應幅度的 諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片 機奏樂只需弄清楚兩個概念即可,也就是“音調(diào)”和節(jié)拍表示一個音符唱 多長的時間。 4.5.1 音調(diào)的確定 不同音高的樂音是用 c、d、e、f、g、a、b 來表示,這 7 個字母就是 音

50、樂的音名,它們一般依次唱成 do、re、mi、fa、so、la、si,即唱成簡譜 的 1、2、3、4、5、6、7,相當于漢字“多來米發(fā)梭拉西”的讀音,這是唱 曲時樂音的發(fā)音,所以叫“音調(diào)”,即 tone。把 c、d、e、f、g、a、b 這 一組音的距離分成 12 個等份,每一個等份叫一個“半音”。兩個音之間的 距離有兩個“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,cd、d 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 - -27 e、fg、ga、ab 兩音之間隔著一個黑鍵,他們之間的距離就是全音; ef、bc 兩音之間沒有黑鍵相隔,它們之間的距離就是

51、半音。通常唱成 1、2、3、4、5、6、7 的音叫自然音,那些在它們的左上角加上號或者 b 號的叫變化音。叫升記號,表示把音在原來的基礎(chǔ)上升高半音,b 叫降記 音,表示在原來的基礎(chǔ)上降低半音。例如高音 do 的頻率(1046hz)剛好是 中音 do 的頻率(523hz)的一倍,中音 do 的頻率(523hz)剛好是低音 do 頻率(266 hz)的一倍;同樣的,高音 re 的頻率(1175hz)剛好是中音 re 的頻率(587hz)的一倍,中音 re 的頻率(587hz)剛好是低音 re 頻率 (294 hz)的一倍。 1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后 將此周期除以

52、 2,即為半周期的時間。利用定時器計時這半個周期時間,每 當計時到后就將輸出脈沖的 i/o 反相,然后重復計時此半周期時間再對 i/o 反相,就可在 i/o 腳上得到此頻率的脈沖。 2)利用 at89c51 的內(nèi)部定時器使其工作在計數(shù)器模式 mode1 下, 改變計數(shù)值 th0 及 tl0 以產(chǎn)生不同頻率的方法。 此外結(jié)束符和休止符可以分別用代碼 00h 和 ffh 來表示,若查表結(jié) 果為 00h,則表示曲子終了;若查表結(jié)果為 ffh,則產(chǎn)生相應的停頓效果。 3)例如頻率為 523hz,其周期 t=1/523=1912us,因此只要令計數(shù) 器計時 956us/1us=956,在每次技術(shù) 956

53、 次時將 i/o 反相,就可得到中音 do(523hz)。 計數(shù)脈沖值與頻率的關(guān)系公式如下: n=fi2fr n:計算值;fi:內(nèi)部計時一次為 1us,故其頻率為 1mhz; 其計數(shù)值的求法如下: t=65536-n=65536-fi2fr 例如:設 k=65536,f=1000000=fi=1mhz,球低音 do(261hz)。中音 do(523hz)。高音的 do(1046hz)的計算值 t=65536-n=65536-fi2fr=65536-10000002fr=65536-500000/fr 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 -

54、-28 低音 do 的 t=65536-500000/262=63627 低音 do 的 t=65536-500000/523=64580 低音 do 的 t=65536-500000/1047=65059 c 調(diào)各音符頻率與計數(shù)值 t 的對照表如表 4.4 所示。 表 4.4 c 調(diào)各音符頻率與計數(shù)值 t 的對照表 低音頻率t參數(shù)中音頻率t參數(shù)高音頻率t參數(shù) do2621908229do523956115do10465757 do2771805217do554903108do11095454 re2941701204re587852102re11755151 re3111608193re62

55、280497re12454848 mi3301515182mi65975991mi13184545 fa3491433172fa69871686fa13974343 fa3701351162fa74067681fa14804141 so3921276153so78463877so15683838 so4151205145so83160272so16613636 la4401136136la88056868la17603434 la4641078129la93253664la18653232 si4941012121si98850661si19763030 4.5.2 節(jié)拍的確定 若要構(gòu)成音樂,

56、光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂具有旋律 (固定的律動),而且可以調(diào)節(jié)各個音的快滿度?!肮?jié)拍”,即 beat,簡單 說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若 1 拍實 0.5s,則 1/4 拍為 0.125s。至于 1 拍多少 s,并沒有嚴格規(guī)定,就像人的 心跳一樣,大部分人的心跳是每分鐘 72 下,有些人快一點,有些人慢一點, 只要聽的悅耳就好。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符 表示暫停發(fā)音。 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 - -29 一首音樂是由許多不同的音符組成的,而每個音符對應著不同頻率, 這樣

57、就可以利用不同的頻率的組合,加以與拍數(shù)對應的延時,構(gòu)成音樂。 了解音樂的一些基礎(chǔ)知識,我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音 樂。對于單片機來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機的 定時/計數(shù)器來產(chǎn)生這樣的方波頻率信號。因此,需要弄清楚音樂中的音符 和對應的頻率,以及單片機定時計數(shù)的關(guān)系。 表 4.5 節(jié)拍與節(jié)拍碼對照 節(jié)拍碼節(jié)拍數(shù)節(jié)拍碼節(jié)拍數(shù) 11/4 拍11/8 拍 22/4 拍21/4 拍 33/4 拍33/8 拍 41 拍42/1 拍 51 又 1/4 拍55/8 拍 61 又 1/2 拍63/4 拍 82 拍81 拍 a2 又 1/2 拍a1 又 1/4 拍 c3 拍c1

58、 又 1/2 拍 f3 又 3/4 拍 每個音符使用 1 個字節(jié),字節(jié)的高 4 位代表音符的高低,低 4 位代表 音符的節(jié)拍,圖 4.5 為節(jié)拍碼的對照。如果 1 拍為 0.4 秒,1/4 拍實 0.1 秒, 只要設定延遲時間就可求得節(jié)拍的時間。假設 1/4 拍為 1delay,則 1 拍應 為 4delay,以此類推。所以只要求得 1/4 拍的 delay 時間,其余的節(jié)拍就 是它的倍數(shù),如表 4.5 為 1/4 和 1/8 節(jié)拍的時間設定。 表 4.5 1/4 和 1/8 節(jié)拍的時間設定 曲調(diào)值delay曲調(diào)值delay 調(diào) 4/4125 毫秒調(diào) 4/462 毫秒 調(diào) 3/4187 毫秒調(diào)

59、 3/494 毫秒 調(diào) 2/4250 毫秒調(diào) 2/4125 毫秒 湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書湖南鐵路科技職業(yè)技術(shù)學院單片機課程設計說明書 - -30 4.5.3 編碼 do re mi fa so la si 分別編碼為 17,重音 do 編為 8,重音 re 編為 9,停頓編為 0。播放長度以十六分音符為單位(在本程序中為 165ms), 一拍即四分音符等于 4 個十六分音符,編為 4,其它的播放時間以此類推。 音調(diào)作為編碼的高 4 位,而播放時間作為低 4 位,如此音調(diào)和節(jié)拍就構(gòu)成 了一個編碼。以 0 xff 作為曲譜的結(jié)束標志。 舉例 1:音調(diào) do,發(fā)音長度為兩拍,即

60、二分音符,將其編碼為 0 x18。 舉例 2:音調(diào) re,發(fā)音長度為半拍,即八分音符,將其編碼為 0 x22 歌曲播放的設計。先將歌曲的簡譜進行編碼,儲存在一個數(shù)據(jù)類型為 unsigned char 的數(shù)組中。程序從數(shù)組中取出一個數(shù),然后分離出高 4 位 得到音調(diào),接著找出相應的值賦給定時器 0,使之定時操作蜂鳴器,得出相 應的音調(diào);接著分離出該數(shù)的低 4 位,得到延時時間,接著調(diào)用軟件延時。 表 4.6 簡譜對應的簡譜碼、t 值、節(jié)拍數(shù) 簡譜發(fā)音簡譜碼t 值節(jié)拍碼節(jié)拍數(shù) 5低音 so16426011/4 拍 6低音 la26440022/4 拍 7低音 ti36452433/4 拍 1中音

溫馨提示

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

評論

0/150

提交評論