微機(jī)接口實驗報告_第1頁
微機(jī)接口實驗報告_第2頁
微機(jī)接口實驗報告_第3頁
微機(jī)接口實驗報告_第4頁
微機(jī)接口實驗報告_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、河南科技學(xué)院微機(jī)原理及接口技術(shù)課程設(shè)計報告題 目: 電子音樂 小組成員: 指導(dǎo)老師: 完成時間: 2014年6月5號 目錄1.設(shè)計目的22.設(shè)計要求與內(nèi)容23.設(shè)計及原理23.1設(shè)計思路23.2硬件總體框圖(總體框圖后再分別對各模塊電路說明)24.軟件設(shè)計25.總結(jié)26 參考文獻(xiàn)27附錄(一般附上源程序代碼)21.設(shè)計目的通過對8253控制芯片和8255芯片的綜合使用與了解,實現(xiàn)音樂彩燈的配合控制設(shè)計的功能。2.設(shè)計要求與內(nèi)容1.1設(shè)計要求: 彩燈跟音樂的頻率配合控制(1)用8253定時器T0方式3來產(chǎn)生歌譜中各音符對應(yīng)頻率的方波。(2)由OUT0輸出驅(qū)動喇叭 。1.2 任務(wù)內(nèi)容(1)熟練掌握

2、8255控制芯片的作用,理解并運(yùn)用,運(yùn)用延遲函數(shù)跟頻率調(diào)節(jié)實 現(xiàn)音樂跟LED燈的同步進(jìn)行,采用8255跟8253芯片控制喇叭跟LED燈。3.設(shè)計及原理3.1設(shè)計思路 本次課程設(shè)計是電子音樂控制器,主要是用8255控制器跟LED燈,喇叭連 接組成音樂控制。電子音樂的設(shè)計與實現(xiàn)主要是通過編寫匯編語言程序利用8255的IOC口對燈進(jìn)行控制,通過控制8253定時器來產(chǎn)生不同頻率的方法,驅(qū)動喇叭發(fā)出不同音階的聲音,再利用延時來控制發(fā)音時間的長短,即可控制音調(diào)中的節(jié)拍。把樂譜中的音符和相應(yīng)的節(jié)拍變換為定時常數(shù)和延時常數(shù),作為數(shù)據(jù)表格存放在存儲器中,當(dāng)延時時間到,再查下一個音符的定時常數(shù)和延時常數(shù)。3.2硬

3、件總體框圖(總體框圖后再分別對各模塊電路說明)8255連接圖:4.軟件設(shè)計程序流程圖的簡單介紹5.總結(jié)(1)想法很重要。設(shè)計的思想很大程度上決定了實驗的高度。實現(xiàn)音樂的播放可以考驗自己學(xué)的知識,利用8253跟8255實現(xiàn)LED燈結(jié)合使用,來實現(xiàn)LED燈隨著音樂的旋律閃爍。(2)匯編語言知識和微機(jī)原理知識要扎實。通過這次實驗,我們小組三個成員受益匪淺。實驗的完成需要扎實的基礎(chǔ)知識,于是我們回去復(fù)習(xí)了匯編語言的書籍,查閱了相關(guān)文獻(xiàn)和資料。這次實驗不僅是對課程內(nèi)容掌握程度的一次考驗,而且是一次很好的訓(xùn)練機(jī)會,訓(xùn)練了我們查找資料的能力。通過此次課程設(shè)計的鍛煉,自己的動手能力有了很大的提高,查找問題、解

4、決問題的能力也有了相應(yīng)的進(jìn)步。(3)做實驗,總要信。在本次的實驗過程中,遇到很多我們無法解決的問題。經(jīng)過我們小組成員間的相互討論,尋求同學(xué)的指導(dǎo),就把自己發(fā)覺不到的錯誤找出來了,從而繼續(xù)進(jìn)行實驗。過程中遇到很多困難,幾天都呆在寒冷的實驗室,途中也會遇到挫折,毫無頭緒的時候。毅力和堅持的勇氣很重要,支撐我們走過實驗的每一步。本次試驗雖然還存在不足的地方,但這是我們努力過的成果和結(jié)晶,紅綠燈自動轉(zhuǎn)換,揚(yáng)聲器鳴叫拿一剎那,我們都欣慰地尖叫了。陽光總在風(fēng)雨后,做實驗,總要信。6 參考文獻(xiàn)微型計算機(jī)原理與接口技術(shù)呂林濤主編,科學(xué)出版社微機(jī)原理與單片機(jī)課程設(shè)計教學(xué)大綱 揚(yáng)聲器的發(fā)聲原理清華大學(xué)出

