南郵微機(jī)原理第11章_第1頁(yè)
南郵微機(jī)原理第11章_第2頁(yè)
南郵微機(jī)原理第11章_第3頁(yè)
南郵微機(jī)原理第11章_第4頁(yè)
南郵微機(jī)原理第11章_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第十一章第十一章 并行接口芯片并行接口芯片8255a8255a8255a8255a是是intelintel公司的產(chǎn)品,可編程的并公司的產(chǎn)品,可編程的并行接口芯片行接口芯片11.1 8255a11.1 8255a的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu) 一、一、 結(jié)構(gòu)框圖(見下頁(yè))結(jié)構(gòu)框圖(見下頁(yè))結(jié)構(gòu)框圖結(jié)構(gòu)框圖數(shù)據(jù)總線緩沖器a組a口a組c口上半部a組控制b組c口下半部b組b口b組控制pa7pa0pc7pc4pb7pb0pc3pc0讀/寫控制wra1a0resetcs內(nèi)部總線8cpudbrdh 2424根端口數(shù)據(jù)線根端口數(shù)據(jù)線接外設(shè)接外設(shè) pa7pa0pa7pa0為為a a口數(shù)據(jù)線口數(shù)據(jù)線 pb7pb0pb7pb

2、0為為b b口數(shù)據(jù)線口數(shù)據(jù)線 pc7pc0pc7pc0為為c c口數(shù)據(jù)線口數(shù)據(jù)線二、二、 8255a8255a的外部引腳的外部引腳8255a8255a為雙列直插式為雙列直插式,40,40引腳引腳h8 8根系統(tǒng)數(shù)據(jù)線根系統(tǒng)數(shù)據(jù)線接接cpu d7d0cpu d7d0h 6 6根輸入控制線根輸入控制線 resetreset:復(fù)位信號(hào),:復(fù)位信號(hào),reset=1reset=1時(shí),時(shí),82558255內(nèi)內(nèi)部復(fù)位,部復(fù)位, 所有內(nèi)部寄存器清零,所有內(nèi)部寄存器清零,a a、b b、c c三個(gè)端三個(gè)端口自動(dòng)為輸入口口自動(dòng)為輸入口h電源線:電源線:+5v+5v,地線,地線三、三、8255a8255a的端口編址的

3、端口編址端口:接口電路中能和端口:接口電路中能和cpucpu直接交換信息的直接交換信息的寄存器寄存器8255a8255a有有4 4個(gè)端口寄存器個(gè)端口寄存器 cs cs:片選信號(hào),:片選信號(hào),cs=0cs=0時(shí),該芯片被選中時(shí),該芯片被選中 rdrd:來(lái)自:來(lái)自cpucpu的的i/oi/o讀命令讀命令 wrwr:來(lái)自:來(lái)自cpucpu的的i/oi/o寫命令寫命令 a1a1、a0a0:通常接:通常接cpucpu的地址線的地址線a1a1、a0a0如果系統(tǒng)產(chǎn)生片選信號(hào)如果系統(tǒng)產(chǎn)生片選信號(hào)的譯碼電路如圖,則:的譯碼電路如圖,則:aena9a8a7a6a5a4a3a2a1a0ioriowcsa1a0rdw

4、r8255aa a數(shù)據(jù)口地址數(shù)據(jù)口地址=60h=60hb b數(shù)據(jù)口地址數(shù)據(jù)口地址=61h=61hc c數(shù)據(jù)口地址數(shù)據(jù)口地址=62h=62h控制口地址控制口地址=63h=63h控制口寄存初始化控制口寄存初始化命令字命令字對(duì)控制寄存器不能進(jìn)行讀操作對(duì)控制寄存器不能進(jìn)行讀操作cs a1 a0 wr rd完成完成0 0 0 0 1cpucpu數(shù)據(jù)數(shù)據(jù)a a口數(shù)據(jù)寄存器口數(shù)據(jù)寄存器0 0 1 0 1cpucpu數(shù)據(jù)數(shù)據(jù)b b口數(shù)據(jù)寄存器口數(shù)據(jù)寄存器0 1 0 0 1cpucpu數(shù)據(jù)數(shù)據(jù)c c口數(shù)據(jù)寄存器口數(shù)據(jù)寄存器0 1 1 0 1cpucpu送來(lái)的命令字送來(lái)的命令字控制寄存器控制寄存器0 0 0 1

5、0讀讀a a口數(shù)據(jù)口數(shù)據(jù)cpucpu0 0 1 1 0讀讀b b口數(shù)據(jù)口數(shù)據(jù)cpucpu0 1 0 1 0讀讀c c口數(shù)據(jù)口數(shù)據(jù)cpucpu11.2 825511.2 8255的工作方式簡(jiǎn)介的工作方式簡(jiǎn)介a a口可工作在方式口可工作在方式0 0、1 1、2 2b b口可工作在方式口可工作在方式0 0、1 1c c口可工作在方式口可工作在方式0 0工作方式工作方式適用于端口適用于端口方式方式0 0:基本型入:基本型入/ /出出 a a口、口、b b口、口、c c口口方式方式1 1:選通型入:選通型入/ /出出 a a口、口、b b口口方式方式2 2:雙向傳輸:雙向傳輸 a a口口什么是選通型輸入

