




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、信息工程學(xué)院課程設(shè)計(jì)(論文) 黃河科技學(xué)院 課程設(shè)計(jì)報(bào)告書 題目: 音樂倒數(shù)計(jì)數(shù)器 課 程:?jiǎn)纹瑱C(jī)課程設(shè)計(jì) 專 業(yè):數(shù)控技術(shù) 班 級(jí):學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師: 何春霞 年 01 月1 2013 6 日 信息工程學(xué)院課程設(shè)計(jì)(論文) 摘 要 本設(shè)計(jì)是基于AT89C52單片機(jī)的音樂倒數(shù)計(jì)數(shù)器,根據(jù)單片機(jī)技術(shù)原理,通過(guò)硬件電路設(shè)計(jì)與軟件設(shè)計(jì),制作出的音樂倒數(shù)計(jì)數(shù)器能穩(wěn)定運(yùn)行,并能正常播放音樂。該設(shè)計(jì)硬件部分主要包括按鍵電路、復(fù)位電路、LCD顯示電路以及蜂鳴器組成,其中K1鍵作為第二功能鍵加入外部中斷0,用以切換時(shí)間選擇模式。計(jì)數(shù)值為零時(shí),通過(guò)定時(shí)器T1調(diào)節(jié)音頻,是蜂鳴器發(fā)出不同的音調(diào)。本設(shè)計(jì)
2、利用Keil uVision4作為編程軟件進(jìn)行源程序設(shè)計(jì)及調(diào)試,同時(shí)使用PROTEUS7.7進(jìn)行硬件電路的搭建仿真。 關(guān)鍵字: 單片機(jī) 音樂 計(jì)數(shù)器 proteus 蜂鳴器 2 信息工程學(xué)院課程設(shè)計(jì)(論文) 目 錄 1 任務(wù)提出與方案論證. 7 1.1 采用555定時(shí)器. 7 1.2 采用單片機(jī)控制. 7 2 總體設(shè)計(jì). 8 2.1 系統(tǒng)硬件設(shè)計(jì). 8 2.2 系統(tǒng)軟件設(shè)計(jì). 8 3 詳細(xì)設(shè)計(jì)及仿真. 9 3.1硬件電路詳細(xì)設(shè)計(jì) . 9 3.2軟件詳細(xì)設(shè)計(jì) . 12 3.3 系統(tǒng)仿真.14 4 總結(jié). 16 參考文獻(xiàn). 17 附錄.18 3 信息工程學(xué)院課程設(shè)計(jì)(論文) 1 任務(wù)提出與方案論證
3、 21世紀(jì)電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,而作為創(chuàng)新的倒數(shù)計(jì)數(shù)器更是在普通家庭中廣泛應(yīng)用。 1.1 采用555定時(shí)器 555定時(shí)器是一種模擬和數(shù)字功能相結(jié)合的中規(guī)模集成器件。555定時(shí)器的功能主要由兩個(gè)電壓比較器決定。兩個(gè)電壓比較器的輸出電壓控制RS觸發(fā)器和放電管的狀態(tài)。在 電源與地之間加上電壓,當(dāng)5腳懸空時(shí),則電壓比較器A1的反相輸入端的電壓為2VCC/3,A2的同相輸入端的電壓為VCC/3.若觸發(fā)輸入端TR的電壓小于VCC/3,則比較器A2的輸出為1,可使RS觸發(fā)器置1,使輸出端OUT=1.如果
4、閾值輸入端TH的電壓大于2VCC/3,同時(shí)TR端的電壓大于VCC/3,則A1的輸出為1,A2的輸出為0,可將RS觸發(fā)器置0,使輸出為0電平。 本方案由于555定時(shí)器回差太小、且不能調(diào)整、功能上有所欠缺等缺點(diǎn)不宜選擇。 1.2 采用單片機(jī)控制 單片機(jī)具有性能高、速度快、體積小、價(jià)格低、穩(wěn)定可靠、應(yīng)用廣泛、通用性強(qiáng)等突出優(yōu)點(diǎn)。它在硬件結(jié)構(gòu)、指令系統(tǒng)、I/O端口、功率消耗及可靠性等方面均有其獨(dú)特之處,其最顯著的特點(diǎn)之一就是具有非常有效的控制功能。而LED顯示器具有體積小、重量輕、工作電壓低、功耗極低、穩(wěn)定可靠、成本低、控制驅(qū)動(dòng)方便、接口簡(jiǎn)單易用、模塊化結(jié)構(gòu)緊湊等特點(diǎn),同時(shí)外接的繼電器可以完成對(duì)大電流
5、的控制,功能更加全面。 這個(gè)方案價(jià)格便宜,編程簡(jiǎn)單,專用性強(qiáng),功能可隨著單片機(jī)的選擇而調(diào)整,比較適合本設(shè)計(jì) 綜上所述,方案1.2有很大的優(yōu)勢(shì),可以利用單片機(jī)和LCD顯示器來(lái)實(shí)現(xiàn)定時(shí)倒數(shù),通過(guò)蜂鳴器來(lái)發(fā)出音樂。 4 信息工程學(xué)院課程設(shè)計(jì)(論文) 2 總體設(shè)計(jì) 2.1 系統(tǒng)硬件設(shè)計(jì) 以AT89C52單片機(jī)作為主控制器,外加按鍵電路、復(fù)位電路、LCD顯示電路和蜂鳴器構(gòu)成。 其系統(tǒng)框圖如下: 2.2 系統(tǒng)軟件設(shè)計(jì) 本設(shè)計(jì)將各個(gè)功能部分分別封裝為函數(shù),故在主函數(shù)只需進(jìn)行相關(guān)的初始化即可。在主函數(shù)的大循環(huán)中設(shè)置播放音樂的標(biāo)志位FLAG_M,在while(1)不斷檢測(cè)FLAG_M是否為真,若為真,表示定時(shí)時(shí)
6、間已到,播放預(yù)先設(shè)置的音樂-千年之戀。 其主函數(shù)框圖如下: 5 信息工程學(xué)院課程設(shè)計(jì)(論文) 3 詳細(xì)設(shè)計(jì)及仿真 在本設(shè)計(jì)中利用了單片機(jī)的兩個(gè)外部中斷,以及定時(shí)器T0/T1,使得電路在運(yùn)行的過(guò)程中更加靈敏及穩(wěn)定。軟件的設(shè)計(jì)上將各功能封裝成函數(shù),便于調(diào)用和調(diào)試。最后用proteus7.7搭建電路仿真,系統(tǒng)能正常運(yùn)行。 3.1硬件電路詳細(xì)設(shè)計(jì) 3.1.1 AT89C52單片機(jī) AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼
7、容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。 如圖1所示: 圖1 3.1.2 LCD1602液晶顯示電路設(shè)計(jì)與原理 工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符(16列2行)。1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來(lái)的2條線是 6 信息工程學(xué)院課程設(shè)計(jì)(論文) 背光電源。VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)
8、、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”。 Proteus7.7中的1602液晶只有14個(gè)引腳,少了背光電源的兩根引腳,完全兼容。 本設(shè)計(jì)中,液晶的數(shù)據(jù)口與單片機(jī)的P0口相連。 如圖2所示: 圖2 3.1.3 復(fù)位電路 當(dāng)MCS -5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。當(dāng)單片機(jī)已在運(yùn)行當(dāng)中時(shí),按下復(fù)位鍵后
9、松開,也能使RST為一段時(shí)間的高電平,從而實(shí)現(xiàn)上電或開關(guān)復(fù)位的操作。 如圖3所示: 3.1.4 按鍵電路 圖3 題目中要求通過(guò)按鍵來(lái)設(shè)置定時(shí)的時(shí)間,并且能為160間的任意時(shí)間,根據(jù)要求以K1作為第二功能選擇位,來(lái)更改時(shí)間設(shè)置的模式。不按K1時(shí),按下K2、K3、K4分別為定時(shí)5分鐘,10分鐘,20分鐘;按下K1后,初 7 信息工程學(xué)院課程設(shè)計(jì)(論文) 始為30分鐘(為方便上下調(diào)節(jié)選擇30為初始值),然后再按K2為加1分鐘,按K3為減1分鐘,按K4為設(shè)置完成。 為了系統(tǒng)能更加靈敏的工作,加按鍵均加入了中斷若有按鍵按下,系統(tǒng)能立即反應(yīng),并執(zhí)行相應(yīng)中斷服務(wù)子程序。 K1連接外部中斷0,K2,K3,K4
10、通過(guò)一個(gè)三輸入與門連接至外部中斷1,并分別連接PI.0,PI.1,PI.2口,供中斷服務(wù)子程序查詢。 如圖4所示: 3.1.5 蜂鳴器 圖4 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。 ;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”表示。 單片機(jī)驅(qū)動(dòng)他激蜂鳴器的方式有兩種:一種是PWM 輸出口直接驅(qū)動(dòng),另一種是利用I/O 定時(shí)翻轉(zhuǎn)電平產(chǎn)生驅(qū)動(dòng)波形對(duì)蜂鳴器進(jìn)行驅(qū)動(dòng)。本設(shè)計(jì)選擇利用I/O 定時(shí)翻轉(zhuǎn)電平產(chǎn)生驅(qū)動(dòng)波形對(duì)蜂鳴器進(jìn)行驅(qū)動(dòng)。 利用I/O
11、 定時(shí)翻轉(zhuǎn)電平來(lái)產(chǎn)生驅(qū)動(dòng)波形的方式必須利用定時(shí)器來(lái)做定時(shí),通過(guò)定時(shí)翻轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個(gè)波形就可以用來(lái)驅(qū)動(dòng)蜂鳴器了。比如為2500Hz 的蜂鳴器的驅(qū)動(dòng),可以知道周期為400s,這樣只需要驅(qū)動(dòng)蜂鳴器的I/O 口每200s 翻轉(zhuǎn)一次電平就可以產(chǎn)生一個(gè)頻率為2500Hz,占空比為1/2duty 的方波,再通過(guò)三極管放大就可以驅(qū)動(dòng)這個(gè)蜂鳴器了。 由于蜂鳴器的工作電流一般比較大,以致于單片機(jī)的I/O 口是無(wú)法直接驅(qū)動(dòng)的,所以要利用放大電路來(lái)驅(qū)動(dòng),一般使用三極管來(lái)放大電流就可以了。 如圖5所示: 8 信息工程學(xué)院課程設(shè)計(jì)(論文) 圖5 3.2 軟件詳細(xì)設(shè)計(jì) 在本程序中設(shè)置了兩個(gè)標(biāo)志位
12、FLAG_M,FLAG,分別作為音樂播放標(biāo)志位和時(shí)間設(shè)置模式選擇標(biāo)志位。 若FLAG=1,再由外部觸發(fā)檢測(cè)K2K4的狀態(tài), if(K2=0) TIME_M+; LCD_display(TIME_M,0); if(K3=0) TIME_M-;LCD_display(TIME_M,0); if(K4=0) FLAG=0; LCD_display(TIME_M,0); TIME_M為所定時(shí)的時(shí)間 若FLAG=0,if(K2=0)temp=5;LCD_display(5,0); if(K3=0)temp=10;LCD_display(10,0); if(K4=0)temp=20;LCD_display
13、(20,0); TIME_M=temp; 本程序設(shè)計(jì)關(guān)鍵以及難點(diǎn)在于實(shí)現(xiàn)音樂的播放,以下詳細(xì)解釋用程序?qū)崿F(xiàn)播放音樂的過(guò)程。 3.2.1 音調(diào)、節(jié)拍以及編碼的確定方法 一般說(shuō)來(lái),單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能像電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。 3.2.2音調(diào)的確定 不同音高的樂音是用C、D、E、F、G、A、B來(lái)表示,這7個(gè)字母就是音樂的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡(jiǎn)譜的1、2、3、4、5、6、7,相當(dāng)于漢字“多來(lái)米發(fā)梭拉西”的讀音
14、,這是唱曲時(shí)樂音的發(fā)音,所以叫“音調(diào)”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個(gè)等份,每一個(gè)等份叫一個(gè)“半音”。兩個(gè)音之間的距離有兩個(gè)“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,CD、DE、FG、GA、AB兩音之間隔著一個(gè)黑鍵,他們之間的距離就是全音;EF、BC 9 信息工程學(xué)院課程設(shè)計(jì)(論文) 兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上號(hào)或者b號(hào)的叫變化音。叫升記號(hào),表示把音在原來(lái)的基礎(chǔ)上升高半音,b叫降記音,表示在原來(lái)的基礎(chǔ)上降低半音。例如高音DO的頻率(1046Hz)剛好是中音DO的頻率(5
15、23Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294 Hz)的一倍。 1)要產(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腳上得到此頻率的脈沖。 2)利用AT89C51的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式1下,改變計(jì)數(shù)值TH1及TL1以產(chǎn)生不同頻率的方法。 此外結(jié)束符和休
16、止符可以分別用代碼00H和FFH來(lái)表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。 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=Fi?2?Fr N:計(jì)算值; Fi:內(nèi)部計(jì)時(shí)一次為1us,故其頻率為1MHz; 4)其計(jì)數(shù)值的求法如下: T=65536-N=65536-Fi?2?Fr 例如:設(shè)K=65536,F(xiàn)=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。
17、高音的DO(1046Hz)的計(jì)算值 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 3.2.3節(jié)拍的確定 若要構(gòu)成音樂,光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動(dòng)),而且可以調(diào)節(jié)各個(gè)音的快滿度。“節(jié)拍”,即Beat,簡(jiǎn)單說(shuō)就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若1拍實(shí)0.5s,則1/4 拍為0.125s。至于1拍多少s,
18、并沒有嚴(yán)格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點(diǎn),有些人慢一點(diǎn),只要聽的悅耳就好。音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。 一首音樂是由許多不同的音符組成的,而每個(gè)音符對(duì)應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對(duì)應(yīng)的延時(shí),構(gòu)成音樂。了解音樂的一些基礎(chǔ)知識(shí),我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂。對(duì)于單片機(jī)來(lái)說(shuō),產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機(jī)的定時(shí)/計(jì)數(shù)器來(lái)產(chǎn)生這樣的方波頻率信號(hào)。因此,需要弄清楚音樂中的音符和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。 3.2.4 編碼 do re mi 高音FA E 65178 10
19、信息工程學(xué)院課程設(shè)計(jì)(論文) fa so la si分別編碼為17,重音do編為8,重音re編為9,停頓編為0。播放長(zhǎng)度以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個(gè)十六分音符,編為4,其它的播放時(shí)間以此類推。音調(diào)作為編碼的高4位,而播放時(shí)間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個(gè)編碼。以0xff作為曲 11 信息工程學(xué)院課程設(shè)計(jì)(論文) 譜的結(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
20、的數(shù)組中。程序從數(shù)組中取出一個(gè)數(shù),然 12 信息工程學(xué)院課程設(shè)計(jì)(論文) 后分離出高4位得到音調(diào),接著找出相應(yīng)的值賦給定時(shí)器0,使之定時(shí)操作蜂鳴器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低4位,得到延時(shí)時(shí)間,接著調(diào)用軟件延時(shí)。 表4.4 簡(jiǎn)譜對(duì)應(yīng)的簡(jiǎn)譜碼、T值、節(jié)拍數(shù) 簡(jiǎn)譜碼 1 2 3 4 5 6 7 8 9 A B C D 4 5 高音SO F 65217 T值 64260644006452464580646846477764820648986496865030650586511065157 13 信息工程學(xué)院課程設(shè)計(jì)(論文) 3.3 系統(tǒng)仿真 根據(jù)前面的硬件、軟件的設(shè)計(jì),在proteus7.7
21、上進(jìn)行仿真試驗(yàn),結(jié)果顯示系統(tǒng)一切運(yùn)行正常。 系統(tǒng)硬件設(shè)計(jì)的總電路圖如下: 單片機(jī)上電復(fù)位后,顯示如下: 不按K1,直接按K2時(shí),顯示: 按下K1后,再按K2,顯示: 14 信息工程學(xué)院課程設(shè)計(jì)(論文) 按下復(fù)位按鍵后,顯示: 系統(tǒng)復(fù)位了 當(dāng)計(jì)數(shù)值為0時(shí),蜂鳴器也能放出音樂。 經(jīng)測(cè)試,本設(shè)計(jì)完全能夠正常工作,完成了各項(xiàng)要求。 4 總結(jié) 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié)。在本次設(shè)計(jì)中遇到了很多問題,特別是程序細(xì)節(jié)上的問題,但只要自己能沉下心來(lái)認(rèn)真、細(xì)心、耐心的去調(diào)試程序,最后所有的問題便一個(gè)一個(gè)均迎刃而解,這也讓我認(rèn)識(shí)到,在項(xiàng)目設(shè)計(jì)的過(guò)程中
22、一定要經(jīng)的住問題的考驗(yàn),只要我們認(rèn)真仔細(xì)的排查問題的原因,最終還是能夠解決的。 總之,這次設(shè)計(jì)從軟件編寫、調(diào)試到軟硬件聯(lián)機(jī)調(diào)試,我傾注了大量的時(shí)間和心血,當(dāng)然也收獲了很多。在此認(rèn)識(shí)到,要學(xué)好硬件或軟件,一定要踏實(shí)下來(lái)做項(xiàng)目,這樣我們的收獲才是最大的,最直接的。 15 信息工程學(xué)院課程設(shè)計(jì)(論文) 參考文獻(xiàn) 1譚浩強(qiáng).C程序設(shè)計(jì)M.北京:清華大學(xué)出版社 2008 2郭天祥.51單片機(jī)C語(yǔ)言教程M.北京:電子工業(yè)出版社 2011 3張毅剛.單片機(jī)原理及應(yīng)用M.北京:高等教育出版社 2011 4康華光.電子技術(shù)基礎(chǔ)(模擬部分)M.北京:高等教育出版社 2009 附 錄 源程序代碼: #include
23、 #define uchar unsigned char #define uint unsigned int /特殊功能位聲明 sbit K2=P10; sbit K3=P11; sbit K4=P12; sbit LRS=P13; sbit LEN=P14; sbit fm=P15; /全局變量聲明 uchar FLAG,FLAG_M; uchar TIME_M,TIME_S; uchar num; uchar time_l,time_h; /函數(shù)聲明 void Init_break(); void Init_T0(); void Init_T1(); void Init_LCD(); vo
24、id LCD_W_cmd(uchar); void LCD_W_data(uchar); void LCD_display(uchar,uchar); void FLAG_0(); void FLAG_1(); void delay(uint); void delay16(uint); void PLAY_MUSIC(); / uchar code table_name=Zheng Li; / /-簡(jiǎn)譜- 16 信息工程學(xué)院課程設(shè)計(jì)(論文) /編程規(guī)則:字節(jié)高位是簡(jiǎn)譜,低位是持續(xù)時(shí)間, /代表多少個(gè)十六分音符 /1-7代表中央C調(diào),8-E代表高八度,0代表停頓 /最后的0是結(jié)束標(biāo)志 uchar
25、 code qnzl= /千年之戀 0x12,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xA8,0x08, /前奏 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62, /竹林的燈火 到過(guò)的沙漠 0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22, /七色的國(guó)度 不斷飄逸風(fēng)中 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62, /有
26、一種神秘 灰色的旋渦 0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02, /將我卷入了迷霧中 0x63,0xA1,0xA2,0x62,0x92,0x82,0x52, /看不清的雙手 0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02, /一朵花傳來(lái)誰(shuí)經(jīng)過(guò)的溫柔 0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76, /穿越千年的傷痛 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36, /只為求一個(gè)結(jié)果 0x61,0x71,0x82,
27、0x71,0x62,0xA3,0x73,0x62,0x53, /你留下的輪廓 指引我 0x42,0x63,0x83,0x83,0x91,0x91, /黑夜中不寂寞 0x61,0x71,0x82,0x71,0x62,0x0A2,0x71,0x76, /穿越千年的哀愁 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36, /是你在盡頭等我 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53, /最美麗的感動(dòng) 會(huì)值得 0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff/結(jié)束標(biāo)志 /用一生守候 ; /-簡(jiǎn)譜音
28、調(diào)對(duì)應(yīng)的定- /適合11.0592M的晶振 uchar code T1_cuzhi= 0xff,0xff,/占位 0xFC,0x8E,/中央C調(diào)1-7 17 器初值時(shí) 信息工程學(xué)院課程設(shè)計(jì)(論文) 0xFC,0xED, 0xFD,0x43, 0xFD,0x6A, 0xFD,0xB3, 0xFD,0xF3, 0xFE,0x2D, 0xFE,0x47, /高八度1-7 0xFE,0x76, 0xFE,0xA1, 0xFE,0xC7, 0xFE,0xD9, 0xFE,0xF9, 0xFF,0x16 ; /* *主函數(shù)*/ void main() Init_break(); Init_T0(); In
29、it_T1(); Init_LCD(); LCD_display(0,0); / PLAY_MUSIC(); while(1) if(FLAG_M=1) PLAY_MUSIC(); /* *外部中斷*/ void Init_break() /外部中斷初始化 EA=1; EX0=1; EX1=1; IT0=1; IT1=1; void Extern0() interrupt 0 FLAG=1; TIME_M=30;/設(shè)置初始化為30,便于上下調(diào)節(jié) 18 信息工程學(xué)院課程設(shè)計(jì)(論文) LCD_display(TIME_M,0); void Extern1() interrupt 2 if(FLAG
30、=1) FLAG_1(); else FLAG_0(); void FLAG_0() uchar temp; if(K2=0) temp=5; LCD_display(5,0); if(K3=0) temp=10; LCD_display(10,0); if(K4=0) temp=20; LCD_display(20,0); TIME_M=temp; TR0=1; void FLAG_1() if(K2=0) TIME_M+; / LCD_SET_dis(TIME_M); LCD_display(TIME_M,0); if(K3=0) TIME_M-; / LCD_SET_dis(TIME_M
31、); LCD_display(TIME_M,0); 19 信息工程學(xué)院課程設(shè)計(jì)(論文) if(K4=0) delay(10); if(K4=0) FLAG=0; while(!K4); /松手檢測(cè) LCD_W_cmd(0x0c);/開顯示,關(guān)光標(biāo) LCD_display(TIME_M,0); TR0=1; /* *倒數(shù)定時(shí)器T0*/ void Init_T0() TH0=(65536-50000)/256; /50ms溢出 TL0=(65536-50000)%256; ET0=1; TMOD=0x11; / TR0=1; void Timer0_T0() interrupt 1 TH0=(65
32、536-50000)/256; /50ms溢出 TL0=(65536-50000)%256; num+; if(num=20) num=0; if(TIME_S=0) TIME_S=59; TIME_M-; else TIME_S-; if(TIME_M=0&;&;TIME_S=0) TR0=0; LCD_display(TIME_M,TIME_S); FLAG_M=1; 20 信息工程學(xué)院課程設(shè)計(jì)(論文) LCD_display(TIME_M,TIME_S); /* *LCD1602*/ void Init_LCD() LEN=0; LCD_W_cmd(0x38); LCD_W_cmd(0x
33、0c); /開顯示,不顯示光標(biāo) LCD_W_cmd(0x06); /寫一個(gè)字符后地址指針加1 LCD_W_cmd(0x01); /顯示清0,數(shù)據(jù)指針清0 LCD_W_cmd(0x80); /設(shè)置數(shù)據(jù)地址指針 void LCD_W_cmd(uchar cmd) /液晶寫命令 LRS=0; P0=cmd; delay(5); LEN=1; delay(5); LEN=0; void LCD_W_data(uchar dat) /液晶寫數(shù)據(jù) LRS=1; P0=dat; delay(5); LEN=1; delay(5); LEN=0; void LCD_display(uchar TIME_M,uchar TIME_S) uchar temp_m,temp_s,i; temp_m=TIME_M/10; LCD_W_data(temp_m+0x30); temp_m
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度魚塘租賃與漁業(yè)科技創(chuàng)新合同
- 實(shí)習(xí)學(xué)生勞務(wù)合同范本
- 路燈 bt 項(xiàng)目 合同范本
- 設(shè)備房施工合同范本
- 加盟皮鞋合同范本
- 房屋維護(hù)保養(yǎng)合同范本
- 裝修樓房合同范本填寫
- 基于PBL模式的高中化學(xué)大單元教學(xué)設(shè)計(jì)研究
- 錯(cuò)配修復(fù)蛋白Msh2Tt及Msh6Tt在嗜熱四膜蟲中的功能分析
- 高中生物學(xué)核心概念相關(guān)的史料挖掘及其應(yīng)用研究
- 成人重癥患者顱內(nèi)壓增高防控護(hù)理專家共識(shí)2024
- 物品消毒知識(shí)培訓(xùn)課件
- 少兒足球基礎(chǔ)知識(shí)
- 兒童家長(zhǎng)非免疫規(guī)劃疫苗猶豫量表的編制及信效度檢驗(yàn)
- 咖啡店飲品配方保密協(xié)議
- 2025年岳陽(yáng)市岳陽(yáng)樓區(qū)招考網(wǎng)格管理員高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年中國(guó)融通資產(chǎn)管理集團(tuán)限公司春季招聘(511人)高頻重點(diǎn)提升(共500題)附帶答案詳解
- AIAG手冊(cè)FMEA第四版資料
- 2025下半年江蘇鹽城廣播電視總臺(tái)招聘7人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年纖維混合絮片項(xiàng)目可行性研究報(bào)告
- 白油供貨合同范例
評(píng)論
0/150
提交評(píng)論