微型計算機原理可編程并行接口_第1頁
微型計算機原理可編程并行接口_第2頁
微型計算機原理可編程并行接口_第3頁
微型計算機原理可編程并行接口_第4頁
微型計算機原理可編程并行接口_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第十章 可編程并行接口8255A,10.1 可編程并行接口8255A 10.2 8255A的控制字 10.3 方式0基本的輸入/輸出方式 10.4 方式1選通的輸入輸出方式 10.5 方式2雙向傳輸方式 10.6 8255A的應用舉例,10.1 可編程并行接口8255A,一、8255的引腳,10.1 可編程并行接口8255A,二、8255A的內部結構,10.1 可編程并行接口8255A,8255A是INTER系列的并行接口芯片。它是可編程的,可以通過軟件來設置芯片的工作方式。 1數(shù)據(jù)端口A、B、C 它有三個輸入/輸出端口:Port A、Port B和Port C。每一個端口都是8位,都可以選擇

2、作為輸入或輸出。 每個端口:輸入帶緩沖寄存器, 輸出帶鎖存寄存器。 2A組控制和B組控制 這是兩組根據(jù)CPU的命令字控制8255A工作方式的電路。它們有控制寄存器,接受CPU輸出的命令字,然后分別決定兩組的工作方式,也可根據(jù)CPU的命令字對端口C的每一位實現(xiàn)按位“復位”或“置位”操作。,10.1 可編程并行接口8255A,A組控制電路端口A和端口C的上半部。 B組控制電路端口B和端口C的下半部。 3讀/寫控制邏輯電路 它與CPU的地址總線中的A1、A0以及有關的控制信號相連,由它控制把CPU的控制命令或輸出數(shù)據(jù)送至相應的端口;也由它控制把外設的狀態(tài)信息或輸入數(shù)據(jù)通過相應的端口,送至CPU。 4

3、數(shù)據(jù)總線緩沖器 是一個三態(tài)雙向8位緩沖器,它是8255A與系統(tǒng)數(shù)據(jù)總線的接口。,10.1 可編程并行接口8255A,5.讀寫控制信號,RESET:復位信號,低電平有效。 D7D0 :和數(shù)據(jù)線相連。 CS :芯片選擇信號,低電平有效。 RD :芯片讀出信號,低電平有效。 WR :芯片寫入信號,低電平有效。 A1、A0:端口選擇信號。 A1、A0=00,選中端口A; A1、A0=01,選中端口B; A1、A0=10,選中端口C; A1、A0=11,選中控制端口;,10.1 可編程并行接口8255A,提問1:,并行接口芯片8255與CPU接口有哪些信號線,每個信號的用途是什么? 8255占用幾個端口

4、地址?各個端口分別對應什么? 端口C可以分為兩組嗎?,10.1 可編程并行接口8255A,10.2 8255A的控制字,控制字:分為兩類 端口的方式選擇控制字,可使8255A的3個數(shù)據(jù)端口工作在不同的方式。 C端口按位置1/0控制字,它可使C端口中的任何一位進行置位或復位。 8255A的3種基本工作方式: 方式0:基本的輸入/輸出方式 方式1:選通的輸入/輸出方式 方式2:雙向的傳輸方式,10.2 8255A的控制字,1.方式控制字,10.2 8255A的控制字,1,例101:設A端口工作方式0,輸出, B端口工作于方式0,輸入。,方式選擇控制字: 1 0 0 0 1/0 0 1 1/0 =

5、82H,10.2 8255A的控制字,注意:,端口A可以工作在方式0、方式1或方式2;端口B只能工作在方式0或方式1;端口C則常常配合端口A和端口B工作。 歸為同一組的兩個端口可以分別工作在輸入方式和輸出方式,并不要求同為輸入方式或同為輸出方式,而具體工作在那 個端口,由方式控制字來決定。,10.2 8255A的控制字,2. 端口C置1/0控制字,1=置1 0=置0,端口C 置1/0 控制字 標志,0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7,端口C置1/0控制字,10.2 825

