微機(jī)原理音樂程序設(shè)計(jì)_第1頁
微機(jī)原理音樂程序設(shè)計(jì)_第2頁
微機(jī)原理音樂程序設(shè)計(jì)_第3頁
免費(fèi)預(yù)覽已結(jié)束,剩余27頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、沈陽工程學(xué)院課程設(shè)計(jì)班級(jí) 系統(tǒng)本101學(xué)號(hào) 2010414109職稱 講師、工程師課程設(shè)計(jì)題目:音樂程序設(shè)計(jì)系 別 信息工程系學(xué)生姓名凌賢忠指導(dǎo)教師衣云龍、王德君 起止日期:2012年05月21日起至2012年05月25日止沈陽工程學(xué)院課程設(shè)計(jì)任務(wù)書班級(jí) 系統(tǒng)本101學(xué)號(hào) 2010414109職稱講師、工程師課程設(shè)計(jì)題目:音樂程序設(shè)計(jì)系 別信息工程系學(xué)生姓名凌賢忠指導(dǎo)教師衣云龍、王德君 課程設(shè)計(jì)進(jìn)行地點(diǎn):微機(jī)原理實(shí)驗(yàn)室(F106)任務(wù)下達(dá)時(shí)間:2012年05月18日起止日期:2012年05月21日起至2012年05月25日止教研室主任 王健2012年05月18日批準(zhǔn)一、設(shè)計(jì)目的 通過課程設(shè)計(jì)使

2、學(xué)生更進(jìn)一步掌握微機(jī)原理及應(yīng)用課程的有關(guān)知識(shí),提高 應(yīng)用微機(jī)解決問題的能力,加深對(duì)微機(jī)應(yīng)用的理解。通過查閱資料,結(jié)合所學(xué) 知識(shí)進(jìn)行軟、硬件的設(shè)計(jì),使學(xué)生初步掌握應(yīng)用微機(jī)解決問題的步驟及方法。 為以后學(xué)生結(jié)合專業(yè)從事微機(jī)應(yīng)用設(shè)計(jì)奠定基礎(chǔ)。二、設(shè)計(jì)的原始資料及依據(jù) 查閱可編程計(jì)數(shù)器 / 定時(shí)器芯片 8254 相關(guān)資料。 用簡(jiǎn)單的輸入輸出端口等硬件,輸入數(shù)據(jù)、處理數(shù)據(jù)和輸出數(shù)據(jù)。三、設(shè)計(jì)的主要內(nèi)容及要求 內(nèi)容:利用微機(jī)原理試驗(yàn)箱,設(shè)計(jì)簡(jiǎn)易音樂程序,要求至少可以播放 2 首音 樂。要求:1 )用 2個(gè)開關(guān)選擇歌曲。2 )能用揚(yáng)聲器播放歌曲。四、對(duì)設(shè)計(jì)說明書撰寫內(nèi)容、格式、字?jǐn)?shù)的要求1. 課程設(shè)計(jì)說明書

3、 (論文)是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,一般不應(yīng)少 于 3000 字。2. 學(xué)生應(yīng)撰寫的內(nèi)容為: 目錄、正文、參考文獻(xiàn)等。課程設(shè)計(jì)說明書 (論文) 的結(jié)構(gòu)及各部分內(nèi)容要求可參照沈陽工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫規(guī)范執(zhí) 行。應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。3. 說明書(論文)手寫或打印均可。手寫要用學(xué)校統(tǒng)一的課程設(shè)計(jì)用紙,用 黑或藍(lán)黑墨水工整書寫;打印時(shí)按沈陽工程學(xué)院畢業(yè)設(shè)計(jì)(論文)撰寫規(guī)范 的要求進(jìn)行打印。4. 課程設(shè)計(jì)說明書(論文)裝訂順序?yàn)椋悍饷妗⑷蝿?wù)書、成績(jī)?cè)u(píng)定表、目錄、 正文、參考文獻(xiàn)。五、設(shè)計(jì)完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求 ; 提交課程設(shè)計(jì) 說明書一

4、份。在說明書中要有設(shè)計(jì)原理、 硬件電路接線 圖、設(shè)計(jì)的程序及必要注釋等。六、時(shí)間進(jìn)度安排;順序階段日期計(jì)劃完成內(nèi)容備注11.5天查閱資料及程序設(shè)計(jì)22.5天上機(jī)調(diào)試程序30.5天成績(jī)?cè)u(píng)定40.5天書寫報(bào)告沈陽工程學(xué)院微機(jī)原理及匯編語言課程設(shè)計(jì)成績(jī)?cè)u(píng)定表系(部): 信息系 班級(jí): 系統(tǒng)本101學(xué)生姓名:凌賢忠指導(dǎo)教師評(píng)審意見評(píng)價(jià) 內(nèi)容具體要求權(quán)重評(píng)分加權(quán) 分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方案 和日程安排。0.15432工作 能力 態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能 夠獨(dú)立完成設(shè)計(jì)工作,0.25432工作 量按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿,難度話宜。0.25

