




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
可編程接口:指接口芯片的硬件單元不是固定接死的,可以通過計(jì)算機(jī)指令來選擇不同的通道和不同的電路功能??删幊探涌谛酒攀隹删幊探涌谛酒喝绻涌谛酒碾娐方M態(tài)(電路工作狀態(tài))可由計(jì)算機(jī)指令來控制,則稱其為可編程接口芯片。輸入/輸出鎖存器與緩沖器。命令寄存器和狀態(tài)寄存器。地址譯碼電路。讀/寫控制邏輯。中斷控制邏輯。片選信號CS(ChipSelect)/CE(ChipEnable)不選中則為隔離狀態(tài)讀寫操作讀操作:輸入口,IN指令,RD,M/IO寫操作:輸出口,OUT指令,WR,M/IO“握手”過程STB:Strobe,選通RDY:Ready,準(zhǔn)備好握手信號握手過程握手過程并行接口8255A并行接口是指CPU與外設(shè)之間的信息傳輸是多位同時進(jìn)行的。鎖存器、緩沖器、收發(fā)器都是一種并行接口,但它們都不是可編程的。8255是Intel公司為80X86系列CPU生產(chǎn)的8位通用可編程并行輸入/輸出接口芯片,可作為任何一個與TTL兼容的并行數(shù)字設(shè)備與微機(jī)間的接口。40腳DIP,單一+5V電源,TTL電平。
8255A的結(jié)構(gòu)和功能三個端口:8位,A口(端口A)、B口(端口B)、C口(端口C)二組:A組(A口+C口高位)、B組(B口+C口低位)A組B組端口A端口B端口C組成端口讀/寫控制數(shù)據(jù)緩沖A/B組控制工作方式A口B口C口0基本輸入/輸出端口,輸入不鎖存,輸出鎖存同A口同A口1應(yīng)答式輸入/輸出端口,輸入/輸出均可鎖存同A口上C口作為應(yīng)答式A口的應(yīng)答線;下C口作為應(yīng)答式B口的應(yīng)答線2應(yīng)答式雙向輸入/輸出端口,均可鎖存不用用作A口的應(yīng)答控制線輸入/輸出端口PA7~PA0:A口的8條線,輸入/輸出均帶鎖存。8條線工作于輸入、輸出還是雙向(輸入/輸出)方式由軟件編程來決定。PB7~PB0:B口的8條線,輸入/輸出均帶鎖存。8條線是輸入還是輸出由軟件編程來決定。PC7~PC0:C口的8條線,輸出有鎖存,輸入無鎖存。8條線可用作數(shù)據(jù)的輸入或輸出線,也可用作控制信號的輸出線或狀態(tài)信號的輸入線。A口、B口通常作為獨(dú)立的I/O端口使用,C口也可以作為一般的I/O端口使用。當(dāng)A口、B口作為應(yīng)答式的I/O口使用時,C口分別用來為A口、B口提供應(yīng)答控制線。此時C口分為A組C口(或稱上C口)、B組C口(或稱下C口),規(guī)定分別用來作為A口和B口的應(yīng)答控制線使用。讀/寫控制邏輯
用于管理數(shù)據(jù)、控制字或狀態(tài)字的傳送。接收來自CPU的地址信息及一些控制信號,然后向A組、B組控制電路發(fā)送命令,控制端口的傳送方向。CS:片選信號,低電平有效RD:讀信號,低電平有效WR:寫信號,低電平有效RESET:復(fù)位信號,高電平有效。清除所有控制寄存器內(nèi)容,并將各端口都置成輸入方式A1、A0:8255A片內(nèi)端口尋址線。A1A0端口及操作功能00010端口A數(shù)據(jù)總線輸入操作(讀)01010端口B數(shù)據(jù)總線10010端口C數(shù)據(jù)總線00100數(shù)據(jù)總線端口A輸出操作(寫)01100數(shù)據(jù)總線端口B10100數(shù)據(jù)總線端口C11100數(shù)據(jù)總線控制寄存器××××1未選中8255A,數(shù)據(jù)總線三態(tài)斷開功能11010非法狀態(tài)××110數(shù)據(jù)總線三態(tài)A口B口C口控制口
A組/B組控制電路接受來自CPU的讀/寫控制信號和CPU送入的控制字,然后分別決定各端口的功能。A組控制電路控制A口和C口的高4位(PC7~PC4);B組控制電路控制B口和C口的低4位(PC3~PC0)。還可以對C口的某位實(shí)現(xiàn)“置0”或“置1”的操作。數(shù)據(jù)總線緩沖器雙向三態(tài)的8位緩沖器,可與數(shù)據(jù)總線(D0~D7)直接相連。
8255A的工作方式工作方式方式0方式1方式2基本輸入/輸出選通(應(yīng)答)輸入/輸出雙向(應(yīng)答)輸入輸出由控制字決定
工作方式控制字(D7=1)C口置位/復(fù)位控制字(D7=0)
8255A的控制字工作方式控制字兩種控制字A口:方式0、方式1、方式2B口:方式0、方式1C口:方式0【例】設(shè)某8255A的控制寄存器口地址為B6H,各端口工作方式如下:A口方式0、輸入端口;B口方式0、輸出端口;C口高4位為輸出口,低4位為輸入口。試編寫該8255A接口的初始化程序。對可編程接口芯片送入控制字,從而設(shè)定接口功能的程序稱為“接口(功能)初始化程序”01001010解:工作方式控制字為10010001B=91H,初始化程序:
MOV AL,91H ;CPU控制字91H經(jīng)AL輸出
OUT 0B6H,AL ;送到8255A控制寄存器中置位/復(fù)位控制字【例】設(shè)某8255A的控制寄存器口地址為303H,編寫程序,將C口的PC7位置0,PC6位置1。解:已知8255A控制寄存器的口地址為303H,則A口、B口、C口的口地址分別為300H、301H、302H。
MOV DX,303H
MOV AL,00001110B ;置PC7=0的控制字
OUT DX,AL ;控制字送8255A控制寄存器中
MOV AL,00001101B
;置PC6=1的控制字
OUT DX,AL ;控制字送8255A控制寄存器中工作方式0(基本輸入/輸出)A口(8位)、B口(8位)、上C口(4位)、下C口(4位)可分別獨(dú)立定義為輸入或輸出,共16種組合輸出可鎖存,輸入有緩沖無鎖存C口還有按位置位/復(fù)位的能力不能采用中斷方式,但可采用查詢方式(C口線可作聯(lián)絡(luò)信號)輸入輸出C口有按位置位/復(fù)位的能力不能采用中斷方式,但可采用查詢方式(C口線可作RDY、STB等聯(lián)絡(luò)信號)傳送數(shù)據(jù)工作方式1(選通輸入/輸出)A口(8位)、B口(8位)適用,C口不能工作于方式1A口/B口可分別定義為輸入或輸出支持查詢、中斷方式傳送數(shù)據(jù)C口部分位作為控制信號和狀態(tài)信號C口其余位可獨(dú)立置位/復(fù)位方式1輸出OBF(OutputBufferFull):輸出緩沖器滿,低電平有效。該信號通知外設(shè),在規(guī)定的數(shù)據(jù)端口上已由CPU輸出了一個有效數(shù)據(jù),外設(shè)可從此端口接收數(shù)據(jù)。ACK:外設(shè)響應(yīng),低電平有效。該信號通知接口,外設(shè)已將數(shù)據(jù)接收并使OBF=1。INTR:中斷請求,高電平有效。當(dāng)外設(shè)接收到一個數(shù)據(jù)后,通過該信號告訴CPU,剛才輸出的數(shù)據(jù)已經(jīng)被接收,可以再輸出下一個數(shù)據(jù)。INTE:中斷允許。A口和B口的INTR均受INTE的控制。A口的INTEA由PC6來控制,可用C口的按位操作對PC6置位或復(fù)位,以對中斷INTRA進(jìn)行控制。同理,B口的INTEB用PC2的按位操作來進(jìn)行控制。C口的PC4~5可獨(dú)立置位/復(fù)位中斷方式輸出工作時序:數(shù)據(jù)輸出過程從CPU響應(yīng)中斷開始,進(jìn)入中斷服務(wù)程序WR寫數(shù)據(jù),IOW鎖存數(shù)據(jù)入端口寄存器;數(shù)據(jù)輸出到端口信號線上,清除INTR信號,并置OBF有效,通知外設(shè)接收數(shù)據(jù);外設(shè)收到數(shù)據(jù)后,置ACK有效,并使OBF無效,同時使INTR有效,產(chǎn)生一個新的中斷請求,請求CPU向外設(shè)輸出下一個數(shù)據(jù)方式1輸入STB:輸入選通,低電平有效,由外設(shè)提供。表示外設(shè)數(shù)據(jù)鎖存于接口的輸入端口中。IBF(InputBufferFull):輸入緩沖器滿,高電平有效。表示已有一個有效的外設(shè)數(shù)據(jù)被鎖存于接口的鎖存器中??捎么诵盘柾ㄖ庠O(shè),數(shù)據(jù)已被鎖存于接口中,尚未被CPU讀走,暫時不能向接口輸入數(shù)據(jù)。INTR:中斷請求,高電平有效。當(dāng)外設(shè)將數(shù)據(jù)鎖存于接口之中,且又允許中斷請求發(fā)生時,就會產(chǎn)生中斷請求。INTE:中斷允許。A口的INTEA由PC4來控制,B口的INTEB用PC2的按位操作來進(jìn)行控制。C口的PC6~7可獨(dú)立置位/復(fù)位中斷方式輸入工作時序:外設(shè)將數(shù)據(jù)送到8255A接口上,STB有效,數(shù)據(jù)鎖存入端口,同時IBF變有效;當(dāng)STB由低變高時,若中斷允許信號INTE高電平有效,則8255A的PC3(或PC0)位INTR變高電平有效,向CPU發(fā)出中斷請求;CPU響應(yīng)中斷,執(zhí)行讀數(shù)據(jù)操作(IN),RD有效;RD操作實(shí)現(xiàn)數(shù)據(jù)進(jìn)入CPU內(nèi),隨后使INTR無效,并在RD由低變高過程中,使IBF復(fù)位。方式1的A口和B口可獨(dú)立設(shè)置為輸入或輸出
A口和B口可一個工作于方式1,另一個工作于方式0
方式1輸入時,C口中多余的兩條線(PC6,PC7)歸入A組,它可以作為方式0的輸入/輸出線或作為位操作用,其工作狀態(tài)及初始化編程與A口無關(guān)。
8255A片內(nèi)有一個中斷允許觸發(fā)器INTE,INTR=0禁止中斷,INTR=1允許中斷。其置“0”與置“1”是通過對PC4(A組)和PC2(B組)進(jìn)行位操作來實(shí)現(xiàn)的。在方式1中,對PC4(或PC2)的位操作只影響INTE引腳觸發(fā)器的狀態(tài),而不影響PC4(或PC2)引腳的電平狀態(tài)。只適用于A口,占用5條聯(lián)絡(luò)線
B口可工作于方式0、方式1C口的PC2~0可作為B口方式1的聯(lián)絡(luò)線或獨(dú)立使用控制信號定義與前述相同工作方式2(雙向輸入輸出)不同
ACK有效時,輸出端口才打開,無效時呈高阻態(tài)輸入、輸出均可鎖存輸入、輸出均可引起中斷,PC6控制INTE1的輸出中斷,PC4控制INTE2的輸入中斷方式2輸入輸出工作時序
8255A的狀態(tài)字讀C口,獲得狀態(tài)字
8255A與系統(tǒng)的連接單片連接端口地址?380H~383H兩片連接端口地址?0FBC0H~0FBC3H0FBC4H~0FBC7H
8255A編程和應(yīng)用確定控制字的內(nèi)容將控制字寫入8255A控制寄存器【例】8255A并行接口作為鍵盤接口的應(yīng)用。鍵盤是輸入設(shè)備,實(shí)質(zhì)是一種開關(guān)“抖動”、“消抖”編碼鍵盤(相對復(fù)雜,唯一編碼)、非編碼鍵盤(簡單,位置識別,靈活)行掃描法:由程序逐行對鍵盤進(jìn)行掃描,再通過檢測列狀態(tài)來確定“閉合鍵”行列位置反轉(zhuǎn)掃描法:先對全列送“0”并讀行線上內(nèi)容。若無鍵按下,讀入的內(nèi)容應(yīng)該為全“1”,重復(fù)上述過程。若有某一鍵按下,則對應(yīng)該鍵的行線被列線強(qiáng)置為“0”11111011反轉(zhuǎn)掃描法300H~3FFH【問】請編寫程序?qū)?255A掃描的按鍵顯示在屏幕上,如果按下小鍵盤上的“Y”鍵,則退出掃描程序返回到DOS狀態(tài)下。DATA SEGMENT PA EQU 300H PB EQU 301H PCTL EQU 303H TABLE DW 0101H,0102H,0104H,0108H,0110H,0120H,0140H,0180H;PB0列中各鍵鍵值 DW 0201H,0202H,0204H,0208H,0210H,0220H,0240H,0280H;PB1列中各鍵鍵值 DW 0401H,0402H,0404H,0408H,0410H,0420H,0440H,0480H;PB2列中各鍵鍵值 CHAR DB 'CDEFBA9845673210WXYSRPMG' ;字符ASCII TIPS DB 'Pressanykeyonthekeyboard,itwillbeonthescreen!',0DH,0AH DB 'QuitwithY!',0DH,0AH,'$'DATA ENDSCODE SEGMENTMAIN PROC FAR ;定義為段間過程 ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA ;裝入段基址 MOV DS,AX MOV DX,OFFSETTIPS MOV AH,09H ;9號功能調(diào)用,顯示提示信息 INT 21HKY: CALL KEY ;從緩沖區(qū)中取一字符,并顯示 CMP DL,'Y' JNZ KY MOV AH,4CH INT 21H ;若(DI)='Y',則返回DOS RETMAIN ENDP ;主程序結(jié)束KEY PROC NEAR ;段內(nèi)過程(找出按下鍵的行、列值)KST: MOV AL,82H ;8255A工作方式控制字,A口輸出,B口輸入 MOV DX,PCTL OUT DX,ALWAIT1: MOV AL,00 ;A口低電平輸出,行線低電平 MOV DX,PA OUT DX,AL MOV DX,PB ;讀列線,查找有沒有閉合鍵 IN AL,DX CMP AL,0FFH ;沒有閉合鍵,等待 JZ WAIT1 PUSH AX ;列線值暫存堆棧 PUSH AX MOV CX,1000H ;去抖動延時DELAY:LOOP DELAY MOV DX,PCTL MOV AL,90H ;反轉(zhuǎn)A口為輸入口,B口為輸出口 OUT DX,AL MOV DX,PB ;列值由B口輸入 POP AX OUT DX,AL MOV DX,PA ;讀行值 IN AL,DX POP BX ;從堆棧中彈出列值至BX中 MOV AH,BL ;列值→AH NOT AX ;(AH)取反 MOV SI,OFFSETTABLE ;取參數(shù)TABLE的偏移地址→SI MOV DI,OFFSETCHAR ;取字符參數(shù)CHAR的偏移地址→DI MOV CX,24 ;24個字符長TT: CMP AX,[SI] ;鍵值與TABLE中字符相比較 JZ NN ;找到相應(yīng)字符,轉(zhuǎn)NN語句
DEC CX ;長度修正 JZ KST ;沒找到,轉(zhuǎn)KST語句繼續(xù)查找 ADD SI,2 INC DI JMP TTNN: MOV DL,[DI] ;閉合鍵字符→DL MOV AH,02 ;2號功能調(diào)用,顯示字符 INT 21H PUSH DX ;DX暫存堆棧 MOV AL,82H ;A口控制字→控制寄存器,A口輸出、B口輸入 MOV DX,PCTL OUT DX,ALWAIT2: MOV AL,00 ;等待閉合鍵釋放 MOV DX,PA OUT DX,AL MOV DX,PB IN AL,DX CMP AL,0FFH JNZ WAIT2 POP DX RETKEY ENDP ;過程結(jié)束CODE ENDS ;代碼段結(jié)束 END START ;源程序結(jié)束【例】利用8255A作為打印機(jī)接口。此時8255A一般設(shè)置成工作方式0。設(shè)8255A端口地址為0380H~0383H,待打印字符的存放首地址為DS:0300H,字符數(shù)為100個。;8255A初始化程序BEGIN: MOV DX,0383H ;控制寄存器地址DX
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中西醫(yī)結(jié)合臨床科研思維與方法知到課后答案智慧樹章節(jié)測試答案2025年春中國中醫(yī)科學(xué)院西苑醫(yī)院
- 2017-2018學(xué)年人教課標(biāo)高一英語必修3輔導(dǎo)Unit2HealthyeatingGRAMMAR
- 2025年多晶硅磁控濺射靶材合作協(xié)議書
- 2025年新疆烏魯木齊市高考地理模擬試卷(2月份)
- 剪切設(shè)備維修合同范例
- 光亮帶訂購合同范本
- 東莞日產(chǎn)購車合同范例
- 業(yè)務(wù)提成居間合同范例
- 麗水預(yù)售合同范例公示
- 體系合同范例
- 2024年天翼云認(rèn)證運(yùn)維工程師考試復(fù)習(xí)題庫(含答案)
- 浙江省杭州市2024年中考英語真題(含答案)
- 中國水資源與水環(huán)境-王浩
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗(yàn)人員理論考試題庫及答案
- 《陸上風(fēng)電場工程設(shè)計(jì)概算編制規(guī)定及費(fèi)用標(biāo)準(zhǔn)》(NB-T 31011-2019)
- 《新媒體營銷》全套教學(xué)教案
- 消防維修合同范本
- (完整版)質(zhì)量目標(biāo)細(xì)化分解方案-橋梁工程
- 用戶水表(水費(fèi))過戶協(xié)議
- 勾股定理求最短路徑問題
- 高等院校應(yīng)屆畢業(yè)生就業(yè)推薦表
評論
0/150
提交評論