(完整word版)電子發聲實驗課程設計_第1頁
(完整word版)電子發聲實驗課程設計_第2頁
(完整word版)電子發聲實驗課程設計_第3頁
(完整word版)電子發聲實驗課程設計_第4頁
(完整word版)電子發聲實驗課程設計_第5頁
免費預覽已結束,剩余17頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、微機原理課程設計課題:電子發聲設計實驗專業:學號:姓名:、課題名稱及設計組成員課題名稱電子發聲設計實驗設計人姓名學號分工程序設計及調試r線路連接及查錯報告日期、課題內容及要求課題名:電子發聲設計實驗1、要求:根據實驗提供的音樂頻率表和時間表,編寫程序控制8254,使其輸出連接到揚聲器上能發出相應的樂曲。要求至少要完成下列項目的一項(1) 可播放兩首不同的樂曲(2) 根據不同的按鍵播放不同的音樂(3) 可改變音樂的音調(4) 可顯示播放樂曲的名稱2、所設計的電路實現的功能:設計中完成了實驗要求中提出的要求。設計中實現了,用按鍵進行隨時切換兩首音樂(友誼地久天長,兩只老虎)和對所播放的當前音樂進行

2、兩種不同音調(中音和低音)的 隨時切換的控制操作,其中用總開關K_7進行播放開關的總控制,開關 K_0用于音樂播放的選擇,開關K_1用于對當前播放音樂的音調進行選擇。設計中還實現了對16X 16的LED管的控制運用點陣漢字輸出歌名。三、方案、系統組成框圖和工作原理說明1、設計方案及原理:本設計中音樂播放控制為利用對8255和8254芯片的控制操作得以實現。音樂名的輸出為利用總線對16X 16點陣地控制來實現。(1)本設計中PC發聲系統以8254的計數器0為核心。系統初始化時,計數器 0工作 在方式3的“方波發聲器”方式,同過將音樂頻率轉換為相應的計數初值,改變 計數器0的計數初值就可以使揚聲器

3、發出不同的頻率的音響。(2)發生系統控制為受 8255芯片控制,外界通過改變對8255芯片的PA 口的不同輸入來實現播放功能上的選擇。(3)演奏但音符,為利用一個音符對應一個頻率,將與一個頻率對應的計數初值寫入計數器0,揚聲器就發出相應的音調。計數器初值的計算公式為:計數初值=1MHZ +輸出頻率,其中1MHZ轉換為16進制為0F4240H。(4)控制音符的演奏時間,是通過每一個音符規定一個“單位時間”:單位時間X N=音符的演奏時間。其中,N為調試參數,一首歌只有一個調試參數。2、系統組成(電路圖):圖1.對8254與系統的連接DCXPA0PAD0PA2PA3PA4D7.PA5PA6PA7A

4、0A18255單WR元RDCSQO-MO-M)-?一元*一展-4旌-7開關按鍵單圖3.點陣漢字的接線0 0 QL1點陣L8LED顯R1工單R8元四、程序功能描述及程序流程(1)程序功能描述:如程序流程圖所示。 程序下載鏈接、并運行后,開始通過對外界按鍵掃描,來檢查應進行采取的操作,根據外界不同的輸入,完成不同的程序跳轉,從而實現相應的播放功能。其中 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; 定義為數據段INCLUDE HZDOTht.ASM ;數據字段為漢字點陣庫, 在 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顯示漢字子程序; 入口參數 : 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 單元的連接,用來實現在點陣LED 顯示單元來顯示漢字的功能。通過調用漢字存放單元的地址,在LED 單元中可以顯示出流動的字體。此程序實現的字體是“友誼天長地久”

9、。2.此程序用來實現程序流程圖中所示的功能,即通過開關來控制播放曲目的的切換和音調的改變。IOY3EQU 06C0HMY8254_COUNT0MY8254_COUNT1MY8254_COUNT2MY8254_MODEEQU IOY3+00HEQU IOY3+02HEQU IOY3+04HEQU IOY3+06H;8254 計數器0端口地址;8254 計數器1端口地址;8254 計數器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;檢查輸入,是否要設中斷問題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;取出頻率值計算計數初值, 0F4240H / 輸出頻率;裝入計數初值;取出演奏相對時間,調用延時子程序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;取出頻率值計算計數初值, 0F4240H / 輸出頻率;裝入計數初值;取出演奏相對時間,調用延時子程序; 判斷是否到曲末?; 裝入頻率表起始地址;裝入時間表起始地址;輸入時鐘為1MHz , 1M = 0F4240H;取出頻率值計算計數初值, 0F4240H / 輸出頻率OUT DX,AL;裝入計數

18、初值MOV AL,AHOUT DX,ALMOV DL,DI;取出演奏相對時間,調用延時子程序; 判斷是否到曲末?; 裝入頻率表起始地址;裝入時間表起始地址;輸入時鐘為1MHz , 1M = 0F4240H;取出頻率值計算計數初值, 0F4240H / 輸出頻率;裝入計數初值;取出演奏相對時間,調用延時子程序; 判斷是否到曲末?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本程 序 中 , 分 別 設 定 了 TIME_LIST1 TIME_LIST2 TIME_LIST3 和 FREQ_LIST1FREQ_LIST2 FREQ_LIST3 ,其中 TIME_LIST 是歌曲時間表, FREQ_LIST 是歌曲頻率表。當程序下載鏈接無誤后,執行程序;如程序流程圖所示;K0,K1 為控制開關,當外設輸入為00 時,電子發聲單元播放“友誼天長地久”的低音調;當為 01 時,播放“兩只老虎”的低音調;當 10 時播放“友誼天長地久”的原調,當 11 時播放“兩只老虎”的原調。在播放