5、432說明 書的 質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字 通順,技術(shù)用語準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表 完備,書寫工整規(guī)范。0.55432指導(dǎo)教師評(píng)審成績(jī) (加權(quán)分合計(jì)乘以12)分加權(quán)分合計(jì)指導(dǎo)教師簽名:年 月日評(píng)閱教師評(píng)審意見評(píng)價(jià) 內(nèi)容具體要求權(quán)重評(píng)分加權(quán) 分查閱 文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能力0.25432工作量工作量飽滿,難度適中。0.55432說明 書的 質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字 通順,技術(shù)用語準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表 完備,書寫工整規(guī)范。0.35432評(píng)閱教師評(píng)審成績(jī) (加權(quán)分合計(jì)乘以8)分加權(quán)分合計(jì)評(píng)閱教師簽名:年 月日課程設(shè)

6、計(jì)總評(píng)成績(jī)分目錄目錄 1.第一章 緒論 1.第二章 實(shí)驗(yàn)原理 2.2.1 設(shè)計(jì)原理 2.2.2 設(shè)計(jì)環(huán)境及設(shè)備 2.2.3 硬件接線圖 2.2.4 設(shè)計(jì)流程圖 3.2.5 8254芯片 5.2.5.2 8254 內(nèi)部結(jié)構(gòu) 5.2.5.3 8254 外部引腳 5.2.5.5 8254功能 6.2.5.6 8254 控制字 7.2.5.7 8254 工作方式 7.2.6 8255芯片 8.2.6.3 8255 控制字 1.0第三章 程序設(shè)計(jì) 1.2.3.1 頻率產(chǎn)生模塊 1.2.3.2 控制模塊 1.2.3.3 控制音符的演奏時(shí)間 1.23.4 音符頻率表 1.3.3.6 程序設(shè)計(jì) 1.4.第四章

7、 結(jié)論 1.8.主要參考資料(文獻(xiàn)) 1.9.第一章緒論微機(jī)接口原理是一門非常重要的計(jì)算機(jī)技術(shù)基礎(chǔ)課程,全面介紹微機(jī)的基 本結(jié)構(gòu)、工作原理、硬件配置、接口期間和接口種類等。本次微機(jī)接口課程設(shè) 計(jì)的主要目的是要使學(xué)生更進(jìn)一步掌握微機(jī)原理及應(yīng)用課程的有關(guān)知識(shí),提高 應(yīng)用微機(jī)解決問題的能力,加深對(duì)微機(jī)應(yīng)用的理解。通過查閱資料,結(jié)合所學(xué) 知識(shí)進(jìn)行軟、硬件的設(shè)計(jì),使學(xué)生初步掌握應(yīng)用微機(jī)解決問題的步驟及方法。 為以后學(xué)生結(jié)合專業(yè)從事微機(jī)應(yīng)用設(shè)計(jì)奠定基礎(chǔ)。在本次課程設(shè)計(jì)中大家利用課上所學(xué)的各種知識(shí), 對(duì)自己的課程設(shè)計(jì)題目進(jìn) 行設(shè)計(jì)。我們小組所要設(shè)計(jì)的題目是音樂程序設(shè)計(jì)。 在設(shè)計(jì)的過程中主要利用計(jì) 數(shù)器/定時(shí)

8、器8254芯片和可編程并行接口 8255A芯片,完成2個(gè)開關(guān)選擇歌曲, 能用揚(yáng)聲器播放歌曲。首先我們利用定時(shí)器產(chǎn)生各種頻率的聲音,如“ DO”“RE” “ME”然后將各個(gè)單音連接起來就組成了一首簡(jiǎn)單的曲子或者旋律,旋律及拍數(shù)可以按音樂簡(jiǎn)譜而定。對(duì)8255芯片PA0和PA6 口的置0和1來選擇歌曲。其次實(shí)現(xiàn)唱歌功能即實(shí) 現(xiàn)歌曲的節(jié)拍通過調(diào)用延時(shí)子程序控制音符發(fā)音的長(zhǎng)短,實(shí)現(xiàn)連續(xù)發(fā)聲把SI是否為0作為循環(huán)的條件在每一次揚(yáng)聲器發(fā)出一個(gè)相應(yīng)音符之后做無條件轉(zhuǎn)移,從而使揚(yáng)聲器連續(xù)發(fā)聲。第二章實(shí)驗(yàn)原理2.1設(shè)計(jì)原理我們?cè)谶@次課設(shè)選擇了音樂程序設(shè)計(jì),音樂程序設(shè)計(jì)可以實(shí)現(xiàn)至少兩首歌的 可選擇播放。對(duì)于歌曲的播

