電子琴的課程設(shè)計(jì)_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p>  第1章系統(tǒng)總體方案說明……………………………………1</p><p>  第2章系統(tǒng)硬件電路設(shè)計(jì)框圖和工作原理…………………4</p><p>  §2.1 89C51單片機(jī)……………………………………4</p><p>  §2.2

2、 3×5矩陣式鍵盤…………………………………5</p><p>  §2.3 I/O并行口直接驅(qū)動(dòng)LED顯示…………………6</p><p>  §2.4 發(fā)音電路…………………………………………7</p><p>  第3章 軟件設(shè)計(jì)及調(diào)試……………………………………8</p><p>  §3.1

3、主程序設(shè)計(jì)流程框圖……………………………8</p><p>  §3.2按鍵處理子程序…………………………………9</p><p>  §3.3音樂播放程序流程框圖…………………………9</p><p>  §3.4翻譯按鍵碼程序…………………………………10</p><p>  §3.5延遲子程序……

4、…………………………………11</p><p>  §3.6軟件調(diào)試…………………………………………11</p><p>  第4章 總結(jié)和體會(huì)………………………………………12</p><p>  第5章 參考文獻(xiàn)……………………………………………13</p><p>  附錄…………………………………………………………14 &

5、lt;/p><p>  §附錄A 系統(tǒng)硬件電路原理圖…………………14</p><p>  §附錄B源程序清單……………………………………15</p><p>  第1章 系統(tǒng)總體方案說明</p><p>  本文的主要內(nèi)容是用AT89C51單片機(jī)為核心控制元件,設(shè)計(jì)一個(gè)電子琴。以單片機(jī)作為主控核心,與鍵盤、蜂鳴器等模塊組成核

