微型計算機原理與接口技術第9章8255_第1頁
微型計算機原理與接口技術第9章8255_第2頁
微型計算機原理與接口技術第9章8255_第3頁
微型計算機原理與接口技術第9章8255_第4頁
微型計算機原理與接口技術第9章8255_第5頁
已閱讀5頁,還剩59頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、1第九章 可編程并行接口8255An8255A的簡介n8255A的外部引腳n8255A的內部邏輯結構n8255A的工作設定n8255A的應用28255A的簡介n8255A是一種通用的可編程并行I/O接口芯片(PPI),通過對它進行編程,可以有不同的工作方式。n通常不需要附加外部邏輯電路就可以直接為CPU與外設之間提供數據通道。38255A的外部引腳引腳名稱 信號名稱D7D0雙向數據總線PA7PA0PB7PB0PC7PC0A口雙向數據線B口雙向數據線C口雙向數據線RESET復位信號,使所有內部寄存器清零CS A1 A0片選信號, A1 和A0不同組合,可選不同端口RD WR讀、寫信號線48255

2、A內部邏輯結構n3個I/O端口A,B,C:每個都是8位并行端口,都可由程序選擇作為輸入或輸出。nA組和B組控制電路:A組包括A口和C口的上半部(PC7PC4);B組包括B口和C口的下半部(PC3PC0)。n數據總線緩沖器:雙向三態8位緩沖器,能直接與CPU數據總線對接。n讀/寫控制電路:與地址總線中的A1,A0以及有關的控制信號RD,WR,RESET相連,用來管理內部和外部數據,狀態或控制字的傳送。58255A的端口尋址引 腳尋址的端口CSA1A00000100110101端口A端口B端口C控制字寄存器本芯片沒有被選中68255A工作設計n8255A的控制字n方式控制字n對C口按位置位/復位控

3、制字n8255A的方式選擇7方式控制字D7D6D5D4D3D2D1D0方式標志位D7=100A口方式001A口方式11A口方式20A口輸出1A口輸入0C口高四位輸出1C口高四位輸入0B口方式01B口方式10B口輸出1B口輸入0C口低四位輸出1C口低四位輸入8舉例n設8255A的控制字寄存器的端口地址為63H,若A口工作于方式1,B口工作于方式0 ,A口、B口和C口的高四位作輸入,C口的低四位作輸出,寫出方式控制字,并寫入8255A的控制字寄存器中。9對C口按位置位/復位控制字D7D6D5D4D3D2D1D0該類型控制字標志位D7=0任意值000選中PC0001選中PC1010選中PC2011選

4、中PC3100選中PC4101選中PC5110選中PC6111選中PC70復位1置位10舉例n設8255A的口地址為60H63H,PC5平時為低電平,要求從PC5引腳輸出一個正脈沖。試編寫程序段。118255A的方式選擇n方式0基本輸入/輸出方式n方式1選通輸入/輸出方式,A口和B口作為數據的輸入/輸出端口,C口的高5位作為A口的聯絡信號,C口低3位作為B口聯絡信號。n方式2雙向選通傳送方式,只有通道A工作在這種方式,C口的高5位作為A口的聯絡信號。128255A方式0n8255A的每個口都作為基本的輸入和輸出口nA口、B口、C口的高4位、C口的低4位都可獨立設定為輸入口和輸出口;這樣8255

5、A在方式0時,各個端口的輸入、輸出可以有16種不同的組合138255A方式1n通道A:包括一個8位數據端口(端口A),和一個5位的控制端口(端口C的高5位PC7PC3)n通道B:包括一個8位數據端口(端口B),和一個3位的控制端口(端口C的低3位PC2PC0)148255A方式1輸入C口各引腳定義通道 C口各引腳定義APC7,6 用作輸入/輸出信號,由方式控制字D3位設定PC5IBF,端口A的輸入緩沖器滿信號PC4STB,端口A的選通輸入控制信號PC3INTR,通道A發出的中斷請求信號BPC2STB,端口B的選通輸入控制信號PC1IBF,端口B的輸入緩沖器滿信號PC0INTR,通道B發出的中斷

