微機原理與接口技術_第1頁
微機原理與接口技術_第2頁
微機原理與接口技術_第3頁
微機原理與接口技術_第4頁
微機原理與接口技術_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一. 實驗名稱:發(fā)聲器二. 功能及使用方法:設計一個電子琴發(fā)聲程序,并在運行時通過實驗箱上的揚聲器發(fā)聲,并且當按下數(shù)字114時,依次發(fā)出1,2,3,4,5,6,7的低音和1 , 2, 3, 4, 5, 6, 7的中音。并在實驗箱上的發(fā)聲器上發(fā)聲,這肯 定需要有發(fā)聲程序,驅動發(fā)聲程序,還有鍵盤掃描程序,及為了能夠聽見清脆的字符音還得對程序進行 必要的延時。利用 8254芯片所提供轉化后的頻率送到發(fā)聲單元進行發(fā)聲及8255芯片送提供的輸入輸出功能,來完成從鍵盤的輸入到發(fā)聲裝置發(fā)聲的控制。電子發(fā)聲原理:一個音符對應一個頻率,將對應一個音符頻率的方波通到揚聲器上,就可以發(fā)出這個音符的聲 音。將一段樂曲

2、的音符對應頻率的方波一次送到揚聲器,就可以演奏出這段樂曲。 利用8254的“方波發(fā)生器”,將相應的一種頻率的計數(shù)初值寫入計數(shù)器,就可以產生對應頻率的方波。計數(shù)初值的 計算如下:計數(shù)初值=輸入時鐘輸出頻率例如輸入時鐘采用 1MHZ,要得到800HZ的頻率,計數(shù)初值即為1000000/800。音符與表的對照關系如上表所示。對于每一個音符的演奏時間,可以通過軟件延時來處理。首先確定單位延時子程序(根據CPU的頻率不同而有所變化)。然后確定每個音符演奏需要幾個單位延時,將此值送入寄存 器,再調用延時子程序即可。三. 實驗器件:通過實驗箱上的揚聲器發(fā)聲,并且當按下數(shù)字114時,依次發(fā)出1,2,3,4,5

3、,6,7的低音和1 , 2, 3, 4, 5, 6, 7的中音。并在實驗箱上的發(fā)聲器上發(fā)聲。選用器件:8254和8255芯片各一片,微機一臺,TPC-H通用微機接口實驗系統(tǒng)一臺,揚聲器和導線若干四. 電路連接圖8254部分接線圖xirxi-DO-(i.TEoirCLKDADAl-UROCTI)RDi CS82 34單冗oO CLK第統(tǒng)總線O SPK電子段聲輕元8255部分接線圖XEVAnXD7XA1XA21UV#lORfrOOOOOooPBUDOPB1PB2PB3D7PB4PBSADAl岷PB6PB7PADPAIFA2JWRDCSPCI1*C3廠iCaa-CLQOB c nE碼W.五. 各子程

4、序功能1為8255和8254所定義的端口地址:I0Y0 EQU 06C0HMY8254_COUNTO EQU I0Y0+00HMY8254_COUNT1 EQU I0Y0+02HMY8254_COUNT2 EQU I0Y0+04HMY8254_MODE EQU I0Y0+06HMY8255_A EQU 0640HMY8255_B EQU 0642HMY8255_C EQU 0644HMY8255_MODE EQU 0646H2頻率表及所對應的時間表:FREQ_LIST DW 262H,294H,330H,349H,392H,440H,496HDW 523H,587H,659H,698H,784

5、H,880H,988HDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H3定義8255和8254的控制字MOV DX,MY8255_MODEMOV AL,81HOUT DX,ALMOV DX,MY8254_MODEMOV AL,36HOUT DX,AL4.CCSCAN子程序實現(xiàn)取出按鍵值并輸入A 口(清屏子程序)CCSCAN:MOV AL,00HMOV DX,MY8255_A OUT DX,ALMOV DX,MY8255_C IN AL,DX NOT ALAND AL,0FHRET5.Play

6、輸出發(fā)音的子程序PLAY PROC MOV AH,0 MOV SI,AX SHL SI,1MOV DX,0FH MOV AX,4240H DIV WORD PTR SIMOV DX,MY8254_COUNT0 OUT DX,AL MOV AL,AH OUT DX,ALRETPLAY ENDP6.延時子程序DALL Y PROCD0: MOV CX,0010HD1: MOV AX,02HD2: DEC AXJNZ D2LOOP D1 DEC DLJNZ D0RETDALL Y ENDP7.按鍵掃描功能COLUM:MOV AL,CHMOV DX,MY8255_AOUT DX,ALMOV DX,MY

7、8255_CIN AL,DXL1:TEST AL,01HJNZ L2MOV AL,00HJMP KCODEL2:TEST AL,02HJNZ L3MOV AL,04HJMP KCODEL3:TEST AL,04HJNZ L4MOV AL,08HJMP KCODEL4:TEST AL,08HJNZ NEXTMOV AL,0CHKCODE: ADD AL,CLCALL PLAYPUSH AXKON:CALL DALL YCALL CCSCANJNZ KONPOP AXJMP BEGIN1六 源程序清單I0Y0 EQU 06C0HMY8254_COUNT0 EQU I0Y0+00HMY8254_CO

8、UNT1 EQU I0Y0+02HMY8254_COUNT2 EQU I0Y0+04HMY8254_MODE EQU I0Y0+06HMY8255_A EQU 0640HMY8255_B EQU 0642HMY8255_C EQU 0644HMY8255_MODE EQU 0646HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTFREQ_LIST DW 262H,294H,330H,349H,392H,440H,496HDW 523H,587H,659H,698H,784H,880H,988HDTABLE DB 3FH,06H,

9、5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODEMOV AL,81HOUT DX,ALMOV DX,MY8254_MODEMOV AL,36HOUT DX,ALBEGIN1:CALL CCSCANJNZ INK1JMP BEGIN1INK1:CALL CCSCANJNZ INK2JMP BEGIN1INK2:MOV CH,0FEHMOV CL,00HCO

10、LUM:MOV AL,CHMOV DX,MY8255_AOUT DX,ALMOV DX,MY8255_CIN AL,DXL1:TEST AL,01HJNZ L2MOV AL,00HJMP KCODEL2:TEST AL,02HJNZ L3MOV AL,04HJMP KCODEL3:TEST AL,04HJNZ L4MOV AL,08HJMP KCODEL4:TEST AL,08HJNZ NEXTMOV AL,0CHKCODE: ADD AL,CLCALL PLAYPUSH AXKON:CALL DALL YCALL CCSCANJNZ KONPOP AXJMP BEGIN1NEXT:INC CLMOV AL,CHTEST AL,08HJZ KERRROL AL,1MOV CH,ALJMP COLUMKERR:JMP BEGIN1CCSCAN:MOV AL,00HMOV DX,MY8255_AOUT DX,ALMOV DX,MY8255_CIN AL,DXNOT ALAND AL,0FHRETPLAY PROCMOV AH,0MOV SI,AXSHL SI,1MOV DX,0FHMOV AX,4240HDIV WORD PTR SIM

溫馨提示

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

評論

0/150

提交評論