9、放我們采用的是計(jì)數(shù)器 /定時(shí)器8254芯片,而對(duì)于選 擇哪首歌播放則是利用可編程并行接口8255A芯片來實(shí)現(xiàn)的。基于8254定時(shí)計(jì)數(shù)接口芯片的工作原理,本次課設(shè)實(shí)現(xiàn)了音樂演奏系統(tǒng)程 序設(shè)計(jì)。當(dāng)運(yùn)行程序時(shí),揚(yáng)聲器便發(fā)出優(yōu)美的音樂。首先要解決發(fā)聲并發(fā)出相應(yīng) 音符聲音的問題,由8254計(jì)數(shù)器0在初始化時(shí)用來產(chǎn)生一定頻率的方波來使揚(yáng) 聲器發(fā)聲,再根據(jù)不同音符對(duì)應(yīng)的頻率寫入計(jì)數(shù)初值發(fā)出相應(yīng)的音符聲。對(duì)8255芯片PA0和PA1 口的置0和1來控制揚(yáng)聲器的開關(guān)。其次實(shí)現(xiàn)唱歌功能即實(shí)現(xiàn) 歌曲的節(jié)拍通過調(diào)用延時(shí)子程序控制音符發(fā)音的長(zhǎng)短,實(shí)現(xiàn)連續(xù)發(fā)聲把SI是否為0作為循環(huán)的條件在每一次揚(yáng)聲器發(fā)出一個(gè)相應(yīng)音符之后

10、做無條件轉(zhuǎn)移,從而使揚(yáng)聲器連續(xù)發(fā)聲。2.2設(shè)計(jì)環(huán)境及設(shè)備PC機(jī)一臺(tái)、windows 98系統(tǒng)、實(shí)驗(yàn)箱,導(dǎo)線若干。8254定時(shí)器:用于產(chǎn)生秒脈沖。8255并口:用做接口芯片,與數(shù)碼管相連2.3硬件接線圖硬件接線圖如圖2.1所示XDODOPBOXD1D1PB1XD2系D28XD3統(tǒng)D32XD4總D45XD5線D55XD6D6-H-心XD7D7片IOW#WRIOR#RDPAOIOY3 IOY1CSPA1XA1AOXA2A1Clk+5V圖2.1硬件接線圖2.4設(shè)計(jì)流程圖軟件流程圖如圖2.2所示圖22軟件流程圖2.5 8254 芯片定時(shí)/計(jì)數(shù)器8254主要功能: 每片上有3個(gè)獨(dú)立的16位的減計(jì)數(shù)器通道。

11、對(duì)于每個(gè)計(jì)數(shù)器,都可以單獨(dú)作為定時(shí)器或計(jì)數(shù)器使用,并且都可以按 照二進(jìn)制或十進(jìn)制來計(jì)數(shù)。 每個(gè)通道都有6種工作方式,都可以通過程序設(shè)置或改變。每個(gè)計(jì)數(shù)器的速率可高達(dá)2MHz。最高的計(jì)數(shù)時(shí)鐘頻率為2.6MHz。8254內(nèi)部結(jié)構(gòu)8254的內(nèi)部結(jié)構(gòu)如圖2.3所示,它主要包括以下幾個(gè)主要部分:if /寫ifR Hit*CS 丁攔制宇4圖2.3 8254的內(nèi)部結(jié)構(gòu)8254外部引腳8254芯片是具有24個(gè)引腳的雙列直插式集成電路芯片,其引腳分布如圖所 示。8254芯片的24個(gè)引腳分為兩組,一組面向 CPU,另一組面向外部設(shè)備,各 個(gè)引腳及其所傳送信號(hào)的情況,介紹如下:D7Do:雙向、三態(tài)數(shù)據(jù)線引腳,與系統(tǒng)