6、5A的控制字,注意:,C端口置1/0控制字盡管是對端口C進行操作,但此控制字必須寫入控制口,而不是寫入C端口。 置1/0控制字的D0決定了是置1操作還是置0操作。 置1/0控制字的D3、D2、D1位決定了對C端口的那一位進行操作。,10.2 8255A的控制字,例102:設8255A的控制口地址為00EEH,要求對端口C的PC7置1,則控制字00001111B=0FH,要求對端口C的PC3置0,控制字為00000110B=06H。 下面的程序可以實現(xiàn)上述要求: MOV AL , 0FH ;對PC7置1的控制字 MOV DX , 00EEH ;控制口地址送DX OUT DX , AL ;對PC7

7、置1操作 MOV AL , 06H ;對PC3置0的控制字 OUT DX , AL ;對PC3進行置0的操作,10.2 8255A的控制字,提問2:,8255A的方式選擇控制字和置1/置0控制字都是寫入控制端口的,那么,它們是由什么來區(qū)分的?,10.2 8255A的控制字,10.3 8255A的工作方式0,8255A的3種基本工作方式: 方式0:基本的輸入/輸出方式 方式1:選通的輸入/輸出方式 方式2:雙向的傳輸方式,10.3 工作方式,一、方式0-基本輸入輸出方式功能, 任何一個端口可以作為輸入口,也可以作為輸出口。 各個端口輸入或輸出,所以可以適用于多種使用場合。 方式0使用場合 兩種:

8、 一種是同步傳送, 另一種是查詢式傳送。,10.3 工作方式0,二、方式0的時序,10.3 工作方式0,10.3 工作方式0,輸出設備,輸入設備,選通,準備好,準備好,清除,例103:用8255A控制三個發(fā)光二極管依秩序循環(huán)顯示。,10.3 工作方式0,用8255A控制三個發(fā)光二極管顯示。8255A的端口地址為: A 端口:F0H B 端口:F2H C 端口:F4H 控制口:F6H 試編寫8255初始化程序段和控制三個發(fā)光二極管顯示程序段。,10.3 工作方式0,開始,8255A初始化,延時,BX顯示代碼地址,CX=0?,Y,N,BX=BX+1 CX=CX-1,CX 3,輸出到A口,1、程序框

9、圖:,10.3 工作方式0,2、軟件設計 1)設A口為輸出口,方式0。B口輸入,方式0,則方式選擇控制字為82H。 2)A口輸出代碼: 0000 0110 06H ,0號發(fā)光二極管亮 0000 0101 05H ,1號發(fā)光二極管亮 0000 0011 03H ,2號發(fā)光二極管亮 3)軟件延時 (1).1ms的軟件延時參考程序: 設系統(tǒng)的CPU的頻率為8MHZ,則時鐘節(jié)拍為:0.125微秒。執(zhí)行PUSHF、POPF、LOOP指令需29個節(jié)拍。延遲1毫秒要循環(huán)的次數(shù): 計數(shù)初值: n= fclk t,10.3 工作方式0,參考程序: DATA SEGMENT COTR EQU F6H ;8255A

10、控制口地址 PB_A EQU F0H ;8255A的A口地址 LED DB 06H,05H,03H;LED顯示值 DATA ENDP CODE SEGMENT ASSUME CS:CODE,DS:DATA . MOV DX,COTR MOV AL,82H ;方式0 OUT DX, AL ;A口為輸出,B口為輸入 MOV DX, PB_A ;A口地址,10.3 工作方式0,LP: MOV CX,3 LEA BX, LED ; 0號燈代碼地址 DON: MOV AL, BX OUT DX, AL ;0,1,2循環(huán)點亮 CALL DELAY ;調延時程序 INC BX DEC CX JNZ DON