6、?(以什么是選通型輸入?(以a口為例)口為例)a口定義為選通型輸入時(shí),口定義為選通型輸入時(shí),端口和外設(shè)之間有兩類信端口和外設(shè)之間有兩類信號(hào)線號(hào)線 數(shù)據(jù)線數(shù)據(jù)線pa7pa0 聯(lián)絡(luò)線聯(lián)絡(luò)線ibfa、stbaibfibf(input buffer fullinput buffer full)輸入緩沖器滿)輸入緩沖器滿狀態(tài)線狀態(tài)線輸入設(shè)備輸入設(shè)備pa70ibfastba8255a口口stb(strobe)選通信號(hào)輸入)選通信號(hào)輸入 當(dāng)外設(shè)把數(shù)據(jù)放在端口當(dāng)外設(shè)把數(shù)據(jù)放在端口線上時(shí)必須伴隨一個(gè)選線上時(shí)必須伴隨一個(gè)選通信號(hào)。通信號(hào)。 當(dāng)當(dāng)stb= stb= 時(shí)完成時(shí)完成數(shù)據(jù)鎖存。數(shù)據(jù)鎖存。 端口收到數(shù)據(jù)后,

7、再端口收到數(shù)據(jù)后,再通知通知cpucpu來(lái)取來(lái)取 ibf=1ibf=1,通知外設(shè)輸入緩沖器已滿,請(qǐng)不,通知外設(shè)輸入緩沖器已滿,請(qǐng)不要再送數(shù)據(jù)要再送數(shù)據(jù)只有在只有在ibf=0ibf=0時(shí)時(shí), ,外設(shè)才能寫入數(shù)據(jù)外設(shè)才能寫入數(shù)據(jù)輸入設(shè)備輸入設(shè)備pa70ibfastba8255a口口什么是選通型輸出(以什么是選通型輸出(以b b口為例)口為例)當(dāng)端口定義為選通型輸出當(dāng)端口定義為選通型輸出時(shí),端口與外設(shè)之間也有時(shí),端口與外設(shè)之間也有兩類信號(hào)兩類信號(hào) 數(shù)據(jù)線數(shù)據(jù)線pb7pb0pb7pb0 聯(lián)絡(luò)線聯(lián)絡(luò)線obfobfb b、ackackb bobf(outputobf(output buffer full)

8、 buffer full)輸出緩沖器滿輸出緩沖器滿狀態(tài)線狀態(tài)線ack(acknowledgeack(acknowledge) )確認(rèn)應(yīng)答確認(rèn)應(yīng)答輸出設(shè)備輸出設(shè)備pb70obfbackb8255b口口cpucpu對(duì)對(duì)b b口執(zhí)行口執(zhí)行outout指令指令, ,把一把一個(gè)數(shù)個(gè)數(shù)82558255 obfobfb b= ,= ,通通知外設(shè)輸出緩沖器已滿知外設(shè)輸出緩沖器已滿( (即數(shù)據(jù)線上信息可用了即數(shù)據(jù)線上信息可用了) ) 外設(shè)取走數(shù)據(jù)之后外設(shè)取走數(shù)據(jù)之后, ,使使ackackb b= ,= ,通知通知cpucpu端口數(shù)據(jù)已取走端口數(shù)據(jù)已取走, ,可再送可再送一個(gè)數(shù)一個(gè)數(shù)輸出設(shè)備輸出設(shè)備pb70obf

9、backb8255b口口什么是基本型輸入什么是基本型輸入( (以以b b口為例口為例) )當(dāng)當(dāng)b b口定義為基本型口定義為基本型輸入時(shí)輸入時(shí), ,它相當(dāng)于一它相當(dāng)于一個(gè)輸入緩沖器個(gè)輸入緩沖器, ,對(duì)對(duì)b b口口執(zhí)行一條執(zhí)行一條inin指令指令, ,就就把輸入數(shù)據(jù)把輸入數(shù)據(jù)cpucpu對(duì)對(duì)b b口執(zhí)行一條口執(zhí)行一條inin指令打開控制門指令打開控制門pb7pb0至至cpud7d0什么是基本型輸出什么是基本型輸出( (以以a a口為例口為例) )當(dāng)當(dāng)a a口定義為基本型口定義為基本型輸出時(shí)輸出時(shí), ,它為一個(gè)輸它為一個(gè)輸出鎖存器出鎖存器cpucpu對(duì)對(duì)a a口執(zhí)行一條口執(zhí)行一條outout指令把數(shù)

10、據(jù)鎖存指令把數(shù)據(jù)鎖存在端口在端口總之:基本型輸入總之:基本型輸入/出時(shí),出時(shí),8255和外設(shè)之間沒(méi)有聯(lián)和外設(shè)之間沒(méi)有聯(lián)絡(luò)信號(hào)絡(luò)信號(hào)對(duì)對(duì)a a口執(zhí)行一條口執(zhí)行一條outout指令鎖存數(shù)據(jù)指令鎖存數(shù)據(jù)d qcppa7pa0cpud7d0d qcp11.3 825511.3 8255控制字與初始化編程控制字與初始化編程1. 82551. 8255控制字控制字82558255有有2 2個(gè)控制字,方式選擇控制字,個(gè)控制字,方式選擇控制字,c c口按位置口按位置0/0/置置1 1命令字,控制字必須寫入控命令字,控制字必須寫入控制口才能有效制口才能有效 方式選擇控制字方式選擇控制字d61d5d3d1d0d2

