音樂倒數(shù)計數(shù)器下載_第1頁
音樂倒數(shù)計數(shù)器下載_第2頁
音樂倒數(shù)計數(shù)器下載_第3頁
音樂倒數(shù)計數(shù)器下載_第4頁
音樂倒數(shù)計數(shù)器下載_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息工程學(xué)院課程設(shè)計(論文) 黃河科技學(xué)院 課程設(shè)計報告書 題目: 音樂倒數(shù)計數(shù)器 課 程:單片機課程設(shè)計 專 業(yè):數(shù)控技術(shù) 班 級:學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師: 何春霞 年 01 月1 2013 6 日 信息工程學(xué)院課程設(shè)計(論文) 摘 要 本設(shè)計是基于AT89C52單片機的音樂倒數(shù)計數(shù)器,根據(jù)單片機技術(shù)原理,通過硬件電路設(shè)計與軟件設(shè)計,制作出的音樂倒數(shù)計數(shù)器能穩(wěn)定運行,并能正常播放音樂。該設(shè)計硬件部分主要包括按鍵電路、復(fù)位電路、LCD顯示電路以及蜂鳴器組成,其中K1鍵作為第二功能鍵加入外部中斷0,用以切換時間選擇模式。計數(shù)值為零時,通過定時器T1調(diào)節(jié)音頻,是蜂鳴器發(fā)出不同的音調(diào)。本設(shè)計

2、利用Keil uVision4作為編程軟件進行源程序設(shè)計及調(diào)試,同時使用PROTEUS7.7進行硬件電路的搭建仿真。 關(guān)鍵字: 單片機 音樂 計數(shù)器 proteus 蜂鳴器 2 信息工程學(xué)院課程設(shè)計(論文) 目 錄 1 任務(wù)提出與方案論證. 7 1.1 采用555定時器. 7 1.2 采用單片機控制. 7 2 總體設(shè)計. 8 2.1 系統(tǒng)硬件設(shè)計. 8 2.2 系統(tǒng)軟件設(shè)計. 8 3 詳細(xì)設(shè)計及仿真. 9 3.1硬件電路詳細(xì)設(shè)計 . 9 3.2軟件詳細(xì)設(shè)計 . 12 3.3 系統(tǒng)仿真.14 4 總結(jié). 16 參考文獻. 17 附錄.18 3 信息工程學(xué)院課程設(shè)計(論文) 1 任務(wù)提出與方案論證

3、 21世紀(jì)電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,而作為創(chuàng)新的倒數(shù)計數(shù)器更是在普通家庭中廣泛應(yīng)用。 1.1 采用555定時器 555定時器是一種模擬和數(shù)字功能相結(jié)合的中規(guī)模集成器件。555定時器的功能主要由兩個電壓比較器決定。兩個電壓比較器的輸出電壓控制RS觸發(fā)器和放電管的狀態(tài)。在 電源與地之間加上電壓,當(dāng)5腳懸空時,則電壓比較器A1的反相輸入端的電壓為2VCC/3,A2的同相輸入端的電壓為VCC/3.若觸發(fā)輸入端TR的電壓小于VCC/3,則比較器A2的輸出為1,可使RS觸發(fā)器置1,使輸出端OUT=1.如果

4、閾值輸入端TH的電壓大于2VCC/3,同時TR端的電壓大于VCC/3,則A1的輸出為1,A2的輸出為0,可將RS觸發(fā)器置0,使輸出為0電平。 本方案由于555定時器回差太小、且不能調(diào)整、功能上有所欠缺等缺點不宜選擇。 1.2 采用單片機控制 單片機具有性能高、速度快、體積小、價格低、穩(wěn)定可靠、應(yīng)用廣泛、通用性強等突出優(yōu)點。它在硬件結(jié)構(gòu)、指令系統(tǒng)、I/O端口、功率消耗及可靠性等方面均有其獨特之處,其最顯著的特點之一就是具有非常有效的控制功能。而LED顯示器具有體積小、重量輕、工作電壓低、功耗極低、穩(wěn)定可靠、成本低、控制驅(qū)動方便、接口簡單易用、模塊化結(jié)構(gòu)緊湊等特點,同時外接的繼電器可以完成對大電流