11、JMP LP DEALY PROC NEAR ;軟件延時 . DEALY ENDP CODE ENDS END,10.3 工作方式0,思考題:用8255A控制三個發(fā)光二極管依秩序循環(huán)顯示。假設開關閉合時,點亮發(fā)光二極管,開管斷開時息滅二極管。,10.3 工作方式0,提問3:,8255A的方式0一般使用在什么場合?在方式0時,如要使用應答信號進行聯(lián)絡,應該怎么辦?,10.3 工作方式0,例10-4、 8255A作為連接打印的查詢式接口,工作于方式0,如圖所示。設8255A的端口地址為: A端口:00D0H C端口:00D4H B端口:00D2H 控制口:00D6H 工作過程:當主機要往打印機輸出

12、字符時,先查詢打印機忙信號,如果打印機正在處理一個字符或在打印一行字符,則忙信號為1,否則為0。 PC2作為打印機忙信號,PC6作為數(shù)據(jù)選通信號,將數(shù)據(jù)線上的數(shù)據(jù)打入打印機緩沖器。,10.3 工作方式0,打印機驅動流程圖:,10.3 工作方式0,PP: MOV AL ,81H ;8255工作方式字 OUT D6H , AL ;A口方式0,輸出, ;C47輸出,C03輸入 MOV AL , 0DH ;PC6置1 OUT D6H ,AL MOV S I , 200H ;打印字符內存地址 MOV CX, 0FFH ;打印字符個數(shù) LPST : IN AL , D4H ;讀C口 AND AL , 04

13、H ;查PC2=0? JNZ LPST ;忙,等待;不忙,送數(shù) MOV AL,SI ;從內存取數(shù) OUT 0D0H ,AL ;送數(shù)到A口,10.3 工作方式0,MOV AL , 00001100B ;將PC6置0(STB為低) OUT 0D6H , AL ;AL 0000 1100 B NOP NOP ; 延時 INC AL ;AL0000 1101 B OUT 0D6H , AL ;再使STB(PC6)為1 INC SI ;內存地址+1 DEC CX ;字符數(shù) - 1 JNZ LPST HLT,10.3 工作方式0,10.4 方式1選通的輸入輸出方式,數(shù)據(jù)輸入輸出要在選通信號控制下工作. 端

14、口A和端口B可以分別作為兩個數(shù)據(jù)口工作于方式1,并且,任何一個端口可以為輸入口或輸出口。 1)方式1輸入:A口控制信號的定義:,10.4 工作方式1,10.4 方式1,圖10-8 方式1輸入有關信號的規(guī)定,PA7PA0,選通信號輸入端,低電平有效,輸入緩沖區(qū)滿信號,,它是8255送往CPU的中斷請求 信號,高電平有效。,中斷允許信號,INTE由PC4置“1”,INTR有效,A口方式1輸入有關信號的規(guī)定,數(shù)據(jù)輸入口,10.4 方式1,10.4 方式1,圖10-9方式1輸出有關信號的規(guī)定,10.4 方式1,端口B輸出,2)方式1輸出,10.4 方式1,例106:8255A端口A工作在方式1,A口輸

15、入,允許A口中斷,編寫初始化程序。 MOV DX,PCTR ;控制口地址送DX MOV AL,10110000B ;A口方式1輸入 OUT DX,AL MOV AL,00001001B ;置PC4=1,允許中斷 OUT DX,AL ;,10.4 方式1,提問5:,8255工作在方式1,輸入和輸出時中斷服務程序各完成什么功能?,10.4 方式1,例107:8255A方式1輸入應用:某8位A/D轉換器,與8255的連接如下圖,PC7做啟動AD轉化信號,AD轉化結束信號EOC接PC4,作為選通信號STB。A/D轉換啟動為高電平。假設8255作為查詢式輸入接口,分析工作原理。編寫8255初始化與輸入一

16、個數(shù)據(jù)的程序。,10.4 方式1,采用查詢式輸入:注意到8255方式1輸入時,數(shù)據(jù)準備好后,IBF=1,因此可以通過查詢IBF的狀態(tài)。 主要參考程序代碼: MOV DX,PCTR ;控制口地址送DX MOV AL,10110000B ;A口方式1輸入,PC7輸出 OUT DX,AL MOV AL,00001110B ;置PC7=0,禁止A/D OUT DX,AL MOV AL,00001111B ;置PC7=1,啟動A/D OUT DX, AL,10.4 方式1,L:MOV DX,POT_C ;C口地址送DX IN AL,DX TEST AL,00100000B ;查IBF=1,即PC51?