11、d4c口pc3pc01=輸入0=輸出b組b口1=輸入0=輸出方式選擇0=方式01=方式1c口pc7pc41=輸入0=輸出a組a口1=輸入0=輸出方式選擇00=方式001=方式11x=方式2a a口工作在方式口工作在方式1 1、方式、方式2 2,b b口工作在方口工作在方式式1 1時(shí),時(shí),d3d3、d0d0只能定義部分只能定義部分pcpc線的入線的入/ /出出a a口工作在方式口工作在方式2 2時(shí),時(shí),d4d4不起作用不起作用c c口上、下半部可以選擇不同的入口上、下半部可以選擇不同的入/ /出出(都是方式(都是方式0 0)注意:注意: c c口按位置口按位置0/10/1命令字命令字注意:注意:

12、c c口按位置口按位置0/10/1命令字命令字必須寫入控制口必須寫入控制口x0xd3d1d0d2xd3d2d1位選擇0 0 0pc00 0 1pc10 1 0pc20 1 1pc31 0 0pc41 0 1pc51 1 0pc61 1 1pc7d0d0功能功能1 1pcxpcx置置1 10 0pcxpcx置置0 0 根據(jù)需要:把根據(jù)需要:把c c口置口置0/0/置置1 1命令字命令字控制控制口,目的是禁止口,目的是禁止/ /允許某一口提中斷允許某一口提中斷2. 82552. 8255初始化編程步驟初始化編程步驟 方式選擇命令字方式選擇命令字控制口,目的選擇控制口,目的選擇某一口的工作方式某一口

13、的工作方式例:要求置例:要求置a a口為方式口為方式0 0輸出,輸出,b b口為方式口為方式0 0輸輸入,入,pc74pc74為輸出,為輸出,pc30pc30為輸入為輸入mov almov al,83h83hout out 控口地址,控口地址,alal解:方式選擇命令字解:方式選擇命令字a口口方方式式0a口口輸輸出出b口口方方式式0b口口輸輸入入pc74為輸出為輸出pc30為輸入為輸入0100110011.4 8255工作方式及時(shí)序工作方式及時(shí)序一、一、 方式方式0 0與時(shí)序與時(shí)序數(shù)據(jù)有效數(shù)據(jù)有效tartir端口數(shù)據(jù)有效端口數(shù)據(jù)有效thrtratrdtdftrrrd輸入輸入cs,a1,a0d7

14、d0方式方式0 輸入時(shí)序輸入時(shí)序數(shù)據(jù)有效數(shù)據(jù)有效tawtdw數(shù)據(jù)有效數(shù)據(jù)有效twdtwatwbtwwwr輸出(端口輸出)輸出(端口輸出)cs,a1,a0d7d0(cpu輸出數(shù)據(jù))輸出數(shù)據(jù))方式方式0 輸出時(shí)序輸出時(shí)序二、二、 方式方式1輸入(選通型輸入)及時(shí)序輸入(選通型輸入)及時(shí)序1 0 1 1 1/0 x x xa口口方式方式11=pc7、6為入線為入線0=pc7、6為出線為出線方式選擇命令字方式選擇命令字輸入輸入pc4pc5pc3inteapc76pa70空閑空閑stbaibfaintraa口選通型輸入口選通型輸入1. a口方式口方式1輸入的預(yù)置輸入的預(yù)置當(dāng)方式字當(dāng)方式字=b0h寫入控制

15、寫入控制口之后,口之后,a口即工作在選通型口即工作在選通型輸入,輸入,pc4pc5pc3inteapc76pa70空閑空閑stbaibfaintraa口選通型輸入口選通型輸入pc7、pc6空閑,輸出線?輸入線?受方式字空閑,輸出線?輸入線?受方式字d3控制控制pa7pa0即為輸入線即為輸入線pc4自動(dòng)定義為入線,稱為自動(dòng)定義為入線,稱為stbapc5自動(dòng)定義為出線,稱為自動(dòng)定義為出線,稱為ibfapc3自動(dòng)定義為出線,稱為自動(dòng)定義為出線,稱為intra它們是輸出線?輸入線?不再受方式字它們是輸出線?輸入線?不再受方式字d3d3、d0d0控制控制此時(shí):此時(shí):pc4pc5pc3inteapc76p

16、a70空閑空閑stbaibfaintraa口選通型輸入口選通型輸入 當(dāng)當(dāng)intea=1之后,若之后,若ibfa=1,則,則a口提出中斷請(qǐng)求口提出中斷請(qǐng)求2. a口方式口方式1輸入時(shí),輸入時(shí),a口的中口的中斷管理斷管理用用c口置口置0/置置1命令字使命令字使pc4=1,則則intea=1,允許,允許a口中斷口中斷用用c口置口置0/置置1命令字使命令字使pc4=0,則則intea=0,禁止,禁止a口中斷口中斷 intea為為a口的中斷允許口的中斷允許觸發(fā)器,當(dāng)觸發(fā)器,當(dāng)a口定義為方口定義為方式式1輸入時(shí):輸入時(shí): 注意:中斷允許觸發(fā)器只能受注意:中斷允許觸發(fā)器只能受cpu控制,外設(shè)信控制,外設(shè)信號(hào)

