第06章 MCS-51單片機(jī)存儲(chǔ)器擴(kuò)展與并行IO接口擴(kuò)展_第1頁
第06章 MCS-51單片機(jī)存儲(chǔ)器擴(kuò)展與并行IO接口擴(kuò)展_第2頁
第06章 MCS-51單片機(jī)存儲(chǔ)器擴(kuò)展與并行IO接口擴(kuò)展_第3頁
第06章 MCS-51單片機(jī)存儲(chǔ)器擴(kuò)展與并行IO接口擴(kuò)展_第4頁
第06章 MCS-51單片機(jī)存儲(chǔ)器擴(kuò)展與并行IO接口擴(kuò)展_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

并行I/O口的應(yīng)用與擴(kuò)展

I/O接口技術(shù)概述存儲(chǔ)器的擴(kuò)展第6章存儲(chǔ)器擴(kuò)展與并行I/O接口擴(kuò)展單片機(jī)系統(tǒng)擴(kuò)展的結(jié)構(gòu)系統(tǒng)擴(kuò)展就是往總線上“掛”存儲(chǔ)器芯片或I/O接口芯片,“掛”存儲(chǔ)器芯片就是存儲(chǔ)器擴(kuò)展,“掛”I/O接口芯片就是I/O擴(kuò)展6.151單片機(jī)存儲(chǔ)器擴(kuò)展一、存儲(chǔ)器概述內(nèi)存由半導(dǎo)體存儲(chǔ)器組成,速度快、但造價(jià)高、容量小,用來存放當(dāng)前運(yùn)行的程序存儲(chǔ)器分類外存由硬盤或光盤存儲(chǔ)器等構(gòu)成,造價(jià)低、容量大、信息可長期保存,但速度慢6.151單片機(jī)存儲(chǔ)器擴(kuò)展只讀存儲(chǔ)器ROM,正常工作時(shí)只能讀出不能寫入,斷電后信息可長期保存半導(dǎo)體存儲(chǔ)器隨機(jī)讀寫RAM,工作中既可讀出數(shù)據(jù)也可寫入數(shù)據(jù),但斷電后其中的信息將會(huì)丟失只讀存儲(chǔ)器ROMPROM:用戶自行寫入程序,但只能寫一次EPROM:用戶可多次編程,用紫外燈照射可擦除信息EEPROM:通過加電信號可直接擦除其中的信息掩膜ROM:其中的信息在制造時(shí)由掩膜工藝固化進(jìn)去ROM只能讀不能寫,那其中的內(nèi)容是怎么放進(jìn)去的?隨機(jī)讀寫RAM6.151單片機(jī)存儲(chǔ)器擴(kuò)展動(dòng)態(tài)RAM:用電容上的電量來表示信息,電路簡單,集成度高。但需要定時(shí)刷新靜態(tài)RAM:用觸發(fā)器存儲(chǔ)信息,集成度低,容量小,但無需刷新1)存儲(chǔ)容量存儲(chǔ)容量是指存儲(chǔ)器所能存儲(chǔ)的二進(jìn)制信息的總量。存儲(chǔ)器容量=單元數(shù)×數(shù)據(jù)線位數(shù)例如:512×8,1024×8=1KB,2KB,64KB6.151單片機(jī)存儲(chǔ)器擴(kuò)展半導(dǎo)體存儲(chǔ)器的主要指標(biāo)2)存取速度指從CPU給出有效的存儲(chǔ)器地址到存儲(chǔ)器給出有效數(shù)據(jù)所花費(fèi)的時(shí)間。存取時(shí)間越小,存儲(chǔ)器的存取速度就越快。通常,半導(dǎo)體存儲(chǔ)器的最大存取時(shí)間從幾十到幾百毫微秒6.151單片機(jī)存儲(chǔ)器擴(kuò)展6.151單片機(jī)存儲(chǔ)器擴(kuò)展二、程序存儲(chǔ)器及其擴(kuò)展1.Intel27系列EPROM芯片型號存儲(chǔ)容量地址線數(shù)27162KB1127324KB1227648KB132712816KB142725632KB152751264KB16為什么2764是13根地址線?存儲(chǔ)容量與地址線之間什么關(guān)系?6.151單片機(jī)存儲(chǔ)器擴(kuò)展2764引腳功能A0~A12:地址線引腳,可尋址213=8192=8KD7~D0:數(shù)據(jù)線引腳,用于傳送數(shù)據(jù)CE:片選輸入端,低電平允許本芯片工作OE:輸出允許PGM:編程控制端VCC:工作電源VPP:編程電源GND:電源地端6.151單片機(jī)存儲(chǔ)器擴(kuò)展2764的工作方式工作方式引腳CEOEPGMVPPVCCD7~D0讀出低低高VCCVCC輸出維持高××VCCVCC高阻編程低高編程負(fù)脈沖VPPVCC輸入編程校驗(yàn)低低高VPPVCC輸出禁止編程高××VPPVCC高阻存儲(chǔ)器擴(kuò)展的關(guān)鍵問題是地址總線、數(shù)據(jù)總線和控制總線這三類總線的連接。MCS-51單片機(jī)由于受引腳數(shù)目的限制,數(shù)據(jù)線和低8位地址線復(fù)用,為了將它們分離出來,需要外加地址鎖存器74LS3736.151單片機(jī)存儲(chǔ)器擴(kuò)展2.單片程序存儲(chǔ)器的擴(kuò)展MCS-51單片機(jī)片外三總線的構(gòu)成MCS-51數(shù)據(jù)線和低8位地址線復(fù)用。為了將它們分離出來,需要外加地址鎖存器,從而構(gòu)成片外三總線MCS-51單片機(jī)擴(kuò)展27128P2.7P2.6P2.5···········P2.1P2.0P0.7P0.6·····P0.3P0.2P0.1P0.0