6、請求信號158255A方式1輸入中斷的允許與禁止通道號允許中斷禁止中斷APC4=1PC4=0BPC2=1PC2=0168255A方式1輸出C口各引腳定義通道 C口各引腳定義APC7OBF,端口A輸出緩沖器滿信號PC6ACK,端口A的響應輸入信號PC5,4用作輸入/輸出信號,由方式控制字D3位設定PC3INTR,通道A發出的中斷請求信號BPC2 ACK,端口B的響應輸入信號PC1OBF,端口B輸出緩沖器滿信號PC0INTR,通道B發出的中斷請求信號178255A方式1輸出中斷的允許和禁止通道號允許中斷禁止中斷APC6=1PC6=0BPC2=1PC2=0188255A方式2n該方式只能用于端口A,

7、A口既能發送數據,又能接收數據nC口的高5位PC7PC3,用作A口的控制信息和狀態信息n端口B可以工作在方式0或方式1,既可以作為輸入,也可以作為輸出198255A方式2 C口各引腳的定義nPC7=OBF,輸出,輸出緩沖器滿信號nPC6=ACK,輸入,由外設發來的對OBF的響應信號nPC5=IBF,輸出,輸入緩沖器滿信號nPC4=STB,外設發來的選通信號nPC3=INTR,輸出,雙向工作時,向CPU發出中斷請求信號nPC2PC0: 若B口工作在方式0,可作為基本輸入/輸出口;若B口工作在方式1,可作為控制信號和狀態信號208255A方式2中斷的允許和禁止通道號輸入/輸出允許中斷禁止中斷A輸入

8、輸出PC4=1PC6=1PC4=0PC6=0218255A的應用n 用LED顯示開關狀態n 鍵盤接口n 8255A在PC/XT機中的應用n PC/XT機中的揚聲器發聲程序設計接口n 七段數碼管數字顯示221、用LED顯示開關狀態n邏輯電路圖n8255A端口地址的確定n8255A工作方式設定n程序代碼23邏輯電路圖寫出8255A各端口的地址?248255A工作方式設定端口端口地址工作方式輸入/輸出A0F0H0輸入B0F2H0輸出25程序代碼MOV DX,0F6HMOV AL,10010000BOUT DX,ALNEXT:MOV DX,0F0HIN AL,DX;從A口讀入開關狀態MOV DX,0F

9、2HOUT DX,AL;B口LED顯示開關狀態JMP NEXT262、鍵盤接口n按鍵開關的比較n鍵盤接口電路n8255A工作方式設定n鍵盤掃描原理n程序代碼27按鍵開關的比較開關種類價格 性能應用場合機械式便宜 易產生抖動,手感好計算機鍵盤薄膜式便宜 密封性好家電、醫療儀器電容式較貴 無抖動,需要附加電路測電容的變化車間電器中霍爾效應式貴密封性好,壽命長,響應快精密儀器28鍵盤接口電路44鍵盤矩陣通過A口向某一行輸出0,再通過B口低4位讀取列值,如果有0值,則該行有鍵按下298255A工作方式設定端口端口地址工作方式輸入/輸出A0FF9H0輸出B0FFBH0輸入30鍵盤掃描原理所有鍵都釋放了所

