模擬電子琴發(fā)聲控制系統(tǒng)_第1頁(yè)
模擬電子琴發(fā)聲控制系統(tǒng)_第2頁(yè)
模擬電子琴發(fā)聲控制系統(tǒng)_第3頁(yè)
模擬電子琴發(fā)聲控制系統(tǒng)_第4頁(yè)
模擬電子琴發(fā)聲控制系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(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é)單片機(jī)應(yīng)用與仿真訓(xùn)練設(shè)計(jì)報(bào)告模擬電子琴發(fā)聲控制系統(tǒng)姓 名: 郭勝 專業(yè)班級(jí): 自動(dòng)化10-6 指導(dǎo)老師: 胡治國(guó) 所在學(xué)院: 電氣工程與自動(dòng)化學(xué)院 2013年 1 月16 日摘要本設(shè)計(jì)是基于AT89C51單片機(jī)的電子琴制作。該設(shè)計(jì)利用單片機(jī)定時(shí)器0來(lái)產(chǎn)生可變頻率的方波信號(hào)用以推動(dòng)喇叭發(fā)出不同頻率的聲音。并使用LED數(shù)碼管顯示相關(guān)信息,用于選擇電子琴的不同功能,同時(shí)采用7個(gè)發(fā)光二極管作為各音級(jí)的同步顯示信號(hào)。板子共有10個(gè)按鍵,其中7個(gè)用于音級(jí)的輸入,另外三個(gè)在不同階段分別作為控制信號(hào)和低中高音選擇信號(hào)輸入端。通過(guò)按按鍵向單片機(jī)輸入音級(jí)信息,單片機(jī)根據(jù)音級(jí)信號(hào)對(duì)定時(shí)器0產(chǎn)生的方波信號(hào)

2、進(jìn)行分頻,從而產(chǎn)生具有一定頻率的方波信號(hào),驅(qū)動(dòng)喇叭發(fā)出對(duì)應(yīng)音級(jí)的聲音。本電子琴可實(shí)現(xiàn)三種功能:彈奏,播放和游戲。其中彈奏時(shí)按鍵17用于音級(jí)的輸入,按鍵810作為低中高音的選擇信號(hào),7位發(fā)光二級(jí)管作為按鍵的指示信息;播放功能可以播放一首預(yù)先植入的歌曲,7位發(fā)光二級(jí)管作為音級(jí)同步顯示信號(hào),根據(jù)播放音樂(lè)的旋律對(duì)應(yīng)點(diǎn)亮;游戲功能時(shí),7位發(fā)光二級(jí)管作為指示信號(hào),分別顯示本次應(yīng)鍵入的音級(jí)和發(fā)聲的長(zhǎng)度,從而實(shí)現(xiàn)在單片機(jī)的引導(dǎo)下正確彈奏一首曲子。在設(shè)計(jì)過(guò)程中,先根據(jù)預(yù)想到的電子琴的功能,選擇所需要的元件,然后利用proteus畫原理圖,并仿真檢驗(yàn)其電氣性能是否滿足硬件要求,然后根據(jù)原理圖焊板子,并編寫檢驗(yàn)程序

3、檢測(cè)硬件是否有問(wèn)題,沒(méi)有問(wèn)題后再編寫電子琴程序,經(jīng)反復(fù)調(diào)試后得到自重的程序,經(jīng)檢驗(yàn)本電子琴完全更夠?qū)崿F(xiàn)預(yù)期的功能。關(guān)鍵詞:?jiǎn)纹瑱C(jī)、電子琴、音級(jí)、分頻,節(jié)拍目錄1 概述11.1 電子琴概述11.2 電子琴系統(tǒng)原理11.3 設(shè)計(jì)任務(wù)及要求12 系統(tǒng)總體方案及硬件設(shè)計(jì)22.1硬件組成22.1.1 AT89S52簡(jiǎn)介22.1.2 音樂(lè)播放部分32.1.3電子琴?gòu)椬嗖糠?2.2 具體發(fā)音原理32.3各部分電路42.3.1晶振42.3.2復(fù)位電路42.3.3按鍵53 軟件設(shè)計(jì)63.1流程圖63.2 主程序代碼74、Proteus軟件仿真75 課程設(shè)計(jì)體會(huì)7單片機(jī)課程設(shè)計(jì)1 概述1.1 電子琴概述電子琴又稱