17、JZ L ; 查無輸入數(shù)據(jù),等待 MOV DX,PCTR MOV AL,00001110B ;置PC7=0,禁止A/D OUT DX,AL MOV DX,POT_A ; 送A口地址 IN AL,DX ; IBF=1,讀數(shù)據(jù) ; 數(shù)據(jù)讀出后,自動撤銷IBF(0) HLT,10.4 方式1,課堂提問6: 如果采用中斷方式輸入,程序如何設計? 提示: 將8255中斷請求端INTRA(PC3)接8259輸入端,使中斷請求能引入CPU 允許8255端口A中斷,設INTEA=1,即設PC4=1 當數(shù)據(jù)進入8255端口A時,8255的INTRA(PC3)發(fā)中斷請求申請,CPU相應后即可讀數(shù)據(jù),10.4 方式

18、1,3)方式1的使用場合 在采用中斷方式進行輸入/輸出的場合,如果外部設備能為8255A提供選通信號或數(shù)據(jù)接收應答信號,那么,通常使用8255A的端口工作方式1的情況。 思考題: 8255A的三個端口在使用時,有什么差別? 提 示: 通常A端口與B端口可作為獨立的輸入輸出端口,C端口則配合A、B端口工作,提供控制信號、狀態(tài)信息。,10.4:方式1使用,10.5 方式2雙向傳輸方式 方式2只適用于端口A,雙向并行通信 端口A工作于方式2時,端口C用5個數(shù)位自動配合端口A提供控制。 注意: 端口A可工作在3種方式中的任意一種; 端口B只能工作在方式0或方式1; 端口C被分為高4位和低4位,可以分別

19、工作在輸入方式和輸出方式,并不要求同為輸入方式或同為輸出方式.,10.5 工作方式2,圖 10-15 方式2工作的控制信號,10.5 工作方式2,圖10-21 畫出了一個數(shù)據(jù)輸出過程和一個數(shù)據(jù)輸入的時序.,10.5 工作方式2,例10-8:按鍵控制燈的亮滅。,10.6 8255A的應用舉例,PA,1 1 1,0 0,地址:F0H、F2H、F4H、F6H,0 1,PB,1 0,PC,1 1,控制口,CODE SEGMENT ASSUME CS:CODE,DS:DATA,START: MOV DX,0F6H,MOV AL,10010000B,OUT DX,AL,MOV DX,0F0H,IN AL,

20、DX,MOV DX,0F2H,OUT DX,AL,JMP L,L:,CODE ENDS END START,例10-9:利用8255A對非編碼鍵盤進行管理。 如圖所示為使用8255A構成4行4列的非編碼矩陣鍵盤控制。,10.6 8255A的應用舉例,判斷是否有鍵按下:,10.6 8255A的應用舉例,MOV AL,82H ;初始化8255A,A口方式0輸出, B口方式0輸出 OUT 83H,AL ;輸出方式字,MOV AL,00H OUT 80H,AL ;PA置0,IN AL,81H ;讀B口,判斷B口是否為低電平 AND AL,0FH CMP AL,0FH JZ LOOA ; B口沒有低電平

21、時轉,LOOA:,CALL D20ms ; B口有低電平時延時,IN AL,81H ; 再讀B口 AND AL,0FH ;如仍有一位低電平,說明確有按鍵按下 CMP AL,0FH ;按下,如果延時后B口低電平不再存在 JZ LOOA ;說明是干擾或抖動,LOP1:,START:,10.6 8255A的應用舉例,;判斷哪一個鍵按下:,MOV BL,4 ;行數(shù)送BL MOV BH,4 ;列數(shù)送BH,MOV AL,0FEH ; 準備掃描0行 MOV CL,0FH ;鍵盤屏蔽碼送CL MOV CH,0FFH ;CH中存放起始鍵號,OUT 80H,AL ;A行輸出,掃描一行 ROL AL,1 ;修改掃描

