版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 硬件課程設(shè)計(jì)報(bào)告</b></p><p><b> ?。偅?lt;/b></p><p> 設(shè)計(jì)題目: 可存儲(chǔ)式電子琴 </p><p> 專業(yè)班級(jí): </p><p> 小組成員: </p>
2、<p> 指導(dǎo)老師: </p><p><b> 摘要:</b></p><p> 隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)越來(lái)越多地被社會(huì)的各個(gè)領(lǐng)域用來(lái)處理繁多復(fù)雜的數(shù)據(jù)。計(jì)算機(jī)中央處理器的處理速度也是隨時(shí)間突破性地提高;作為人機(jī)交互的輸入輸出設(shè)備(外圍設(shè)備)的種類也在飛速的增加。但是,處理器的高速處理和各個(gè)輸入輸出設(shè)備的低速之間構(gòu)成了一
3、個(gè)嚴(yán)重的矛盾,同時(shí),也必須協(xié)調(diào)好處理器與各外圍設(shè)備間不同的工作條件要求。</p><p> 因而,就必須要用一個(gè)電路來(lái)連接中央處理器和各個(gè)外圍設(shè)備,來(lái)解決處理器和各個(gè)外圍設(shè)備之間存在的矛盾。接口芯片就起到了這樣的作用,它是處理器和各輸入輸出設(shè)備之間的橋梁,使得中央處理器不用因?yàn)榈却俚耐鈬O(shè)備輸入而浪費(fèi)時(shí)間,也避免由于中央處理器的快速而使數(shù)據(jù)在外圍設(shè)備處發(fā)生丟失,協(xié)調(diào)中央處理器和各外圍設(shè)備的工作條件要求。&l
4、t;/p><p> 本次硬件課程設(shè)計(jì)課程,是配合上學(xué)期《微型計(jì)算機(jī)原理與接口技術(shù)》的教學(xué),也是要讓我們能夠更深入的認(rèn)識(shí)接口芯片技術(shù)以及匯編編程,做到理論和實(shí)踐相結(jié)合。</p><p> 在課程中,我們選擇的設(shè)計(jì)項(xiàng)目是“可存儲(chǔ)式電子琴”:一個(gè)簡(jiǎn)易的電子琴設(shè)備。要求我們利用相關(guān)已經(jīng)學(xué)過(guò)的和沒(méi)有學(xué)過(guò)的芯片連接成一個(gè)電子電路,并且通過(guò)自己用匯編語(yǔ)言編程,控制設(shè)計(jì)的電子電路實(shí)現(xiàn)電子琴的一些功能,比如
5、:能夠?qū)τ谳斎氚l(fā)出相應(yīng)的單聲;能夠演奏一小段已經(jīng)編好了的樂(lè)曲。</p><p><b> 目 錄</b></p><p> 1、設(shè)計(jì)任務(wù)及要求-------------------------------------------------4</p><p> 2、需求分析---------------------------------
6、----------------------4</p><p> 3、任務(wù)分工與合作-------------------------------------------------4</p><p> 4、總體方案與說(shuō)明--------------------------------------------------5</p><p> 4.1總體方案--
7、-------------------------------------------------5</p><p> 4.2電路原理圖與說(shuō)明-------------------------------------------5</p><p> 4.3功能模塊圖 ------------------------------------------------7</p>
8、<p> 4.4 實(shí)驗(yàn)原理 --------------------------------------------------8</p><p> 5、硬件框圖與說(shuō)明 ------------------------------------------------8</p><p> 5.1 8279芯片介紹-----------------------------
9、-----------------8</p><p> 5.2 8253芯片介紹----------------------------------------------12</p><p> 6、軟件功能--------------------------------------------------------14</p><p> 7.軟件主要模塊
10、流程圖-----------------------------------------------14</p><p> 7.1高中低音轉(zhuǎn)換程序流程圖--------------------------------------14</p><p> 7.2預(yù)置音樂(lè)程序流程圖------------------------------------------16</p>
11、<p> 8.源程序清單與注釋-------------------------------------------------16</p><p> 8.1高中低音轉(zhuǎn)換程序---------------------------------------------16</p><p> 8.2預(yù)置音樂(lè)程序 ----------------------------------
12、--------------25</p><p> 9.問(wèn)題分析與解決方案-----------------------------------------------32</p><p> 10.結(jié)論與體會(huì) ----------------------------------------------------33</p><p> 參考文獻(xiàn) -------
13、---------------------------------------------------35</p><p><b> 設(shè)計(jì)任務(wù)及要求</b></p><p> 本次硬件課程設(shè)計(jì)的任務(wù)和要求是利用74LS138、8279、8253、鍵盤(pán)、揚(yáng)聲器及LED七段譯碼,通過(guò)電路設(shè)計(jì)和電路連接并進(jìn)行編程實(shí)現(xiàn)一個(gè)具有可存儲(chǔ)音樂(lè)功能的電子琴。</p>
14、<p> 本次課程設(shè)計(jì)的目的是完成一個(gè)可以存儲(chǔ)音樂(lè)的電子琴。</p><p> 通過(guò)硬件設(shè)計(jì)熟悉并掌握《微型計(jì)算機(jī)原理與接口技術(shù)》課程中的關(guān)于 各個(gè)芯片的知識(shí)和一些具體應(yīng)用。</p><p> 通過(guò)此次硬件課程設(shè)計(jì)培養(yǎng)自己對(duì)于《微型計(jì)算機(jī)原理與接口技術(shù)》課程的興趣。</p><p> 通過(guò)此次硬件課程設(shè)計(jì)培養(yǎng)動(dòng)手能力和創(chuàng)新精神,提高解決實(shí)際問(wèn)題的
15、能力。</p><p> 通過(guò)此次課程設(shè)計(jì)培養(yǎng)同伴間彼此配合,彼此合作的能力。</p><p><b> 需求分析</b></p><p> “可存儲(chǔ)式電子琴”的設(shè)計(jì),首先明確功能的要求,主要是分兩方面,一方面是實(shí)現(xiàn)電子琴,要能彈能響;能一方面是可存儲(chǔ),即能存儲(chǔ)樂(lè)曲,能將存儲(chǔ)的樂(lè)曲演奏出來(lái)。</p><p> 要
16、實(shí)現(xiàn)電子琴的能彈能響,我們分析出,音樂(lè)的音階就是將一定頻率的脈沖輸入到蜂鳴器,而音樂(lè)的節(jié)拍,就是定時(shí),就是讓蜂鳴器能開(kāi)始工作能結(jié)束工作。彈奏則可以通過(guò)實(shí)驗(yàn)箱的8279鍵盤(pán)來(lái)實(shí)現(xiàn),不同的鍵盤(pán)就相當(dāng)于電子琴不同的琴鍵。通過(guò)按不同的鍵調(diào)用不同的子程序,使之發(fā)出不同的音階。</p><p> 要實(shí)現(xiàn)可存儲(chǔ),則要利用實(shí)驗(yàn)箱的寄存器,通過(guò)編程預(yù)先存儲(chǔ)一段樂(lè)曲,設(shè)定一個(gè)按鍵為播放鍵,按下之后調(diào)用寄存器中的音樂(lè)子程序,來(lái)達(dá)到演
17、奏預(yù)先存儲(chǔ)樂(lè)曲的目的。</p><p><b> 任務(wù)分工與合作</b></p><p> 一個(gè)好的團(tuán)隊(duì)是完成工作的前提,團(tuán)隊(duì)之間需要共同合作,而分工也是更好地完成工作的前提。這次設(shè)計(jì)我們小組先經(jīng)過(guò)協(xié)商完成功能分析、總體硬件規(guī)劃、程序總體設(shè)計(jì),然后小組成員的分工如下:</p><p> 共同進(jìn)行需求分析,討論電子琴要實(shí)現(xiàn)的功能,討論總體方
18、案和實(shí)現(xiàn)方法。</p><p> 魏佳同學(xué)負(fù)責(zé)相關(guān)音樂(lè)資料的搜集(包括樂(lè)理,樂(lè)譜等),8253初值的計(jì)算,相關(guān)8253和74LS138 I/O輸出的程序編寫(xiě)。預(yù)置音樂(lè)子程序的編寫(xiě)。</p><p> 丁小芳同學(xué)負(fù)責(zé)8279資料的搜集,鍵盤(pán)鍵值的確認(rèn),8279相關(guān)程序的編寫(xiě)。電路圖的繪制,硬件的連線,高中低音轉(zhuǎn)換程序的編寫(xiě)。</p><p> 共同進(jìn)行源程序的測(cè)
19、試、編譯和修改。</p><p> 共同進(jìn)行實(shí)驗(yàn)報(bào)告的編寫(xiě)和修改(包括相關(guān)流程圖的繪制)。</p><p><b> 總體方案與說(shuō)明</b></p><p><b> 4.1總體方案</b></p><p> 利用實(shí)驗(yàn)箱上的74LS138 I/O輸出、8279、8253、鍵盤(pán)、揚(yáng)聲器及LED
20、七段譯碼等芯片設(shè)備,通過(guò)正確的連線和編程,實(shí)現(xiàn)電子琴的功能。</p><p> 利用8253產(chǎn)生一定頻率和持續(xù)時(shí)間的信號(hào),不同頻率的脈沖送到音響設(shè)備從而發(fā)出不同的音節(jié)。根據(jù)鍵盤(pán)按下的鍵讓對(duì)應(yīng)的琴鍵發(fā)生變化,改變脈沖頻率和脈沖持續(xù)時(shí)間使揚(yáng)聲器發(fā)出音調(diào)。預(yù)先存放1首曲子,按下播放鍵則演奏出相應(yīng)的曲子。</p><p> 4.2電路原理圖與說(shuō)明</p><p> 4
21、.2.1電路原理圖</p><p> 圖 4.1 電路原理圖</p><p> 說(shuō)明:8253的控制口地址為203H,通道0地址為200H,CLK0連接2MHz,OUT0連接揚(yáng)聲器,8279的控制口地址為212H,數(shù)據(jù)口地址為210H,8279內(nèi)部與PC機(jī)鍵盤(pán)已連接。</p><p> 4.2.2實(shí)物連接圖</p><p> 圖4.2
22、 實(shí)物連接圖</p><p><b> 4.2.3鍵盤(pán)示意</b></p><p> 圖4.3 鍵盤(pán)示意圖</p><p><b> 按鍵說(shuō)明:</b></p><p> 1——dou音 2——ruai音 3——mi音</p><p> 4——
23、fa音 5——sao音 6——la音</p><p> 7——xi音 A——低音轉(zhuǎn)換鍵 B——中音轉(zhuǎn)換鍵</p><p> C——高音轉(zhuǎn)換鍵 D——放音鍵</p><p><b> 4.3功能模塊圖</b></p><p><b> 4.4實(shí)驗(yàn)原理&l
24、t;/b></p><p> 使用8279芯片的鍵盤(pán)控制器,通過(guò)查看寄存器,讀出分別按下不同的鍵時(shí)對(duì)應(yīng)的寄存器值(這里只給出當(dāng)按下1---7和A、B、C、D鍵的寄存器值,如表4.1)。</p><p> 表4.1 寄存器鍵值</p><p> 當(dāng)某一時(shí)刻按下一個(gè)鍵的時(shí),可以通過(guò)和各鍵的寄存器值比較來(lái)判斷按下鍵。又每個(gè)音階都有一個(gè)確定的頻率(如表4.2)&
25、lt;/p><p> 表4.2 音階頻率表 </p><p> 可以通過(guò)各音階的對(duì)應(yīng)頻率值為8253賦初值,然后輸出到音響設(shè)備,以產(chǎn)生相應(yīng)音階的發(fā)音。在發(fā)音過(guò)程中,可分別為8253的GATE0端輸入0和1來(lái)控制開(kāi)始發(fā)音和停止發(fā)音。</p><p><b> 硬件框圖與說(shuō)明</b></p><p> 5.1 8279
26、芯片介紹</p><p> 5.1.1 8279功能介紹</p><p> 8279 是可編程的鍵盤(pán)、顯示接口芯片。它既具有按鍵處理功能,又具有自動(dòng)顯示功能,在單片機(jī)系統(tǒng)中應(yīng)用很廣泛。8279內(nèi)部有鍵盤(pán) FIFO (先進(jìn)先出堆棧) /傳感器, 雙重功能的 8*8=64B RAM,鍵盤(pán)控制部分可控制 8*8=64 個(gè)按鍵或 8*8 陣列方式的傳感器。該芯片能自動(dòng)消抖并具有雙鍵鎖定保護(hù)功
27、能。顯示 RAM容量為 16*8,最大配置可達(dá) 16 位 LED數(shù)碼顯示。</p><p> 圖5.1 8279芯片管腳圖 </p><p> 5.1.2 8279內(nèi)部結(jié)構(gòu)</p><p> 5.1.3 8279管腳簡(jiǎn)介</p><p><b> ?。?)數(shù)據(jù)線 </b></p><p>
28、; DB0→DB7 是雙向三態(tài)數(shù)據(jù)總線,在接口電路中與系統(tǒng)數(shù)據(jù)總線相連,用以傳送 CPU 和8279 之間的數(shù)據(jù)和命令。 </p><p><b> ?。?)地址線 </b></p><p> CS=0 選中8279,當(dāng) A0=1 時(shí),為命令字及狀態(tài)字地址;當(dāng)</p><p> A0=0 時(shí),為片內(nèi)數(shù)據(jù)地址,故 8279芯片占用 2個(gè)端口
29、地址。 </p><p><b> ?。?)控制線 </b></p><p> CLK:8279 的時(shí)鐘輸入線。 </p><p> IRQ:中斷請(qǐng)求輸出線,高電平有效。</p><p> /RD、/WR:讀、寫(xiě)輸入控制線。 </p><p> SL0---SL3:掃描輸出線,用來(lái)作為掃描
30、鍵盤(pán)和顯示的代碼輸出或直接輸出線。 </p><p> RL0---RL7:回復(fù)輸入線,它們是鍵盤(pán)或傳感器矩陣的信號(hào)輸入線。 </p><p> SHIFT:來(lái)自外部鍵盤(pán)或傳感器矩陣的輸入信號(hào),它是 8279 鍵盤(pán)數(shù)據(jù)的次高位即 D6 位的狀態(tài),該位狀態(tài)控制鍵盤(pán)上/下檔功能。在傳感器方式和選通方式中,該引腳無(wú)用。 </p><p> CNTL/S:控制/選通輸
31、入線,高電平有效。鍵盤(pán)方式時(shí),鍵盤(pán)數(shù)據(jù)最高位(D7)的信號(hào)輸入到該引腳,以擴(kuò)充鍵功能;選通方式時(shí),當(dāng)該引腳信號(hào)上升沿到時(shí),把 RL0---RL7 的數(shù)據(jù)存入 FIFO RAM 中。 </p><p> OUTA0---OUTA3:通常作為顯示信號(hào)的高 4 位輸出線。 </p><p> OUTB0---OUTB3:通常作為顯示信號(hào)的低 4 位輸出線。 </p><p
32、> /BD:顯示熄滅輸出線,低電平有效。當(dāng)/BD=0 時(shí)將顯示全熄滅。 </p><p> 5.1.4 8279的工作方式 </p><p> 8279 有三種工作方式:鍵盤(pán)方式、顯示方式和傳感器方式。 </p><p> ?。?)鍵盤(pán)工作方式 </p><p> 8279 在鍵盤(pán)工作方式時(shí),可設(shè)置為雙鍵互鎖方式和 N 鍵循回
33、方式。 </p><p> 雙鍵互鎖方式:若有兩個(gè)或多個(gè)鍵同時(shí)按下時(shí),不管按鍵先后順序如何,只能識(shí)別最后一個(gè)被釋放的鍵,并把該鍵值送入 FIFO RAM中。 </p><p> N 鍵循回方式: 一次按下任意個(gè)鍵均可被識(shí)別, 按鍵值按掃描次序被送入 FIFO RAM 中。 </p><p><b> (2)顯示方式 </b></
34、p><p> 8279 的顯示方式又可分為左端入口和右端入口方式。 顯示數(shù)據(jù)只要寫(xiě)入顯示 RAM,則可由顯示器顯示出來(lái),因此顯示數(shù)據(jù)寫(xiě)入顯示 RAM的順序,決定了顯示的次序。 </p><p> 左端入口方式即顯示位置從顯示器最左端 1 位(最高位)開(kāi)始,以后顯示的字符逐個(gè)向右順序排列;右端入口方式即顯示位置從顯示器最右端 1 位(最低位)開(kāi)始,已顯示的字符逐個(gè)向左移位。但無(wú)論左右入口,后
35、輸入的總是顯示在最右邊。 </p><p><b> (3)傳感器方式 </b></p><p> 傳感器方式是把傳感器的開(kāi)關(guān)狀態(tài)送入傳感器 RAM 中。當(dāng) CPU 對(duì)傳感器陣列掃描時(shí), 一旦發(fā)現(xiàn)傳感器狀態(tài)發(fā)生變化就發(fā)出中斷請(qǐng)求 (IRQ 置1) , 中斷響應(yīng)后轉(zhuǎn)入中斷處理程序。</p><p> 5.1.5 8279命令功能表<
36、;/p><p> 表5.1 8279命令功能表</p><p> 5.2 8253芯片介紹</p><p> 5.2.1 芯片管腳</p><p> 圖5.3 8253的芯片管腳 </p><p> 8253芯片有24條引腳,封裝在雙列直插式陶瓷管殼內(nèi)。 </p><p> 5.
37、2.2 數(shù)據(jù)總線緩沖器 </p><p> 數(shù)據(jù)總線緩沖器與系統(tǒng)總線連接,8位雙向,與CPU交換信息的通道。這是8253與CPU之間的數(shù)據(jù)接口,它由8位雙向三態(tài)緩沖存儲(chǔ)器構(gòu)成,是CPU與8253之間交換信息的必經(jīng)之路。 </p><p> 5.2.3 讀/寫(xiě)控制 </p><p> 讀/寫(xiě)控制分別連接系統(tǒng)的IOR#和IOW#, 由CPU控制著訪問(wèn)8253的
38、內(nèi)部通道。接收CPU送入的讀/寫(xiě)控制信號(hào), 并完成對(duì)芯片內(nèi)部各功能部件的控制功能, 因此, 它實(shí)際上是8253芯片內(nèi)部的控制器。A1A0:端口選擇信號(hào),由CPU輸入。8253內(nèi)部有3個(gè)獨(dú)立的通道和一個(gè)控制字寄存器, 它們構(gòu)成8253芯片的4個(gè)端口,CPU可對(duì)3個(gè)通道進(jìn)行讀/寫(xiě)操作3對(duì)控制字寄存器進(jìn)行寫(xiě)操作。 這4個(gè)端口地址由最低2位地址碼A1A0來(lái)選擇。如表9.3.1所示。 </p><p> 5.2.4 通
39、道選擇 </p><p> (1) CS#——片選信號(hào),由CPU輸入,低電平有效,通常由端口地址的高位地址譯碼形成。 </p><p> (2) RD#、WR#——讀/寫(xiě)控制命令,由CPU輸入, 低電平有效。RD#效時(shí),CPU讀取由A1A0所選定的通道內(nèi)計(jì)數(shù)器的內(nèi)容。WR#有效時(shí),CPU將計(jì)數(shù)值寫(xiě)入各個(gè)通道的計(jì)數(shù)器中, 或者是將方式控制字寫(xiě)入控制字寄存器中。CPU對(duì)8253的讀/寫(xiě)操作
40、如表9.3.2所示。 </p><p> 5.2.5 計(jì)數(shù)通道0~2 </p><p> 每個(gè)計(jì)數(shù)通道內(nèi)含1個(gè)16位的初值寄存器、減1計(jì)數(shù)器和1個(gè)16位的(輸出)鎖存器。8253內(nèi)部包含3個(gè)功能完全相同的通道,每個(gè)通道內(nèi)部設(shè)有一個(gè)16位計(jì)數(shù)器,可進(jìn)行二進(jìn)制或十進(jìn)制(BCD碼)計(jì)數(shù)。采用二進(jìn)制計(jì)數(shù)時(shí), 寫(xiě)入的初值范圍為0000H~FFFFH,最大計(jì)數(shù)值是0000H,代表65536。 采
41、用BCD碼計(jì)數(shù)時(shí), 寫(xiě)入的初值范圍為0000~9999,最大計(jì)數(shù)值是0000,代表10000。與此計(jì)數(shù)器相對(duì)應(yīng), 每個(gè)通道內(nèi)設(shè)有一個(gè)16位計(jì)數(shù)值鎖存器。必要時(shí)可用來(lái)鎖存計(jì)數(shù)值。</p><p> 5.2.6 8253的方式控制字</p><p> 8253有一個(gè)8位的控制字寄存器,其格式如下:若計(jì)數(shù)器2,11讀寫(xiě),工作方式3bcd數(shù)</p><p><b
42、> 其中:</b></p><p> D0:數(shù)制選擇控制。為1時(shí),表明采用BCD碼進(jìn)行定時(shí)/計(jì)數(shù);否則,采用二進(jìn)制進(jìn)行定時(shí)/計(jì)數(shù)。</p><p> D3-D1:工作方式選擇控制。000,0;001,1;X10,2;X11,3;100,4;101,5;</p><p> D5 D4:讀寫(xiě)格式。00,計(jì)數(shù)鎖存命令;01,讀/寫(xiě)高8位命令;10
43、,讀/寫(xiě)低8位命令;11,先讀/寫(xiě)低8位,再讀寫(xiě)高8位命令。</p><p> D7 D6:通道選擇控制。00 0通道;01,1通道;10,2通道;11,非法</p><p><b> 軟件功能</b></p><p><b> (1)存儲(chǔ)預(yù)置音樂(lè)</b></p><p><b>
44、 ?。?)播放預(yù)置音樂(lè)</b></p><p><b> (3)鍵盤(pán)控制發(fā)聲</b></p><p> ?。?)高、中、低音轉(zhuǎn)換</p><p><b> 軟件主要模塊流程圖</b></p><p> 7.1高中低音轉(zhuǎn)換程序流程圖</p><p><b
45、> N</b></p><p><b> Y</b></p><p><b> Y</b></p><p><b> Y</b></p><p><b> N</b></p><p><b>
46、 Y</b></p><p><b> N</b></p><p><b> Y</b></p><p> N Y</p><p> N Y</p><p><b> N</b></p>
47、<p> N Y</p><p><b> Y</b></p><p> N Y</p><p><b> N </b></p><p> N Y </p><p> 7.2.預(yù)置
48、音樂(lè)程序流程圖</p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> 源程序清單與注釋&
49、lt;/b></p><p> 8.1高中低音轉(zhuǎn)換程序</p><p> Z8279 EQU 20AH</p><p> D8279 EQU 208H</p><p> LEDMOD EQU 00H ;左邊輸入,八位顯示外部譯碼八位顯示</p><p> L
50、EDFEQ EQU 38H ;掃描頻率</p><p> ASSUME CS:CODE, DS:CODE</p><p> CODE SEGMENT</p><p> START:MOV DX,Z8279 ;8279初始化</p><p> MOV AL, 00H</p><p
51、> OUT DX, AL</p><p> MOV AL, 38H</p><p> OUT DX,AL </p><p> MOV DX, 213H ;8253初始化</p><p> MOV AL, 00110111B</p><p> OUT DX, AL</
52、p><p><b> PUSH CS</b></p><p><b> POP DS</b></p><p> PD: MOV DX, 200H</p><p> MOV AL, 00H</p><p> OUT DX, AL</p>&
53、lt;p> MOV AL, 00H</p><p> MOV DX, Z8279</p><p> MOV AL, 0C2H</p><p> OUT DX, AL ;置空FIFO寄存器</p><p> WAIIT: </p><p>&l
54、t;b> NOP</b></p><p> IN AL, DX</p><p> MOV BL, AL</p><p> AND AL, 80H</p><p> CMP AL, 80H</p><p> JE WAIIT ;FI
55、FO正在清除期間則跳轉(zhuǎn)等待</p><p> MOV AL, BL</p><p> AND AL, 0FH</p><p> CMP AL, 00H</p><p> JE WAIIT ;無(wú)鍵按下則等待</p><p> NOP
56、 ;查表,將鍵碼放入AL中</p><p> LEA BX, LED</p><p><b> XLAT</b></p><p> MOV DX, D8279 ;將AL中內(nèi)容寫(xiě)到數(shù)碼管上</p><p> OUT DX, AL</p><p&
57、gt; MOV AL, 00H</p><p> MOV DX, D8279 ;判斷是哪個(gè)鍵</p><p> IN AL, DX ;判斷是在哪一個(gè)音區(qū)</p><p> CMP AL, 28H</p><p> JE D;中音區(qū)跳低音 </p>
58、;<p> CMP AL, 2AH </p><p> JE GH ;中音區(qū)跳高音</p><p> M: CMP AL, 02H</p><p><b> JE B1</b></p><p&
59、gt; CMP AL, 0AH</p><p><b> JE B2</b></p><p> CMP AL, 22H</p><p><b> JE B3</b></p><p> CMP AL, 01H</p><p><b>
60、 JE B4</b></p><p> CMP AL,09H</p><p><b> JE B5</b></p><p> CMP AL, 21H</p><p><b> JE B6</b></p><p> CMP
61、AL, 00H ;中音區(qū)</p><p><b> JE B7</b></p><p> B1: JMP S1</p><p> B2: JMP S2</p><p> B3: JMP S3</p><p> B4: JMP S4<
62、;/p><p> B5: JMP S5</p><p> B6: JMP S6</p><p> B7: JMP S7 </p><p> GH: JMP G</p><p> D: MOV DX, 200H</p><p> MOV AL, 00H</p>
63、<p> OUT DX, AL</p><p> MOV AL, 00H</p><p> MOV DX, Z8279</p><p> MOV AL, 0C2H</p><p> OUT DX, AL ;置空FIFO寄存器</p><p><
64、;b> H: NOP</b></p><p> IN AL, DX</p><p> MOV BL, AL</p><p> AND AL, 80H</p><p> CMP AL, 80H</p><p> JE H ;FIFO正在清
65、除期間則跳轉(zhuǎn)等待</p><p> MOV AL, BL</p><p> AND AL, 0FH</p><p> CMP AL, 00H</p><p> JE H ;無(wú)鍵按下則等待</p><p> NOP ;
66、查表,將鍵碼放入AL中</p><p> LEA BX, LED</p><p><b> XLAT</b></p><p> MOV DX, D8279 ;將AL中內(nèi)容寫(xiě)到數(shù)碼管上</p><p> OUT DX, AL</p><p> MOV
67、 DX, 200H</p><p> MOV AL, 01H</p><p> OUT DX, AL</p><p> MOV AL, 00H</p><p> MOV DX, D8279 ;判斷是哪個(gè)鍵</p><p> IN AL, DX ;判
68、斷是在哪一個(gè)音區(qū)</p><p> CMP AL, 29H</p><p> JE MM ;跳轉(zhuǎn)到中音區(qū)</p><p> CMP AL,2AH </p><p> JE GE ;跳轉(zhuǎn)到高音區(qū)</p>
69、;<p> CMP AL, 02H</p><p><b> JE A1</b></p><p> CMP AL, 0AH</p><p><b> JE A2</b></p><p> CMP AL, 22H</p><p>
70、<b> JE A3</b></p><p> CMP AL, 01H</p><p><b> JE A4</b></p><p> CMP AL, 09H</p><p><b> JE A5</b></p><p&g
71、t; CMP AL, 21H</p><p><b> JE A6</b></p><p> CMP AL, 00H</p><p> JE A7 ;低音區(qū)</p><p> A1: JMP D1</p><p> A2:
72、JMP D2</p><p> A3: JMP D3</p><p> A4: JMP D4</p><p> A5: JMP D5</p><p> A6: JMP D6</p><p> A7: JMP D7 </p><p> MM: JMP
73、PD ;跳轉(zhuǎn)到中音區(qū)</p><p> GE: JMP G ;跳轉(zhuǎn)到高音區(qū) </p><p> S1: MOV DX, 210H</p><p> MOV AL, 17H</p><p> OUT DX, AL</p>&
74、lt;p> MOV AL, 38H</p><p> OUT DX ,AL </p><p> CALL DELAY</p><p><b> JMP PD</b></p><p> S2: MOV DX, 210H</p><p> MOV AL, 01H
75、</p><p> OUT DX, AL</p><p> MOV AL, 34H</p><p> OUT DX, AL</p><p> CALL DELAY </p><p><b> JMP PD</b></p><p> S3: MO
76、V DX, 210H</p><p> MOV AL, 30H</p><p> OUT DX, AL</p><p> MOV AL, 30H</p><p> OUT DX, AL</p><p> CALL DELAY</p><p><b> JMP
77、 PD</b></p><p> S4: MOV DX, 210H</p><p> MOV AL, 65H</p><p> OUT DX, AL</p><p> MOV AL, 28H</p><p> OUT DX, AL</p><p>
78、 CALL DELAY </p><p><b> JMP PD</b></p><p> S5: MOV DX, 210H</p><p> MOV AL, 51H</p><p> OUT DX, AL</p><p> MOV AL, 25H</p>
79、;<p> OUT DX, AL</p><p> CALL DELAY </p><p><b> JMP PD</b></p><p> S6: MOV DX, 210H</p><p> MOV AL, 73H</p><p> OUT DX,
80、 AL</p><p> MOV AL, 22H</p><p> OUT DX, AL</p><p> CALL DELAY </p><p><b> JMP PD </b></p><p> S7: MOV DX, 210H</p><p&g
81、t; MOV AL, 24H</p><p> OUT DX, AL</p><p> MOV AL, 20H</p><p> OUT DX, AL</p><p> CALL DELAY </p><p> JMP PD </p><p> D1: MO
82、V DX, 210H</p><p> MOV AL, 34H</p><p> OUT DX, AL</p><p> MOV AL, 76H</p><p> OUT DX, AL</p><p> CALL DELAY </p><p> JMP D
83、 </p><p> D2: MOV DX, 210H</p><p> MOV AL, 02H</p><p> OUT DX, AL</p><p> MOV AL, 68H</p><p> OUT DX, AL</p><p> CALL DE
84、LAY </p><p> JMP D </p><p> D3: MOV DX, 210H</p><p> MOV AL, 60H</p><p> OUT DX, AL</p><p> MOV AL, 60H</p><p> OUT DX
85、, AL</p><p> CALL DELAY </p><p> JMP D </p><p> D4: MOV DX, 210H</p><p> MOV AL, 30H</p><p> OUT DX, AL</p><p> MOV AL,
86、57H</p><p> OUT DX, AL</p><p> CALL DELAY </p><p> JMP D </p><p> D5: MOV DX, 210H</p><p> MOV AL, 02H</p><p> OUT DX,
87、AL</p><p> MOV AL, 51H</p><p> OUT DX, AL</p><p> CALL DELAY </p><p><b> JMP D </b></p><p> D6: MOV DX, 210H</p><p>
88、 MOV AL, 46H</p><p> OUT DX, AL</p><p> MOV AL, 45H</p><p> OUT DX, AL</p><p> CALL DELAY </p><p> JMP D </p><p> D7: M
89、OV DX, 210H</p><p> MOV AL, 48H</p><p> OUT DX, AL</p><p> MOV AL, 40H</p><p> OUT DX, AL</p><p> CALL DELAY </p><p> JMP D
90、 </p><p> G: MOV DX, 200H</p><p> MOV AL, 00H</p><p> OUT DX, AL</p><p> MOV DX, Z8279</p><p> MOV AL, 0C2H</p><p> OU
91、T DX, AL ;置空FIFO寄存器</p><p><b> Q: NOP</b></p><p> IN AL, DX</p><p> MOV BL, AL</p><p> AND AL, 80H</p><p> CMP
92、 AL, 80H</p><p> JE Q ;FIFO正在清除期間則跳轉(zhuǎn)等待</p><p> MOV AL, BL</p><p> AND AL, 0FH</p><p> CMP AL, 00H</p><p> JE Q
93、 ;無(wú)鍵按下則等待</p><p> NOP ;查表,將鍵碼放入AL中</p><p> LEA BX, LED</p><p><b> XLAT</b></p><p> MOV DX, D8279 ;將AL中內(nèi)容寫(xiě)到
94、數(shù)碼管上</p><p> OUT DX, AL</p><p> MOV AL, 00H</p><p> MOV DX, D8279 ;判斷是哪個(gè)鍵</p><p> IN AL, DX </p><p> CMP AL, 28H</p>
95、<p> JE DE ;跳轉(zhuǎn)到低音區(qū)</p><p> CMP AL, 29H</p><p> JE ME </p><p> CMP AL, 02H</p><p><b> JE C1</b></p>
96、<p> CMP AL, 0AH</p><p><b> JE C2</b></p><p> CMP AL, 22H</p><p><b> JE C3</b></p><p> CMP AL, 01H</p><p>&
97、lt;b> JE C4</b></p><p> CMP AL,09H</p><p><b> JE C5</b></p><p> CMP AL, 21H</p><p><b> JE C6</b></p><p>
98、 CMP AL, 00H</p><p> JE C7 </p><p> C1: JMP G1</p><p> C2: JMP G2</p><p> C3: JMP G3</p><p> C4: JMP G4</p><p> C5: JMP
99、 G5</p><p> C6: JMP G6</p><p> C7: JMP G7 ;高音區(qū)</p><p> DE: JMP D </p><p> ME: JMP PD ;跳轉(zhuǎn)到中音區(qū) </p><p
100、> LED:DB 07H,66H,06H,3FH,00H,00H,00H,00H,7FH,6DH,5BH,71H,00H,00H,00H,00H </p><p> DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H </p><p> DB
101、6FH,7DH,4FH,79H,00H,00H,00H,00H,77H,7CH,39H,5EH,00H,00H,00H,00H </p><p> DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H </p><p> G1: MOV DX, 210H</p>&l
102、t;p> MOV AL, 09H</p><p> OUT DX, AL</p><p> MOV AL, 19H</p><p> OUT DX, AL</p><p> CALL DELAY </p><p><b> JMP G</b></p&g
103、t;<p> G2: MOV DX, 210H</p><p> MOV AL, 01H</p><p> OUT DX, AL</p><p> MOV AL, 17H</p><p> OUT DX, AL</p><p> CALL DELAY </p>
104、<p><b> JMP G</b></p><p> G3: MOV DX, 210H</p><p> MOV AL, 15H</p><p> OUT DX, AL</p><p> MOV AL, 15H</p><p> OUT DX,
105、AL</p><p> CALL DELAY </p><p> JMP G </p><p> G4: MOV DX, 210H</p><p> MOV AL, 33H</p><p> OUT DX, AL</p><p> MOV AL, 1
106、4H </p><p> OUT DX, AL</p><p> CALL DELAY </p><p> JMP G </p><p> G5: MOV DX, 210H</p><p> MOV AL, 76H</p><p> OUT DX,
107、AL</p><p> MOV AL, 12H</p><p> OUT DX, AL</p><p> CALL DELAY </p><p> JMP G </p><p> G6: MOV DX, 210H</p><p> MOV AL, 3
108、7H</p><p> OUT DX, AL</p><p> MOV AL, 11H</p><p> OUT DX, AL</p><p> CALL DELAY </p><p> JMP G </p><p> G7: MOV DX, 210
109、H</p><p> MOV AL, 12H</p><p> OUT DX, AL</p><p> MOV AL, 10H</p><p> OUT DX, AL</p><p> CALL DELAY</p><p> JMP G </p&
110、gt;<p> GOON PROC NEAR</p><p> MOV DX, 200H</p><p> MOV AL, 00H</p><p> OUT DX, AL</p><p> GOON ENDP</p><p> DELAY PROC NEAR</p&
111、gt;<p> MOV DX, 200H</p><p> MOV AL, 01H</p><p> OUT DX, AL</p><p><b> PUSH CX</b></p><p> MOV CX, 60000D</p><p>
112、<b> LOOP $</b></p><p> MOV DX, 200H</p><p> MOV AL, 00H</p><p> OUT DX, AL</p><p><b> POP CX</b></p><p><b>
113、 RET</b></p><p> DELAY ENDP</p><p> CODE ENDS </p><p> END START</p><p><b> 8.2預(yù)置音樂(lè)程序</b></p><p> Z8279 EQU 20AH</p>
114、;<p> D8279 EQU 208H</p><p> LEDMOD EQU 00H ;左邊輸入,八位顯示外部譯碼八位顯示</p><p> LEDFEQ EQU 38H ;掃描頻率</p><p> CODE SEGMENT</p><p&
115、gt; ASSUME CS: CODE</p><p> START:MOV DX, Z8279 ;8279初始化</p><p> MOV AL, 00H</p><p> OUT DX, AL</p><p> MOV AL, 38H</p><p> OUT DX
116、, AL</p><p> MOV DX, 213H ;8253初始化</p><p> MOV AL, 00110111B</p><p> OUT DX, AL</p><p> PD: MOV DX, 200H</p><p> MOV AL, 00H</
117、p><p> OUT DX, AL</p><p> MOV AL, 00H</p><p> MOV DX, Z8279</p><p> MOV AL, 0C2H</p><p> OUT DX, AL ;置空FIFO寄存器</p><p>
118、; WAIIT: </p><p><b> NOP</b></p><p> IN AL, DX</p><p> MOV BL, AL</p><p> AND AL, 80H</p><p> CMP AL, 80H</p><
119、p> JE WAIIT ;FIFO正在清除期間則跳轉(zhuǎn)等待</p><p> MOV AL, BL</p><p> AND AL, 0FH</p><p> CMP AL, 00H</p><p> JE WAIIT ;無(wú)鍵按下則等待</p>
120、;<p> MOV AL, 00H</p><p> MOV DX, D8279 ;判斷是哪個(gè)鍵 </p><p> CMP AL, 2BH</p><p><b> JE MU</b></p><p> MU: JMP MUSIC</p><
121、p> MUSIC: </p><p> WW1:MOV DX, 210H</p><p> MOV AL, 30H</p><p> OUT DX, AL</p><p> MOV AL, 30H</p><p> OUT DX, AL </p><p&g
122、t; CALL DELAY1</p><p> MOV DX, 210H</p><p> MOV AL, 30H</p><p> OUT DX, AL</p><p> MOV AL, 30H</p><p> OUT DX, AL</p><p> CA
123、LL DELAY1</p><p> MOV DX, 210H</p><p> MOV AL, 65H</p><p> OUT DX, AL</p><p> MOV AL, 28H</p><p> OUT DX, AL</p><p> CALL DE
124、LAY1</p><p> MOV DX, 210H</p><p> MOV AL, 51H</p><p> OUT DX, AL</p><p> MOV AL, 25H</p><p> OUT DX, AL</p><p> CALL DELAY1&l
125、t;/p><p> MOV DX,210H</p><p> MOV AL,51H</p><p> OUT DX, AL</p><p> MOV AL, 25H</p><p> OUT DX, AL </p><p> CALL DELAY1</p>
126、;<p> MOV DX, 210H</p><p> MOV AL, 65H</p><p> OUT DX, AL</p><p> MOV AL, 28H</p><p> OUT DX, AL</p><p> CALL DELAY1</p><
127、;p> MOV DX, 210H</p><p> MOV AL, 30H</p><p> OUT DX, AL</p><p> MOV AL, 30H</p><p> OUT DX, AL</p><p> CALL DELAY1</p><p>
128、 MOV DX, 210H</p><p> MOV AL, 01H</p><p> OUT DX, AL</p><p> MOV AL, 34H</p><p> OUT DX, AL</p><p> CALL DELAY1 ;3345 5432音&l
129、t;/p><p> WW2:MOV DX, 210H</p><p> MOV AL, 17H</p><p> OUT DX, AL</p><p> MOV AL, 38H</p><p> OUT DX, AL </p><p> CALL DELAY1<
130、;/p><p> MOV DX, 210H</p><p> MOV AL, 17H</p><p> OUT DX, AL</p><p> MOV AL, 38H</p><p> OUT DX, AL</p><p> CALL DELAY1</p>
131、;<p> MOV DX, 210H</p><p> MOV AL, 01H</p><p> OUT DX, AL</p><p> MOV AL, 34H</p><p> OUT DX, AL</p><p> CALL DELAY1</p><
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 硬件課程設(shè)計(jì)報(bào)告--可存儲(chǔ)式電子琴
- 硬件課程設(shè)計(jì)報(bào)告---可存儲(chǔ)式電子琴
- 可存儲(chǔ)式電子琴硬件課程設(shè)計(jì)
- 硬件課程設(shè)計(jì)--可存儲(chǔ)式電子琴
- 硬件課程設(shè)計(jì)-可存儲(chǔ)式電子琴
- 可存儲(chǔ)式電子琴(硬件課程設(shè)計(jì))
- 硬件電子琴課程設(shè)計(jì)報(bào)告
- 可存儲(chǔ)式電子琴__中國(guó)礦業(yè)大學(xué)_硬件課程設(shè)計(jì)
- 單片機(jī)電子琴課程設(shè)計(jì)--基于單片機(jī)的可存儲(chǔ)式電子琴設(shè)計(jì)
- 課程設(shè)計(jì)---基于單片機(jī)的可存儲(chǔ)式電子琴設(shè)計(jì)
- 電子琴課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--- 簡(jiǎn)易電子琴
- 電子琴課程設(shè)計(jì)
- 課程設(shè)計(jì)--電子琴
- 電子琴課程設(shè)計(jì)
- 計(jì)算機(jī)硬件課程設(shè)計(jì) 電子琴
- 電子琴課程設(shè)計(jì)---電子琴的設(shè)計(jì)與實(shí)現(xiàn)
- 單片機(jī)電子琴課程設(shè)計(jì)--帶存儲(chǔ)播放功能的簡(jiǎn)易電子琴設(shè)計(jì)
- eda課程設(shè)計(jì)硬件電子琴及自動(dòng)演奏
- 微機(jī)課程設(shè)計(jì)電子琴
評(píng)論
0/150
提交評(píng)論