5、的控制,功能更加全面。 這個方案價格便宜,編程簡單,專用性強,功能可隨著單片機的選擇而調(diào)整,比較適合本設(shè)計 綜上所述,方案1.2有很大的優(yōu)勢,可以利用單片機和LCD顯示器來實現(xiàn)定時倒數(shù),通過蜂鳴器來發(fā)出音樂。 4 信息工程學(xué)院課程設(shè)計(論文) 2 總體設(shè)計 2.1 系統(tǒng)硬件設(shè)計 以AT89C52單片機作為主控制器,外加按鍵電路、復(fù)位電路、LCD顯示電路和蜂鳴器構(gòu)成。 其系統(tǒng)框圖如下: 2.2 系統(tǒng)軟件設(shè)計 本設(shè)計將各個功能部分分別封裝為函數(shù),故在主函數(shù)只需進行相關(guān)的初始化即可。在主函數(shù)的大循環(huán)中設(shè)置播放音樂的標(biāo)志位FLAG_M,在while(1)不斷檢測FLAG_M是否為真,若為真,表示定時時

6、間已到,播放預(yù)先設(shè)置的音樂-千年之戀。 其主函數(shù)框圖如下: 5 信息工程學(xué)院課程設(shè)計(論文) 3 詳細(xì)設(shè)計及仿真 在本設(shè)計中利用了單片機的兩個外部中斷,以及定時器T0/T1,使得電路在運行的過程中更加靈敏及穩(wěn)定。軟件的設(shè)計上將各功能封裝成函數(shù),便于調(diào)用和調(diào)試。最后用proteus7.7搭建電路仿真,系統(tǒng)能正常運行。 3.1硬件電路詳細(xì)設(shè)計 3.1.1 AT89C52單片機 AT89C52是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼

7、容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業(yè)中有著廣泛的應(yīng)用。 如圖1所示: 圖1 3.1.2 LCD1602液晶顯示電路設(shè)計與原理 工業(yè)字符型液晶,能夠同時顯示16x02即32個字符(16列2行)。1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是 6 信息工程學(xué)院課程設(shè)計(論文) 背光電源。VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號

8、、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。 Proteus7.7中的1602液晶只有14個引腳,少了背光電源的兩根引腳,完全兼容。 本設(shè)計中,液晶的數(shù)據(jù)口與單片機的P0口相連。 如圖2所示: 圖2 3.1.3 復(fù)位電路 當(dāng)MCS -5l系列單片機的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復(fù)位狀態(tài)。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。當(dāng)單片機已在運行當(dāng)中時,按下復(fù)位鍵后

9、松開,也能使RST為一段時間的高電平,從而實現(xiàn)上電或開關(guān)復(fù)位的操作。 如圖3所示: 3.1.4 按鍵電路 圖3 題目中要求通過按鍵來設(shè)置定時的時間,并且能為160間的任意時間,根據(jù)要求以K1作為第二功能選擇位,來更改時間設(shè)置的模式。不按K1時,按下K2、K3、K4分別為定時5分鐘,10分鐘,20分鐘;按下K1后,初 7 信息工程學(xué)院課程設(shè)計(論文) 始為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、通過一個三輸入與門連接至外部中斷1,并分別連接PI.0,PI.1,PI.2口,供中斷服務(wù)子程序查詢。 如圖4所示: 3.1.5 蜂鳴器 圖4 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。 ;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”表示。 單片機驅(qū)動他激蜂鳴器的方式有兩種:一種是PWM 輸出口直接驅(qū)動,另一種是利用I/O 定時翻轉(zhuǎn)電平產(chǎn)生驅(qū)動波形對蜂鳴器進行驅(qū)動。本設(shè)計選擇利用I/O 定時翻轉(zhuǎn)電平產(chǎn)生驅(qū)動波形對蜂鳴器進行驅(qū)動。 利用I/O

11、 定時翻轉(zhuǎn)電平來產(chǎn)生驅(qū)動波形的方式必須利用定時器來做定時,通過定時翻轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個波形就可以用來驅(qū)動蜂鳴器了。比如為2500Hz 的蜂鳴器的驅(qū)動,可以知道周期為400s,這樣只需要驅(qū)動蜂鳴器的I/O 口每200s 翻轉(zhuǎn)一次電平就可以產(chǎn)生一個頻率為2500Hz,占空比為1/2duty 的方波,再通過三極管放大就可以驅(qū)動這個蜂鳴器了。 由于蜂鳴器的工作電流一般比較大,以致于單片機的I/O 口是無法直接驅(qū)動的,所以要利用放大電路來驅(qū)動,一般使用三極管來放大電流就可以了。 如圖5所示: 8 信息工程學(xué)院課程設(shè)計(論文) 圖5 3.2 軟件詳細(xì)設(shè)計 在本程序中設(shè)置了兩個標(biāo)志位