12、的數(shù)據(jù)線連接,傳送控制、數(shù) 據(jù)及狀態(tài)信息。Rd :來自于cpu的讀控制信號(hào)輸入引腳,低電平有效。WR :來自于CPU的寫控制信號(hào)輸入引腳,低電平有效。CS :芯片選擇信號(hào)輸入引腳,低電平有效。控制遲7 e541132325310i15E223TITm131910匹IB21241Z17圖2.4 8254的引腳CLK1 GATE! *OUT1rDiDeDaDd-*D s *D& « »L Dtr /cc 地CLKD GATED OUTOCLK2 砒臨 *CBT2EBVrAa AlC5”+致黑。號(hào),計(jì)數(shù)器卜計(jì)數(shù)器Ai、Ao:地址信號(hào)輸入引腳,用以選擇8254芯片的通道及控

13、制字寄存器。Vcc及GND : +5V電源及接地引腳(7) CLKi: i=0,1,2,第i個(gè)通道的計(jì)數(shù)脈沖輸入引腳,8254規(guī)定,加在CLK 引腳的輸入時(shí)鐘信號(hào)的頻率不得高于 2.6MHZ,即時(shí)鐘周期不能小于380nsoGATEi: i=0,1,2,第i個(gè)通道的門控信號(hào)輸入引腳,門控信號(hào)的作用與通道 的工作方式有關(guān)。OUTi: i=0,1,2,第i個(gè)通道的定時(shí)/計(jì)數(shù)到信號(hào)輸出引腳,輸出信號(hào)的形式 由通道的工作方式確定,此輸出信號(hào)可用于觸發(fā)其它電路工作,或作為向CPU發(fā)出的中斷請(qǐng)求信號(hào)。計(jì)數(shù)器內(nèi)部結(jié)構(gòu)每個(gè)計(jì)數(shù)器由一個(gè)16位可預(yù)置的減1計(jì)數(shù)器組成,計(jì)數(shù)初值可保存在16位 的鎖存器中,該鎖存器只寫

14、不能讀。在計(jì)數(shù)器工作時(shí),初值不受影響,以便進(jìn)行 重復(fù)計(jì)數(shù)。圖中每個(gè)計(jì)數(shù)器有一個(gè)時(shí)鐘輸入端 CLK作為計(jì)數(shù)脈沖源,計(jì)數(shù)方式 可以是二進(jìn)制,計(jì)數(shù)范圍110000H,也可以是十進(jìn)制,計(jì)數(shù)范圍 165536。門 控端GATE用于控制計(jì)數(shù)開始和停止。輸出 OUT端當(dāng)計(jì)數(shù)器計(jì)數(shù)值減到零時(shí), 該端輸出標(biāo)志信號(hào)。8254 功能8254既可作定時(shí)器又可作計(jì)數(shù)器: 計(jì)數(shù):計(jì)數(shù)器裝入初值后,當(dāng) GATE為高電平時(shí),可用外部事件作為 CLK脈沖對(duì)計(jì)數(shù)值進(jìn)行減1計(jì)數(shù),每來一個(gè)脈沖減1,當(dāng)計(jì)數(shù)值減至0時(shí),由 OUT端輸出一個(gè)標(biāo)志信號(hào)。 定時(shí):計(jì)數(shù)器裝入初值后,當(dāng)GATE為高電平時(shí),由CLK脈沖觸發(fā)開 始自動(dòng)計(jì)數(shù),當(dāng)計(jì)數(shù)到

15、零時(shí),發(fā)計(jì)數(shù)結(jié)束定時(shí)信號(hào)。除上述典型應(yīng)用外,8254還可作頻率發(fā)生器、分頻器、實(shí)時(shí)鐘、單脈沖發(fā) 生器等。2.5.6 8254控制字76543210數(shù)制控制1 =二制,A BCD00選計(jì)數(shù)詡001選計(jì)數(shù)器110選計(jì)數(shù)器2工作方式選擇:DM方式011菲法001方武1ao計(jì)敷器鎖存命令xlO方式2xl 1育式3100方武4101方式5一 01只讀餌低話位高8位自動(dòng)直0 10只詢寫高£位低8位自動(dòng)置0 一 11先寫后寫哥&位圖2.5 8254控制字說明:8254每個(gè)通道對(duì)輸入CLK按二進(jìn)制或二十進(jìn)制從預(yù)置值開始減 1計(jì)數(shù), 減到0時(shí)從OUT輸出一個(gè)信號(hào)。8254編程時(shí)先寫控制字,再寫