6、心主控制模塊,在主控模塊上設(shè)有15個(gè)按鍵和蜂鳴器。本文主要對(duì)使用單片機(jī)設(shè)計(jì)簡(jiǎn)易電子琴進(jìn)行了分析,并介紹了基于單片機(jī)電子琴統(tǒng)硬件組成。利用單片機(jī)產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達(dá)的音樂。但是由于按鍵數(shù)目有限,本設(shè)計(jì)只有15個(gè)按鍵,并且還可以通過按轉(zhuǎn)換鍵(本文為MUSIC來切換歌曲與音符的轉(zhuǎn)換。還有,本文分別從原理圖,主要芯片,各模塊原理及各模塊的程序的調(diào)試來詳細(xì)闡述。</p><p>  本課

7、題要求以單片機(jī)為核心設(shè)計(jì)一個(gè)簡(jiǎn)易電子琴,具有自動(dòng)播放樂曲和彈奏樂曲的功能。一首音樂是許多不同的音階組成的,而每個(gè)音階對(duì)應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,音階對(duì)應(yīng)頻率關(guān)系圖1-1:</p><p>  C調(diào)各音符頻率與計(jì)數(shù)值T的關(guān)系</p><p><b>  圖1-1</b></p><p>  本

8、設(shè)計(jì)用89C51單片機(jī)為核心,利用8段數(shù)碼管顯示器.采用動(dòng)態(tài)顯示輸出,用戶信息輸入則采用3×5矩陣式鍵盤,聲音輸出用蜂鳴器來實(shí)現(xiàn)。采用8段數(shù)碼管顯示器進(jìn)行動(dòng)態(tài)顯示需要占用4根I/O線,3×5矩陣式鍵盤占用7根I/O線,蜂鳴器占用1根I/O線,89C51單片機(jī)有足夠的線,不用擴(kuò)展I/O口。用一片單片機(jī)即可滿足本設(shè)計(jì)的輸入輸出。系統(tǒng)框圖如圖1-2所示:</p><p><b>  圖1-

9、2</b></p><p>  通過對(duì)電子琴主體部分的電路進(jìn)行模仿設(shè)計(jì),達(dá)到電子琴固有的基本功能,設(shè)定按鈕K1、 K2和K3。按鈕K1打開并自動(dòng)播放樂曲1;按鈕K2打開并自動(dòng)播放樂曲2;按鈕K3為手動(dòng)控制音樂停止的按鍵。用12個(gè)按鍵開關(guān)來分別控制產(chǎn)生低音“1、2..7”、中音“1、2、..7”和高音“1、2、..7”中的部分樂音。根據(jù)設(shè)計(jì)要求該電子琴能實(shí)現(xiàn)音鍵的控制,根據(jù)各個(gè)音調(diào)的頻率的差異,來實(shí)現(xiàn)按

10、下不同的音鍵而發(fā)出不同的聲音。除此之外還實(shí)現(xiàn)了存儲(chǔ)并讀出兩首音樂的附加功能。通過中斷INT-1來實(shí)現(xiàn)功能的選擇,當(dāng)未按下中斷按鈕時(shí),執(zhí)行分支1,即按鍵產(chǎn)生低、中、高的‘1、2…7’音,由12個(gè)按鍵產(chǎn)生12種不同的音;當(dāng)按下中斷按鈕式,執(zhí)行分支2,即可以播放音樂,共有兩首音樂,由兩個(gè)鍵來分別控制它們,此外,還設(shè)計(jì)了一個(gè)鍵來停止音樂的播放。系統(tǒng)主要由電子琴發(fā)聲模塊、按鍵選擇控制模塊和存儲(chǔ)器模塊構(gòu)成。電子琴發(fā)聲模塊負(fù)責(zé)發(fā)出音鍵相應(yīng)的音符;選擇

11、控制模塊負(fù)責(zé)由外部控制電子琴的各項(xiàng)功能的實(shí)現(xiàn);顯示模塊負(fù)責(zé)按鍵時(shí)產(chǎn)生相應(yīng)的值,由數(shù)碼管來實(shí)現(xiàn)。在只實(shí)現(xiàn)基本功能時(shí)(由功能控制鍵控制),外部輸入的音鍵,由電子琴發(fā)聲模塊發(fā)出相應(yīng)的音符。本文的</p><p>  第2章 系統(tǒng)硬件電路設(shè)計(jì)框圖與工作原理</p><p>  2.1 89C51單片機(jī)</p><p>  本設(shè)計(jì)使用的是ATMEL公司生產(chǎn)的AT89C51高性

12、能8位單片機(jī),片內(nèi)含8Kbytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器,器件采用ATMEL公司的高密度,非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS—51指令系統(tǒng)及8051產(chǎn)品引腳兼容,片內(nèi)置8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大的AT89C52單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。如圖2-1和2-2所示:</p><p><b>  圖2-1和2-2</b&g

13、t;</p><p>  2.2 3×5矩陣式鍵盤</p><p>  我們所用的開發(fā)板一共有12個(gè)按鍵,可采用3×5矩陣式鍵盤(即3行4列鍵盤),由P2.0~P2.2控制行線,P2.4~P2.7來控制列線,P2.3置1,每個(gè)按鍵有它的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU通信。每個(gè)按鍵的狀態(tài)同樣需變成數(shù)字量“0

14、”和“1”,開關(guān)的一端(列線)通過電阻接VCC,而接地是通過程序輸出數(shù)字“0”實(shí)現(xiàn)的。鍵盤處理程序的任務(wù)是:確定有無鍵按下,判斷哪一個(gè)鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開時(shí)的抖動(dòng)。兩個(gè)并行口中,一個(gè)輸出掃描碼,使按鍵逐行動(dòng)態(tài)接地,另一個(gè)并行口輸入按鍵狀態(tài),由行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵,通過軟件查表,查出該鍵的功能,如圖2-3所示:</p><p><b>  圖2-3<

15、/b></p><p>  2.3 I/O并行口直接驅(qū)動(dòng)LED顯示</p><p>  由于要顯示每個(gè)按鍵的鍵值,就需要用到數(shù)碼管LED顯示模塊。本設(shè)計(jì)一共用了一個(gè)數(shù)碼管顯示器。利用AT89S51單片機(jī)的P0端口的P2.0-P2.4連接到一個(gè)共陰數(shù)碼管的筆段上,數(shù)碼管的公共端接地。在數(shù)碼管上循環(huán)顯示0-9數(shù)字,如圖2-4所示:</p><p><b&g

16、t;  圖2-4</b></p><p><b>  2.4 發(fā)音電路</b></p><p>  發(fā)音電路有三極管,電阻和揚(yáng)聲器組成,三極管的基極接在單片機(jī)的P1.0端口,通過定時(shí)器溢出的時(shí)間不同,P1.0端口輸出不同頻率的高低電平,P1.0輸出的脈沖頻率不同,三極管導(dǎo)通的頻率也不相同,從而揚(yáng)聲器根據(jù)不同頻率的脈沖發(fā)出的聲音也不相同,發(fā)音電路如下圖2-

17、4所示:</p><p><b>  圖2-5</b></p><p>  第3章 軟件設(shè)計(jì)及調(diào)試</p><p>  主程序設(shè)計(jì)的第一步為初始化,初始化I/O口,設(shè)置定時(shí)器定時(shí)時(shí)間,寫定時(shí)器工作方式寄存器,設(shè)置允許T0中斷。剛開始需要將存儲(chǔ)單元置1,全部置1之后更新顯示緩沖區(qū)。接著進(jìn)行顯示初始化,開定時(shí)器T0,這樣就可以開始顯示了。設(shè)置完以后

18、程序就不斷檢測(cè)按鍵情況。檢測(cè)使用軟件去抖,也就是第一次檢測(cè)到有鍵按下后,延時(shí)10ms后再次檢測(cè),如果有鍵按下則執(zhí)行相應(yīng)指令。本設(shè)計(jì)還設(shè)計(jì)了防誤操作程序,也就是對(duì)于一個(gè)鍵,按一下和一直按著的效果是一樣的,這樣可以防止用戶還沒放開此鍵時(shí),程序已進(jìn)行第二次或多次同樣的操作。</p><p>  3.1 主程序設(shè)計(jì)流程框圖</p><p>  見附錄系統(tǒng)硬件原理圖可知矩陣鍵盤的行線由P3.4、P3

19、.6、P3.7連接,列線由P1.3-P1.7連接。檢測(cè)有無按鍵按下采取的方法為先將行線清零由列線讀取數(shù)據(jù)。如果讀入數(shù)據(jù)不全為1,則表明有鍵按下;然后將行線清零,由列線讀取數(shù)據(jù),如果讀入數(shù)據(jù)不全為1,則表明有鍵按下。按下的鍵不同經(jīng)過高位和低位值組合后返回的值也不同,每個(gè) 圖3-1</p><p>  按鍵都具有唯一對(duì)應(yīng)的按鍵碼,這樣就可以很方便的分析出按下的是幾號(hào)鍵。子程序流程圖如圖3-1所示。</

20、p><p>  3.2 按鍵處理子程序</p><p>  知道用戶按下鍵的序號(hào)之后,就需要根據(jù)按鍵功能執(zhí)行相應(yīng)的程序。此子程序用分支的方法依次判斷鍵號(hào),和預(yù)置鍵號(hào)相同的則轉(zhuǎn)入相應(yīng)子程序,不同則繼續(xù)執(zhí)行下面判斷。如本程序即MUSIC開關(guān)鍵來控制樂音與音樂相互之間的轉(zhuǎn)換。</p><p>  3.3 音樂播放程序流程框圖</p><p>  知道

21、用戶按下鍵的序號(hào)之后,就需要根據(jù)按鍵功能執(zhí)行相應(yīng)的程序。此子程序用分支的方法依次判斷鍵號(hào),和預(yù)置鍵號(hào)相同的則轉(zhuǎn)入相應(yīng)子程序,不同則繼續(xù)執(zhí)行下面判斷。如本程序設(shè)置的是0號(hào)鍵來關(guān)斷音樂的播放,高電平1鍵用來自動(dòng)播放音樂功能,通過MUSIC來進(jìn)行切換,如圖3-2主程序,圖3-3 T0中斷子程序所示:</p><p>  圖3-2主程序 圖3-3 T0中斷子程</p><p>  3.

22、4翻譯按鍵碼程序</p><p>  得到的按鍵碼不能直接使用,還需要經(jīng)過翻譯才能使用,采用的方法為查詢法,從按鍵碼表格中依次取出按鍵碼和P2口采集的按鍵碼進(jìn)行比較,不同,則繼續(xù)查找,相同,則記錄在按鍵碼表格中的偏移量翻譯按鍵碼子如表圖3-1所示。</p><p>  3.5 延遲子程序</p><p>  本程序是采用動(dòng)態(tài)顯示,用定時(shí)器T0中斷來顯示,用這種方法

23、的好處在于每次刷新顯示的時(shí)間相同,每個(gè)數(shù)碼管顯示的時(shí)間也相同,這樣就可以讓數(shù)碼管清晰而且穩(wěn)定的顯示數(shù)據(jù)。用中斷的方法顯示就必須對(duì)用到的寄存器和PSW進(jìn)行入棧保護(hù),這樣才不會(huì)影響其他程序的正常運(yùn)行。晶振頻率為11.0592MHz每次中斷對(duì)一個(gè)數(shù)碼管進(jìn)行顯示,每次定時(shí)3ms,數(shù)碼管刷新一次需要24ms。</p><p><b>  3、6軟件調(diào)試</b></p><p>

24、  在將程序下到板子上調(diào)試的過程花了大概兩天的時(shí)間。出現(xiàn)的問題都很細(xì)微,而且試行了很多種辦法。</p><p>  此實(shí)驗(yàn)主要是采用Keil軟件生成.HEX文件,在 Proteus畫好原理圖之后,調(diào)用.HEX文件在單片機(jī)AT89C51上進(jìn)行軟件調(diào)試,我們通過3×5矩陣式鍵盤進(jìn)行音樂的彈奏,顯示器就顯示我們想要彈得數(shù)字,而二極管輪流閃燈,營造一種音樂交替的效果。但當(dāng)切換MUSIC口時(shí),也就是把它變?yōu)楦唠娖?/p>