10、有鍵都釋放了?有鍵按下有鍵按下?獲取鍵盤掃描碼獲取鍵盤掃描碼否是是消除抖動消除抖動初始化初始化否有鍵按下有鍵按下?是否結束結束31獲取鍵盤掃描碼過程該行有鍵按下該行有鍵按下?是否掃描第掃描第0行行該行有鍵按下該行有鍵按下?是否掃描第掃描第1行行該行有鍵按下該行有鍵按下?是否掃描第掃描第2行行該行有鍵按下該行有鍵按下?是否掃描第掃描第3行行出錯處理出錯處理獲取鍵盤掃描碼獲取鍵盤掃描碼32鍵盤掃描碼的設置PB7PB6PB5PB4PB3PB2PB1PB0指示按鍵所在行有且僅有一位為0,哪一位為0表示哪一行有鍵按下指示按鍵所在列有且僅有一位為0,哪一位為0表示哪一列有鍵按下第0行第3行第0列第3列如果

11、按鍵位于第1行第2列,寫出該鍵的掃描碼。33鍵掃描碼和鍵值的對應掃描碼77H7BH7DH7EH0B7H0BBH0BDH0BEH鍵值01234567掃描碼0D7H0DBH0DDH0DEH0E7H0EBH0EDH0EEH鍵值89ABCDEF某鍵的鍵值一般人為設定,本例中鍵掃描碼和鍵值的對應關系如下表所示:34程序代碼n在數據段中設置鍵盤掃描碼表n8255初始化n檢查按鍵n獲取鍵盤掃描碼35在數據段中設置鍵盤掃描碼表DATA SEGMENTTABLE DB 77H,7BH,7DH,7EH DB 0B7H,0BBH,0BDH,0BEH DB 0D7H,0DBH,0DDH,0DEH DB 0E7H,0E

12、BH,0EDH,0EEHDATA ENDS每個掃描碼所在單元的偏移量即為該掃描碼對應的鍵值。每個掃描碼所在單元的偏移量即為該掃描碼對應的鍵值。368255初始化代碼MOV DX,0FFFHMOV AL,10000010BOUT DX,AL37檢查按鍵的工作過程n首先檢查所有鍵是否都處于松開狀態:通過A口向所有行送0,然后讀取列值,即讀取B口的低四位,如果全部為1,說明所有的鍵都松開了;如果至少有一位為0的話,說明至少有一個鍵仍然處于按下的狀態,則等待。38檢查按鍵的代碼MOV DX,0FF9HMOV AL,0OUT DX,ALMOV DX,0FFBHWAIT1:IN AL,DXAND AL,0

13、FHCMP AL,0FHJNE WAIT1WAIT2:IN AL,DXAND AL,0FHCMP AL,0FHJE WAIT2通過A口向所有行輸出0從B口讀取列值檢查所有按鍵是否都松開了,如沒有,則等待如果都松開了則等待按鍵39延時去抖動n由于機械開關的按鈕從開始到按下接觸穩定,需要經過一段時間的抖動過程,這個過程一般持續20ms。n用軟件的方法解決抖動問題:在程序安排一定的延時MOV CX,COUNTLOOP $其中的COUNT的值與具體的CPU和主頻有關40COUNT值的計算NfTTNTCOUNTCLKDDDTCLKfN需要延時的時間(秒)CPU的時鐘頻率(Hz)LOOP 指令執行時所需的

14、時鐘周期數8086 CPU的時鐘頻率為5MHz,LOOP 指令執行需要17個時鐘周期數,如果要延時20毫秒,則COUNT值為5866,即16EAH41鍵盤掃描碼的獲取n如果按鍵有效的話,這時可以讀取鍵盤的掃描碼。實質就是判斷被按下的鍵的行號和列號n采用逐行掃描的辦法:先掃描第0行,即通過A口輸出一個第0位為0其余位為1的數,在從B口讀取列值,即B口的低四位,如果這四位均為1的話,說明第0行沒有鍵按下,繼續掃描第1行;如果這四位有且僅有一位為0的話,說明被按下的鍵就在第0行,然后從B口讀取被按下的鍵的掃描碼。42鍵盤掃描碼的獲取程序MOV AL,0FEHNR:PUSH AXMOV DX,0FF9