17、號(hào)stba不能使其置不能使其置0/1pc2pc1pc0intebpb70stbbibfbintrbb口選通型輸入口選通型輸入1 x x x x 1 1 xb口方式口方式1輸入輸入方式選擇命令字方式選擇命令字3. b口方式口方式1輸入的預(yù)置輸入的預(yù)置當(dāng)方式字當(dāng)方式字=86h寫入控制寫入控制口之后,口之后,b口即工作在選通口即工作在選通型輸入,型輸入,stbbpc2pc1pc0intebpb70b口選通型輸入口選通型輸入ibfbintrbpb7pb0即為輸入線即為輸入線pc2自動(dòng)定義為入線,稱為自動(dòng)定義為入線,稱為stbbpc1自動(dòng)定義為出線,稱為自動(dòng)定義為出線,稱為ibfbpc0自動(dòng)定義為出線,

18、稱為自動(dòng)定義為出線,稱為intrb輸出線?輸入輸出線?輸入線?不再受方線?不再受方式字式字d0控制控制此時(shí):此時(shí):4. b口方式口方式1輸入時(shí)的中斷管理輸入時(shí)的中斷管理 inteb=1之后,若之后,若ibfb=1,則,則intrb=1,b口可口可提出中斷請(qǐng)求提出中斷請(qǐng)求 inteb為為b口的中斷允許觸口的中斷允許觸發(fā)器,當(dāng)發(fā)器,當(dāng)b口工作在方式口工作在方式1輸入時(shí):輸入時(shí):用用c口置口置0/1命令字使命令字使pc2=1,則則inteb=1,允許,允許b口中斷口中斷;用用c口置口置0/1命令字使命令字使pc2=0,則則inteb=0,禁止,禁止b口中斷口中斷 注意:中斷允許觸發(fā)器注意:中斷允許觸

19、發(fā)器inteb受受cpu控制,外設(shè)控制,外設(shè)信號(hào)信號(hào)stbb不能使不能使inteb置置0/1stbbpc2pc1pc0intebpb70b口選通型輸入口選通型輸入ibfbintrb5. 方式方式1輸入的時(shí)序圖輸入的時(shí)序圖tsittsibtrittribtpstphtststbibfintr方式方式1 輸入時(shí)序輸入時(shí)序rd來(lái)自外設(shè)的來(lái)自外設(shè)的輸入數(shù)據(jù)輸入數(shù)據(jù)stbibfintrrd來(lái)自外設(shè)的來(lái)自外設(shè)的輸入數(shù)據(jù)輸入數(shù)據(jù)方式方式1輸入操作是由輸入操作是由stb=引發(fā)的,引發(fā)的,stb =后:后: 外設(shè)數(shù)據(jù)外設(shè)數(shù)據(jù)8255, ibf=stbibfintrrd來(lái)自外設(shè)的來(lái)自外設(shè)的輸入數(shù)據(jù)輸入數(shù)據(jù) 滿足下