12、FLAG_M,FLAG,分別作為音樂播放標(biāo)志位和時間設(shè)置模式選擇標(biāo)志位。 若FLAG=1,再由外部觸發(fā)檢測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為所定時的時間 若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è)計關(guān)鍵以及難點在于實現(xiàn)音樂的播放,以下詳細(xì)解釋用程序?qū)崿F(xiàn)播放音樂的過程。 3.2.1 音調(diào)、節(jié)拍以及編碼的確定方法 一般說來,單片機演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機奏樂只需弄清楚兩個概念即可,也就是“音調(diào)”和節(jié)拍表示一個音符唱多長的時間。 3.2.2音調(diào)的確定 不同音高的樂音是用C、D、E、F、G、A、B來表示,這7個字母就是音樂的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的1、2、3、4、5、6、7,相當(dāng)于漢字“多來米發(fā)梭拉西”的讀音

14、,這是唱曲時樂音的發(fā)音,所以叫“音調(diào)”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個等份,每一個等份叫一個“半音”。兩個音之間的距離有兩個“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,CD、DE、FG、GA、AB兩音之間隔著一個黑鍵,他們之間的距離就是全音;EF、BC 9 信息工程學(xué)院課程設(shè)計(論文) 兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上號或者b號的叫變化音。叫升記號,表示把音在原來的基礎(chǔ)上升高半音,b叫降記音,表示在原來的基礎(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,即為半周期的時間。利用定時器計時這半個周期時間,每當(dāng)計時到后就將輸出脈沖的I/O反相,然后重復(fù)計時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。 2)利用AT89C51的內(nèi)部定時器使其工作在計數(shù)器模式1下,改變計數(shù)值TH1及TL1以產(chǎn)生不同頻率的方法。 此外結(jié)束符和休

16、止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。 3)例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計數(shù)器計時956us/1us=956,在每次技術(shù)956次時將I/O反相,就可得到中音DO(523Hz)。 計數(shù)脈沖值與頻率的關(guān)系公式如下: N=Fi?2?Fr N:計算值; Fi:內(nèi)部計時一次為1us,故其頻率為1MHz; 4)其計數(shù)值的求法如下: T=65536-N=65536-Fi?2?Fr 例如:設(shè)K=65536,F(xiàn)=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。

17、高音的DO(1046Hz)的計算值 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é)拍,讓音樂具有旋律(固定的律動),而且可以調(diào)節(jié)各個音的快滿度?!肮?jié)拍”,即Beat,簡單說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若1拍實0.5s,則1/4 拍為0.125s。至于1拍多少s,

18、并沒有嚴(yán)格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點,有些人慢一點,只要聽的悅耳就好。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。 一首音樂是由許多不同的音符組成的,而每個音符對應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對應(yīng)的延時,構(gòu)成音樂。了解音樂的一些基礎(chǔ)知識,我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂。對于單片機來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機的定時/計數(shù)器來產(chǎn)生這樣的方波頻率信號。因此,需要弄清楚音樂中的音符和對應(yīng)的頻率,以及單片機定時計數(shù)的關(guān)系。 3.2.4 編碼 do re mi 高音FA E 65178 10

19、信息工程學(xué)院課程設(shè)計(論文) fa so la si分別編碼為17,重音do編為8,重音re編為9,停頓編為0。播放長度以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個十六分音符,編為4,其它的播放時間以此類推。音調(diào)作為編碼的高4位,而播放時間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個編碼。以0xff作為曲 11 信息工程學(xué)院課程設(shè)計(論文) 譜的結(jié)束標(biāo)志。 舉例1:音調(diào)do,發(fā)音長度為兩拍,即二分音符,將其編碼為0x18。 舉例2:音調(diào)re,發(fā)音長度為半拍,即八分音符,將其編碼為0x22 歌曲播放的設(shè)計。先將歌曲的簡譜進行編碼,儲存在一個數(shù)據(jù)類型為unsigned char

20、的數(shù)組中。程序從數(shù)組中取出一個數(shù),然 12 信息工程學(xué)院課程設(shè)計(論文) 后分離出高4位得到音調(diào),接著找出相應(yīng)的值賦給定時器0,使之定時操作蜂鳴器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低4位,得到延時時間,接著調(diào)用軟件延時。 表4.4 簡譜對應(yīng)的簡譜碼、T值、節(jié)拍數(shù) 簡譜碼 1 2 3 4 5 6 7 8 9 A B C D 4 5 高音SO F 65217 T值 64260644006452464580646846477764820648986496865030650586511065157 13 信息工程學(xué)院課程設(shè)計(論文) 3.3 系統(tǒng)仿真 根據(jù)前面的硬件、軟件的設(shè)計,在proteus7.7