00000000

00111111

00000000

11111111=0000H=3FFFHMCS-51單片機(jī)擴(kuò)展27128地址線:低8位從P0口發(fā)出,用74LS373鎖存高8位從P2口發(fā)出,實(shí)際只用了6根數(shù)據(jù)線:P0口(分時(shí)復(fù)用)控制線:ALE、PSEN、EA根據(jù)硬件連接,該27128的地址范圍是多少?什么是重疊地址?什么是基本地址?P2.7P2.6P2.5···········P2.1P2.0P0.7P0.6·····P0.3P0.2P0.1P0.0

01000000

01111111

00000000

…11111111=4000H……=7FFFHP2.7P2.6P2.5···········P2.1P2.0P0.7P0.6·····P0.3P0.2P0.1P0.0

10000000

10111111

00000000

…11111111=8000H……=BFFFHP2.7P2.6P2.5···········P2.1P2.0P0.7P0.6·····P0.3P0.2P0.1P0.0

11000000

11111111

00000000

…11111111=C000H……=FFFFH當(dāng)空余腳取不同值時(shí)的地址稱為重疊地址當(dāng)空余腳取0時(shí)的地址稱為基本地址多片存儲(chǔ)器擴(kuò)展的關(guān)鍵問題仍然是地址總線、數(shù)據(jù)總線和控制總線這三類總線的連接。為了區(qū)分CPU是訪問哪一片EPROM,可以利用譯碼器進(jìn)行片選,這種片選方法稱為譯碼法6.151單片機(jī)存儲(chǔ)器擴(kuò)展3.多片程序存儲(chǔ)器的擴(kuò)展由多片存儲(chǔ)芯片組成的存儲(chǔ)空間,CPU是如何選中各個(gè)存儲(chǔ)芯片的?6.151單片機(jī)存儲(chǔ)器擴(kuò)展8031單片機(jī)擴(kuò)展四片271282-4譯碼器真值表BAY0Y1Y2Y3000110110111