16、時(shí)間常數(shù)。8254工作方式 方式0:計(jì)數(shù)結(jié)束產(chǎn)生中斷方式當(dāng)寫入控制字后,OUT變?yōu)榈碗娖剑?dāng)寫入初值后立即開始計(jì)數(shù),當(dāng)計(jì)數(shù) 結(jié)束時(shí),變成高電平。方式1:可編程單次脈沖方式當(dāng)初值裝入后且GATE由低變高時(shí),OUT變?yōu)榈碗娖剑?jì)數(shù)結(jié)束變?yōu)楦唠?平。方式2:頻率發(fā)生器方式當(dāng)初值裝入時(shí),OUT變?yōu)楦撸挥?jì)數(shù)結(jié)束,OUT變?yōu)榈汀T摲绞较氯绻?jì)數(shù) 未結(jié)束,但GATE為低時(shí),立即停止計(jì)數(shù),強(qiáng)制OUT變高,當(dāng)GATE再變高時(shí), 便啟動(dòng)一次新的計(jì)數(shù)周期。方式3:方波發(fā)生器當(dāng)裝入初值后,在GATE上升沿啟動(dòng)計(jì)數(shù),OUT輸出高電平;當(dāng)計(jì)數(shù)完成 一半時(shí),OUT輸出低電平。s _ruTJTnnnrLnnn_ jvTjmr

17、LTuumnnjvuumrL4< jji !(W一>1« ifi GATEour1.丄£二.'|q14ii1i1iI ! L_!:1 1li|-'iIi*:J 4,i4II«*'I*54>IiIi>古fe3I “""P1'I14_lI*J|pI1I?j_rr圖2.6方波圖方式3與方式2的工作方式類似,也是在初始化完成后能重復(fù)循環(huán)計(jì)數(shù), 只 是輸出的波形不同。計(jì)數(shù)過程當(dāng)把方式3的控制字寫入控制字寄存器后,輸出端 OUT變成高電平,作為 初始電平。再將計(jì)數(shù)初值寫入計(jì)數(shù)初值寄存器 CR中,再經(jīng)過

18、一個(gè)時(shí)鐘周期,計(jì) 數(shù)初值被移入計(jì)數(shù)執(zhí)行單元 CE中,從下一個(gè)時(shí)鐘脈沖開始作減1計(jì)數(shù),方式3 的計(jì)數(shù)過程分為兩種情況:第一種情況:計(jì)數(shù)初值為偶數(shù),當(dāng)作減 1計(jì)數(shù)減到N/2時(shí),輸出端OUT端 變成低電平,減到0時(shí),輸出端OUT變成高電平,并重新從初值開始新的計(jì)數(shù)過 程。若GATE為高電平,則一直重復(fù)同樣的計(jì)數(shù)過程。可見,輸出端OUT輸出連續(xù)的方波,故稱方波發(fā)生器。第二種情況:計(jì)數(shù)初值為奇數(shù),當(dāng)作減 1計(jì)數(shù)減到(N+1) /2以后,輸出端 OUT變成低電平,減到0時(shí),輸出端OUT又變成高電平。并重新從初值開始新 的計(jì)數(shù)過程。這時(shí)輸出端的波形為連續(xù)的近似方波。門控信號(hào)的影響工作在方式3時(shí),門控信號(hào)GA

19、TE的功能與工作方式2 一樣,即GATE為 高電平時(shí),允許計(jì)數(shù);GATE為低電平時(shí)停止計(jì)數(shù)。GATE引腳上的信號(hào)從低電 平跳到高電平時(shí),將會(huì)重新把計(jì)數(shù)初值寄存器CR中的內(nèi)容移入計(jì)數(shù)執(zhí)行單元CE中,并以新裝入的值重新開始計(jì)數(shù)。如果在計(jì)數(shù)過程中寫入新的初值,而GATE信號(hào)一直維持高電平,則新的初 值不會(huì)影響當(dāng)前的計(jì)數(shù)過程,只有在計(jì)數(shù)結(jié)束后的下一個(gè)計(jì)數(shù)周期,才按新的初 值計(jì)數(shù)。若寫入新的初值后,遇到門控信號(hào)的上升沿,則結(jié)束現(xiàn)行的計(jì)數(shù)過程, 從下一個(gè)時(shí)鐘脈沖下降沿開始按新的計(jì)數(shù)初值進(jìn)行計(jì)數(shù)。2.6 8255 芯片26 1 8255外部引腳功能1 AN1丹1KE>J IS1 啊T匚i r _

20、63;im1 u y 11iFQU1 'J1CFi 1山丄圖2.7 8255外部引腳圖可編程并行接口 8255芯片的外部引腳圖如圖2.7所示。PAOPA7:端口 A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一 個(gè)8位的數(shù)據(jù)輸入鎖存器。PBOPB7:端口 B輸入輸出線,一個(gè)8位的I/O鎖存器, 一個(gè)8位的輸 入輸出緩沖器。PCOPC7:端口 C輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一 個(gè)8位的數(shù)據(jù)輸入緩沖器。端口 C可以通過工作方式設(shè)定而分成 2個(gè)4位的端 口,每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口 A和端口 B配合使用, 可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。RES

21、ET:復(fù)位輸入線,當(dāng)該輸入端外于高電平時(shí),所有內(nèi)部寄存器(包括 控制寄存器)均被清除,所有I/O 口均被置成輸入方式。CS:片選信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),表示芯片被選中,允許 8255與CPU進(jìn)行通訊。RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),允許8255通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。WR:寫入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),允許 CPU將數(shù)據(jù)或控制字 寫 8255。DOD7:8255的數(shù)據(jù)線。8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU執(zhí)行輸 入輸出指令時(shí),通過它實(shí)現(xiàn) 8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù) 據(jù)總線傳送。8255內(nèi)部結(jié)構(gòu)