25、時(shí),這時(shí)按照軟件程序的要求是會(huì)自動(dòng)播放列表中的音樂,程序的大概流程就是這樣,但在這次課程設(shè)計(jì)調(diào)試過程中,我遇到了很多的問題,剛開始程序用Keil軟件運(yùn)行之后,就很多錯(cuò)誤,我自己通過摸索發(fā)現(xiàn),程序旁邊不能有文字解釋,會(huì)顯示多余字符。還有,一些警戒性的語句,需要我們?cè)儐柪蠋煵诺靡越鉀Q的。雖然程序沒有多大的問題,也就是說,生成了.HEX文件,但調(diào)試的時(shí)候顯示器顯示的數(shù)字有點(diǎn)不對(duì),后者經(jīng)常是會(huì)出現(xiàn)一些亂碼,切換也不自動(dòng)播放音樂,我經(jīng)過再三的分析

26、程序,然后才得以解決。</p><p><b>  第4章 總結(jié)和體會(huì)</b></p><p>  在看完任務(wù)書后,我首先想到的是上網(wǎng)查找一些相關(guān)的資料,搜尋了一會(huì)兒后,結(jié)果覺得不是很滿意。因?yàn)榫W(wǎng)上的一些課程設(shè)計(jì)跟我們的設(shè)計(jì)要求不一樣,所使用的芯片也不一樣,所以只能拿來起個(gè)參考作用。圖書館這個(gè)資源不能浪費(fèi),我也從圖書館那借閱了幾本跟單片機(jī)有關(guān)的書籍,我還不至于能達(dá)到白