15、HOUT DX,ALMOV DX,0FFBHIN AL,DXAND AL,0FHCMP AL,0FHJNE ENCODEPOP AXROL AL,1JMP NRENCODE: MOV BX,000FHIN AL,DXNEXT:CMP AL,TABLEBXJE DONEDEC BXJNS NEXTMOV AH,1JMP EXITDONE: MOV AL,BLMOV AH,0EXIT:HLT掃描第0行檢查是否有鍵按下如果有獲取鍵值如沒掃描下一行有效鍵值送AL433、8255A在PC/XT機中的應用n硬件連接n8255A的工作方式n軟件編程(大家自學)44硬件連接458255A各端口的工作方式端口號

16、端口地址工作方式輸入/輸出功能A60H0輸入1、機器剛上電自檢,輸出,輸出當前檢測部件的標志,以便查錯2、進入正常工作狀態,輸入,讀取鍵盤的8為掃描碼B61H0輸出用來輸出若干控制信號C62H0輸入用來讀取系統內部的狀態464、PC/XT機揚聲器發聲程序設計nPC/XT機中的揚聲器接口電路n揚聲器發聲原理n音樂簡譜音調和時長n音樂程序設計47PC/XT機中的揚聲器接口電路48揚聲器發聲原理n揚聲器發聲主要決定于上圖中A和B的波形,由此有兩種方式:nB點固定為高電平,A點為方波(見教材第271頁 例7-9)nA點固定為高電平,B點為方波(如果B點的方波的頻率固定,則為純音;如果B點方波的頻率不斷

17、變化,則能夠演奏美妙的音樂)本例采用第二種方法。49一首樂曲組成樂曲的每個音符的頻率值和持續時間(節拍)是樂曲程序發聲所需要的兩個數據。5051音符-頻率對照表音符12345671頻率131 147 165 175 196 220 246 262音符234567i頻率294 330 349 392 440 494 523. . . . . . .52音符節拍-持續時間的對應n在2/4中,四分音符為一節,每一小節二拍,全音符持續2拍,二分音符持續1拍,四分音符持續半拍,八分音符持續四分之一拍。n如果給全音符分配1s(10010ms)的時間,則二分音符的持續時間為0.5s(5010ms),四分音符

18、持續時間0.25s(2510ms),八分音符持續時間0.125s(12.510ms)。53樂曲轉化為頻率表和持續時間表Freq dw 262,294,330,294,330,392,330,294,262,294,440 dw 262,294,330,294,330,392,330,294,262,294 Duration dw 10 dup(50),100 dw 8 dup(50),2 dup(100)注:Duration表中的數值為10ms的倍數。54頻率表中各種頻率方波的產生n通過8253通道2產生:n工作方式設為3;n計數初值Nfclk/f (f即為頻率表中某個頻率值,fclk即為CL

19、K2端時鐘頻率1.19318MHz)n8253初始化代碼558253初始化代碼MOV AL,10110110BOUT 43H,ALMOV DX,0012HMOV AX,34DCHDIV DI ;DI為頻率表中某頻率值為頻率表中某頻率值OUT 42H,ALMOV AL,AHOUT 42H,ALDX:AX為8086CPU的主頻AX為通道2的計數初值56持續時間表中的10ms延時的產生n通過硬件產生固定時間的延時,與具體的CPU和主頻無關。n硬件定時的方法:通過監控8255 B口(61H)的PB4,使PB4每15.08us觸發一次,以產生一個固定不變的時間基準。5710ms延時代碼waitf proc nearpush axwaitf1: in al,61hand al,10h;PB4cmp al,ahje waitf1mov ah,alloop waitf1pop axretwaitf endpMOV CX,633CALL WAITFWAITF子程序產生15.08us的延時63315.0810ms58完整代碼n在數據段建立樂曲的頻率和持續時間表n8253通道2工作方式初始化n在頻率表取出某頻率值,轉換為8253初始化時寫入的計數初值n產生某一頻率

溫馨提示

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

評論

0/150

提交評論