做網(wǎng)站有前景嗎網(wǎng)絡(luò)優(yōu)化app
【微機(jī)原理及接口技術(shù)】可編程并行接口芯片8255A
文章目錄
- 【微機(jī)原理及接口技術(shù)】可編程并行接口芯片8255A
- 前言
- 一、8255A的內(nèi)部結(jié)構(gòu)和引腳
- 1.與外設(shè)接口(數(shù)據(jù)端口)
- 2.與處理器接口
- 二、8255A的工作方式
- 三、8255A的編程
- 1. 寫入方式控制字:控制字格式
- 2. 讀寫數(shù)據(jù)端口
- 3. 讀寫端口C
- 四、8255A的應(yīng)用
- 1.開關(guān)量的檢測(cè)
- 2.LED數(shù)碼管的驅(qū)動(dòng)
- 3.多個(gè)LED數(shù)碼管的顯示
- 總結(jié)
前言
本篇文章就8255芯片展開,包括8255A的內(nèi)部結(jié)構(gòu)和引腳,8255A的工作方式,8255A的編程,8255A的應(yīng)用等展開詳細(xì)介紹。
并行數(shù)據(jù)傳輸方式
以計(jì)算機(jī)的字長(zhǎng),通常是8位、16位或32位為傳輸單位,一次傳送一個(gè)字長(zhǎng)的數(shù)據(jù)
適合于外部設(shè)備與微機(jī)之間進(jìn)行近距離、大量和快速的信息交換
例如:微機(jī)與并行接口打印機(jī)、磁盤驅(qū)動(dòng)器
微機(jī)系統(tǒng)中最基本的信息交換方法
例如:系統(tǒng)板上各部件之間,接口電路板上各部件之間
8255A簡(jiǎn)介
包括四個(gè)端口——1個(gè)控制端口,3個(gè)數(shù)據(jù)端口
還包括端口的譯碼和控制電路、中斷控制電路
包括三種輸入輸出工作方式
一、8255A的內(nèi)部結(jié)構(gòu)和引腳
1.與外設(shè)接口(數(shù)據(jù)端口)
端口A:PA0~PA7
A組,支持工作方式0、1、2
端口B:PB0~PB7
B組,支持工作方式0、1
端口C:PC0~PC7
僅支持工作方式0
A組控制高4位PC4~PC7
B組控制低4位PC0~PC3
端口A:PA0~PA7
常作數(shù)據(jù)端口,功能最強(qiáng)大
端口B:PB0~PB7
常作數(shù)據(jù)端口
端口C:PC0~PC7
可作數(shù)據(jù)、狀態(tài)和控制端口
分兩個(gè)4位,每位可獨(dú)立操作
控制最靈活,最難掌握
2.與處理器接口
二、8255A的工作方式
- 方式0:基本輸入輸出
端口A、端口B、端口C高4位和低4位——輸入口或輸出口
適用于無條件傳送和查詢方式的接口電路 - 方式1:選通輸入輸出
端口A、端口B——輸入口或輸出口
端口C——端口A和端口B的聯(lián)絡(luò)信號(hào)、輸入口或輸出口
適用于查詢和中斷方式的接口電路 - 方式2:雙向選通輸入輸出
端口A——輸入口和輸出口
端口C——一部分作為端口A的聯(lián)絡(luò)信號(hào)
適用于雙向傳送數(shù)據(jù)的外設(shè)
適用于查詢和中斷方式的接口電路
方式1輸入引腳:A端口
方式1輸入引腳:B端口
方式1輸入聯(lián)絡(luò)信號(hào)
方式1需借用端口C用做聯(lián)絡(luò)信號(hào)同時(shí)還具有中斷請(qǐng)求和屏蔽功能
STB——選通信號(hào),低電平有效*
由外設(shè)提供的輸入信號(hào),當(dāng)其有效時(shí),將輸入設(shè)備送來的數(shù)據(jù)鎖存至8255A的輸入鎖存器
IBF——輸入緩沖器滿信號(hào),高電平有效
8255A輸出的聯(lián)絡(luò)信號(hào)。當(dāng)其有效時(shí),表示數(shù)據(jù)已鎖存在輸入鎖存器
INTR——中斷請(qǐng)求信號(hào),高電平有效
8255A輸出的信號(hào),可用于向CPU提出中斷請(qǐng)求,要求CPU讀取外設(shè)數(shù)據(jù)
方式1中斷控制
8255A的中斷由中斷允許觸發(fā)器INTE控制
置位允許中斷,復(fù)位禁止中斷
對(duì)INTE的操作通過寫入端口C的對(duì)應(yīng)位實(shí)現(xiàn),只要對(duì)那一位置位/復(fù)位就可以控制INTE觸發(fā)器
選通輸入方式下
端口A的INTEA對(duì)應(yīng)PC4
端口B的INTEB對(duì)應(yīng)PC2
方式1輸出引腳:A端口
方式1輸出引腳:B端口
方式1輸出聯(lián)絡(luò)信號(hào)
OBF——輸出緩沖器滿信號(hào),低有效*
8255A輸出給外設(shè)的一個(gè)控制信號(hào),當(dāng)其有效時(shí),表示CPU已把數(shù)據(jù)輸出給指定的端口,外設(shè)可以取走
ACK——響應(yīng)信號(hào),低有效*
外設(shè)的響應(yīng)信號(hào),指示8255A的端口數(shù)據(jù)已由外設(shè)接收
INTR——中斷請(qǐng)求信號(hào),高有效
當(dāng)輸出設(shè)備已接收數(shù)據(jù)后,8255A輸出此信號(hào)向CPU提出中斷請(qǐng)求,要求CPU繼續(xù)提供數(shù)據(jù)
三、8255A的編程
初始化過程中:寫入方式控制字
利用控制端口地址,A1A0=11
工作過程中:
通過數(shù)據(jù)端口來讀寫外設(shè)數(shù)據(jù):
利用端口A、B和C的地址,A1A0依次等于00、01、10
通過控制端口來寫入端口C的位控制字:
利用控制端口地址,A1A0=11
通過端口C來讀取狀態(tài)信息:
利用端口C的地址,A1A0=10
1. 寫入方式控制字:控制字格式
2. 讀寫數(shù)據(jù)端口
初始化編程后:
當(dāng)數(shù)據(jù)端口作為輸入接口時(shí),CPU執(zhí)行IN指令將從輸入設(shè)備得到外設(shè)數(shù)據(jù)
當(dāng)數(shù)據(jù)端口作為輸出接口時(shí),CPU執(zhí)行OUT指令將把CPU的數(shù)據(jù)送給輸出設(shè)備
8255A具有鎖存輸出數(shù)據(jù)的能力
對(duì)輸出方式的端口同樣可以輸入
不是讀取外設(shè)數(shù)據(jù)
讀取的是上次CPU給外設(shè)的數(shù)據(jù)
讀寫數(shù)據(jù)端口:示例
利用8255A的輸出鎖存能力,可實(shí)現(xiàn)按位輸出控制
對(duì)輸出端口B的PB7位置位的程序段:
mov DX,FFFDH ;設(shè)B端口地址為FFFDH
in AL,DX ;讀出B端口原輸出內(nèi)容
or AL,80H ;使PB7=1
out DX,AL ;輸出新的內(nèi)容
3. 讀寫端口C
歸納1
C端口被分成兩個(gè)4位端口,兩個(gè)端口只能以方式0工作,可分別選擇輸入或輸出
在控制上,C端口高4位和A端口編為A組,C端口低4位和B端口編為B組
歸納2
當(dāng)A和B端口工作在方式1或方式2時(shí),C端口的部分或全部引腳將被征用
其余引腳仍可設(shè)定工作在方式0
歸納3
對(duì)端口C的數(shù)據(jù)輸出有兩種辦法
利用端口C的地址:
向C端口直接寫入字節(jié)數(shù)據(jù)。這一數(shù)據(jù)被寫進(jìn)C端口的輸出鎖存器,并從輸出引腳輸出,但對(duì)設(shè)置為輸入的引腳無效——字節(jié)操作
利用控制端口地址:
向控制端口寫入端口C的位控制字,使C端口的某個(gè)引腳輸出1或0,或置位復(fù)位內(nèi)部的中斷允許觸發(fā)器——位操作
端口C的位控制字
歸納4
讀取的C端口數(shù)據(jù)有兩種情況
未被A和B端口征用的引腳:
將從定義為輸入的部分(上半部或下半部)讀到引腳輸入信息;
將從定義為輸出的部分(上半部或下半部)讀到輸出鎖存器中的信息
被A和B端口征用作為聯(lián)絡(luò)線的引腳:
將讀到反映8255A狀態(tài)的狀態(tài)字
四、8255A的應(yīng)用
作為通用的并行接口電路芯片,8255A具有廣泛的應(yīng)用
應(yīng)用在IBM PC/XT微機(jī)上
應(yīng)用于打印機(jī)接口電路
連接簡(jiǎn)易鍵盤
驅(qū)動(dòng)LED數(shù)碼管
……
1.開關(guān)量的檢測(cè)
例:在工業(yè)控制過程中,經(jīng)常需要檢測(cè)某些開關(guān)的狀態(tài)。例如,在某一系統(tǒng)中,有8個(gè)開關(guān)K7~K0,要求不斷地檢測(cè)它們的通斷狀態(tài),并隨時(shí)在發(fā)光二極管上顯示。通過8255A的端口A讀入開關(guān)狀態(tài)信息,使端口B、端口C連接的發(fā)光二極管的狀態(tài)與端口A開關(guān)狀態(tài)相呼應(yīng),并重復(fù)執(zhí)行。假設(shè)8255A在系統(tǒng)中端口A、B、C及控制口的地址分別為100H,101H,102H,103H,試設(shè)計(jì)出硬件電路圖,并編寫初始化程序。
(1) 硬件電路
(2) 相應(yīng)的8255A程序?yàn)?#xff1a;
MOV DX,103H ;控制端口地址送給DX
MOV AL, 10010000B ;控制字
OUT DX,AL ;寫入控制字
L1: MOV DX,100H ;端口A地址送給DX
IN AL,DX ;從端口A讀入開關(guān)狀態(tài)
MOV DX,101H ;端口B地址送給DX
OUT DX,AL ;從端口B輸出,控制LED
XOR AL, 0FFH ;AL← AL取反
MOV DX,102H ;端口C地址送給DX
OUT DX, AL ;從端口C輸出
JMP L1 ;循環(huán)
2.LED數(shù)碼管的驅(qū)動(dòng)
發(fā)光二極管LED是最簡(jiǎn)單的顯示設(shè)備
由7段LED就可以組成的LED數(shù)碼管
LED數(shù)碼管廣泛用于單板微型機(jī)、微型機(jī)控制系統(tǒng)及數(shù)字化儀器中
LED數(shù)碼管可以顯示內(nèi)存地址和數(shù)據(jù)等
(1) LED數(shù)碼管的工作原理
主要部分是7段發(fā)光管
順時(shí)針分別稱為a、b、c、d、e、f、g
有的產(chǎn)品還附帶有一個(gè)小數(shù)點(diǎn)h
通過7個(gè)發(fā)光段的不同組合
主要顯示0~9
也可以顯示A~F(實(shí)現(xiàn)16進(jìn)制數(shù)的顯示)
還可以顯示個(gè)別特殊字符,如-、P 等
LED數(shù)碼管的結(jié)構(gòu)
(2) 單個(gè)LED數(shù)碼管的顯示
3.多個(gè)LED數(shù)碼管的顯示
8個(gè)數(shù)碼管:用2個(gè)8位輸出端口控制
硬件上用公用的驅(qū)動(dòng)電路來驅(qū)動(dòng)各數(shù)碼管
軟件上用掃描方法實(shí)現(xiàn)數(shù)碼顯示
段控制端口電路
位控制端口電路
控制哪個(gè)(位)數(shù)碼管顯示
共陰極時(shí),當(dāng)位控制端口的控制碼某位為高電平時(shí),經(jīng)反相驅(qū)動(dòng),便在相應(yīng)數(shù)碼管的陰極加上了低電平,這個(gè)數(shù)碼管就可以顯示數(shù)據(jù)
段控制端口作用
控制一個(gè)數(shù)碼管顯示什么數(shù)碼
段控制端口送給數(shù)碼管要顯示字形的段碼
段控制端口由所有數(shù)碼管共用
通過位、段控制端口的共同作用才能確定哪個(gè)數(shù)碼管顯示什么數(shù)碼
總結(jié)
到這里這篇文章的內(nèi)容就結(jié)束了,謝謝大家的觀看,如果有好的建議可以留言喔,謝謝大家啦!