20、列條件,提中斷請(qǐng)求:滿足下列條件,提中斷請(qǐng)求:hstb信號(hào)結(jié)束(信號(hào)結(jié)束(stb脈寬可以很寬)脈寬可以很寬)hibf=1,(外設(shè)數(shù)據(jù)確已鎖存),(外設(shè)數(shù)據(jù)確已鎖存)hinte=1(中斷允許觸發(fā)器置(中斷允許觸發(fā)器置1) 服務(wù)程序執(zhí)行服務(wù)程序執(zhí)行in指令之后:指令之后: rd信號(hào)前沿使信號(hào)前沿使intr= ,后沿使,后沿使ibf=0 從而結(jié)束一次數(shù)據(jù)輸入過(guò)程從而結(jié)束一次數(shù)據(jù)輸入過(guò)程stbibfintrrd來(lái)自外設(shè)的來(lái)自外設(shè)的輸入數(shù)據(jù)輸入數(shù)據(jù)6. 方式方式1輸入時(shí),輸入時(shí),cpu8255信息交換的方信息交換的方式式 可以用中斷方式可以用中斷方式 可以用查詢方式,可以用查詢方式,輸入查詢應(yīng)查詢輸入查

21、詢應(yīng)查詢ibf,不應(yīng)該查詢不應(yīng)該查詢stb!stb脈沖是外設(shè)送來(lái),它最小可小到脈沖是外設(shè)送來(lái),它最小可小到500ns,而在,而在500ns的時(shí)間內(nèi)正好運(yùn)行的時(shí)間內(nèi)正好運(yùn)行cpu的查詢指令是不可能的的查詢指令是不可能的三、三、 方式方式1輸出輸出(選通型輸出選通型輸出)及時(shí)序及時(shí)序1 0 1 0 1/0 x x xa口口方式方式1輸出輸出1=pc4、5為入線為入線0=pc4、5為出線為出線方式選擇命令字方式選擇命令字pc6pc7pc3inteapc4、5pa70空閑空閑ackaobfaintraa口選通型輸出口選通型輸出pc6pc7pc3inteapc4、5pa70空閑空閑ackaobfaint

22、raa口選通型輸出口選通型輸出1. a口方式口方式1輸出的預(yù)置輸出的預(yù)置當(dāng)方式字當(dāng)方式字=a0h寫入寫入控制口之后,控制口之后,a口即工作口即工作在選通型輸出方式,在選通型輸出方式,pc4、pc5空閑,出?入?受方式字空閑,出?入?受方式字d3控制控制pa70為輸出線為輸出線pc6自動(dòng)定義為入線,稱自動(dòng)定義為入線,稱ackapc7自動(dòng)定義為出線,稱自動(dòng)定義為出線,稱obfapc3自動(dòng)定義為出線,稱自動(dòng)定義為出線,稱intra輸出?輸入?輸出?輸入?不再受方式字不再受方式字d3、d0控制控制此時(shí):此時(shí):2. 方式方式1輸出時(shí)輸出時(shí)a口的中斷管理口的中斷管理 intea為為a口的中斷允許口的中斷允

23、許觸發(fā)器,當(dāng)觸發(fā)器,當(dāng)a口定義為方口定義為方式式1 輸出時(shí):輸出時(shí):用用c口置口置0/置置1命令字使命令字使pc6置置1,則則intea=1,允許,允許a口中斷口中斷用用c口置口置0/置置1命令字使命令字使pc6置置0,則則intea=0,禁止,禁止a口中斷口中斷 當(dāng)當(dāng)intea=1之后,若之后,若obfa=1,則,則a口提中斷口提中斷 intea只能受只能受cpu控制,外設(shè)控制,外設(shè)acka信號(hào)不能改信號(hào)不能改變其狀態(tài)變其狀態(tài)pc6pc7pc3inteapc4、5pa70空閑空閑ackaobfaintraa口選通型輸出口選通型輸出ackbobfbintrb1 x x x x 1 0 xb口方

24、式口方式1輸出輸出方式選擇命令字方式選擇命令字pc2pc1pc0intebpb70b口選通型輸出口選通型輸出obfbpc2pc1pc0intebpb70b口選通型輸出口選通型輸出ackbintrb3. 口方式輸出的設(shè)置口方式輸出的設(shè)置當(dāng)方式字當(dāng)方式字=84h控制控制口之后,口之后,b口即工作在選通口即工作在選通型輸出方式,型輸出方式,入線?出線?入線?出線?不 再 受 方 式不 再 受 方 式字字d0控制控制pb7pb0定義為輸出線定義為輸出線pc2自動(dòng)定義為入線,稱為自動(dòng)定義為入線,稱為ackbpc1自動(dòng)定義為出線,稱為自動(dòng)定義為出線,稱為obfbpc0自動(dòng)定義為出線,稱為自動(dòng)定義為出線,稱

25、為intrb此時(shí):此時(shí):4. 方式方式1輸出時(shí),輸出時(shí),b口的中斷管理口的中斷管理 inteb為為b口的中斷允許口的中斷允許觸發(fā)器觸發(fā)器,當(dāng)當(dāng)b口工作在方式口工作在方式1輸出時(shí):輸出時(shí):用用c口置口置0/1命令字使命令字使pc2=1,則則inteb=1,允許,允許b口中斷口中斷用用c口置口置0/1命令字使命令字使pc2=0,則則inteb=0,禁止,禁止b口中斷口中斷 inteb置置1后,后,obfb=1,則,則intrb=1,b口提口提出中斷出中斷 同樣,同樣,ackb不能改變不能改變inteb的狀態(tài),它只受的狀態(tài),它只受cpu控制控制obfbpc2pc1pc0intebpb70b口選通型輸

26、出口選通型輸出ackbintrb5. 方式方式1輸出的時(shí)序圖輸出的時(shí)序圖taxtwobtaobtaittwbtwitobfintr方式方式1 輸出時(shí)序輸出時(shí)序wr輸出輸出ack方式方式1輸出時(shí)輸出時(shí) cpu針對(duì)針對(duì)8255數(shù)據(jù)口執(zhí)行數(shù)據(jù)口執(zhí)行out指令指令 wr信號(hào)結(jié)束后,數(shù)據(jù)出現(xiàn)在外設(shè)數(shù)據(jù)線上信號(hào)結(jié)束后,數(shù)據(jù)出現(xiàn)在外設(shè)數(shù)據(jù)線上obf有效(向外設(shè)通報(bào)其數(shù)據(jù)線信息可用)有效(向外設(shè)通報(bào)其數(shù)據(jù)線信息可用)使使intr無(wú)效,撤銷中斷請(qǐng)求無(wú)效,撤銷中斷請(qǐng)求obfintrwr輸出輸出ack 外設(shè)取走數(shù)據(jù)后,發(fā)來(lái)外設(shè)取走數(shù)據(jù)后,發(fā)來(lái)ack,ack信號(hào)前沿信號(hào)前沿使使obf無(wú)效,后沿提中斷。無(wú)效,后沿提中斷

27、。obfintrwr輸出輸出ack工作在方式工作在方式1輸出時(shí)端口提中斷的條件:輸出時(shí)端口提中斷的條件:h 外設(shè)發(fā)出外設(shè)發(fā)出ack信號(hào)且使信號(hào)且使obf=1h 中斷允許觸發(fā)器置中斷允許觸發(fā)器置1obfintrwr輸出輸出ack6. 方式方式1輸出時(shí),輸出時(shí),cpu8255交換信息的方式交換信息的方式 中斷方式中斷方式 查詢方式:查詢查詢方式:查詢obf,當(dāng),當(dāng)obf=1(不滿)(不滿)時(shí)可送下一個(gè)數(shù)據(jù)時(shí)可送下一個(gè)數(shù)據(jù)四、四、 8255的雙向方式的雙向方式只有只有a口可以工作在雙向方式口可以工作在雙向方式當(dāng)當(dāng)a口工作在雙向方式時(shí),口工作在雙向方式時(shí),b口可以工作在口可以工作在基本型基本型i/o(

28、不需要聯(lián)絡(luò)線),也可以工作(不需要聯(lián)絡(luò)線),也可以工作在選通型在選通型i/o(使用(使用pc0、1、2做聯(lián)絡(luò)線)做聯(lián)絡(luò)線)方式選擇命令字方式選擇命令字1 1 x x x d2 d1 d0a口口雙向雙向1=pc20為入線為入線0=pc20為出線為出線00b口方式口方式0輸出輸出01b口方式口方式0輸入輸入10b口方式口方式1輸出輸出11b口方式口方式1輸入輸入1.1.雙向方式的設(shè)置雙向方式的設(shè)置pc7pc6pc3inte1pc20pa70pc4pc5空閑空閑intraackaobfaibfastbainte2a a口定義為雙向方式之后:口定義為雙向方式之后:pa70pa70是雙向的數(shù)據(jù)線,可以分

29、時(shí)完成數(shù)據(jù)輸是雙向的數(shù)據(jù)線,可以分時(shí)完成數(shù)據(jù)輸入入/ /出出pc3pc3自動(dòng)定義為出線:自動(dòng)定義為出線:intrintra apc7pc7自動(dòng)定義為出線:自動(dòng)定義為出線:obfobfa apc6pc6自動(dòng)定義為入線:自動(dòng)定義為入線:ackacka apc4pc4自動(dòng)定義為入線:自動(dòng)定義為入線:stbstba apc5pc5自動(dòng)定義為出線:自動(dòng)定義為出線:ibfibfa apc20pc20空閑空閑入入/ /出線?不再受出線?不再受方式字方式字d3d3、d0d0的控的控制制ibfibfa a、stbstba a是雙向方式中的一對(duì)輸入聯(lián)絡(luò)線是雙向方式中的一對(duì)輸入聯(lián)絡(luò)線obfobfa a、ackack

30、a a是雙向方式中的一對(duì)輸出聯(lián)絡(luò)線是雙向方式中的一對(duì)輸出聯(lián)絡(luò)線數(shù)據(jù)輸入過(guò)程數(shù)據(jù)輸入過(guò)程, ,數(shù)據(jù)輸出過(guò)程與方式數(shù)據(jù)輸出過(guò)程與方式1 1類似類似pc7pc6pc3inte1pc20pa70pc4pc5空閑空閑intraackaobfaibfastbainte22. a口雙向方式的中斷管理口雙向方式的中斷管理 inte1為雙向方式中為雙向方式中的輸出中斷允許觸發(fā)器的輸出中斷允許觸發(fā)器用用c口置口置0/1命令字使命令字使pc6置置0,則,則inte1=0 用用c口置口置0/1命令字使命令字使pc6置置1,則,則inte1=1i n t e 1 置置 1 后 , 若后 , 若obfa=1,則,則int

31、ra=1,提出中斷請(qǐng)求提出中斷請(qǐng)求a口定義為雙向方式之后:口定義為雙向方式之后: inte2inte2為雙向方式中的為雙向方式中的輸入中斷允許觸發(fā)器輸入中斷允許觸發(fā)器用用c c口置口置0/10/1命令字使命令字使pc4pc4置置0 0,則,則inte2=0inte2=0用用c c口置口置0/10/1命令字使命令字使pc4pc4置置1 1,則,則inte2=1inte2=1inte2inte2置置1 1后,若后,若ibfibfa a=1=1,則則intrintra a=1=1,提出中斷請(qǐng),提出中斷請(qǐng)求求pc7pc6pc3inte1pc20pa70pc4pc5空閑空閑intraackaobfaib

32、fastbainte2inte1:雙向方式中的輸出中斷允許觸發(fā)器:雙向方式中的輸出中斷允許觸發(fā)器inte2:雙向方式中的輸入中斷允許觸發(fā)器:雙向方式中的輸入中斷允許觸發(fā)器ibfa、stba是雙向方式中的一對(duì)輸入聯(lián)絡(luò)線是雙向方式中的一對(duì)輸入聯(lián)絡(luò)線obfa、acka是雙向方式中的一對(duì)輸出聯(lián)絡(luò)線是雙向方式中的一對(duì)輸出聯(lián)絡(luò)線在在ibfa=0時(shí)表示輸入緩沖器空閑時(shí)表示輸入緩沖器空閑輸入設(shè)備把數(shù)據(jù)輸入設(shè)備把數(shù)據(jù)pa70,隨后使,隨后使stba=完成數(shù)據(jù)輸入,在完成數(shù)據(jù)輸入,在inte2=1的前提下向的前提下向cpu提提中斷中斷cpu響應(yīng)后對(duì)響應(yīng)后對(duì)a口執(zhí)行口執(zhí)行in指令取走數(shù)據(jù)指令取走數(shù)據(jù)cpu輸入:輸入

33、:cpu對(duì)對(duì)a口執(zhí)行口執(zhí)行out指令,數(shù)據(jù)寫入指令,數(shù)據(jù)寫入a口口obfa=0表示表示pa70有數(shù)據(jù)了有數(shù)據(jù)了外設(shè)取走數(shù)據(jù)后,向外設(shè)取走數(shù)據(jù)后,向acka送送在在inte1=1的前提下向的前提下向cpu提出中斷提出中斷cpu響應(yīng)后再次執(zhí)行響應(yīng)后再次執(zhí)行out指令又送一個(gè)指令又送一個(gè)新的數(shù)據(jù)新的數(shù)據(jù)a口口輸出:輸出: 方式方式0的特點(diǎn):的特點(diǎn):8255和外設(shè)交換信息時(shí),不需和外設(shè)交換信息時(shí),不需要聯(lián)絡(luò)線要聯(lián)絡(luò)線;方式方式1、2的特點(diǎn):的特點(diǎn):8255和外設(shè)交換和外設(shè)交換信息時(shí),需要聯(lián)絡(luò)線信息時(shí),需要聯(lián)絡(luò)線五、五、 8255小結(jié)小結(jié)1. 8255工作方式工作方式 a口可以工作在方式口可以工作在方式

34、0、1、2,b口可以工口可以工作在方式作在方式0、1,不能工作在方式,不能工作在方式2,c口可以口可以工作在方式工作在方式0 c口分為口分為pc74、pc30二部分,但程序員對(duì)二部分,但程序員對(duì)c口的讀寫是按字節(jié)操作的口的讀寫是按字節(jié)操作的 a口工作在方式口工作在方式2時(shí),時(shí),b口只能工作在方式口只能工作在方式0、1(限制:(限制:cpu只能用查詢而不能用中斷和只能用查詢而不能用中斷和b口交換數(shù)據(jù))口交換數(shù)據(jù)) 數(shù)據(jù)口工作在方式數(shù)據(jù)口工作在方式1 1、2 2時(shí),時(shí),cpucpu用:用:(a) (a) 查詢方式:輸入查詢測(cè)試查詢方式:輸入查詢測(cè)試ibfibf,輸出,輸出查詢測(cè)試查詢測(cè)試obfob

35、f2. cpu2. cpu與與82558255交換信息的方式交換信息的方式 數(shù)據(jù)口工作在方式數(shù)據(jù)口工作在方式0 0時(shí),時(shí),cpucpu采用無(wú)條采用無(wú)條件傳送件傳送(b) (b) 中斷方式:由于中斷方式:由于82558255本身不能向本身不能向cpucpu回送中斷向量,所以必須用回送中斷向量,所以必須用82598259管理。管理。在系統(tǒng)外擴(kuò)在系統(tǒng)外擴(kuò)82558255時(shí),時(shí),82558255的的intrintr應(yīng)接應(yīng)接到系統(tǒng)機(jī)從到系統(tǒng)機(jī)從82598259的的ir1ir1,作為用戶中斷,作為用戶中斷來(lái)處理來(lái)處理3. 3. 中斷允許觸發(fā)器的置中斷允許觸發(fā)器的置0 0、置、置1 1對(duì)程序員來(lái)講:工作在方

36、式對(duì)程序員來(lái)講:工作在方式1 1、方式、方式2 2時(shí),時(shí),82558255內(nèi)部有內(nèi)部有4 4個(gè)中斷允許觸發(fā)器,用個(gè)中斷允許觸發(fā)器,用“c c口專口專用的置用的置0/10/1命令字命令字”可以使它們置可以使它們置0/10/1a a口方口方式式1 1入入a a口方口方式式1 1出出b b口方口方式式1 1入入b b口方口方式式1 1出出a a口口雙向雙向inteainteapc4pc4pc6pc6intebintebpc2pc2pc2pc2inte1inte1pc6pc6inte2inte2pc4pc4方方式式控制控制位位中斷允中斷允許觸發(fā)器許觸發(fā)器如:如:a a口工作在方式口工作在方式1 1入時(shí)

37、,執(zhí)行:入時(shí),執(zhí)行:mov almov al,00001001b00001001bout 8255out 8255控制口,控制口,alal;即可使;即可使inteaintea置置1 1,允許中斷,允許中斷4. 8255的初始化編程的初始化編程 工作在方式工作在方式0時(shí):方式選擇命令字時(shí):方式選擇命令字控制口控制口 工作在方式工作在方式1、2時(shí):時(shí):a) 方式選擇命令字方式選擇命令字控制口控制口b) 允許中斷(或禁止中斷)的命令字允許中斷(或禁止中斷)的命令字控制口控制口六、六、 82558255應(yīng)用舉例應(yīng)用舉例例:設(shè)系統(tǒng)機(jī)外擴(kuò)了一片例:設(shè)系統(tǒng)機(jī)外擴(kuò)了一片82558255、以及相應(yīng)的、以及相應(yīng)的