22、碼,準備掃描下一行 MOV AH,AL ; 暫時保存,IN AL,81H ; 讀B口,以便確定所按鍵的列值 AND AL,CL CMP AL,CL JNZ LOP2 ;有列線為0,轉LOP2,找列值,ADD CH,BH ;無鍵按下,修改鍵號,以便下一行找鍵號,MOV AL,AH ;恢復掃描碼 DEC BL ;行數(shù)減1 JNZ LOP1 ;行未掃描完轉LOP1,JMP START ;重新掃描,LOP2:,10.6 8255A的應用舉例,INC CH ;鍵號加1,ROR AL,1 ;右移一位,JC LOP2 ; 無鍵按下,查下一列線,MOV AL,CH ;已找到,鍵號送,CMP AL,0 JZ K

23、EY0 ;是0號鍵按下,轉KEY0,CMP AL,1 JZ KEY1 ;是1號鍵按下,轉KEY1,. . . CMP AL,0EH JZ KEY14 ;是14號鍵按下,轉KEY14 JMP KEY15 ;是15號鍵按下,轉KEY15,例10-10:在甲乙兩臺微機之間并行傳送1K字節(jié)數(shù)據(jù)。甲機發(fā)送,乙機接收。甲機一側的8255A采用方式1工作,乙機一側的8255A采用方式0工作。兩機的CPU與接口之間都采用查詢方式交換數(shù)據(jù)。,10.6 8255A的應用舉例,甲機發(fā)送程序: MOV DX,303H ;8255A命令口 MOV AL,10100000B ;端口A,方式1,端口B沒用方式字 OUT D

24、X,AL ;輸出方式字 MOV AL,0DH ; 置發(fā)送中斷允許INTEA=1 OUT DX,AL ;PC6置1 MOV AX,0300H ;發(fā)送數(shù)據(jù)的段地址 MOV ES,AX MOV BX,0000H MOV CX,3FFH ; 置發(fā)送字節(jié)數(shù) MOV DX,300H ; 置8255A數(shù)據(jù)字地址 MOV AL,ES:BX ; 置第一個發(fā)送數(shù)據(jù) OUT DX,AL ;寫第一個數(shù),產(chǎn)生第一個OBF信號 INC BX ;指向下一個數(shù) DEC CX ;字節(jié)數(shù)減1,10.6 8255A的應用舉例,L: MOV DX,302H ; 8255A狀態(tài)口 IN AL,DX ;輸入狀態(tài) AND AL,08H ;

25、檢查有無INTRA JZ L ; 若無中斷請求則等待 MOV DX,300H ; 置數(shù)據(jù)口地址 MOV AL,ES:BX ; 取數(shù)據(jù) OUT DX,AL ; 輸出 INC BX DEC CX JNZ L MOV AX,4C00H INT 21H,10.6 8255A的應用舉例,乙機接收程序: MOV DX,303H ;8255A命令口 MOV AL,10011000B ;端口A,方式1,端口B沒用方式字 OUT DX,AL ;輸出方式字 MOV AL,00000001H ;PC0置1 OUT DX,AL MOV AX,0400H ;接收區(qū)的首地址 MOV ES,AX MOV BX,0000H MOV CX,3FFH ; 置發(fā)送字節(jié)數(shù) L1: MOV DX,302H ; 8255APC口地址 IN AL,DX ; 查甲機的PC40? AND AL,10H JNZ L1 ; 無數(shù)據(jù),等待,10.6 8255A的應用舉例,MOV DX,300H ;置8255A數(shù)據(jù)口地址 IN AL,DX ;輸入數(shù)據(jù) MOV ES:BX,AL ;存入內存 MOV DX,303H MOV AL,00000000B ; 產(chǎn)生ACK信號 NOP NOP MOV AL,0000001B ;PC0=1 OUT DX,AL ; ACK

溫馨提示

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

評論

0/150

提交評論