22、PA嚴(yán) PAqPC 嚴(yán) PC4PCt-PCqREPBPBq圖2.8 8255的內(nèi)部結(jié)構(gòu)圖可編程并行接口 8255芯片的內(nèi)部結(jié)構(gòu)圖如圖2.8所示。 輸入/輸出端口 A、B、C。這三個(gè)端口均可看作是I/O端口,但它們的 結(jié)構(gòu)和功能也稍有不同。A 口和B 口是一個(gè)獨(dú)立的8位I/O 口。C 口:可以看作 是一個(gè)獨(dú)立的8位I/O 口;也可以看作是兩個(gè)獨(dú)立的 4位I/O 口。A組和B組控制電路。這是兩組根據(jù) CPU命令控制8255A工作方式的 電路,這些控制電路內(nèi)部設(shè)有控制寄存器,可以根據(jù) CPU送來的編程命令來控 制8255A的工作方式,也可以根據(jù)編程命令來對(duì) C 口的指定位進(jìn)行置/復(fù)位的操 作。A組控

23、制電路用來控制 A 口及C 口的高4位;B組控制電路用來控制B 口 及C 口的低4位。讀/寫控制邏輯,它負(fù)責(zé)管理8255A的數(shù)據(jù)傳輸過程。它接收CS*及RD*、 WR*、RESET,還有來自系統(tǒng)地址總線的口地址選擇信號(hào)A0和A1。將這些信號(hào)組合后,得到對(duì)A組控制部件和B組控制部件的控制命令,并將命令發(fā)給這 兩個(gè)部件,以完成對(duì)數(shù)據(jù)、狀態(tài)信息和控制信息的傳輸。 數(shù)據(jù)總緩沖器,它是8位的雙向的三態(tài)緩沖器。作為8255A與系統(tǒng)總線 連接的界面,輸入/輸出的數(shù)據(jù),CPU的編程命令以及外設(shè)通過8255A傳送的工 作狀態(tài)等信息,都是通過它來傳輸?shù)摹?.6.3 8255控制字1工作方式選擇控制字它可以使825

24、5的三個(gè)端口工作于不同的工作方式,如圖 2.9所示的8255控 制字。0 輸出圖2.9 8255的控制字圖當(dāng)控制字bit=7時(shí),控制字的bit6bit3這4位用來控制A組,A 口的8位和 C 口的高4位,而控制字的低3位bit2 bit0用來控制B組,包括B 口的8位和C 口的低四位。三種工作方式的描述如下: 方式0基本輸入/輸出方式; 方式1選通輸入/輸出方式;方式2雙向傳送方式。2 C 口按位置位/復(fù)位控制字8255的C 口具有位控功能,即端口 C的8位中的任一位都可通過 CPU向 8255的控制寄存器寫入一個(gè)按位置位/復(fù)位控制字來置1或清0,而C 口中其他 位的狀態(tài)不變。其格式注意 82