38、實(shí)驗(yàn)電路實(shí)驗(yàn)電路, ,如后頁(yè)圖所示。要求如后頁(yè)圖所示。要求: :先預(yù)置先預(yù)置開關(guān)開關(guān)k3k3k1k1為一組狀態(tài)為一組狀態(tài), ,然后按下自復(fù)然后按下自復(fù)按鈕按鈕k k 產(chǎn)生一個(gè)負(fù)脈沖信號(hào)輸入到產(chǎn)生一個(gè)負(fù)脈沖信號(hào)輸入到pc4pc4。用發(fā)光二極管用發(fā)光二極管lediledi亮來(lái)顯示亮來(lái)顯示k3k3k1k1的狀的狀態(tài)。主機(jī)鍵盤有任意鍵按下時(shí)結(jié)束演示。態(tài)。主機(jī)鍵盤有任意鍵按下時(shí)結(jié)束演示。k3 k2 k1000 時(shí)時(shí),led1 亮亮 k3 k2 k1001 時(shí)時(shí),led2 亮亮k3 k2 k1010 時(shí)時(shí),led3 亮亮 k3 k2 k1011 時(shí)時(shí),led4 亮亮k3 k2 k1100 時(shí)時(shí),led5

39、亮亮 k3 k2 k1101 時(shí)時(shí),led6 亮亮k3 k2 k1110 時(shí)時(shí),led7 亮亮k3 k2 k1111 時(shí)時(shí),led8 亮亮k3k1閉合為閉合為0,斷開為斷開為1。 要求要求:d7d0d7d05vresetioriowrdwr口地址譯碼口地址譯碼218h21fha1a1a0a082555vled8led7led1pb7pb6pb0pa2pa1pa0k3k2k15v單脈沖發(fā)生器單脈沖發(fā)生器pc4kpc5ibfaintrapc3inteacs實(shí)驗(yàn)電路圖實(shí)驗(yàn)電路圖(教材(教材p347)stbaa口口: 218h, 21chb口口: 219h, 21dhc口口: 21ah, 21eh控口

40、控口:21bh, 21fh 端口地址端口地址設(shè)計(jì)思路設(shè)計(jì)思路d7d0d7d05vresetioriowrdwr口地址譯碼口地址譯碼218h21fha1a1a0a082555vled8led7led1pb7pb6pb0pa2pa1pa0k3k2k15v單脈沖發(fā)生器單脈沖發(fā)生器pc4kpc5ibfaintrapc3inteacsstba 8255工作方式的選擇工作方式的選擇b口應(yīng)為基本型輸出口應(yīng)為基本型輸出a口應(yīng)為選通型輸入口應(yīng)為選通型輸入設(shè)計(jì)思路設(shè)計(jì)思路d7d0d7d05vresetioriowrdwr口地址譯碼口地址譯碼218h21fha1a1a0a082555vled8led7led1pb7

41、pb6pb0pa2pa1pa0k3k2k15v單脈沖發(fā)生器單脈沖發(fā)生器pc4kpc5ibfaintrapc3inteacsstba十 四 8255和和cpu交換交換信息的方式信息的方式 cpu8255b口用口用無(wú)條件輸出無(wú)條件輸出 設(shè)計(jì)思路設(shè)計(jì)思路d7d0d7d05vresetioriowrdwr口地址譯碼口地址譯碼218h21fha1a1a0a082555vled8led7led1pb7pb6pb0pa2pa1pa0k3k2k15v單脈沖發(fā)生器單脈沖發(fā)生器pc4kpc5ibfaintrapc3inteacsstba設(shè)計(jì)思路設(shè)計(jì)思路 cpu8255a口交口交換信息換信息解法解法1:查詢方式,:

42、查詢方式,當(dāng)當(dāng)pc5=1時(shí),表示時(shí),表示k3k2k1的值已寫的值已寫入入a口了口了解法解法2:中斷方式,:中斷方式,pc3接系統(tǒng)從接系統(tǒng)從8259 ir1,按用戶中斷,按用戶中斷處理處理d7d08255led8led7led1k十 四d7d0resetrdwra1a082555vled8led7led1pb7pb6pb0pa2pa1pa0k3k2k15v單脈沖發(fā)生器單脈沖發(fā)生器pc4kpc5ibfaintrapc3inteacsstbaa口禁止中斷命令字口禁止中斷命令字0 x x x 1 0 0 0=08h 用查詢方式編程:用查詢方式編程:方式選擇命令字:方式選擇命令字:1 0 1 1 x 0

43、 0 x =b0ha口口方式方式1a口口輸入輸入b口口方式方式0b口口輸出輸出b口方式口方式0輸出,輸出,a口選通型輸入查詢口選通型輸入查詢查詢方式程序清單查詢方式程序清單 ;filename:1021_1.asmdata segmentmesg db 8255a ready.,0dh,0ah,$tab db 11111110b db 11111101b db 11111011b db 11110111b db 11101111b db 11011111b db 10111111b db 01111111bdata endscode segment assume cs:code,ds:data

44、beg: mov ax,data mov ds,ax call i8255a ;8255a初始化初始化 mov ah,9 mov dx,offset mesg int 21h ;給出操作提示給出操作提示scan: mov ah,1 int 16h ;有鍵入有鍵入 ? jnz return ;有有 mov dx,21ah in al,dx ;讀讀8255a c口口 test al,00100000b ;pc5=1 ? jz scan ;no mov dx,218h in al,dx ;讀讀8255a a口口 and al,07h mov bx,offset tab xlat tab ;查表查表 mov dx,219h out dx,al ;表項(xiàng)輸出到表項(xiàng)輸出到b口口 jmp scanreturn: mov ah,4ch int 21h ;返回返回 dosi8255a proc mov dx,21bh mov al,0b0h out dx,al ;寫入工作方式字寫入工作方式字 mov al,08h out dx,al ;令令pc4=0 (inte a =

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論