27、手起家的那種高度。</p><p>  本次設(shè)計(jì)要我們熟悉電子琴產(chǎn)生音樂的原理,設(shè)計(jì)一個(gè)用單片機(jī)程序產(chǎn)生音樂和自動(dòng)播放音樂的功能。我以前單片機(jī)學(xué)得不是很扎實(shí),這次要我自己設(shè)計(jì)系統(tǒng)方框圖以及各單元電路圖,然后利用Keil軟件和Proteus進(jìn)行仿真和對(duì)系統(tǒng)進(jìn)行調(diào)試。課程設(shè)計(jì)的這些要求是對(duì)我的一個(gè)極大的考驗(yàn),不過我已下定決心把它們一個(gè)一個(gè)的克服。因?yàn)槭郎蠠o難事,只怕有心人。時(shí)間過得真快,轉(zhuǎn)眼間2個(gè)星期已經(jīng)過去了?,F(xiàn)在

28、回想起來,調(diào)試的日子歷歷在目,其中有苦也有甜,各中滋味也只有自己最清楚。但是它鍛煉了我不怕困難,堅(jiān)持到底的精神。這次設(shè)計(jì)我們學(xué)到了很多東西,雖然作出來的東西很基礎(chǔ),但是加深了我們的動(dòng)手能力和對(duì)書本知識(shí)的理解和掌握。做為一名大四的學(xué)生,我覺得能多做類似的課程設(shè)計(jì)是十分有意義的。特別是在仿真設(shè)計(jì)的過程中出現(xiàn)的一些故障的檢測(cè)和排除的一些方法,使我積累了經(jīng)驗(yàn)技巧,提高了試驗(yàn)?zāi)芰退健?lt;/p><p>  過去在自己的心