101111011110G為選通控制端各片27128的地址范圍27128編號A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0地址范圍IC1(Y0=0)0000000000000000………00111111111111110000H……3FFFHIC2(Y1=0)0100000000000000………01111111111111114000H……7FFFHIC3(Y2=0)1000000000000000………10111111111111118000H……BFFFHIC4(Y3=0)1100000000000000………1111111111111111C000H……FFFFH6.151單片機(jī)存儲(chǔ)器擴(kuò)展三、數(shù)據(jù)存儲(chǔ)器及其擴(kuò)展1.Intel62系列SRAM型號芯片容量地址線數(shù)61162KB1162648KB136212816KB146225632KB156.151單片機(jī)存儲(chǔ)器擴(kuò)展6264引腳功能A0~A12:地址線引腳,可尋址213=8192=8KD7~D0:數(shù)據(jù)線引腳,用于傳送讀寫數(shù)據(jù)CS和CS1:片選端,同時(shí)有效允許本芯片工作OE:輸出允許WE:寫允許信號,低電平寫入,高電平讀出VCC:工作電源GND:電源地端6.151單片機(jī)存儲(chǔ)器擴(kuò)展6264的工作方式工作方式CSCS1WEOE功能讀出0110從6264讀出數(shù)據(jù)到D7~D0寫入0101將D7~D0數(shù)據(jù)寫入6264未選通11××輸出高阻6.151單片機(jī)存儲(chǔ)器擴(kuò)展2.數(shù)據(jù)存儲(chǔ)器的擴(kuò)展數(shù)據(jù)存儲(chǔ)器擴(kuò)展與程序存儲(chǔ)器擴(kuò)展的連接方法基本相同。不同的只是控制信號不一樣。在程序存儲(chǔ)器擴(kuò)展中,單片機(jī)使用PSEN作為讀選通信號,而在數(shù)據(jù)存儲(chǔ)器擴(kuò)展中,單片機(jī)則使用RD和WR分別作為讀和寫的選通信號采用線選法擴(kuò)展三片6264地址線:低8位從P0口發(fā)出,用74LS373鎖存高8位從P2口發(fā)出,用P2口高3位片選數(shù)據(jù)線:P0口(分時(shí)復(fù)用)控制線:ALE、RD、WR各片6264的地址范圍6264編號A15A14A13

A12A11A10A9A8A7A6A5A4A3A2A1A0地址范圍IC16264(P2.5=0)1100000000000000………1101111111111111C000H……DFFFHIC26264(P2.6=0)1010000000000000………1011111111111111A000H……BFFFHIC36264(P2.7=0)0110000000000000………01111111111111116000H……7FFFH

8031單片機(jī)內(nèi)部沒有程序存儲(chǔ)器,必須外接。而內(nèi)部RAM很少,經(jīng)常也需要外接數(shù)據(jù)存儲(chǔ)器。下面給出利用74LS138譯碼器同時(shí)擴(kuò)展二片2764和二片6264的電路6.151單片機(jī)存儲(chǔ)器擴(kuò)展3.同時(shí)擴(kuò)展程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器采用譯碼法同時(shí)擴(kuò)展ROM和RAM各片ROM和RAM的地址范圍存儲(chǔ)芯片A15A14A13

A12A11A10A9A8A7A6A5A4A3A2A1A0地址范圍IC12764(Y0=0)0000000000000000………00011111111111110000H……1FFFHIC22764(Y1=0)0010000000000000………00111111111111112000H……3FFFHIC36264(Y2=0)0100000000000000………01011111111111114000H……5FFFHIC46264(Y3=0)0110000000000000………01111111111111116000H……7FFFH思考題為什么當(dāng)P2口作為擴(kuò)展存儲(chǔ)器高8位地址后,不再適宜作通用I/O口了?8031如果只外接了程序存儲(chǔ)器,實(shí)際上還有多少根I/O口線可供用戶使用?如果只外接了數(shù)據(jù)存儲(chǔ)器,實(shí)際上還有多少根I/O口線可供使用?請說明原因在擴(kuò)展多片外部存儲(chǔ)器時(shí),有幾種片選方法?各有什么特點(diǎn)?在8031擴(kuò)展系統(tǒng)中,外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器共用16位地址線和8位數(shù)據(jù)線,為什么兩個(gè)存儲(chǔ)器的地址不會(huì)發(fā)生沖突?下次課前請預(yù)習(xí)6.2~6.3節(jié),并思考下列問題什么叫I/O接口?I/O接口的作用是什么?外設(shè)端口有哪兩種編址方法?各有什么特點(diǎn)?I/O數(shù)據(jù)有哪幾種傳送方式?查詢方式與中斷方式有什么不同之處?并行I/O接口和串行I/O接口各有什么特點(diǎn)?

51單片機(jī)在讀引腳之前為什么要先送“1”6.2I/O接口技術(shù)概述6.2I/O接口技術(shù)概述一、I/O接口的作用I/O接口作用輸出數(shù)據(jù)鎖存輸入數(shù)據(jù)緩沖速度匹配數(shù)據(jù)轉(zhuǎn)換12346.2I/O接口技術(shù)概述二、I/O接口的編址外設(shè)端口單獨(dú)編址:

I/O寄存器地址空間和存儲(chǔ)器地址空間分開編址I/O接口編址外設(shè)端口與存儲(chǔ)器統(tǒng)一編址:直接使用訪問數(shù)據(jù)存儲(chǔ)器的指令進(jìn)行I/O操作6.2I/O接口技術(shù)概述三、I/O數(shù)據(jù)的傳送方式I/O數(shù)據(jù)傳送方式查詢傳送方式中斷傳送方式DMA傳送方式無條件傳送方式1.無條件傳送存在問題:外設(shè)必須準(zhǔn)備就緒使用條件:(1)外設(shè)速度與CPU的速度一樣快 因外設(shè)速度非???,CPU可認(rèn)為它已經(jīng)準(zhǔn)備就緒 例如:CPU與D/A的接口──輸出模擬量 CPU與數(shù)碼管的接口──點(diǎn)亮數(shù)碼管(2)外設(shè)速度非常慢 因外設(shè)速度非常慢,CPU總認(rèn)為它已經(jīng)準(zhǔn)備就緒 例如:CPU讀取外部開關(guān)的通斷狀態(tài)。2.查詢方式傳送存在問題:CPU效率降低3.中斷方式傳送特點(diǎn):(1)與外設(shè)并行工作,CPU效率高(2)控制系統(tǒng)實(shí)時(shí)性好。4.DMA方式傳送6.2I/O接口技術(shù)概述四、I/O接口的類型并行I/O接口:用于并行傳送I/O數(shù)據(jù),速度快、效率高,適用于近距離傳送I/O接口類型串行I/O接口:用于串行傳送I/O數(shù)據(jù),成本低但速度慢,適用于遠(yuǎn)距離傳送6.3并行I/O口的應(yīng)用與擴(kuò)展一、51單片機(jī)I/O口的直接應(yīng)用P0口在擴(kuò)展片外存儲(chǔ)器時(shí)作地址/數(shù)據(jù)分時(shí)復(fù)用總線,在沒有擴(kuò)展時(shí)作雙向輸入/輸出口使用P1口為通用準(zhǔn)雙向輸入/輸出接口。P2口在擴(kuò)展片外存儲(chǔ)器時(shí)作高8位地址總線,在無擴(kuò)展時(shí)可用作通用準(zhǔn)雙向I/O接口。P3口除了作通用雙向I/O口使用外,還具有第2功能6.3并行I/O口的應(yīng)用與擴(kuò)展1.51單片機(jī)I/O端口的操作方式

1)輸出數(shù)據(jù)方式CPU通過以端口為目的操作數(shù)的指令就可以把數(shù)據(jù)寫到P0~P3的端口鎖存器,然后通過輸出驅(qū)動(dòng)電路送到端口的引腳上。因此,凡是以端口為目的操作數(shù)的指令都能達(dá)到從端口引腳上輸出數(shù)據(jù)的目的 MOV P0, R2 ORL P1, A ANL P2, #data XRL P3, A6.3并行I/O口的應(yīng)用與擴(kuò)展

2)讀端口鎖存器方式讀端口鎖存器方式實(shí)際上并不從外部引腳讀入數(shù)據(jù),而只是把端口鎖存器中的內(nèi)容讀到內(nèi)部總線,按指令要求進(jìn)行運(yùn)算和變換后,再寫回到鎖存器屬于這類操作的指令通常是ANL、ORL、XRL等“讀—修改—寫”指令,例如:

ANL20H,P2 ORL R1, P16.3并行I/O口的應(yīng)用與擴(kuò)展

3)讀引腳方式當(dāng)端口做輸入使用時(shí),若要讀取端口引腳上的信號,要先向其鎖存器寫入“1”,使得該輸出驅(qū)動(dòng)電路的場效應(yīng)管截止,然后再執(zhí)行輸入指令,才能真正把外部引腳的狀態(tài)讀入例如要讀取P1口低4位引腳上信號的指令如下:MOV P1,#0FH;使P1口低4位鎖存器置“1”MOV A,P1;讀P1口低4位引腳信號送ADQCLKQP1.n讀鎖存器內(nèi)部總線寫鎖存器讀引腳VCCRTP1口引腳6.3并行I/O口的應(yīng)用與擴(kuò)展2.I/O口用作輸出當(dāng)I/O口用作輸出時(shí),每個(gè)I/O引腳輸出高電平時(shí)的拉電流應(yīng)控制在1mA之內(nèi)P1、P2和P3口每個(gè)I/O引腳輸出低電平時(shí)的灌電流一般應(yīng)控制在3mA之內(nèi)P0口每個(gè)I/O引腳的灌電流允許到5mA6.3并行I/O口的應(yīng)用與擴(kuò)展【例6-1】