25、55的C 口按位置位/復(fù)位控制字的最高位D7 (特 征位)應(yīng)為低電平。如圖2.10所示C 口按位置位/復(fù)位控制字格式。圖2.10 C 口按位置位/復(fù)位控制字第三章程序設(shè)計(jì)3.1頻率產(chǎn)生模塊所有音樂都是由各個(gè)不同頻率的音階和其延續(xù)時(shí)間的長(zhǎng)短來實(shí)現(xiàn)的。 不同的 音樂是由各個(gè)音階按某種排列各自播放一定時(shí)間形成的,將各音樂音階和其延續(xù) 時(shí)間存在數(shù)據(jù)段中,然后根據(jù)不同按鍵值選擇不同的音階和時(shí)間表, 再使用計(jì)數(shù) 器產(chǎn)生該音階頻率。而我們學(xué)過的有計(jì)數(shù)器可以產(chǎn)生各種頻率, 所以我們主要采 用計(jì)數(shù)器8254產(chǎn)生各音符,用8255并行接口來控制,達(dá)到播放音樂的功能。所有音樂都是由各個(gè)不同頻率的音階和其延續(xù)時(shí)間的長(zhǎng)

26、短來實(shí)現(xiàn)的。 不同的 音樂是由各個(gè)音階按某種排列各自播放一定時(shí)間形成的,將各音樂音階和其延續(xù) 時(shí)間存在數(shù)據(jù)段中,然后根據(jù)不同按鍵值選擇不同的音階和時(shí)間表, 再使用計(jì)數(shù) 器產(chǎn)生該音階頻率。CPU通過對(duì)定時(shí)器的通道0進(jìn)行編程,使其I/O寄存器接收一個(gè)控制聲音頻 率的16位計(jì)數(shù)值。以產(chǎn)生特殊的音響。當(dāng)定時(shí)器接收的計(jì)數(shù)值為533H時(shí),能產(chǎn)生896Hz的聲音,因此產(chǎn)生其他頻率的計(jì)數(shù)值就可算出來:533HzX 896-頻率=1234DC十頻率在送出頻率計(jì)數(shù)值之前,還要給方式寄存器送一個(gè)方式值, 該數(shù)決定對(duì)哪一 個(gè)通道編程,采用什么模式,送入通道的計(jì)數(shù)值是一字節(jié)還是兩字節(jié), 是二進(jìn)制 碼還是BCD碼。其位組

27、合的格式如下:產(chǎn)生指定頻率聲音的程序段如下:PLAY: MOV DX,0FHMOV AX,4240HDIV WORD PTR SIMOV DX,MY8254_COUNT0OUT DX,ALMOV AL,AHOUT DX,AL3.2控制模塊對(duì)8255芯片PA0和PA6 口的置0和1來選擇歌曲。其次實(shí)現(xiàn)唱歌功能即實(shí) 現(xiàn)歌曲的節(jié)拍通過調(diào)用延時(shí)子程序控制音符發(fā)音的長(zhǎng)短,實(shí)現(xiàn)連續(xù)發(fā)聲把SI是否為0作為循環(huán)的條件在每一次揚(yáng)聲器發(fā)出一個(gè)相應(yīng)音符之后做無條件轉(zhuǎn)移,從而使揚(yáng)聲器連續(xù)發(fā)聲。3.3控制音符的演奏時(shí)間控制音符的演奏時(shí)間,是設(shè)計(jì)音樂程序的關(guān)鍵問題。最直觀的方法是按照按照樂譜為每一個(gè)音符規(guī)定一個(gè)演奏時(shí)間,

28、但是利用這種方法是調(diào)試程序特別困 難。特別是在遇到一首不熟悉的歌曲時(shí),初期很難確定每一個(gè)音符的演唱時(shí)間, 而調(diào)試程序的時(shí)候費(fèi)時(shí)費(fèi)力,效果很差,下面,我么么向讀者推薦一個(gè)記號(hào)的方法,即沒一個(gè)音符規(guī)定一個(gè)“單位時(shí)間”。單位時(shí)間*N=音符的演唱時(shí)間其中N為調(diào)試參數(shù),一首歌只有一個(gè)調(diào)試參數(shù)。設(shè)計(jì)程序時(shí)用EQU偽指令定義調(diào)試參數(shù),初值先行估計(jì),調(diào)試時(shí)再修改它。如何確定每個(gè)音符的演奏時(shí)間呢?我們知道,音符的節(jié)奏分為一拍、半拍、1/4拍、1/8拍等等。如果在一首歌曲中,音符演奏的時(shí)間最短為 1/8拍,我們就 規(guī)定一拍音符的單位時(shí)間為8,半拍音符的單位時(shí)間為4,1/4拍音符的單位時(shí)間 為2,1/8拍音符的單位