29、里,老是有種畏難的心理在作祟,懷疑自己的水平和能力,認(rèn)為自己不能把這么難的東西做出來,甚至連嘗試的膽量都沒有。通過這次的實(shí)習(xí),我明白了只要拋棄心中的恐懼,不斷培養(yǎng)自己,就能做出自己都不敢相信的成績(jī)來。</p><p><b>  第5章 參考文獻(xiàn)</b></p><p>  1、《51系列單片機(jī)應(yīng)用與實(shí)踐教程》 周向紅 編 北航出版社2、《單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)》

30、何立民 編 北航出版社</p><p>  3、《單片機(jī)原理及應(yīng)用》 王迎旭 主編 機(jī)械工業(yè)出版社</p><p>  4、《51系列單片機(jī)設(shè)計(jì)實(shí)例》 樓然苗 等編 北航出版社</p><p>  5、《51單片機(jī)應(yīng)用系統(tǒng)開發(fā)典型實(shí)例》戴家 編中國電力出版社</p><p>  6、《單片微型計(jì)算機(jī)原理及接口技術(shù)》陳光東編 華中科技出版

31、社</p><p>  7、《單片機(jī)實(shí)用系統(tǒng)設(shè)計(jì)技術(shù)》 房小翠 編 國防工業(yè)出版社</p><p><b>  附錄</b></p><p>  附錄A 系統(tǒng)硬件電路原理圖</p><p><b>  電路原理圖</b></p><p><b>  附錄B源程序

32、清單</b></p><p><b>  ORG 0000H</b></p><p><b>  JMP START</b></p><p>  ORG 000BH ;定時(shí)器T0的入口地址</p><p>  CPL P1.0 ;P1.0取反</p><

33、p>  MOV TH0,R2</p><p>  MOV TL0,R3</p><p><b>  RETI</b></p><p>  org 001bh ;定時(shí)器T1的入口地址</p><p>  INC 20h ;寄存器內(nèi)容加1</p><p>  MOV TH1,#3

34、CH ;送計(jì)數(shù)初值</p><p>  MOV TL1,#0B0H</p><p><b>  RETI</b></p><p>  ORG 0030H ;外部中斷0入口地址</p><p><b>  START:</b></p><p>  MOV P2,#00H ;

