




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、湖南人文科技學(xué)院 課程設(shè)計(jì)報(bào)告 課程名稱課程名稱:單片機(jī)原理及應(yīng)用課程設(shè)計(jì) 設(shè)計(jì)題目設(shè)計(jì)題目: 遠(yuǎn)程點(diǎn)歌系統(tǒng) 系系 別:別: 通信與控制工程系 專專 業(yè):業(yè): 通信工程 指導(dǎo)教師評語指導(dǎo)教師評語: 指導(dǎo)教師簽名: 年 月 日 項(xiàng)項(xiàng) 目目權(quán)重權(quán)重成績成績 1、設(shè)計(jì)過程中出勤、學(xué)習(xí)態(tài)度等方面 0.2 2、課程設(shè)計(jì)質(zhì)量與答辯0.5 3、設(shè)計(jì)報(bào)告書寫及圖紙規(guī)范程度0.3 成成 績績 評評 定定 總 成 績 教研室審核意見: 教研室主任簽字: 年 月 日 教學(xué)系審核意見: 主任簽字: 年 月 日 摘要 本設(shè)計(jì)是一個(gè)基于 AT89C52 系列單片機(jī)的點(diǎn)歌系統(tǒng),依據(jù)單片機(jī)技術(shù)原理,通 過硬件電路制作以及軟件
2、編譯,設(shè)計(jì)制作出一個(gè)多功能多功能點(diǎn)歌系統(tǒng)。該點(diǎn)歌系 統(tǒng)主要由單片機(jī)、8255 芯片、LED 顯示電路、復(fù)位電路、時(shí)鐘電路以及蜂鳴器組成。 用戶從客戶機(jī)選擇要播放的曲目??蛻魴C(jī)通過串口將選擇信息傳給單片機(jī)。單片機(jī) 根據(jù)客戶機(jī)給的信息做出選擇,播放預(yù)先存放在 ROM 中的音樂,并用 LED 顯示播 放歌曲。放完后在提示客戶機(jī)選擇下一曲,用蜂鳴器播放音樂。本設(shè)計(jì)利用 KEIL 編程軟件對點(diǎn)歌系統(tǒng)源程序進(jìn)行編程并調(diào)試,節(jié)約了設(shè)計(jì)時(shí)間。 關(guān)鍵字:點(diǎn)歌;關(guān)鍵字:點(diǎn)歌;AT89C52 單片機(jī);單片機(jī);LED;串口;串口; 目錄 1.引言 .4 1.1 設(shè)計(jì)目的.4 1.2 設(shè)計(jì)要求.4 1.3 設(shè)計(jì)內(nèi)容.4
3、 2.設(shè)計(jì)方法對比 .4 2.1 設(shè)計(jì)方案一.5 2.2 設(shè)計(jì)方案二.5 2.3 方案選擇.5 3.電路硬件分析 .5 3.1 總體設(shè)計(jì)框圖.5 3.2 AT89C52 簡介 .6 3.3 LED 顯示電路設(shè)計(jì)與原理 .6 3.4 時(shí)鐘振蕩電路 .7 3.5 串口電路.7 4.軟件分析 .8 4.1 音調(diào)的確定.8 4.2 節(jié)拍的確定.9 4.3 編碼 .10 4.4 軟件程序設(shè)計(jì) .12 4.4.1 主程序流程圖 .12 4.4.2 播放音樂子程序流程圖 .14 4.4.3 程序源代碼(見附錄一).15 5.總結(jié) .15 6.致謝 .16 參考文獻(xiàn) .16 附錄一 .17 遠(yuǎn)程點(diǎn)歌系統(tǒng) 1.
4、引言引言 隨著人類社會的發(fā)展,人們對視覺、聽覺方面的享受提出了越來越高的要求。 點(diǎn)歌系統(tǒng)可以提高人們的精神文化享受。傳統(tǒng)點(diǎn)歌系統(tǒng)較為復(fù)雜,一般嵌入在一些 專用影音設(shè)備中,且成本較高,本點(diǎn)歌系統(tǒng)是以單片機(jī)為核心元件的電子式點(diǎn)歌系 統(tǒng),體積小、重量輕、能演奏和旋音樂及使用方便,加之性價(jià)比較高,具有一定的 商業(yè)價(jià)值。 1.1 設(shè)計(jì)目的設(shè)計(jì)目的 (1)熟悉單片機(jī)的應(yīng)用與開發(fā); (2)學(xué)習(xí)用 C 語言開發(fā)應(yīng)用程序; (3)學(xué)習(xí)遠(yuǎn)程控制與歌曲播放的開發(fā)。 1.2 設(shè)計(jì)要求設(shè)計(jì)要求 利用單片機(jī)作為控制核心,完成一個(gè)從客戶機(jī)選擇的點(diǎn)歌系統(tǒng)。具體要求如下: (1) 用戶從客戶機(jī)選擇要播放的曲目; (2) 電腦通
5、過串口將選擇信息傳給單片機(jī)。 (3)單片機(jī)根據(jù)電腦給的信息做出選擇,播放預(yù)先存放在 ROM 中的音樂; (4)用揚(yáng)聲器播放音樂完后,提示下一次選擇。 1.3 設(shè)計(jì)內(nèi)容設(shè)計(jì)內(nèi)容 (1)電路有兩種工作模式:暫停模式和播放模式。 (2)按下按鍵 1 進(jìn)入演奏音樂模式,再按切換歌曲,共兩首歌曲。 (3)按下按鍵 2 進(jìn)入花樣燈模式,再按切換 LED 花樣,共三種花樣。 2.設(shè)計(jì)方法對比設(shè)計(jì)方法對比 本設(shè)計(jì)是一個(gè)基于 AT89C52 系列單片機(jī)的點(diǎn)歌系統(tǒng),客戶機(jī)選擇所喜歡的歌曲, 單片機(jī)執(zhí)行音樂播放程序。蜂鳴器發(fā)出某個(gè)音調(diào),與之相對應(yīng)的數(shù)碼管顯示播放的 曲目。硬件有單片機(jī)已確定,下面對軟件設(shè)計(jì)語言進(jìn)行比
6、較: 2.1 設(shè)計(jì)方案一設(shè)計(jì)方案一 使用 C 語言,它是目前最流行的程序設(shè)計(jì)語言之一,具有簡潔、靈活、實(shí)用、 高效、可移植性好;它同時(shí)具備了高級語言和低級語言的特征,除此之外,C 語言 生成目標(biāo)代碼質(zhì)量高、程序執(zhí)行效率高。 2.2 設(shè)計(jì)方案二設(shè)計(jì)方案二 使用匯編語言,它能從分發(fā)揮指令系統(tǒng)功能和效率,可獲得最簡練的目標(biāo)程序, 特別是在一些實(shí)時(shí)控制系統(tǒng)中,采用匯編語言可以準(zhǔn)確地計(jì)算出控制操作時(shí)間。 2.3 方案選擇方案選擇 使用匯編語言,會使編程過程變得繁瑣,復(fù)雜度上升,程序結(jié)構(gòu)不易控制,加 之音樂播放對實(shí)時(shí)要求不高;而 C 語言能極大地簡化編程過程,大大的提高的效率 與質(zhì)量,故選擇方案一。 3.
7、電路硬件分析電路硬件分析 3.1 總體設(shè)計(jì)框圖總體設(shè)計(jì)框圖 STC89C52 單片機(jī) LED 顯示8255 蜂鳴器 串口 震蕩電路 圖 3.1 總體設(shè)計(jì)框圖 3.2 AT89C52 簡介簡介 AT89C52 是一種帶 4K 字節(jié)閃存可編程可擦 除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓,高 性能 CMOS 8 位微處理器,俗稱單片機(jī)。 AT89C2051 是一種帶 2K 字節(jié)閃存可編程可擦除 只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲 器可以反復(fù)擦除 100 次。該器件采用 ATMEL 高 密度非易失存儲
8、器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51 指令集和輸出管腳相兼容。由于將多功 能 8 位 CPU 和閃爍存儲器組合在單個(gè)芯片中,ATMEL 的 AT89C52 是一種高效微 控制器,AT89C2051 是它的一種精簡版本。AT89C52 單片機(jī)為很多嵌入式控制系統(tǒng) 提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖 3.2 所示 3.3 LED 顯示電路設(shè)計(jì)與原理顯示電路設(shè)計(jì)與原理 圖 3.2 AT89C52 系列單片機(jī) LED 顯示電路是由 6 位 LED 數(shù)碼管組成,連接方式為共陽極,數(shù)碼管的位數(shù)由 8255 的 PA 控制,若為低電平則有效;數(shù)碼管顯示的內(nèi)容的由 8255 的 PB 口
9、控制。 3.4 時(shí)鐘振蕩電路時(shí)鐘振蕩電路 AT89C52 中有一個(gè)用于構(gòu)成內(nèi)部振蕩 器的高增益反相放大器,引腳 XTAL1 和 XTAL2 分別是該放大器的輸入端和輸出端。 這個(gè)放大器與作為反饋元件的片外石英晶 體或者陶瓷諧振器一起構(gòu)成自然振蕩器。 外接石英晶體及電容 C1、C2 接在放大器 的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接 電容 C1,C2 雖然沒有什么嚴(yán)格的要求, 但電容容量的大小會輕微影響振蕩頻率的 高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體, 我們推薦電容使用 30PF10PF,而如果使用陶瓷振蕩器建議選擇 40PF10PF。用 戶也可以采用外部時(shí)鐘。采
10、用外部時(shí)鐘的電路如圖示。這種情況下,外部時(shí)鐘脈沖 接到 XTAL1 端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2 則懸空。由于外部時(shí)鐘信號 是通過一個(gè) 2 分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號的,所以對外部時(shí)鐘信號的占空比沒 有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件 的要求。振蕩器電路圖如右。 圖 3.4 單片機(jī)外部振蕩電路 圖 3.3 LED 顯示電路設(shè)計(jì)與原 理 3.5 串口電路串口電路 由于單片機(jī)工作電壓與客戶機(jī)串口電壓存在電壓差,不能直接相連。這里使用 MAX232 芯片轉(zhuǎn)換電壓,再接上標(biāo)準(zhǔn)串口 CON32,從而達(dá)到與客戶機(jī)通信的目的。 出口硬件連接電路圖如下。 4
11、.軟件軟件分析分析 音調(diào)、節(jié)拍以及編碼的確定方法一般說來,單片機(jī)演奏音樂基本都是單音頻率, 它不包含相應(yīng)幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。 因此單片機(jī)奏樂只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和節(jié)拍表示一個(gè)音符唱 多長的時(shí)間。 4.1 音調(diào)的確定音調(diào)的確定 (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)利用 AT89C52 的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)
12、器模式 MODE1 下,改變計(jì) 數(shù)值 TH0 及 TL0 以產(chǎn)生不同頻率的方法。 此外結(jié)束符和休止符可以分別用代碼 00H 和 FFH 來表示,若查表結(jié)果為 00H, 則表示曲子終了;若查表結(jié)果為 FFH,則產(chǎn)生相應(yīng)的停頓效果。 圖 3.5 串口電路圖電路 (3)例如頻率為 523Hz,其周期 T=1/523=1912us,因此只要令計(jì)數(shù)器計(jì)時(shí) 956us/1us=956,在每次技術(shù) 956 次時(shí)將 I/O 反相,就可得到中音 DO(523Hz) 。 計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下: N=Fi2Fr N:計(jì)算值;Fi:內(nèi)部計(jì)時(shí)一次為 1us,故其頻率為 1MHz; 其計(jì)數(shù)值的求法如下: T=6
13、5536-N=65536-Fi2Fr 例如:設(shè) K=65536,F(xiàn)=Fi=1MHz,球低音 DO(261Hz) 。中音 DO(523Hz) 。高音 的 DO(1046Hz)的計(jì)算值 T=65536-N=65536-Fi2Fr=65536- Fr=65536-/Fr 低音 DO 的 T=65536-/262=63627 低音 DO 的 T=65536-/523=64580 低音 DO 的 T=65536-/1047=65059 C 調(diào)各音符頻率與計(jì)數(shù)值 T 的對照表如表 4.1 所示。 表 4.1 C 調(diào)各音符頻率與計(jì)數(shù)值 T 的對照表 低音頻率T參數(shù)中音頻率T參數(shù)高音頻率T參數(shù) Do26219
14、08229Do523956115Do10465757 Do 2771805217 Do 554903108 Do 11095454 Re2941701204Re587852102Re11755151 Re 3111608193 Re 62280497 Re 12454848 Mi3301515182Mi65975991Mi13184545 Fa3491433172Fa69871686Fa13974343 Fa 3701351162 Fa 74067681 Fa 14804141 So3921276153So78463877So15683838 So 4151205145 So 83160272
15、 So 16613636 La4401136136La88056868La17603434 La 4641078129 La 93253664 La 18653232 Si4941012121Si98850661Si19763030 4.2 節(jié)拍的確定節(jié)拍的確定 一首音樂是由許多不同的音符組成的,而每個(gè)音符對應(yīng)著不同頻率,這樣就可 以利用不同的頻率的組合,加以與拍數(shù)對應(yīng)的延時(shí),構(gòu)成音樂。了解音樂的一些基 礎(chǔ)知識,我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂。對于單片機(jī)來說,產(chǎn)生 不同頻率的脈沖是非常方便的,利用單片機(jī)的定時(shí)/計(jì)數(shù)器來產(chǎn)生這樣的方波頻率信 號。因此,需要弄清楚音樂中的音符和對應(yīng)的頻
16、率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。 表 4.2 節(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 又 1/2 拍 F3 又 3/4 拍 每個(gè)音符使用 1 個(gè)字節(jié),字節(jié)的高 4 位代表音符的高低,低 4 位代表音符的節(jié)拍, 圖 5.2 為節(jié)拍碼的對照。如果 1 拍為 0.4 秒,1/4 拍實(shí) 0.1 秒,只要設(shè)定延遲時(shí)間就 可求得節(jié)拍的時(shí)間。假設(shè) 1/4 拍為 1DE
17、LAY,則 1 拍應(yīng)為 4DELAY,以此類推。所 以只要求得 1/4 拍的 DELAY 時(shí)間,其余的節(jié)拍就是它的倍數(shù),如圖 5.3 為 1/4 和 1/8 節(jié)拍的時(shí)間設(shè)定。 表 4.3 1/4 和 1/8 節(jié)拍的時(shí)間設(shè)定 曲調(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 毫秒 4.3 編碼編碼 先將歌曲的簡譜進(jìn)行編碼,儲存在一個(gè)數(shù)據(jù)類型為 unsigned char 的數(shù)組中。程 序從數(shù)組中取出一個(gè)數(shù),然后分離出高 4 位得到音調(diào),接著找出相應(yīng)的值賦給定時(shí) 器 0,使之定時(shí)操作蜂鳴
18、器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低 4 位,得到延 時(shí)時(shí)間,接著調(diào)用軟件延時(shí)。 表 4.4 簡譜對應(yīng)的簡譜碼、T 值、節(jié)拍數(shù) 簡譜發(fā)音簡譜碼T 值節(jié)拍碼節(jié)拍數(shù) 5低音 SO16426011/4 拍 6低音 LA26440022/4 拍 7低音 TI36452433/4 拍 1中音 DO46458041 拍 2中音 RE56468451 又 1/4 拍 3中音 MI66477761 又 1/2 拍 4中音 FA76482082 拍 5中音 SO864898A2 又 1/2 拍 6中音 LA964968C3 拍 7中音 TIA65030F3 又 3/4 拍 1高音 DOB65058 2高音 R
19、EC65110 3高音 MID65157 4高音 FAE65178 5高音 SOF65217 4.4 軟件程序設(shè)計(jì)軟件程序設(shè)計(jì) 4.4.1 主程序流程圖主程序流程圖 主程序代碼: void main(void) TMOD=0 x21;/定時(shí)器 0,1 都工作 16 位計(jì)數(shù)方式 初始化 用 LED 顯示 向客戶機(jī)發(fā)送提示 播放完歌曲 播放歌曲 客戶機(jī)點(diǎn)歌 調(diào)用 PLAY調(diào)用 PAUSE 開始 等待 dis_play=0 中斷響應(yīng) 是否 圖 4.1 主程序流程圖 ET0=1; /允許定時(shí)器 0 溢出中斷; EA = 1; /允許總中斷(如不使用中斷,可用/屏蔽) ES = 1; /允許 UART
20、串口的中斷 SCON = 0 x50; /串口工作方式 1, TH1 = 0 xF3; /定時(shí)器初值高 8 位設(shè)置 TL1 = 0 xF3; /定時(shí)器初值低 8 位設(shè)置 PCON = 0 x00; /波特率不倍頻 TR1 = 1; /定時(shí)器啟動(dòng) dis_flag=0; a8255_CON=0 x81; a8255_PA=0 xff; dis_flag=0; while(1) if(dis_flag=0) /PAUSE leddisp5=0 x11;leddisp4=0 x0a; leddisp3=0 x13;leddisp2=0 x05; leddisp1=0 x0e;leddisp0=0 x
21、15; else/PLAY-X leddisp5=0 x11;leddisp4=0 x12; leddisp3=0 x0a;leddisp2=0 x14; leddisp1=0 x10; display(); if(dis_flag!=0)void song(); 4.4.2 播放音樂子程序流程圖播放音樂子程序流程圖 修改指針 取下一個(gè)編碼 結(jié)束 dis_flag!=0 開始 取編碼高 4 位 取低 4 位 調(diào)用延時(shí)程序 關(guān)閉定時(shí)器 0給定時(shí)器 0 賦初值 是否播放完 是否為:0 否是 否 是 圖 4.2 播放音樂子程序 流程圖 播放音樂子程序代碼: void song() if(dis_fl
22、ag!=0) while(1)display();if(dis_flag!=0)break; if(*pmusic=0 x00) fm=1; TR0=0; leddisp0=0 x10; UART_S(send_data); dis_flag=0; while(1)display();if(dis_flag!=0)break; elseleddisp0=re_temp; music_temp=*pmusic; beat= music_temp /取得節(jié)拍數(shù) beat=beat*4; freq =music_temp4; /取得音符編碼 pmusic+; if(freq=0)TR0=0; els
23、e TR0=0; FreqTemp=FreqTabfreq; TL0= FreqTemp; TH0= FreqTemp8; TR0=1; delay(beat); 4.4.3 程序源代碼(見附錄一)程序源代碼(見附錄一) 5.總結(jié)總結(jié) 單片機(jī)的設(shè)計(jì)至今為止已經(jīng)進(jìn)入了令人鼓舞的階段,在進(jìn)行了一個(gè)學(xué)期的摸索 與實(shí)驗(yàn),使我不僅僅是對于單片機(jī)入門軟件與硬件的常用設(shè)計(jì)與功能,還使我對于 一項(xiàng)設(shè)計(jì)研究的制作過程所需要的詳細(xì)步驟和具體的實(shí)現(xiàn)方法的力度的掌握。 當(dāng)然在這次寶貴的課程設(shè)計(jì)活動(dòng)中,經(jīng)驗(yàn)才是對于我們最大的收獲,而且還增 強(qiáng)了自身對未知問題以及對知識的深化認(rèn)識的能力,用受益匪淺這個(gè)詞語來概括這 次難忘
24、的活動(dòng)我覺得再合適不過了。但是,光是完成了作品還是不可以自我滿足的, 在從一開始的時(shí)候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能 完美又方便地被應(yīng)用領(lǐng)域這個(gè)最終目的下,隨著對單片機(jī)這門學(xué)科的認(rèn)識加深,到 達(dá)了拓展的程度,我想這個(gè)目的將在不遠(yuǎn)的時(shí)期內(nèi)被實(shí)現(xiàn)。 總之,這次設(shè)計(jì)從軟件編寫、調(diào)試到軟硬件聯(lián)機(jī)調(diào)試,我傾注了大量的時(shí)間和 心血。真是曾經(jīng)為程序的編寫而冥思查找過,曾經(jīng)為無法找出錯(cuò)誤而郁悶苦惱過, 也曾經(jīng)為某一功能不能實(shí)現(xiàn)而猶豫彷徨過,但最終我成功了。 我不僅品味到了結(jié)果的喜悅,更明白了過程的彌足珍貴。 6.致謝致謝 感謝我的指導(dǎo)老師方智文,他們嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工
25、作、學(xué) 習(xí)中的榜樣;他們循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪。感謝我的 室友們,是你們和我共同維系著彼此之間兄弟般的感情,維系著寢室那份家的融洽。 從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的 幫助,在這里請接受我誠摯的謝意。 參考文獻(xiàn)參考文獻(xiàn) 1 張鑫. 單片機(jī)原理及應(yīng)用,電子工業(yè)出版社,2005.8. 2 康華光. 模擬電子技術(shù)基礎(chǔ)(第四版)M, 武漢:華中理工大學(xué)出版社,1999. 3 譚浩強(qiáng). C 語言程序設(shè)計(jì)(第二版)M,北京:清華大學(xué)出版社,1991. 4 樓然苗. 單片機(jī)課程設(shè)計(jì)指導(dǎo)(第一版)M,北京:航空航天大學(xué)出版社, 2007.7. 附
26、錄一附錄一 程序源代碼: #include #include #define a8255_PA XBYTE0 xD1FF /PA 口地址 #define a8255_PB XBYTE0 xD2FF /PB 口地址 #define a8255_CON XBYTE0 xD7FF /控制字地址 #define uchar unsigned char #define uint unsigned int uint FreqTemp; uchar music_temp; /暫時(shí)存放從 MusicTable 數(shù)組中讀出的變量 uchar beat; / uchar freq; /簡譜碼對應(yīng) T 值數(shù)組的下標(biāo)
27、 uchar *pmusic; /音樂編碼指針 uint rece_data=1; /播放音樂標(biāo)識符 uchar re_temp=0 x10; uchar dis_flag; uchar leddisp6; uchar send_data=播放完畢,請點(diǎn)歌.nr; uchar init_data=請點(diǎn)歌.nr; sbit fm=P33; /*數(shù)碼顯示表*/ uchar code display_code=/數(shù)碼管顯示代碼表 0 xA0,0 xBB,0 x62,0 x2A, /0,1,2,3 0 x39,0 x2C,0 x24,0 xBA, /4,5,6,7 0 x20,0 x28,0 x30,
28、0 x25,/8,9,A,B 0 xE4,0 x23,0 x64,0 x74,/C,D,E,F 0 x7f,0 x70,0 xe5,0 xa1,0 x29,0 xff; /-,P,L,U,y,滅 /*音調(diào)(頻率)*/ unsigned int code FreqTab= /簡譜對應(yīng)的簡譜碼、T 值 65535, 64260,64400,64524,64580,64684, 64777,64820,64898,64968,65030, 65058,65110,65157,65178,65217 ; /*音樂程序*/ unsigned char code musi_1=/音符節(jié)拍碼 0 x82,0
29、 x01,0 x81,0 x94,0 x84,0 xb4,0 xa4,0 x04,0 x82,0 x01,0 x81,0 x94,0 x84, 0 xc4,0 xb4,0 x04,0 x82,0 x01,0 x81,0 xf4,0 xd4,0 xb4,0 xa4,0 x94,0 xe2,0 x01, 0 xe1,0 xd4,0 xb4,0 xc4,0 xb4,0 x04,0 x82,0 x01,0 x81,0 x94,0 x84,0 xb4,0 xa4, 0 x04,0 x82,0 x01,0 x81,0 x94,0 x84,0 xc4,0 xb4,0 x04,0 x82,0 x01,0 x8
30、1,0 xf4, 0 xd4,0 xb4,0 xa4,0 x94,0 xe2,0 x01,0 xe1,0 xd4,0 xb4,0 xc4,0 xb4,0 x04,0 x00 ; unsigned char code musi_2= /千年之戀 0 x32,0 x31,0 x21,0 x32,0 x52,0 x32,0 x31,0 x21,0 x32,0 x62, /竹林的燈火 到過的沙漠 0 x32,0 x31,0 x21,0 x32,0 x61,0 x51,0 x32, /七色的國度 不斷飄逸風(fēng)中 0 x32,0 x41,0 x21,0 x32,0 x52,0 x32,0 x31,0 x21
31、,0 x32,0 x62, /有一種神秘 灰色的旋渦 0 x32,0 x31,0 x21,0 x32,0 x83,0 x82,0 x71,0 x72,0 x02, /將我卷入了迷霧中 0 x63,0 xA1,0 xA2,0 x62,0 x92,0 x82,0 x52, /看不清的雙手 0 x00/結(jié)束標(biāo)志 ; unsigned char code musi_3= /寂寞沙洲冷 0 x12,0 x12,0 x22,0 x32,0 x31,0 x22,0 x21,0 x22,0 x21,0 x31,0 x51,0 x52,0 x31, 0 x52,0 x61,0 x15,0 x14,0 x51,0
32、 x52,0 x31,0 x52,0 x62,0 x13,0 x11,0 x13,0 x32, 0 x28,0 x08,0 x28,0 x31,0 x32,0 x31,0 x32,0 x11,0 x21,0 x51,0 x52,0 x51,0 x52, 0 x51,0 x51,0 x31,0 x32,0 x31,0 x32,0 x81,0 x72,0 x63, 0 x00 ; unsigned char code musi_4= 0 x34,0 x32,0 x32,0 x34,0 x42,0 x51,0 x62,0 x52,0 x42,0 x32,0 x34,0 x04,0 x74, 0 x7
33、4,0 x62,0 x62,0 x64,0 x3c,0 x04,0 x64,0 x62,0 x52,0 x42,0 x32,0 x34,0 x33, 0 x31,0 x32,0 x72,0 x76,0 x72,0 x83,0 x81,0 x82,0 x82,0 x82,0 x74,0 x72,0 x7c, 0 x04,0 x63,0 x61,0 x62,0 x62,0 x64,0 x72,0 x82,0 x72,0 x74,0 x72,0 x62,0 x52, 0 x42,0 x32,0 x42,0 x44,0 x42,0 x42,0 x52,0 x62,0 x52,0 x5c,0 x04,0
34、 x64,0 x62, 0 x62,0 x64,0 x72,0 x82,0 x72,0 x74,0 x72,0 x62,0 x52,0 x42,0 x32,0 x42,0 x46, 0 x53,0 x41,0 x42,0 x32,0 x3c,0 x04,0 x44,0 x48,0 x02,0 x32,0 x3f,0 x44,0 x48, 0 x02,0 x32,0 x3f,0 x34,0 x0c,0 x00 ; unsigned char code musi_5= 0 x52,0 x42,0 x58,0 x02,0 x42,0 x52,0 x42,0 x38,0 x04,0 x12,0 x32
35、,0 x44,0 x42, 0 x52,0 x42,0 x32,0 x12,0 x12,0 xC8,0 x04,0 x52,0 x42,0 x58,0 x02,0 x42,0 x52, 0 x42,0 x38,0 x04,0 x12,0 x32,0 x44,0 x42,0 x52,0 x42,0 x32,0 x12,0 x32,0 x48, 0 x04,0 x52,0 x42,0 x58,0 x02,0 x42,0 x52,0 x42,0 x38,0 x04,0 x12,0 x32,0 x44, 0 x42,0 x52,0 x42,0 x32,0 x12,0 x11,0 x31,0 xC8,0
36、 x04,0 x52,0 x72,0 x78,0 x02, 0 x72,0 x82,0 x72,0 x58,0 x04,0 x42,0 x42,0 x44,0 x42,0 x52,0 x42,0 x32,0 x12, 0 x12,0 x32,0 x32,0 x3C,0 x09,0 x72,0 x72,0 x82,0 xA2,0 x92,0 x92,0 x82,0 x52, 0 x42,0 x42,0 x42,0 x58,0 x02,0 x52,0 x52,0 x72,0 x84,0 x84,0 x02,0 x12,0 x52, 0 x42,0 x48,0 x04,0 x52,0 x72,0 x
37、72,0 x52,0 x74,0 x02,0 xA4,0 x92,0 x82,0 x92, 0 x54,0 x02,0 x82,0 x82,0 x92,0 x82,0 x72,0 x52,0 x42,0 x02,0 xC4,0 x12,0 x3C, 0 x00; unsigned char code musi_6= 0 x52,0 x62,0 x74,0 x74,0 x74,0 x34,0 x42,0 x34,0 x52,0 x56,0 x42,0 x34,0 x34, 0 x14,0 x32,0 x12,0 x12,0 xC2,0 xC4,0 x04,0 x52,0 x62,0 x74,0
38、x74,0 x74,0 x34, 0 x42,0 x34,0 x52,0 x56,0 x42,0 x34,0 x32,0 x12,0 x12,0 x34,0 x42,0 x4C,0 x52, 0 x42,0 x34,0 x32,0 x42,0 x32,0 x12,0 x12,0 xC2,0 xC2,0 x54,0 x52,0 x54,0 x52, 0 x52,0 x42,0 x32,0 x32,0 x12,0 x32,0 x42,0 x32,0 x52,0 x5C,0 x52,0 x42,0 x34, 0 x32,0 x42,0 x32,0 x12,0 x12,0 xC2,0 xC2,0 x5
39、4,0 x52,0 x54,0 x02,0 x52,0 x52, 0 x42,0 x32,0 x12,0 x32,0 x84,0 x72,0 x7F,0 x0F,0 x74,0 x72,0 x52,0 x54,0 x74, 0 x82,0 x52,0 x52,0 x72,0 x78,0 x34,0 x32,0 x32,0 x42,0 x54,0 x72,0 x7F,0 x86, 0 x82,0 x72,0 x52,0 x54,0 x72,0 x84,0 x32,0 x36,0 x52,0 x42,0 x52,0 x42,0 x32, 0 x34,0 x12,0 x32,0 x32,0 x42,
40、0 x4C,0 x86,0 x82,0 x72,0 x52,0 x54,0 x72,0 x84, 0 x52,0 x56,0 x52,0 x42,0 x52,0 x72,0 x82,0 x52,0 x34,0 x12,0 x12,0 x32,0 x3C, 0 x00; unsigned char code musi_7= 0 xC2,0 xC2,0 x12,0 x34,0 x32,0 x32,0 x32,0 x12,0 x12,0 x52,0 x54,0 x02,0 xC2, 0 x12,0 x32,0 x32,0 x32,0 x32,0 x34,0 x52,0 x72,0 x7C,0 x02
41、,0 x72,0 x82,0 x72, 0 x82,0 x72,0 x84,0 x72,0 x41,0 x51,0 x52,0 x41,0 x31,0 x34,0 x02,0 x32,0 x32, 0 x12,0 x34,0 x32,0 x12,0 x32,0 x54,0 x42,0 x32,0 x32,0 x32,0 x32,0 x34,0 x52, 0 x72,0 x7C,0 x72,0 x72,0 x82,0 x72,0 x82,0 x72,0 x84,0 x82,0 x72,0 x42,0 x52, 0 x42,0 x34,0 x12,0 x12,0 x32,0 xC4,0 x52,0
42、 x42,0 x34,0 x12,0 x12,0 x31,0 x41, 0 x32,0 x3C,0 x0A,0 x72,0 x82,0 xA2,0 x84,0 x82,0 x72,0 x82,0 x72,0 x52,0 x72, 0 x78,0 x02,0 x72,0 x82,0 xA2,0 x84,0 x82,0 x72,0 x82,0 x72,0 x82,0 x32,0 x38, 0 x02,0 x32,0 x42,0 x52,0 x64,0 x62,0 x72,0 x82,0 x82,0 x72,0 x82,0 x82,0 xA2, 0 x82,0 x82,0 x82,0 xA2,0 x
43、82,0 x72,0 x78,0 x72,0 x32,0 x82,0 x72,0 x78,0 x72, 0 x82,0 xA3,0 x51,0 x42,0 x51,0 x41,0 x3C, 0 x00; unsigned char code musi_8= 0 x12,0 x52,0 x52,0 x52,0 x56,0 x42,0 x32,0 x42,0 x32,0 x22,0 x18,0 x82,0 x82, 0 x82,0 x82,0 x86,0 x72,0 xB2,0 x72,0 x72,0 x62,0 x58,0 x52,0 x82,0 x82,0 x72, 0 x56,0 x42,0
44、 x32,0 x42,0 x32,0 x22,0 x16,0 xB2,0 xB2,0 x32,0 x32,0 x22,0 x16, 0 x52,0 x42,0 x32,0 x22,0 xC2,0 x88, 0 x00; unsigned char code musi_9= 0 xC4,0 x12,0 x32,0 x44,0 x42,0 x52,0 x52,0 x44,0 x32,0 x32,0 x12,0 x14,0 x12, 0 x12,0 x32,0 x42,0 x54,0 x44,0 x4F,0 xC4,0 x12,0 x32,0 x44,0 x42,0 x72,0 x58, 0 x42
45、,0 x32,0 x34,0 x14,0 x12,0 x32,0 x34,0 x32,0 x12,0 x1F, 0 x00; unsigned char code musi_a= 0 x04,0 x24,0 x14,0 xC4,0 x54,0 x54,0 x48,0 x04,0 x54,0 x44,0 x34,0 x22,0 x14, 0 xB2,0 xC8,0 x04,0 x12,0 xC2,0 x16,0 x12,0 x76,0 x52,0 x46,0 x12,0 x3F,0 x04, 0 xB4,0 xD4,0 xC4,0 x14,0 x28,0 xC4,0 x14,0 x12,0 x3
46、2,0 x16,0 xC2,0 x54,0 x78, 0 x34,0 x4C,0 x42,0 x52,0 x86,0 x72,0 x76,0 x52,0 x74,0 x28,0 x42,0 x52,0 x46, 0 x12,0 x26,0 x12,0 xCF,0 x04,0 x24,0 x14,0 xC4,0 x56,0 x52,0 x48,0 x04,0 x54, 0 x44,0 x34,0 x22,0 x14,0 xB2,0 xC8,0 x04,0 x34,0 x14,0 xC4,0 x12,0 x32,0 x18, 0 x42,0 x42,0 x74,0 x58,0 x44,0 x3F,
47、 0 x00; /*/ uchar music= musi_1,musi_2,musi_3,musi_4,musi_5, musi_6,musi_7,musi_8,musi_9,musi_a ; /*顯示子程序*/ void display(void) uchar i,j=50,k=0 xdf; for(i=0;i1; k=k|0 x80; /*延時(shí) 1MS*/ void delay(uint z)/延時(shí) 1MS uint x,y; for(x=z;x0;x-) for(y=65;y0;y-)display(); /*/ void UART_T (unsigned char UART_data
48、) /定義串口發(fā)送數(shù)據(jù)變量 ES=0; /禁止穿行中斷 SBUF = UART_data; /將接收的數(shù)據(jù)發(fā)送回去 while(TI = 0); /檢查發(fā)送中斷標(biāo)志位 display(); TI = 0; /令發(fā)送中斷標(biāo)志位為 0(軟件清零) ES=1; /打開穿行中斷 /*/ void UART_S(unsigned char *str) while(1) if(*str=0) break; UART_T(*str+); display(); /*/ void song() if(*pmusic=0 x00) fm=1; TR0=0; leddisp0=0 x10; UART_S(send_data); dis_flag=0; while(1)display();if(dis_flag!=0)break; elseleddisp0=re_temp; music_temp=*pmusic; beat= music_temp /取得節(jié)拍數(shù) beat=beat*4; freq =music_temp4; /取得音符編碼 pmusic+; if(freq=0)TR0=0; else TR0=0; FreqTemp=FreqTabfreq; TL0= FreqTemp; TH0= FreqTemp8; TR0=1; de
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國乳頭瘤病毒市場分析及競爭策略研究報(bào)告
- 2025至2030年中國中西藥品行業(yè)投資前景及策略咨詢報(bào)告
- 視覺傳播設(shè)計(jì)小自考考試模擬題及答案2024
- 2025至2030年中國世紀(jì)米黃大理石市場分析及競爭策略研究報(bào)告
- 《法國號》(教案)-2024-2025學(xué)年人音版(五線譜)音樂一年級上冊
- 統(tǒng)計(jì)學(xué)新技術(shù)與未來發(fā)展試題及答案
- 第三章第二節(jié)第2課時(shí)合理利用每一寸土地教學(xué)設(shè)計(jì)2023-2024學(xué)年人教版地理八年級上冊
- 2024年統(tǒng)計(jì)師順利通過技巧試題及答案
- 全國青島版信息技術(shù)七年級下冊專題二第5課二、《分層著色》教學(xué)設(shè)計(jì)
- 2024年系統(tǒng)分析師考試策略試題及答案
- 《公共管理學(xué)》第五章-政府作用課件
- 施工操作平臺安全專項(xiàng)施工方案
- DL-869火力發(fā)電廠焊接技術(shù)規(guī)程
- 中國普通食物營養(yǎng)成分表(修正版)
- 2024年北師大版中考數(shù)學(xué)模擬考試試卷(含答案)
- 養(yǎng)老院免責(zé)完整協(xié)議書(2024版)
- ISO 55013-2024 資產(chǎn)管理-數(shù)據(jù)資產(chǎn)管理指南(中文版-雷澤佳翻譯-2024)
- 2024版年度經(jīng)濟(jì)法基礎(chǔ)完整全套課件
- 建筑裝飾裝修分部工程需復(fù)檢項(xiàng)目清單
- MOOC 心理學(xué)與生活-華東師范大學(xué) 中國大學(xué)慕課答案
- 教科版小學(xué)二年級科學(xué)下冊教案(全冊)
評論
0/150
提交評論