5、版社7附錄(一般附上源程序代碼)IO_8253_0DW0060H; 8253 計數(shù)器 0 口地址緩沖區(qū)IO_8253_1DW0061H; 8253 計數(shù)器 1 口地址緩沖區(qū)IO_8253_2DW0062H; 8253 計數(shù)器 2 口地址緩沖區(qū)IO_8253_MDW0063H; 8253 控制口地址緩沖區(qū) Base_addressEQU0A600H; 獲取 PCI 卡 PNP 設(shè)備配置資源后直接加入基地址參數(shù)DELAY_SETEQU500H; 約 100ms 根據(jù) PC 機(jī)速度調(diào)整其參數(shù)!IO_8255_ADW0070H; 8255 A 口地址緩沖區(qū)IO_8255_BDW0071H; 8255

6、B 口地址緩沖區(qū)IO_8255_CDW0072H; 8255 C 口地址緩沖區(qū)IO_8255_MDW0073H; 8255 控制口地址緩沖區(qū) ;Base_addressEQU0A400H; 獲取 PCI 卡 PNP 設(shè)備配置資源后直接加入基地址參數(shù)TABDW0B2EH;1DB01HDW0B2EH;1DB01HDW0B2EH;1DB02HDW0EF2H;5.DB02HDW08E0H;3DB01HDW08E0H;3DB01HDW08E0H;3DB02HDW0B2EH;1DB02HDW0B2EH;1DB01HDW08E0H;3DB01HDW0779H;5DB02HDW0779H;5DB02HDW08

7、64H;4DB01HDW08E0H;3DB01HDW09F7H;2DB02HDW0000HDB02HDW0FFFFHDW0000HDB02HDW0FFFFHMY_DATA ENDsMY_CODE SEGMENT PARA 'CODE'MY_PROCPROCFARASSUME CS:MY_CODE,DS:MY_DATA,SS:MY_STACK.386; 386 模式編譯START:MOVAX,MY_DATAMOVDS,AXMOVES,AXMOVAX,MY_STACKMOVSS,AXCALLFINDPCI; 自動查找 PCI 卡資源及 IO 口基地址MOVAX,word ptr I

8、O_base_address ;MOVAX,Base_address; 直接加入本機(jī) PCI卡 IO 口基址參數(shù) ADDIO_8253_0,AX; 目標(biāo)芯片偏移地址PC 機(jī)基地址 -> 口地址緩沖區(qū) ADDIO_8253_1,AX; 目標(biāo)芯片偏移地址PC 機(jī)基地址 -> 口地址緩沖區(qū) ADDIO_8253_2,AX; 目標(biāo)芯片偏移地址PC 機(jī)基地址 -> 口地址緩沖區(qū) ADDIO_8253_M,AX; 目標(biāo)芯片偏移地址PC 機(jī)基地址 -> 口地址緩沖區(qū) ADDIO_8255_A,AX; 目標(biāo)芯片偏移地址PC 機(jī)基地址 -> 口地址緩沖區(qū) ADDIO_8255_B,

9、AX; 目標(biāo)芯片偏移地址PC 機(jī)基地址 -> 口地址緩沖區(qū) ADDIO_8255_C,AX; 目標(biāo)芯片偏移地址PC 機(jī)基地址 -> 口地址緩沖區(qū) ADDIO_8255_M,AX; 目標(biāo)芯片偏移地址PC 機(jī)基地址 -> 口地址緩沖區(qū);*;/* 主程序開始 */*;*;MAIN: MOV DX,IO_8253_M; 8253 控制口地址MOVAL,36H; 定時器0,先讀寫低字節(jié)后高字節(jié),方式3,二進(jìn)制計數(shù)OUTDX,ALCALL DELAY_500ms; 調(diào)用延時MOVBX,OFFSET TABMAIN1:MOVAX,BXCMPAX,0000HJZSTOPCMPAX,0FFFF

10、HJZMAINCMP AX,0B2EHJZ AACMP AX,09F7HJZ ABCMP AX,08E0HJZ ACCMP AX,0864HJZ ADCMP AX,0779HJZ AEBB:MOV DX,IO_8253_0; 8253 計數(shù)器 0 口地址OUTDX,ALCALL DELAY_500ms; 調(diào)用延時MOVAL,AHOUTDX,ALCALL DELAY_500ms; 調(diào)用延時INCBXINCBXMOVCX,0000HMOVCL,BXMAIN2:CALL DELAY_500ms; 調(diào)用延時LOOPMAIN2MAIN3:INCBXCALL DELAY_500ms; 調(diào)用延時CALLBR