35、P2送初值0</p><p>  MOV SP,#05FH</p><p>  MOV TMOD,#11H ;采用工作方式三</p><p>  SETB ET0 ;定時(shí)器T0開放</p><p>  SETB EA ;允許CPU中斷定時(shí)器</p><p>  SETB ET1 ;開放定時(shí)器T1</

36、p><p>  MOV 20h,#00H</p><p>  ;------------ 鍵盤模塊------------</p><p><b>  TEST:</b></p><p><b>  CLR P1.7</b></p><p>  JNB P3.5,BMUSIC

37、 ;P3.5口為0就轉(zhuǎn)BMUSIC</p><p>  setb p1.7 ;p1.7置1</p><p><b>  CLR P1.6</b></p><p>  jNB P3.5,B1 ;P3.5口為0就跳轉(zhuǎn)B1</p><p>  jNB P3.7,B5</p

38、><p><b>  SETB P1.6</b></p><p><b>  CLR P1.5</b></p><p>  JNB P3.6,BSTUDY</p><p>  JNB P3.5,B2</p><p>  JNB P3.7,B6</p><p&g

39、t;  SETB P1.5 ;P1.5置1</p><p><b>  CLR P1.4</b></p><p>  JNB P3.5,B3</p><p>  JNB P3.7,B7</p><p><b>  SETB P1.4</b></p><p&

40、gt;<b>  CLR P1.3</b></p><p>  JNB P3.5,B4</p><p><b>  SETB P1.3</b></p><p>  JMP TEST ;跳轉(zhuǎn)至TEST</p><p>  ;-----------------------------------

41、------</p><p>  BMUSIC:MOV DPTR,#M1</p><p><b>  JMP MUSIC</b></p><p>  B1: MOV DPTR,#Y1</p><p><b>  JMP MUSIC</b></p><p>  B5: MOV

42、DPTR,#Y5</p><p><b>  JMP MUSI</b></p><p>  B2:MOV DPTR,#Y2</p><p><b>  JMP MUSIC</b></p><p>  B6:MOV DPTR,#Y6</p><p><b>  JMP

43、 MUSIC</b></p><p>  B3:MOV DPTR,#Y3</p><p><b>  JMP MUSIC</b></p><p>  B7:MOV DPTR,#Y7</p><p><b>  JMP MUSIC</b></p><p>  B4

44、:MOV DPTR,#Y4</p><p><b>  JMP MUSIC</b></p><p><b>  BSTUDY:</b></p><p>  ;----------音樂模塊-------------</p><p><b>  MUSIC:</b></p&g

45、t;<p>  MOV 20h,#00H</p><p><b>  CLR A</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV R0,A</b></p><p><b>  INC DPTR</b></p>

46、;<p><b>  CLR A</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV R1,A</b></p><p>  CJNE A,#00H,GO</p><p>  JMP JIE_SHU</p><p>  G

47、O:CJNE A,#0FFH,GGO ;判斷A和#0FFH是否相等</p><p>  JMP ZAN_TING</p><p>  GGO:CJNE A,#0EEH,YY</p><p>  JMP TAN_ZOU</p><p>  YY: LCALL QYF ;長調(diào)用指令</p><p>

48、;<b>  MOV A,R1</b></p><p><b>  SETB TR0</b></p><p><b>  SETB TR1</b></p><p><b>  mov A,R1</b></p><p>  AM:MOV P2,R0</

49、p><p>  CJNE A,20h,AM</p><p><b>  CLR TR0</b></p><p><b>  CLR TR1</b></p><p><b>  INC DPTR</b></p><p>  LJMP MUSIC</p&g

50、t;<p><b>  JIE_SHU:</b></p><p><b>  CLR P1.0</b></p><p><b>  JMP TEST</b></p><p>  ZAN_TING:SETB TR1</p><p><b>  MOV A,

51、R1</b></p><p><b>  MOV A,05H</b></p><p><b>  CLR P1.0</b></p><p>  AN:CJNE A,20h,AN ;判斷A和20h是否相等</p><p><b>  CLR TR1</b><