21、上進行仿真試驗,結(jié)果顯示系統(tǒng)一切運行正常。 系統(tǒng)硬件設(shè)計的總電路圖如下: 單片機上電復(fù)位后,顯示如下: 不按K1,直接按K2時,顯示: 按下K1后,再按K2,顯示: 14 信息工程學(xué)院課程設(shè)計(論文) 按下復(fù)位按鍵后,顯示: 系統(tǒng)復(fù)位了 當(dāng)計數(shù)值為0時,蜂鳴器也能放出音樂。 經(jīng)測試,本設(shè)計完全能夠正常工作,完成了各項要求。 4 總結(jié) 課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié)。在本次設(shè)計中遇到了很多問題,特別是程序細(xì)節(jié)上的問題,但只要自己能沉下心來認(rèn)真、細(xì)心、耐心的去調(diào)試程序,最后所有的問題便一個一個均迎刃而解,這也讓我認(rèn)識到,在項目設(shè)計的過程中

22、一定要經(jīng)的住問題的考驗,只要我們認(rèn)真仔細(xì)的排查問題的原因,最終還是能夠解決的。 總之,這次設(shè)計從軟件編寫、調(diào)試到軟硬件聯(lián)機調(diào)試,我傾注了大量的時間和心血,當(dāng)然也收獲了很多。在此認(rèn)識到,要學(xué)好硬件或軟件,一定要踏實下來做項目,這樣我們的收獲才是最大的,最直接的。 15 信息工程學(xué)院課程設(shè)計(論文) 參考文獻 1譚浩強.C程序設(shè)計M.北京:清華大學(xué)出版社 2008 2郭天祥.51單片機C語言教程M.北京:電子工業(yè)出版社 2011 3張毅剛.單片機原理及應(yīng)用M.北京:高等教育出版社 2011 4康華光.電子技術(shù)基礎(chǔ)(模擬部分)M.北京:高等教育出版社 2009 附 錄 源程序代碼: #include

23、<reg52.h> #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

24、 Init_LCD(); void 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" / /-簡譜- 16 信息工程學(xué)院課程設(shè)計(論文) /編程規(guī)則:字節(jié)高位是簡譜,低位是持續(xù)時間, /代表多少個十六分音符 /1-7代表中央C調(diào),8-E代表

25、高八度,0代表停頓 /最后的0是結(jié)束標(biāo)志 uchar 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, /竹林的燈火 到過的沙漠 0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22, /七色的國度 不斷飄逸風(fēng)中 0x32,0x31,0x21,0x32,0x52,0x

26、32,0x31,0x21,0x32,0x62, /有一種神秘 灰色的旋渦 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, /一朵花傳來誰經(jīng)過的溫柔 0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76, /穿越千年的傷痛 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36

27、, /只為求一個結(jié)果 0x61,0x71,0x82,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, /最美麗的感動 會值得 0x42,0x82,0x88,0x02,0x74,0x93,0x8

28、9,0xff/結(jié)束標(biāo)志 /用一生守候 ; /-簡譜音調(diào)對應(yīng)的定- /適合11.0592M的晶振 uchar code T1_cuzhi= 0xff,0xff,/占位 0xFC,0x8E,/中央C調(diào)1-7 17 器初值時 信息工程學(xué)院課程設(shè)計(論文) 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() I

29、nit_break(); Init_T0(); Init_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è)計(論文) LCD_display(TIME_M,0); void Ext

30、ern1() interrupt 2 if(FLAG=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) TIM

31、E_M-; / LCD_SET_dis(TIME_M); LCD_display(TIME_M,0); 19 信息工程學(xué)院課程設(shè)計(論文) if(K4=0) delay(10); if(K4=0) FLAG=0; while(!K4); /松手檢測 LCD_W_cmd(0x0c);/開顯示,關(guān)光標(biāo) LCD_display(TIME_M,0); TR0=1; /* *倒數(shù)定時器T0*/ void Init_T0() TH0=(65536-50000)/256; /50ms溢出 TL0=(65536-50000)%256; ET0=1; TMOD=0x11; / TR0=1; void Timer

32、0_T0() interrupt 1 TH0=(65536-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è)計(論文) LCD_display(TIME_M,TIME_S); /* *LCD1602*/ void Init_LCD() LEN=

33、0; LCD_W_cmd(0x38); LCD_W_cmd(0x0c); /開顯示,不顯示光標(biāo) LCD_W_cmd(0x06); /寫一個字符后地址指針加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=TIME_M%10; LCD_W_data(temp_m+0x30); LCD_W_data(0x3a); /冒號 temp_s=TIME_S/10; LCD_W_data(temp_s+0x30); 21 信息工程學(xué)院課程設(shè)計(論文) temp_s=TIME_S%10; LCD_W_data(temp_s+0x30); LCD_W_cmd(0x8

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論