如圖所示,P1口的P1.0~P1.7分別通過反相器接8個(gè)發(fā)光二極管。要求編寫程序,每隔1s循環(huán)點(diǎn)亮1只發(fā)光二極管,一直循環(huán)下去,已知系統(tǒng)的晶振頻率為6MHz解:用軟件延時(shí)實(shí)現(xiàn)每隔1s循環(huán)點(diǎn)亮1只發(fā)光管⑴設(shè)計(jì)0.1s延時(shí)子程序因?yàn)閒osc=6MHz,所以機(jī)器周期=12/fosc=2μs

0.1s的延時(shí)子程序宜采用雙重循環(huán)結(jié)構(gòu),如下所示: DEL1:MOVR2, #200 ;1m DEL2:MOVR3, #X ;1m NOP ;1m DEL3:DJNZR3, DEL3 ;2m DJNZR2, DEL2 ;2m RET則延時(shí)時(shí)間=[(X×2m+4)×200]×2μs=100000μs 解得:X=123⑵主程序連續(xù)10次調(diào)用0.1s延時(shí)子程序,則總延時(shí)時(shí)間就達(dá)到了1s主程序如下: ORG 0000H START: MOV A, #01H LOOP: MOV P1, A MOV R1, #10DELAY: LCALLDEL1 ;10次調(diào)用延時(shí)子程序 DJNZR1, DELAY RL A LJMPLOOP6.3并行I/O口的應(yīng)用與擴(kuò)展3.I/O口用作輸入當(dāng)I/O口用作輸入時(shí),每個(gè)I/O腳的拉電流、灌電流一般應(yīng)控制在1mA之內(nèi)。如果I/O腳的電流太大時(shí),在單片機(jī)與輸入設(shè)備之間應(yīng)該用限流電阻予以隔離。需要特別注意的是,當(dāng)I/O口作為輸入使用時(shí),必須先向I/O口鎖存器的相應(yīng)位寫“1”,然后再讀,才能正確讀入引腳上的輸入信號6.3并行I/O口的應(yīng)用與擴(kuò)展【例6-2】

如圖所示,P1口外接8個(gè)開關(guān),要求將開關(guān)的狀態(tài)輸入到片內(nèi)RAM30H單元6.3并行I/O口的應(yīng)用與擴(kuò)展

ORG 0100HRDP1:MOV P1, #0FFH;先向P1口送1 MOV A, P1 ;讀入開關(guān)狀態(tài)

MOV 30H, A ;送指定單元

NOP SJMP RDP1 ;反復(fù)再讀

END為了能正確讀入P1口引腳的輸入信號,必須要先向P1口送“1”,然后再讀這條指令起什么作用?MCS-51單片機(jī)雖然有四個(gè)并行I/O口P2口和P0口用于和外部存儲(chǔ)器連接P3口常用于第二功能只剩下P1口可用于連接外設(shè)當(dāng)外設(shè)較多時(shí),需要擴(kuò)展單片機(jī)的并行I/O口單片機(jī)系統(tǒng)擴(kuò)展的結(jié)構(gòu)I/O擴(kuò)展就是往總線上“掛”I/O接口芯片,以便能連接更多外設(shè)6.3并行I/O口的應(yīng)用與擴(kuò)展二、采用8255A擴(kuò)展并行I/O口8255A是可編程并行I/O接口芯片具有3個(gè)8位并行I/O口3種工作方式,可通過編程改變其功能使用靈活方便,通用性強(qiáng)6.3并行I/O口的應(yīng)用與擴(kuò)展1.8255A內(nèi)部結(jié)構(gòu)和引腳6.3并行I/O口的應(yīng)用與擴(kuò)展D7~D0:三態(tài)雙向數(shù)據(jù)線,傳送數(shù)據(jù)以及控制字PA7~PA0:A口輸入/輸出線。PB7~PB0:B口輸入/輸出線。PC7~PC0:C口輸入/輸出線。 CS:片選信號線,低電平有效,表示本芯片被選中RD:讀出信號線,低電平有效,控制從8255A讀WR:寫入信號線,低電平有效,控制向8255A寫入A1、A0:地址線,用來選擇8255A內(nèi)部的4個(gè)端口RESET:復(fù)位線,高電平有效。Vcc:+5V電源。8255A引腳功能如何選擇8255A的各端口地址?6.3并行I/O口的應(yīng)用與擴(kuò)展地址線A1、A0與端口的對應(yīng)關(guān)系