52、/p><p>  MOV 20h,#00H</p><p>  INC DPTR ;DPTR加1</p><p><b>  JMP MUSIC</b></p><p>  TAN_ZOU:LCALL QYF</p><p><b>  SETB TR0</b></p&g

53、t;<p><b>  SETB TR1</b></p><p>  AAA:MOV P2,R0</p><p>  MOV A,#0AH</p><p>  CJNE A,20h,AAA</p><p>  MOV 20h,#00H</p><p>  JNB P3.5,AAA&l

54、t;/p><p>  JNB P3.7,AAA</p><p><b>  CLR TR0</b></p><p><b>  CLR TR1</b></p><p><b>  JMP TEST</b></p><p>  ;---------------

55、---附加子程序----------------------</p><p>  QYF:PUSH dph</p><p><b>  PUSH dpl</b></p><p><b>  MOV A,R0</b></p><p><b>  DEC A</b></p&g

56、t;<p>  mov b,#02h</p><p><b>  MUL AB</b></p><p>  MOV DPTR,#YFC</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV R2,A</b></p><p><

57、;b>  MOV TH0,A</b></p><p><b>  INC DPTR</b></p><p><b>  MOV A,R0</b></p><p><b>  DEC A</b></p><p>  MOV B,#02H</p>

58、<p><b>  MUL AB</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV R3,A</b></p><p><b>  MOV TH0,A</b></p><p><b>  POP dpl</b

59、></p><p><b>  POP dph</b></p><p><b>  RET</b></p><p><b>  YFC:</b></p><p>  DB 0FCH,44H, 0FCH,0ACH, 0FDH,09H, 0FDH,33H, 0FDH,

60、082H, 0FDH,0C7H, 0FEH,05H, 0FEH,022H, 0FEH,56H</p><p><b>  Y1:</b></p><p>  DB 01H,0EEH</p><p><b>  Y2:</b></p><p>  DB 02H,0EEH</p&g

61、t;<p><b>  Y3:</b></p><p>  DB 03H,0EEH</p><p><b>  Y4:</b></p><p>  DB 04H,0EEH</p><p><b>  Y5:</b></p><p>  

62、DB 05H,0EEH</p><p><b>  Y6:</b></p><p>  DB 06H,0EEH</p><p><b>  Y7: </b></p><p>  DB 07H,0EEH</p><p><b> ??;歌曲</b>&l

63、t;/p><p><b>  M1:</b></p><p>  DB 05H,0AH, 03H,05H, 05H,05H, 08H,14H, 06H,0AH, 08H,05H, 06H,05H, 05H,14H</p><p>  DB 05H,0AH, 01H,05H, 02H,05H, 03H,0AH

64、, 02H,05H, 01H,05H, 02H,14H, 00H,00H</p><p><b>  m2:</b></p><p>  db 08h,0ah,05h,05h,06h,05h,03h,05h,02h,05h,03h,05h,01h,05h,01h,05h</p><p>  db 08h,05h,0ah,05h,0ah,

65、05h,09h,05h,08h,05h,09h,05h,06h,05h,05h,05h ;sdnu</p><p><b>  END</b></p><p><b>  ;程序說明:</b></p><p>  TE0控制彈奏的音符頻率TE1控制節(jié)拍長短</p><p>  ;一個(gè)表中去音符和節(jié)

66、拍 根據(jù)音符再去另一個(gè)表中取定時(shí)器初始值</p><p><b>  ;R0 音符</b></p><p>  ;R1節(jié)拍 ;50ms 的整數(shù)R1倍;;;;;05 0A0 0F0H 14H 1.5S 1EH 2S 28H<

67、/p><p><b>  ;R2 TH0</b></p><p><b>  ;R3 TL0</b></p><p>  ;m: fuma ; jiepai</p><p>  ;YFC 取音樂中的節(jié)拍和音符</p><p>  ;QYF 根據(jù)音符取表yfc中的中斷初

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論