4、作電子鍵盤,屬于電子樂(lè)器(區(qū)別于電聲樂(lè)器),發(fā)音音量可以自由調(diào)節(jié)。音域較寬,和聲豐富,甚至可以演奏出一個(gè)管弦樂(lè)隊(duì)的效果,表現(xiàn)力極其豐富。它還可模仿多種音色,甚至可以奏出常規(guī)樂(lè)器所無(wú)法發(fā)出的聲音(如合唱聲,風(fēng)雨聲,宇宙聲等)。另外,電子琴在獨(dú)奏時(shí),還可隨意配上類似打擊樂(lè)音響的節(jié)拍伴奏,適合于演奏節(jié)奏性較強(qiáng)的現(xiàn)代音樂(lè)。AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片

5、機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。本文利用AT89C51 單片機(jī)的強(qiáng)大功能,通過(guò)軟件產(chǎn)生不同頻率的聲音信號(hào),在揚(yáng)聲器中發(fā)出7個(gè)音級(jí)??梢詮椬喑霾煌那?。1.2 電子琴系統(tǒng)原理由于一首音樂(lè)是許多不同的音級(jí)組成的,而每個(gè)音級(jí)對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂(lè)了,當(dāng)然對(duì)于單片機(jī)來(lái)產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣方

6、波頻率信號(hào),因此,我們只要把一首歌曲的音階對(duì)應(yīng)頻率關(guān)系弄正確即可。不同的音級(jí)與一定的節(jié)拍組合在一起形成一定的曲調(diào),因此只要用單片機(jī)I0口,通過(guò)軟件,控制其輸出信號(hào)的頻率,就能控制器輸出音級(jí),通過(guò)不同音級(jí)和節(jié)拍的組合就可以產(chǎn)生曲調(diào)。樂(lè)曲中每一音符對(duì)應(yīng)著確定的頻率。如果單片機(jī)某個(gè)口線輸出“高低”電平的頻率和某個(gè)音符的頻率一樣,那么將此口線接上喇叭就可以發(fā)出此音。1.3 設(shè)計(jì)任務(wù)及要求本系統(tǒng)分為三個(gè)部分,一個(gè)是音樂(lè)播放,另一個(gè)是電子琴?gòu)椬?,還有游戲功能。通過(guò)上電功能選擇操作后,就能實(shí)現(xiàn)各個(gè)功能。本系統(tǒng)利用喇叭作為發(fā)聲部件,播放功能可以播放一首預(yù)先植入的歌曲,7位發(fā)光二級(jí)管作為音級(jí)同步顯示信號(hào),根據(jù)播

7、放音樂(lè)的旋律對(duì)應(yīng)點(diǎn)亮;當(dāng)進(jìn)行彈奏時(shí),按鍵17用于音級(jí)的輸入,按鍵810作為低中高音的選擇信號(hào),7位發(fā)光二級(jí)管作為按鍵的指示信息;游戲功能時(shí),7位發(fā)光二級(jí)管作為指示信號(hào),分別顯示本次應(yīng)鍵入的音級(jí)和發(fā)聲的長(zhǎng)度,從而實(shí)現(xiàn)在單片機(jī)的引導(dǎo)下正確彈奏一首曲子。2 系統(tǒng)總體方案及硬件設(shè)計(jì)2.1硬件組成2.1.1 AT89S52簡(jiǎn)介1.概述AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單

8、片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。2.主要性能與MCS-51 兼容,4K字節(jié)可編程FLASH存儲(chǔ)器,壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年,全靜態(tài)工作:0Hz-24MHz,三級(jí)程序存儲(chǔ)器鎖定1288位內(nèi)部RAM32,可編程I/O線,兩個(gè)16位定時(shí)器/計(jì)數(shù)器,5個(gè)中斷源,可編程串行通道,低功耗的閑置和掉電模式,片內(nèi)振蕩器和時(shí)鐘電路。3.管腳說(shuō)明 VCC:供電電壓。GND:接地

9、。P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須接上拉電阻。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為低八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/

10、O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于

11、外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。4振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。2.1.2 音樂(lè)播放部分樂(lè)音實(shí)際上是變動(dòng)周期的信號(hào)。本設(shè)計(jì)用AT89C51