8255A各端口地址A1A000─A口地址01─B口地址10─C口地址11─控制口地址6.3并行I/O口的應(yīng)用與擴(kuò)展8255A各端口工作狀態(tài)與控制信號的關(guān)系CSA1A0RDWR工作狀態(tài)00001讀端口A:數(shù)據(jù)總線←A口數(shù)據(jù)00101讀端口B:數(shù)據(jù)總線←B口數(shù)據(jù)01001讀端口C:數(shù)據(jù)總線←C口數(shù)據(jù)00010寫端口A:總線數(shù)據(jù)→A口00110寫端口B:總線數(shù)據(jù)→B口01010寫端口C:總線數(shù)據(jù)→C口01110寫控制字:總線數(shù)據(jù)→控制字口1××××數(shù)據(jù)總線為三態(tài)6.3并行I/O口的應(yīng)用與擴(kuò)展2.8255A控制字8255A有兩個(gè)控制字:方式控制字和C口置復(fù)位字。用戶通過程序可以把這兩個(gè)控制字寫到8255A的控制字寄存器,以設(shè)定8255A的工作方式和C口各位的狀態(tài)6.3并行I/O口的應(yīng)用與擴(kuò)展8255A方式控制字6.3并行I/O口的應(yīng)用與擴(kuò)展C口置復(fù)位控制字8255如何辨認(rèn)方式控制字和C口置復(fù)位控制字?6.3并行I/O口的應(yīng)用與擴(kuò)展8255A的工作方式方式1:選通I/O方式方式2:雙向I/O方式(僅A口)方式0:基本I/O方式3.8255A的工作方式6.3并行I/O口的應(yīng)用與擴(kuò)展【例6-3】要求8255A各端口工作于方式0,A口作輸出,B口作輸入,C口高4位作輸出,C口低4位作輸入,寫出8255A的方式控制字練習(xí)題二I/O數(shù)據(jù)有哪幾種傳送方式?查詢方式與中斷方式有什么不同之處?并行I/O接口和串行I/O接口各有什么特點(diǎn)?

51單片機(jī)在讀引腳之前為什么要先送“1”決定8255各端口地址的引腳有哪幾條?作用是什么?8255如何辨認(rèn)方式控制字和C口置復(fù)位控制字?下次課前請預(yù)習(xí)6.3.2~6.3.3,并思考下列問題8155的IO/M引腳的作用是什么?決定8155選口地址的引腳有哪些?基本輸入/輸出與選通輸入/輸出有什么區(qū)別?8155有幾種工作方式?怎樣選擇?8255A可編程并行I/O接口芯片具有3個(gè)8位并行I/O口3種工作方式,可通過編程改變其功能使用靈活方便,通用性強(qiáng)

8255A各端口地址 A1A0 00─A口地址 01─B口地址 10─C口地址 11─控制口地址8255A的工作方式 方式0:基本I/O方式 方式1:選通I/O方式 方式2:雙向I/O方式(僅A口)8255A方式控制字6.3并行I/O口的應(yīng)用與擴(kuò)展4.8255A應(yīng)用舉例【例6-4】8255A與MCS-51單片機(jī)接口電路如圖所示,8255A的B口外接8個(gè)開關(guān),A口通過反相器接8個(gè)發(fā)光二極管,各端口均工作在方式0,要求編寫程序從B口讀入開關(guān)的狀態(tài),再從A口輸出點(diǎn)亮發(fā)光二極管6.3并行I/O口的應(yīng)用與擴(kuò)展6.3并行I/O口的應(yīng)用與擴(kuò)展依題意,8255A各端口工作在方式0,且A口作輸出,B口作輸入,則8255A方式控制字應(yīng)如何設(shè)置?6.3并行I/O口的應(yīng)用與擴(kuò)展根據(jù)硬件連接,8255A各端口地址是多少?端口A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