29、時(shí)間為1。以“友誼地久天長(zhǎng)”這首歌為例,最短音符為 1/8拍,我們就定義一個(gè)單位時(shí)間為 &所示,途中第一行是一段曲譜,第3行是相應(yīng)音符的單位時(shí)間,編程時(shí),首 先將一個(gè)音符的頻率轉(zhuǎn)化成計(jì)數(shù)初值寫入 2號(hào)計(jì)數(shù)器,然后將音符的單位時(shí)間乘 以調(diào)試參數(shù)N,在調(diào)用延時(shí)子程序,就可以控制音符的演奏時(shí)間了,調(diào)試時(shí),只 需改變調(diào)試參數(shù)N即可。3.4音符頻率表音符頻率表如下表所示:表4.1音符頻率表1音調(diào)音符1?2?3?4?5?6?7?A221248278294330371416B248278312330371416467C131147165175196221248D1471651851962212482

30、78E165185208221248278312F175196221234262294330G196221248262294330371表4.2音符頻率表2音調(diào)音符1234567A441495556589661742833B495556624661742833935C262294330350393441495D294330371393441495556E330371416441495556624F350393441467525589661G393441495525589661742表4.3音符頻率表3音調(diào)音符?2?3?4?5?6?7A88299011121178132214841665B990

31、111212481322148416651869C525589661700786882990D5896617428338829901112E66174283388299011121248F700786882935104911781322G7898829901049117813221484編程產(chǎn)生各種音符的頻率可參照此表。具體實(shí)現(xiàn)時(shí)由于各計(jì)算器的速度不同, 樂曲演奏的速度存在差異,所以可以 適當(dāng)?shù)恼{(diào)整延遲子程序的時(shí)間參數(shù)。3.6程序設(shè)計(jì)I0Y3EQU 06C0H;端口定義I0Y1EQU 0640HMY8254_COUNT0 EQU I0Y3+00HMY8254_COUNT1 EQU IOY3+0

32、2HMY8254_COUNT2EQU IOY3+04H;8254計(jì)數(shù)器0端口地址;8254計(jì)數(shù)器1端口地址;8254計(jì)數(shù)器2端口地址MY8254_MODEEQU IOY3+06H;8254控制寄存器端口地址MY8255_AEQU IOY1+00H;8255輸入輸出0端口地址MY8255_BEQU IOY1+02H;8255輸入輸出1端口地址MY8255_CEQU IOY1+04H;8255輸入輸出2端口地址MY8255_MODEEQU IOY1+06H;8255控制寄存器端口地址STACK1 SEGMENT STACKDW 256 DUPSTACK1 ENDSDATA SEGMENTFREQ_

33、LISTDW 371,495,495,495,624,556,495,556,624;頻率表DW 495,495,624,742,833,833,833,742,624DW 624,495,556,495,556,624,495,416,416,371DW 495,833,742,624,624,495,556,495,556,833DW 742,624,624,742,833,990,742,624,624,495DW 556,495,556,624,495,416,416,371,495,0TIME_LIST DB4,6,2,4, 4,6,2,4,4;時(shí)間表DB6,2,4,4, 12,1,

34、3,6,2DB4,4,6,2, 4,4,6,2,4, 4DB12,4,6,2, 4,4,6,2,4, 4DB6,2,4,4, 12,4,6,2,4, 4DB6,2,4,4, 6,2,4,4,4FREQ_LIST1DW330,331,330,332,330,331,330,393,262,294,330,350,350,350,350DW350,330,332,330,331,330,294,294,262,294,393,330,330,330,330DW330,330,330,393,262,294,330,350,350,350,350,350,330,330,330DW330,330,2

35、94,0TIME_LIST1DB4,4,8,4,4,8,4,4,6,2,16,4,4,6,2DB4,4,4,2,2,4,4,4,4,8,8,4,4,8,4,4DB8,4,4,6,2,16,4,4,6,2,4,4,4,2,2DB4,2DATA ENDSCODE SEGMENTASSUMECS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,MY8254_MODE;ASSUME CS:CODE,DS:DATA;初始化8254工作方式MOV AL,36HOUT DX,ALMOV DX, MY8255_MODEMOV AL, 90HOUT DX, ALXIE:MOV DX, MY8255_AIN AL, DXMOV DX, MY8255_BOUT DX, ALCALL DALLYCMP AL,01HJZ BEGINJMP BEGIN1BEGIN:MOV SI,OFFSET FREQ_LISTMOV DI,OFFSET TIME_LISTJMP PLAYBEGIN1: MOV SI,OFFSET FREQ_LIST1MOV DI,OFFSET TIME_LIST1PLAY: MOV DX,0FH0F4240HMOV AX,4240HDIV WORD

溫馨提示

  • 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. 人人文庫(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)論