12、的定時(shí)器控制,在P3.4引腳上輸出方波周期信號(hào),驅(qū)動(dòng)喇叭發(fā)出聲音。樂(lè)曲中,每一音符對(duì)應(yīng)著確定的頻率,我們將每一音符的時(shí)間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)?lè)曲中的所有常數(shù)放在數(shù)組里,然后訪問(wèn)數(shù)組依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。2.1.3電子琴?gòu)椬嗖糠直鞠到y(tǒng)設(shè)置了10個(gè)按鍵,其中三個(gè)按鍵為高音、中音、低音的選擇按鍵,其余為發(fā)音按鍵,按下不同的按鍵產(chǎn)生不同的音符,通過(guò)按鍵時(shí)間的長(zhǎng)短控制發(fā)音的長(zhǎng)短,這樣彈奏人員可以隨心所欲的彈奏自己所喜愛(ài)的樂(lè)曲。電子琴?gòu)椬鄬?shí)際上就是把每個(gè)按鍵所對(duì)應(yīng)的值經(jīng)過(guò)處理后發(fā)給單片機(jī),再在單片機(jī)內(nèi)把數(shù)字當(dāng)作指針指向所對(duì)應(yīng)的音符。我們用的矩陣鍵盤作為輸入端

13、,鍵盤矩陣的7個(gè)引腳分別于P0口的低七位引腳相接。2.2 具體發(fā)音原理一首音樂(lè)是許多不同的音級(jí)組成的,而每個(gè)音級(jí)對(duì)應(yīng)著不同的頻率,單片機(jī)產(chǎn)生不同頻率的信號(hào)是非常方便的,我們可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器T0來(lái)產(chǎn)生這樣方波頻率信號(hào);同時(shí)一個(gè)音級(jí)對(duì)應(yīng)一個(gè)時(shí)長(zhǎng)即音符,音符可分為:全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符。全音符的時(shí)長(zhǎng)最長(zhǎng),本設(shè)計(jì)定一拍為兩秒,則一個(gè)全音符的長(zhǎng)度是一秒,為實(shí)現(xiàn)音級(jí)的長(zhǎng)短,我們采用定時(shí)/計(jì)數(shù)器T1,作為定時(shí)器。我們首先設(shè)置定時(shí)器0的工作方式,讓其工作在方式2下,即8位自重裝。設(shè)定它的初值,使其每100產(chǎn)生一次中斷,在中斷函數(shù)中設(shè)置分頻參數(shù),通過(guò)改變?cè)搮?/p>

14、數(shù)實(shí)現(xiàn)分頻,從而產(chǎn)生不同頻頻率的信號(hào)。同時(shí)我們?cè)O(shè)置定時(shí)器1的工作方式為8位自重裝,設(shè)定他的初值使其每100產(chǎn)生一次中斷,在中斷函數(shù)中設(shè)置參數(shù)作為音符,通過(guò)改變此參數(shù)就可以實(shí)現(xiàn)一定能視察過(guò)的音符。通過(guò)圖()(見(jiàn)附錄一)可知不同頻率的音級(jí)本電子琴高音頻段音級(jí)對(duì)應(yīng)的頻率為:1047 1175 1319 1397 1568 1760 1976(HZ);本電子琴中音頻段音級(jí)對(duì)應(yīng)的頻率為:523 587 659 698 784 880 988(HZ);本電子琴低音頻段音級(jí)對(duì)應(yīng)的頻率為:262 294 330 349 392 440 494(HZ)。對(duì)高頻音級(jí),定時(shí)器0中斷函數(shù)的參數(shù)分別為:38,34,30

15、,28,26,23,20;對(duì)中頻音級(jí),定時(shí)器0中斷函數(shù)的參數(shù)分別為:19,17,15,14,13,11,10;對(duì)低頻音級(jí),定時(shí)器0中斷函數(shù)的參數(shù)分別為:9,8,7,6,5,4,3;對(duì)于全音符、二分音符、四分音符、八分音符、十六分音符、三十二分音符的時(shí)長(zhǎng),定時(shí)器1的參數(shù)分別為:1、2、4、8、16、32;2.3各部分電路2.3.1晶振其中X1為晶體振蕩器,其晶振頻率為11.0592MHZ,電容C2,C3起著穩(wěn)定震蕩頻率,快速其真的作用。2.3.2復(fù)位電路51單片機(jī)的復(fù)位引腳RST出現(xiàn)兩個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就完成了復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài),而無(wú)法執(zhí)行程