11、EAK CALLDELAY_500ms; 調(diào)用 500ms 延時 JMP MAIN1; 繼續(xù)AA:MOV DX,IO_8255_M; 8255 控制口地址 MOV AL,10011001B; 設(shè)置 8255 控制字 A 口輸入,B 口輸出,C 口輸入 OUT DX,AL; 寫 8255 控制字 MOV DX,IO_8255_B MOV AL,11111110B OUT DX,AL JMP BBAB:MOV DX,IO_8255_M; 8255 控制口地址 MOV AL,10011001B; 設(shè)置 8255 控制字 A 口輸入,B 口輸出,C 口輸入 OUT DX,AL; 寫 8255 控制字

12、MOV DX,IO_8255_B MOV AL,11111101B OUT DX,AL JMP BBAC:MOV DX,IO_8255_M; 8255 控制口地址 MOV AL,10011001B; 設(shè)置 8255 控制字 A 口輸入,B 口輸出,C 口輸入 OUT DX,AL; 寫 8255 控制字 MOV DX,IO_8255_B MOV AL,11111011B OUT DX,AL JMP BBAD:MOV DX,IO_8255_M; 8255 控制口地址 MOV AL,10011001B; 設(shè)置 8255 控制字 A 口輸入,B 口輸出,C 口輸入 OUT DX,AL; 寫 8255

13、控制字 MOV DX,IO_8255_B MOV AL,11110111B OUT DX,AL JMP BBAE:MOV DX,IO_8255_M; 8255 控制口地址 MOV AL,10011001B; 設(shè)置 8255 控制字 A 口輸入,B 口輸出,C 口輸入 OUT DX,AL; 寫 8255 控制字 MOV DX,IO_8255_B MOV AL,11101111B OUT DX,AL JMP BBAF:MOV DX,IO_8255_M; 8255 控制口地址 MOV AL,10011001B; 設(shè)置 8255 控制字 A 口輸入,B 口輸出,C 口輸入 OUT DX,AL; 寫 8

14、255 控制字 MOV DX,IO_8255_B MOV AL,11011111B OUT DX,AL JMP BBAG:MOV DX,IO_8255_M; 8255 控制口地址 MOV AL,10011001B; 設(shè)置 8255 控制字 A 口輸入,B 口輸出,C 口輸入 OUT DX,AL; 寫 8255 控制字 MOV DX,IO_8255_B MOV AL,10111111B OUT DX,AL JMP BBAH:MOV DX,IO_8255_M; 8255 控制口地址 MOV AL,10011001B; 設(shè)置 8255 控制字 A 口輸入,B 口輸出,C 口輸入 OUT DX,AL;

15、 寫 8255 控制字 MOV DX,IO_8255_B MOV AL,11111111B OUT DX,AL JMP BB MY_PROCENDpSTOPPROCNEARMOV DX,IO_8253_M; 8253 控制口地址MOVAL,36H; 定時器0,先讀寫低字節(jié)后高字節(jié),方式3,二進(jìn)制計數(shù)OUTDX,ALCALL DELAY_500ms; 調(diào)用延時INCBXINCBXMOVCX,0000HMOVCL,BXSTOP1:CALL DELAY_500ms; 調(diào)用延時LOOPSTOP1JMPMAIN3STOPENDP;*;/* 延時子程序 */*;*;DELAY_500msPROC NEAR

16、PUSHFPUSHCXMOV CX,DELAY_SET; 延時 100ms 參數(shù)值DELAY1:PUSH CX MOV CX,-1DELAY2: DEC CX JNZ DELAY2 POP CX DECCX JNZDELAY1 POPCX POPF RETDELAY_500msENDp;*;/* 按任意鍵退出 */*;*;BREAK PROC NEARPUSHFPUSHAXPUSHDX MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21HRETURN:POPDXPOPAXPOPFRETBREAK ENDP;*;/* 找卡子程

17、序 */*;*;FINDPCI PROCNEAR; 查找 PCI卡資源并顯示PUSHADPUSHFDMOVEBX,080000000HFINDPCI_next:ADDEBX,100HCMP EBX,081000000HJNZ FINDPCI_continueMOV DX,OFFSET pcicardnotfind; 顯示未找到 PCI 卡提示信息MOV AH,09HINT 21HMOV AH,4CHINT 21H; 退出FINDPCI_continue:MOV DX,IO_port_addreMOV EAX,EBXOUT DX,EAX; 寫地址口MOV DX,IO_port_dataIN EAX,DX; 讀數(shù)據(jù)口CMP EAX,IO_PLX_IDJNZ FINDPCI_next; 檢查是否發(fā)現(xiàn) PCI 卡MOV DX,IO_port_addreMOV EAX,EBXADD EAX,BADR2OUT DX,EAX; 寫地址口MOV DX,IO_port_dataIN EAX

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論