




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、微機原理課程設(shè)計課題:電子發(fā)聲設(shè)計實驗專業(yè):學(xué)號:姓名:、課題名稱及設(shè)計組成員課題名稱電子發(fā)聲設(shè)計實驗設(shè)計人姓名學(xué)號分工程序設(shè)計及調(diào)試r線路連接及查錯報告日期、課題內(nèi)容及要求課題名:電子發(fā)聲設(shè)計實驗1、要求:根據(jù)實驗提供的音樂頻率表和時間表,編寫程序控制8254,使其輸出連接到揚聲器上能發(fā)出相應(yīng)的樂曲。要求至少要完成下列項目的一項(1) 可播放兩首不同的樂曲(2) 根據(jù)不同的按鍵播放不同的音樂(3) 可改變音樂的音調(diào)(4) 可顯示播放樂曲的名稱2、所設(shè)計的電路實現(xiàn)的功能:設(shè)計中完成了實驗要求中提出的要求。設(shè)計中實現(xiàn)了,用按鍵進(jìn)行隨時切換兩首音樂(友誼地久天長,兩只老虎)和對所播放的當(dāng)前音樂進(jìn)行
2、兩種不同音調(diào)(中音和低音)的 隨時切換的控制操作,其中用總開關(guān)K_7進(jìn)行播放開關(guān)的總控制,開關(guān) K_0用于音樂播放的選擇,開關(guān)K_1用于對當(dāng)前播放音樂的音調(diào)進(jìn)行選擇。設(shè)計中還實現(xiàn)了對16X 16的LED管的控制運用點陣漢字輸出歌名。三、方案、系統(tǒng)組成框圖和工作原理說明1、設(shè)計方案及原理:本設(shè)計中音樂播放控制為利用對8255和8254芯片的控制操作得以實現(xiàn)。音樂名的輸出為利用總線對16X 16點陣地控制來實現(xiàn)。(1)本設(shè)計中PC發(fā)聲系統(tǒng)以8254的計數(shù)器0為核心。系統(tǒng)初始化時,計數(shù)器 0工作 在方式3的“方波發(fā)聲器”方式,同過將音樂頻率轉(zhuǎn)換為相應(yīng)的計數(shù)初值,改變 計數(shù)器0的計數(shù)初值就可以使揚聲器
3、發(fā)出不同的頻率的音響。(2)發(fā)生系統(tǒng)控制為受 8255芯片控制,外界通過改變對8255芯片的PA 口的不同輸入來實現(xiàn)播放功能上的選擇。(3)演奏但音符,為利用一個音符對應(yīng)一個頻率,將與一個頻率對應(yīng)的計數(shù)初值寫入計數(shù)器0,揚聲器就發(fā)出相應(yīng)的音調(diào)。計數(shù)器初值的計算公式為:計數(shù)初值=1MHZ +輸出頻率,其中1MHZ轉(zhuǎn)換為16進(jìn)制為0F4240H。(4)控制音符的演奏時間,是通過每一個音符規(guī)定一個“單位時間”:單位時間X N=音符的演奏時間。其中,N為調(diào)試參數(shù),一首歌只有一個調(diào)試參數(shù)。2、系統(tǒng)組成(電路圖):圖1.對8254與系統(tǒng)的連接DCXPA0PAD0PA2PA3PA4D7.PA5PA6PA7A
4、0A18255單WR元RDCSQO-MO-M)-?一元*一展-4旌-7開關(guān)按鍵單圖3.點陣漢字的接線0 0 QL1點陣L8LED顯R1工單R8元四、程序功能描述及程序流程(1)程序功能描述:如程序流程圖所示。 程序下載鏈接、并運行后,開始通過對外界按鍵掃描,來檢查應(yīng)進(jìn)行采取的操作,根據(jù)外界不同的輸入,完成不同的程序跳轉(zhuǎn),從而實現(xiàn)相應(yīng)的播放功能。其中 K0、K1為外界電子控制單元。分為 0和1,即低電平和高電平。(2)程序流程圖:五、程序源代碼及注釋1在 LED 單元中顯示歌曲名稱ROW1 EQU 0600H;端口定義ROW2 EQU 0640HCOL1 EQU 0680HCOL2 EQU 06
5、C0HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDS; 定義為數(shù)據(jù)段INCLUDE HZDOTht.ASM ;數(shù)據(jù)字段為漢字點陣庫, 在 HZDOTht.ASM; 文件中CODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV DX, ROW1MOV AL, 00HOUT DX, ALMOV DX, ROW2OUT DX, ALMOV AL, 0ffHMOV DX, COL1OUT DX, ALMOV DX, COL2OUT DX, ALBG0:MOV AX, 160MOV
6、SI, OFFSET HZDOThtBG1:CALL DISPADD SI, 2DEC AXJZ BG0JMP BG1顯示漢字子程序; 入口參數(shù) : SI = 存放漢字起始地址DISP:ML0:ML1:ML2:MOV CX, 000FH PUSH AXPUSH CX MOV BL, 01H MOV CX, 0008H MOV DX, ROW1 MOV AL, 00H OUT DX, AL MOV AL, SI not alMOV DX, COL1 OUT DX, AL INC SIMOV AL, SI not alMOV DX, COL2 OUT DX, AL INC SIMOV DX, RO
7、W1 MOV AL, BL OUT DX, AL ROL BL, 1CALL DELAY LOOP ML1MOV DX, ROW1 MOV AL, 00H OUT DX, ALMOV CX, 0008H MOV DX, ROW2 MOV AL, 00H OUT DX, AL MOV AL, SI not alMOV DX, COL1 OUT DX, AL INC SIMOV AL, SI not alMOV DX, COL2 OUT DX, AL INC SIMOV DX, ROW2;控制0-7 行;0-7 列;8-15列;控制0-7 行;控制 8-15行;0-7 列;8-15列;控制 8-1
8、5行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLOOP ML2MOV DX, ROW2MOV AL, 00HOUT DX, ALSUB SI, 32POP CXLOOP ML0POP AXRETDELAY: PUSH CX;延時子程序MOV CX, 0100HDL1:PUSH AXPOP AXLOOP DL1POP CXRETCODE ENDSEND START此程序中 8255 芯片和點陣LED 單元的連接,用來實現(xiàn)在點陣LED 顯示單元來顯示漢字的功能。通過調(diào)用漢字存放單元的地址,在LED 單元中可以顯示出流動的字體。此程序?qū)崿F(xiàn)的字體是“友誼天長地久”
9、。2.此程序用來實現(xiàn)程序流程圖中所示的功能,即通過開關(guān)來控制播放曲目的的切換和音調(diào)的改變。IOY3EQU 06C0HMY8254_COUNT0MY8254_COUNT1MY8254_COUNT2MY8254_MODEEQU IOY3+00HEQU IOY3+02HEQU IOY3+04HEQU IOY3+06H;8254 計數(shù)器0端口地址;8254 計數(shù)器1端口地址;8254 計數(shù)器2端口地址;8254 控制寄存器端口地址IOY0EQU 0600HMY8255_AEQUIOY0+00HMY8255_BEQUIOY0+02HMY8255_CEQUIOY0+04HMY8255MODEEQUIOY0
10、+06HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSFREQ_LISTDW371,495,495,495,624,556,495,556,624表DW495,495,624,742,833,833,833,742,624DW624,495,556,495,556,624,495,416,416,371DW495,833,742,624,624,495,556,495,556,833DW742,624,624,742,833,990,742,624,624,495DW556,495,556,624,495,416,416,371,495,0TIME_L
11、ISTDB4,6, 2,4, 4,6,2,4,4表DB6,2, 4,4, 12,1,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,12FREQ_LIST1DW 330,371,416,330歌頻率表DW 330,371,416,330DW 416,441,495DW 495,556,495,441,416,330DW 495,556,495,441,416,330DW 330,248,330DW 330,248,330,0DATA SEGMENT;
12、第一首歌頻率; 第一首歌時間; 第二首TIME_LIST1 DB 4,4,4,4DB 4,4,4,4DB 4,4,8DB 4,4,8DB 2,2,2,2,4,4DB 2,2,2,2,4,4DB 4,4,8DB 4,4,8; 第二首歌時間表FREQ_LIST2 音后; 第一首歌頻率表變TIME_LIST2;第一首歌時間表變音后DB4,6,2,4,4,6,2, 4, 4DB6,2,4,4, 12,1,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,12;第二首歌頻率表變
13、音后; 第二首歌時間表變音后FREQ_LIST3TIME_LIST3DB 4,4,4,4DB 4,4,4,4DB 4,4,8DB 4,4,8DB 2,2,2,2,4,4DB 2,2,2,2,4,4DB 4,4,8DB 4,4,8DATA ENDSCODESEGMENTASSUME CS:CODE, DS:DA TASTART:MOV AX, DATAMOV DS, AXMOV DX, MY8255_MODE;初始化 8254 工作方式INPUT:BEGIN:MOV AX,90HMOV DX,AX;A 口作為輸入MOV DX, MY8254_MODE;初始化8254 工作方式MOV AL, 36
14、H;定時器0、方式3OUT DX, ALMOV DX, MY8255_A;檢查輸入,是否要設(shè)中斷問題IN AL,DXCMP AL,80HJZ NEAR PTR BEGINCMP AL,81HJZ NEAR PTR BEGIN1CMP AL,82HJZ NEAR PTR BEGIN2CMP AL,83HJZ NEAR PTR BEGIN3JNZ INPUTMOV SI,OFFSET FREQ_LISTMOV DI,OFFSET TIME_LISTPLAY:; 裝入頻率表起始地址;裝入時間表起始地址MOV DX,MY8255_AIN AL,DXCMP AL,80HJNZ NEAR PTR INPU
15、TMOV DX,0FH;輸入時鐘為 1MHz , 1M = 0F4240HMOV AX,4240HDIV WORD PTR SIMOV DX,MY8254_COUNT0OUT DX,ALMOV AL,AHOUT DX,ALMOV DL,DICALL DALL Y;取出頻率值計算計數(shù)初值, 0F4240H / 輸出頻率;裝入計數(shù)初值;取出演奏相對時間,調(diào)用延時子程序ADD SI,2INC DICMP WORD PTR SI,0JE NEAR PTR INPUTJMP PLAY; 判斷是否到曲末?BEGIN1: MOV SI,OFFSET FREQ_LIST1MOV DI,OFFSET TIME_
16、LIST1PLAY1:MOV DX,MY8255_AIN AL,DXCMP AL,81HJNZ NEAR PTR INPUTMOV DX,0FHMOV AX,4240HDIV WORD PTR SIMOV DX,MY8254_COUNT0OUT DX,ALMOV AL,AHOUT DX,ALMOV DL,DI CALL DALL YADD SI,2 INC DICMP WORD PTR SI,0JE NEAR PTR INPUTJMP NEAR PTR PLAY1BEGIN2: MOV SI,OFFSET FREQ_LIST2MOV DI,OFFSET TIME_LIST2PLAY2:MOV
17、DX,MY8255_AIN AL,DXCMP AL,82HJNZ NEAR PTR INPUTMOV DX,0FHMOV AX,4240HDIV WORD PTR SIMOV DX,MY8254_COUNT0; 裝入頻率表起始地址;裝入時間表起始地址;輸入時鐘為1MHz , 1M = 0F4240H;取出頻率值計算計數(shù)初值, 0F4240H / 輸出頻率;裝入計數(shù)初值;取出演奏相對時間,調(diào)用延時子程序; 判斷是否到曲末?; 裝入頻率表起始地址;裝入時間表起始地址;輸入時鐘為1MHz , 1M = 0F4240H;取出頻率值計算計數(shù)初值, 0F4240H / 輸出頻率OUT DX,AL;裝入計數(shù)
18、初值MOV AL,AHOUT DX,ALMOV DL,DI;取出演奏相對時間,調(diào)用延時子程序; 判斷是否到曲末?; 裝入頻率表起始地址;裝入時間表起始地址;輸入時鐘為1MHz , 1M = 0F4240H;取出頻率值計算計數(shù)初值, 0F4240H / 輸出頻率;裝入計數(shù)初值;取出演奏相對時間,調(diào)用延時子程序; 判斷是否到曲末?CALL DALL YADD SI,2INC DICMP WORD PTR SI,0JE NEAR PTR INPUTJMP PLAY2BEGIN3: MOV SI,OFFSET FREQ_LIST3MOV DI,OFFSET TIME_LIST3PLAY3:MOV DX
19、,MY8255_AIN AL,DXCMP AL,83HJNZ NEAR PTR INPUTMOV DX,0FHMOV AX,4240HDIV WORD PTR SIMOV DX,MY8254_COUNT0OUT DX,ALMOV AL,AHOUT DX,ALMOV DL,DICALL DALL YADD SI,2INC DICMP WORD PTR SI,0JE NEAR PTR INPUTJMP PLAY3DALL Y PROC;延時子程序D0:MOV CX,0010HD1:MOV AX,0F00HD2:DEC AXJNZ D2LOOP D1DEC DLJNZ D0RETDALL Y END
20、PDONE: MOV AX,4C00HINT 21HCODE ENDSEND START本程 序 中 , 分 別 設(shè) 定 了 TIME_LIST1 TIME_LIST2 TIME_LIST3 和 FREQ_LIST1FREQ_LIST2 FREQ_LIST3 ,其中 TIME_LIST 是歌曲時間表, FREQ_LIST 是歌曲頻率表。當(dāng)程序下載鏈接無誤后,執(zhí)行程序;如程序流程圖所示;K0,K1 為控制開關(guān),當(dāng)外設(shè)輸入為00 時,電子發(fā)聲單元播放“友誼天長地久”的低音調(diào);當(dāng)為 01 時,播放“兩只老虎”的低音調(diào);當(dāng) 10 時播放“友誼天長地久”的原調(diào),當(dāng) 11 時播放“兩只老虎”的原調(diào)。在播放
21、每首歌曲時,程序通過一直掃描鍵盤的輸入來判斷鍵盤輸入值是否發(fā)聲變化,如果發(fā)聲變化,則執(zhí)行相應(yīng)的程序,如果沒有發(fā)生變化則一直播放當(dāng)前播放的歌曲。六、電路的連接及調(diào)試1 .電路連接電路的連接與調(diào)試過程中,由于在試驗箱中操作, 8254 8255 芯片已內(nèi)置,所以對照著電路圖,電路的連接比較容易完成。在完成8255 單元的連接時候,由于此處沒有給出電路圖,同過與小組成員的討論,給出了電路連接方案,如圖 2 所示。在電路的連接過程中,要注意系統(tǒng)的地址總線與芯片的地址總線相連,單元的 A0 、 A1分別于系統(tǒng)的 XA0 XA1 相連, IOW 與 WR、 IOR 與 RD 、 IOY 與 CS 相連。實
22、現(xiàn)第二個程序的時候, 由于要用到開關(guān)單元按鍵,因此8255 的程序總線 PA0-PA7 要分別與開關(guān)按鍵單元中的 K_0-K_7 連接。2 .程序調(diào)試在試驗的調(diào)試過程中,會遇到不能加載的情況,檢查后發(fā)現(xiàn)是因為試驗箱與電腦的連接出現(xiàn)了問題:由于接口的松動,使得在端口測試的過程中總會出現(xiàn)接口通信失敗的情況,此時不光要檢查連接的接口是否松動, 還要在端口中選擇合適的端口, 來完成試驗箱與電腦的連接。還有,調(diào)試時會遇到?jīng)]有按照程序設(shè)計的功能來完成的情況,在這種情況下,應(yīng)該首先檢查程序是否有錯,如果沒有,再檢查試驗箱中電路連接是否有錯誤。一般來說,錯誤都出現(xiàn)在連線上面: 或者程序總線插在了地址總線處,
23、或者連線的插口接反了。 這種情況都比較容易來處理。七、調(diào)試中出現(xiàn)的問題、原因及排除方法調(diào)試過程中出現(xiàn)的問題。1 、 在程序編譯、加載、鏈接無誤的情況下,下載程序后,單擊運行,則程序會出現(xiàn)從START 直接跳到 END 的情況。遇到這種情況,最大的可能是程序中有問題,但不是明顯的問題,并不是錯誤,但是運行會直接結(jié)束。首先就要從程序檢查開始,一般這種錯誤的出現(xiàn)有可能就是長轉(zhuǎn)指令的運用錯誤,或者在設(shè)定時間、判斷程序是否執(zhí)行方面出了問題。通過仔細(xì)檢查程序和修改后,這類問題就能得到解決。2 、 調(diào)試過程中出現(xiàn)jump out of the range 的錯誤這種情況,是由于程序太長,超出了 JMP 跳轉(zhuǎn)
24、的能力范圍。解決這種問題的方法是 增加中間過渡指令,從而縮短每條指令的長度。3 、 LED 顯示單元中顯示的字體與實際字體相反。這種情況是由于把字的點陣的高低位與試驗箱的顯示方式弄反了,通過調(diào)整字的點陣的高低位的位置,就可以使此問題得到解決。4 、 在調(diào)試過程中還會出現(xiàn)一些原因不明的錯誤,如亂碼,符號等錯誤。這類錯誤的出現(xiàn)是由于在復(fù)制程序代碼時, 同時將程序的注釋一起復(fù)制到了程序中,而有些漢字的編碼不能被識別,從而出現(xiàn)了這些錯誤。解決的辦法是將出現(xiàn)錯誤行的漢字注釋刪掉。八、收獲和體會這次的課程設(shè)計,其實也就是考驗我們是否能將所學(xué)知識與動手結(jié)合起來的一次很好的機會。微機原理這門課程我們在上學(xué)期學(xué)
25、過,學(xué)習(xí)這門課程的目的就是要將所學(xué)的匯編知識運用到實際當(dāng)中來; 在這次的課程設(shè)計中, 有幾個題目我們可以選擇, 為了更好的重溫學(xué)習(xí)過的知識,我選擇了電子發(fā)聲試驗這個課題。整個設(shè)計通過了軟件和硬件上的調(diào)試。我想這對于自己以后的學(xué)習(xí)和工作都會有很大的幫助。在這次設(shè)計中遇到了很多實際性的問題,在實際設(shè)計中才發(fā)現(xiàn),書本上理論性的東西與在實際運用中的還是有一定的出入的, 所以有些問題不但要深入地理解, 而且要不斷地更正以前的錯誤思維。 一切問題必須要靠自己一點一滴的解決, 而在解決的過程當(dāng)中你會發(fā)現(xiàn)自己在飛速的提升。 對于電子發(fā)聲試驗, 其程序是比較簡單的, 主要是解決程序設(shè)計中的問題, 而程序設(shè)計是一個很靈活的東西, 它反映了你解決問題的邏輯思維和創(chuàng)新能力, 它才是一個設(shè)計的靈魂所在。因此在整個設(shè)計過程中 大部分時間是用在程序上面的。很多子程序是可以借鑒書本上的, 但怎樣銜接各個子程序才是關(guān)鍵的問題所在, 這需要對系統(tǒng)的結(jié)構(gòu)很熟悉。因此可以說系統(tǒng)的設(shè)計是軟件和硬件的結(jié)合,二者是密不可分的。通過這次課程設(shè)計我也發(fā)現(xiàn)了自身存在的不足之處, 雖然感覺理論上已經(jīng)掌握, 但在運用到實踐的過程中仍有意想不到的 困惑,經(jīng)過一番努力才得以解決。生活就是這樣,汗水預(yù)示著結(jié)果也見
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品度合同范例
- 單位租憑員工車輛合同范本
- 中糧銷售合同范本
- 化工散水出售合同范本
- seb采購合同范本
- 華為銷售合同范本
- 農(nóng)業(yè)采購合同范本格式
- 伐樹施工合同范本
- 代理業(yè)主房屋合同范本
- 寫作委托協(xié)議合同范本
- 地理-天一大聯(lián)考2025屆高三四省聯(lián)考(陜晉青寧)試題和解析
- 小巴掌童話課件
- 教科版六年級科學(xué)下冊全冊教學(xué)設(shè)計教案
- 初中數(shù)學(xué)新課程標(biāo)準(zhǔn)(2024年版)
- GB/T 19342-2024手動牙刷一般要求和檢測方法
- 2024年山東鐵投集團(tuán)招聘筆試參考題庫含答案解析
- 8款-組織架構(gòu)圖(可編輯)
- 《鋼鐵是怎樣煉成的》讀書報告
- 中學(xué)生班干部培訓(xùn)方案(共4頁)
- 凈土資糧——信愿行(11)第六講凈業(yè)三福變化氣質(zhì)
- 美的集團(tuán)公司分權(quán)手冊
評論
0/150
提交評論