16、序。因此要求單片機(jī)復(fù)位后能夠脫離復(fù)位狀態(tài)。本電路采用復(fù)位上電,電路圖如下,剛上電時(shí),由于電容兩端電壓不能突變,則RST引腳承受5V電壓,一段時(shí)間后電容會(huì)充電升壓,RST引腳電壓逐漸降低,能夠滿足單片機(jī)復(fù)位后脫離復(fù)位狀態(tài)的要求。2.3.3按鍵本設(shè)計(jì)采用的矩陣鍵盤,輸出引腳分別和P00P04和P06、P07。183 軟件設(shè)計(jì)3.1流程圖3.2 主程序代碼見(jiàn)附錄三 源程序代碼。4、Proteus軟件仿真見(jiàn)附錄二 仿真圖。5 課程設(shè)計(jì)體會(huì)通過(guò)此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)單片機(jī)方面的知識(shí),在設(shè)計(jì)過(guò)程中雖然遇到了一些問(wèn)題,但經(jīng)過(guò)一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期

17、我在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。實(shí)踐出真知,通過(guò)親自動(dòng)手制作,使我們掌握的知識(shí)不再是紙上談兵。過(guò)而能改,善莫大焉。在課程設(shè)計(jì)過(guò)程中,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng)悟,不斷獲取。最終的檢測(cè)調(diào)試環(huán)節(jié),本身就是在踐行“過(guò)而能改,善莫大焉”的知行觀。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多問(wèn)題,最后在老師的指導(dǎo)下,終于游逆而解。在今后社會(huì)的發(fā)展和學(xué)習(xí)實(shí)踐過(guò)程中,一定要不懈努力,不能遇到問(wèn)題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問(wèn)題所在,然后一一進(jìn)行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠(yuǎn)不可能收獲成功,收獲喜悅,也永遠(yuǎn)不可能得到社會(huì)及他人對(duì)你的

18、認(rèn)可!課程設(shè)計(jì)誠(chéng)然是一門專業(yè)課,給我很多專業(yè)知識(shí)以及專業(yè)技能上的提升,同時(shí)又是一門講道課,一門辯思課,給了我許多道,給了我很多思,給了我莫大的空間。同時(shí),設(shè)計(jì)讓我感觸很深。使我對(duì)抽象的理論有了具體的認(rèn)識(shí)。通過(guò)這次課程設(shè)計(jì),我掌握了PROTUES、WAVE6000等軟件,用WAVE6000進(jìn)行程序的編譯,用PROTUES進(jìn)行軟硬件系統(tǒng)的仿真。回顧起此課程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是

19、遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,但可喜的是最終都得到了解決。參考文獻(xiàn)1 單丹,馬淑云,基于AT89C51單片機(jī)電子琴設(shè)計(jì),中國(guó)高新技術(shù)企業(yè),2010年第36期,總第171期2 盛青松,基于AT89C51單片機(jī)可彈奏電子琴設(shè)計(jì),計(jì)算機(jī)與網(wǎng)絡(luò),科技信息3微機(jī)原理與單片機(jī)借口技術(shù),河南理工大學(xué)4李林濤,陳明,梁宜勇,王笑萍,基于單片機(jī)的建議電子琴錄/放音系統(tǒng),數(shù)字技術(shù)與運(yùn)用5 朱清慧,Proteus教程,北京:清華大學(xué)出版社附錄一附錄二:附錄三:#inclu

20、desbit a1=P00;sbit a2=P01;sbit a3=P02;sbit a4=P03;sbit a5=P04;sbit a6=P05;sbit a7=P06;sbit a8=P07;sbit b1=P10;sbit b2=P11;sbit b3=P12;sbit b4=P13;sbit b5=P14;sbit b6=P15;sbit b7=P16;sbit k=P34;sfr P0M1=0x93;sfr P0M0=0x94;sfr P3M1=0xb1;sfr P3M0=0xb2;void Delay20ms();void Delay300ms();void Delay20ms()