21、每首歌曲時,程序通過一直掃描鍵盤的輸入來判斷鍵盤輸入值是否發聲變化,如果發聲變化,則執行相應的程序,如果沒有發生變化則一直播放當前播放的歌曲。六、電路的連接及調試1 .電路連接電路的連接與調試過程中,由于在試驗箱中操作, 8254 8255 芯片已內置,所以對照著電路圖,電路的連接比較容易完成。在完成8255 單元的連接時候,由于此處沒有給出電路圖,同過與小組成員的討論,給出了電路連接方案,如圖 2 所示。在電路的連接過程中,要注意系統的地址總線與芯片的地址總線相連,單元的 A0 、 A1分別于系統的 XA0 XA1 相連, IOW 與 WR、 IOR 與 RD 、 IOY 與 CS 相連。實

22、現第二個程序的時候, 由于要用到開關單元按鍵,因此8255 的程序總線 PA0-PA7 要分別與開關按鍵單元中的 K_0-K_7 連接。2 .程序調試在試驗的調試過程中,會遇到不能加載的情況,檢查后發現是因為試驗箱與電腦的連接出現了問題:由于接口的松動,使得在端口測試的過程中總會出現接口通信失敗的情況,此時不光要檢查連接的接口是否松動, 還要在端口中選擇合適的端口, 來完成試驗箱與電腦的連接。還有,調試時會遇到沒有按照程序設計的功能來完成的情況,在這種情況下,應該首先檢查程序是否有錯,如果沒有,再檢查試驗箱中電路連接是否有錯誤。一般來說,錯誤都出現在連線上面: 或者程序總線插在了地址總線處,

23、或者連線的插口接反了。 這種情況都比較容易來處理。七、調試中出現的問題、原因及排除方法調試過程中出現的問題。1 、 在程序編譯、加載、鏈接無誤的情況下,下載程序后,單擊運行,則程序會出現從START 直接跳到 END 的情況。遇到這種情況,最大的可能是程序中有問題,但不是明顯的問題,并不是錯誤,但是運行會直接結束。首先就要從程序檢查開始,一般這種錯誤的出現有可能就是長轉指令的運用錯誤,或者在設定時間、判斷程序是否執行方面出了問題。通過仔細檢查程序和修改后,這類問題就能得到解決。2 、 調試過程中出現jump out of the range 的錯誤這種情況,是由于程序太長,超出了 JMP 跳轉

24、的能力范圍。解決這種問題的方法是 增加中間過渡指令,從而縮短每條指令的長度。3 、 LED 顯示單元中顯示的字體與實際字體相反。這種情況是由于把字的點陣的高低位與試驗箱的顯示方式弄反了,通過調整字的點陣的高低位的位置,就可以使此問題得到解決。4 、 在調試過程中還會出現一些原因不明的錯誤,如亂碼,符號等錯誤。這類錯誤的出現是由于在復制程序代碼時, 同時將程序的注釋一起復制到了程序中,而有些漢字的編碼不能被識別,從而出現了這些錯誤。解決的辦法是將出現錯誤行的漢字注釋刪掉。八、收獲和體會這次的課程設計,其實也就是考驗我們是否能將所學知識與動手結合起來的一次很好的機會。微機原理這門課程我們在上學期學

25、過,學習這門課程的目的就是要將所學的匯編知識運用到實際當中來; 在這次的課程設計中, 有幾個題目我們可以選擇, 為了更好的重溫學習過的知識,我選擇了電子發聲試驗這個課題。整個設計通過了軟件和硬件上的調試。我想這對于自己以后的學習和工作都會有很大的幫助。在這次設計中遇到了很多實際性的問題,在實際設計中才發現,書本上理論性的東西與在實際運用中的還是有一定的出入的, 所以有些問題不但要深入地理解, 而且要不斷地更正以前的錯誤思維。 一切問題必須要靠自己一點一滴的解決, 而在解決的過程當中你會發現自己在飛速的提升。 對于電子發聲試驗, 其程序是比較簡單的, 主要是解決程序設計中的問題, 而程序設計是一個很靈活的東西, 它反映了你解決問題的邏輯思維和創新能力, 它才是一個設計的靈魂所在。因此在整個設計過程中 大部分時間是用在程序上面的。很多子程序是可以借鑒書本上的, 但怎樣銜接各個子程序才是關鍵的問題所在, 這需要對系統的結構很熟悉。因此可以說系統的設計是軟件和硬件的結合,二者是密不可分的。通過這次課程設計我也發現了自身存在的不足之處, 雖然感覺理論上已經掌握, 但在運用到實踐的過程中仍有意想不到的 困惑,經過一番努力才得以解決。生活就是這樣,汗水預示著結果也見

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論