端口地址A口01111111000000007F00HB口01111111000000017F01HC口01111111000000107F02H控制口01111111000000117F03H任取項(xiàng)取0任取項(xiàng)取18255A初始化程序如下:MOVDPTR,#7F03H;DPTR←控制口地址MOVA, #82H ;方式控制字MOVX@DPTR,A ;8255A←控制字本題的8255A初始化程序應(yīng)如何編寫?6.3并行I/O口的應(yīng)用與擴(kuò)展源程序 ORG 1000HMAIN: MOVDPTR,#7F03H;DPTR←控制口地址 MOVA, #82H ;方式控制字 MOVX@DPTR,A ;8255A←控制字INPB: MOV DPTR,#7F01H;指向8255的B口 MOVXA,@DPTR ;A←8255的B口 MOVDPTR,#7F00H ;指向8255的A口 MOVX@DPTR,A ;8255的A口←AD100MS:MOVR2, #200 ;延時(shí)DEL2: MOV R3, #123 NOP DEL3: DJNZ R3, DEL3 DJNZR2, DEL2 SJMPINPB END練習(xí):如圖所示為8255A作顯示接口的電路8255A的A口、B口、C口及控制口地址是多少?P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0

1×××××××

1×××××××

1×××××××

1×××××××××××××00××××××01××××××10××××××11=8000HA口=8001HB口=8002HC口=8003H控制口任取項(xiàng)取0時(shí)任取項(xiàng)取0時(shí)根據(jù)硬件連接圖,可得8255各端口地址如下依題意A口、B口、C口都工作在方式0,且都定義為輸出,則控制字是多少?8255A控制字=10000000B=80H該8255A的初始化程序應(yīng)如何編寫?該8255A的初始化程序 ORG 0100H MOV DPTR,#8003H ;指向控制口地址 MOV A, #80H ;控制字送A MOVX@DPTR,A ;寫控制字 MOV DPTR,#8000H ;指向A口地址 MOV A, #0F9H MOVX @DPTR,A ;顯示“1” INC DPTR ;指向B口 MOV A, #0A4H MOVX @DPTR,A ;顯示“2” INC DPTR ;指向C口 MOV A, #0B0H MOVX @DPTR,A ;顯示“3” SJMP $ END要讓數(shù)碼管顯示1、2、3,必須從A口送出F9H,B口送出A4H,C口送出B0H,請編寫程序6.3并行I/O口的應(yīng)用與擴(kuò)展三、采用8155擴(kuò)展并行I/O口8155也是可編程并行I/O接口芯片具有兩個(gè)8位并行口,一個(gè)6位并行口256字節(jié)RAM一個(gè)14位定時(shí)/計(jì)數(shù)器帶地址鎖存器,可直接與51單片機(jī)的P0口相連6.3并行I/O口的應(yīng)用與擴(kuò)展1.8155內(nèi)部結(jié)構(gòu)和引腳6.3并行I/O口的應(yīng)用與擴(kuò)展8155引腳功能AD7~AD0:地址/數(shù)據(jù)總線ALE:地址鎖存信號PA7~PA0:A口I/O引腳PB7~PB0:B口I/O引腳PC5~PC0:C口I/O引腳TIMERIN:定時(shí)/計(jì)數(shù)器輸入端。TIMEROUT:定時(shí)/計(jì)數(shù)器輸出引腳RESET:復(fù)位引腳,高電平有效CE:片選輸入信號,低電平有效。RD:從I/O口或內(nèi)部RAM讀選通信號WR:向I/O口或內(nèi)部RAM寫選通信號IO/M:I/O口與存儲(chǔ)器選擇8155各端口地址:AD2AD1AD0000─8155命令口001─8155的A口010─8155的B口011─8155的C口100─定時(shí)器低字節(jié)101─定時(shí)器高字節(jié)6.3并行I/O口的應(yīng)用與擴(kuò)展如何選擇8155各端口地址?6.3并行I/O口的應(yīng)用與擴(kuò)展8155各I/O口及RAM地址分配CEIO/MA7A6A5A4A3A2A1A0所選的端口01×××××000命令/狀態(tài)寄存器01×××××001A口01×××××010B口01×××××011C口01×××××100計(jì)數(shù)器低8位01×××××101計(jì)數(shù)器高6位00××××××××RAM單元6.3并行I/O口的應(yīng)用與擴(kuò)展2.8155的命令字和狀態(tài)字命令字

溫馨提示

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

最新文檔

評論

0/150

提交評論