21、;void play(void);void listen(void);void sound1(unsigned char y2);void game(void);void sound (unsigned char y1,y2);unsigned int n1=0,n2=0,n3=0,n4=0,n5=0,n6=0,n7=0;unsigned char table6=0xd0,0x89,0xcd,0xb7,0xc2,0xa2;unsigned char c=0,x=0,neng=0,fu=0,n8=0,n9=0,y=0,n10=0;unsignedcharyinji37=38,34,30,28,2

22、6,23,20,19,17,15,14,13,11,10,9,8,7,6,5,4,3;unsigned char deng8=0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf;unsigned char tong124=1,6,7,6,5,4,5,6,5,4,3,5,6,3,5,4,6,7,6,5,4,5,6,5;unsigned char tong224=4,4,4,8,4,4,8,4,4,4,4,2,2,2,2,8,4,4,8,4,4,8,4,4;void main()P0M1=0x00; P0M0=0x20; P3M1=0x00; P3M0=0x10;TMO

23、D= 0x22;/設(shè)置定時(shí)器模式TL1 = 0xA4;/設(shè)置定時(shí)初值TH1 = 0xA4;/設(shè)置定時(shí)重載值TL0 = 0xA4;/設(shè)置定時(shí)初值TH0 = 0xA4;/設(shè)置定時(shí)重載值TF0 = 0;/清除TF0標(biāo)志EA=1;ET1=1;ET0=1;TF1 = 0;/清除TF1標(biāo)志TR1 = 1;/定時(shí)器1開(kāi)始計(jì)時(shí)k=0; while(1) P2=tablen3; a7=1; a3=a4=0; if(a7=0) Delay20ms(); if(a7=0) a3=1; if(a7!=0)n2=1;elsen2=2;Delay300ms(); switch(n2) case 1:n3=(1+n3)%3

24、;n2=0;break; case 2:goto out;break; default:break; out: a6=1; TR1=0; neng=1; if(n3=0) play(); neng=2; if(n3=2) listen(); if(n3=1) game(); void inte1(void) interrupt 1 n5+; if(n5=x) n5=0; c=(+c)%2; k=c; TF0=0;void inte(void) interrupt 3if(neng=0) n4+; if(n4=2000) n4=0; c=(+c)%2; a6=c; if(neng=1) n4+;

25、 if(n4=625*tong2n8) n8+; n4=0; TR1=0; if(neng=2) n4+; if(n4=625*tong2n8) n8+; n4=0; TR1=0; TF1=0; void listen(void) x=tong10; P1=dengtong1n8; TR0=1; TR1=1; while(1) if(n8!=n9) TR0=0; x=yinji1tong1n8;n5=0;n9=n8;TR0=1; TR1=1;b1=0; P1=dengtong1n8; if(n8=25) TR0=0;P1=deng0; break; void Delay20ms()/11.05

26、92MHzunsigned char i, j, k;i = 1;j = 216;k = 35;dodowhile (-k); while (-j); while (-i); void Delay300ms()/11.0592MHzunsigned char i, j, k;i = 13;j = 156;k = 83;dodowhile (-k); while (-j); while (-i); void play(void)while(1) a1=a2=a3=a4=a5=0; a7=a8=1; if(a7&a8)=0) Delay20ms(); if(a7&a8)=0) if(a8=0) a

27、2=a3=a4=a5=1; a1=0; if(a8=0) n6=1; a5=a3=a4=a1=1; a2=0; if(a8=0) n6=2; a1=a2=a4=a5=1; a3=0; if(a8=0) n6=3; a1=a2=a3=a5=1; a4=0; if(a8=0) n6=4; a1=a2=a3=a4=1; a5=0; if(a8=0) n6=5; if(a7=0) a2=a3=a4=a5=1; a1=0; if(a7=0) n6=6; a5=a3=a4=a1=1; a2=0; if(a7=0) n6=7; a1=a2=a4=a5=1; a3=0; if(a7=0) n7=0; a1=a

28、2=a3=a5=1; a4=0; if(a7=0) n7=1; a1=a2=a3=a4=1; a5=0; if(a7=0) n7=2; switch(n6) case 1:sound(1,yinjin71);break; case 2: sound(2,yinjin72);break; case 3: sound(3,yinjin73);break; case 4: sound(4,yinjin74);break; case 5:sound(5,yinjin75);break; case 6:sound(6,yinjin76);break; case 7:sound(7,yinjin77);break; default

溫馨提示

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