版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
并行I/O口的應(yīng)用與擴(kuò)展I/O接口技術(shù)概述存儲(chǔ)器的擴(kuò)展第6章存儲(chǔ)器擴(kuò)展與并行I/O接口擴(kuò)展6.1.1存儲(chǔ)器概述一、存儲(chǔ)器分類存儲(chǔ)器按材料磁芯存儲(chǔ)器(已淘汰)磁和磁表面磁帶:數(shù)據(jù)流磁帶磁盤:軟盤,硬盤半導(dǎo)體材料隨機(jī)存儲(chǔ)器(RAM)只讀存儲(chǔ)器(ROM)串行存儲(chǔ)器
光介質(zhì):光盤CD-ROM,CD-RW,DVD1.按構(gòu)成材料2.按在計(jì)算機(jī)中的作用內(nèi)存:CPU能直接讀/寫的存儲(chǔ)器。由半導(dǎo)體存儲(chǔ)器組成,速度快、造價(jià)高、容量小,存放當(dāng)前運(yùn)行的程序和中間結(jié)果。外存:CPU通過I/O接口才能讀/寫。由硬盤、光盤和半導(dǎo)體(ROM)存儲(chǔ)器等構(gòu)成,造價(jià)低、容量大、信息可長(zhǎng)期保存,但速度慢隨機(jī)讀寫RAM(易失):工作時(shí)既可讀出也可寫入數(shù)據(jù),斷電后其中的信息將會(huì)丟失。二、半導(dǎo)體存儲(chǔ)器隨機(jī)讀寫RAM動(dòng)態(tài)RAM:用電容的記憶效應(yīng)存儲(chǔ)信息,電路簡(jiǎn)單,集成度高。讀寫速度較慢,要定時(shí)刷新。靜態(tài)RAM:用觸發(fā)器存儲(chǔ)信息,讀寫速度快,集成度低,容量小,無需刷新,價(jià)格高。只讀存儲(chǔ)器ROM只讀存儲(chǔ)器ROM(非易失):正常工作時(shí)只能讀出不能寫入,斷電后信息可長(zhǎng)期保存。PROM:熔斷絲用戶只能編程一次。EPROM:用戶可多次編程,紫外燈擦除信息。EEPROM:通過加電信號(hào)可直接擦除信息。掩膜ROM:信息在制造時(shí)由器件廠家固化。1)存儲(chǔ)容量存儲(chǔ)容量是指存儲(chǔ)器所能存儲(chǔ)的二進(jìn)制信息(位)的總量。
存儲(chǔ)器容量=單元數(shù)×數(shù)據(jù)線位數(shù)例如:512×8,1024×8=1KB,2KB,64KB2)存取速度指從CPU給出有效的存儲(chǔ)器地址到存儲(chǔ)器給出有效數(shù)據(jù)所花費(fèi)的時(shí)間。存取時(shí)間越小,存儲(chǔ)器的存取速度就越快。通常,半導(dǎo)體存儲(chǔ)器的最大存取時(shí)間從幾十到幾百毫微秒。3)功耗一般指每個(gè)存儲(chǔ)單元的功耗,單位為W/單元;4)電源指芯片工作時(shí)所需的電源種類。三、半導(dǎo)體存儲(chǔ)器主要指標(biāo)名稱易失性擦除方法讀寫速度存儲(chǔ)能力價(jià)格RAM雙極型易失自動(dòng)極快數(shù)據(jù)/程序高M(jìn)OSSRAM易失自動(dòng)快數(shù)據(jù)/程序較高M(jìn)OSSDAM易失自動(dòng)快數(shù)據(jù)/程序低ROM掩模式ROM非易失不能較快程序低PROM非易失不能較快程序淘汰EPROM非易失紫外線較慢程序較高EEPROM非易失電較慢數(shù)據(jù)/程序較高FLASH非易失電較慢數(shù)據(jù)/程序低半導(dǎo)體存儲(chǔ)器分類及性能比較6.1.2程序存儲(chǔ)器及其擴(kuò)展1.Intel27系列EPROM芯片D3GNDD4D2D5D1D6D0D7A0CEA1A10A2OEA3A11A4A9A5A8A6A13A7A14A12VccVPP27256D3GNDD4D2D5D1D6D0D7A0CEA1A10A2OE/VPPA3A11A4A9A5A8A6A13A7A14A12VccA1527512D3GNDD4D2D5D1D6D0D7A0CEA1A10A2OEA3A11A4A9A5A8A6NCA7PMGA12VccVPP2764D3GNDD4D2D5D1D6D0D7A0CEA1A10A2OEA3A11A4A9A5A8A6A13A7PMGA12VccVPP27128引腳功能A0~A(12~16):地址線,尋址212~16=8~64K(由型號(hào)確定)D7~D0:數(shù)據(jù)線引腳,用于傳送數(shù)據(jù)CE:片選輸入端,低電平允許本芯片工作OE:輸出允許PGM:編程控制端VCC:工作電源VPP:編程電源GND:地工作方式表編程禁止編程檢驗(yàn)編程維持讀編程禁止編程檢驗(yàn)編程維持讀編程禁止編程檢驗(yàn)編程維持讀操作DOUTLL27512高阻XHDINVppLDOUTLL高阻VppH高阻VppHHDOUTVppLLDINVppHL高阻VccXHDOUTVccLL27256高阻XVppXHDOUTHVppLLDINLVppHL高阻XVccXHDOUTHVccLL276427128輸出PGMOE/VppVppOECE地址鎖存器P0口ALEPSENRDWREAD7~D0A7~A0地址總線AB數(shù)據(jù)總線DBA15~A8外部程序存儲(chǔ)器選通外部數(shù)據(jù)存儲(chǔ)器讀外部數(shù)據(jù)存儲(chǔ)器寫P2口P1口RXDTXDINT0INT1T0T1RESET并行口串行口中斷請(qǐng)求計(jì)數(shù)脈沖復(fù)位MCS-51控制總線CB2.MCS-51外部三總線擴(kuò)展基本方法:數(shù)據(jù)線對(duì)應(yīng)相接,地址線對(duì)應(yīng)相接,控制線對(duì)應(yīng)相接,按地址處理片選信號(hào)。總線驅(qū)動(dòng)原則:任何時(shí)刻只允許一個(gè)設(shè)備驅(qū)動(dòng)總線。為滿足該原則,輸出端與總線連接應(yīng)使用三態(tài)連接,通過片選信號(hào)控制連接方式。存儲(chǔ)器擴(kuò)展的關(guān)鍵問題是地址總線、數(shù)據(jù)總線和控制總線這三類總線的連接。MCS-51單片機(jī)由于受引腳數(shù)目的限制,數(shù)據(jù)線和低8位地址線復(fù)用,為了將它們分離出來,需要外加地址鎖存器74LS373外部程序存儲(chǔ)器擴(kuò)展原理ALEPSENEAD7~D0A7~A0A15~A8P2.0~P2.7MCS-518D8QLEOEP0.0~P0.7D7~D0A7~A0A15~A8CEOE鎖存器74LS373EPROME2PROM單片機(jī)【例】使用27128擴(kuò)展16K程序存儲(chǔ)器,硬件連接如圖。3.單片程序存儲(chǔ)器的擴(kuò)展根據(jù)硬件連接,該27128的地址范圍P2.7P2.6P2.5···········P2.1P2.0A15A14A13···········A9A8P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0A7A6A5A4A3A2A1A0
XX000000
XX111111
00000000
11111111由于高兩位(A15,A14)沒有使用,故該27128共有四個(gè)地址空間:1.0000H~3FFFH2.4000H~7FFFH3.8000H~BFFFH4.0C000H~0FFFFH多片存儲(chǔ)器擴(kuò)展的關(guān)鍵問題仍然是地址總線、數(shù)據(jù)總線和控制總線這三類總線的連接。為了區(qū)分CPU是訪問哪一片EPROM,可以利用譯碼器進(jìn)行片選,這種片選方法稱為譯碼法4.多片程序存儲(chǔ)器的擴(kuò)展8031單片機(jī)擴(kuò)展四片27128輸入端輸出端使能端選擇Y0Y1Y2Y3GBA10000×0011×01011011111011111011111074LS139功能:各片27128的地址范圍27128編號(hào)A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0地址范圍(Y0=0)0000000000000000………00111111111111110000H……3FFFH(Y1=0)0100000000000000………01111111111111114000H……7FFFH(Y2=0)1000000000000000………10111111111111118000H……BFFFH(Y3=0)1100000000000000………1111111111111111C000H……FFFFH6.1.3數(shù)據(jù)存儲(chǔ)器及其擴(kuò)展1.Intel62系列SRAM型號(hào)容量地址線數(shù)61162KB1162648KB136212816KB146225632KB15靜態(tài)隨機(jī)存儲(chǔ)器芯片6264(8Kx8位)VppVccA12WEA7CE2A6A8A5A9A4A11A3OEA2A10A1CE1A0D7D0D6D1D5D2D4GNDD36264引腳圖邏輯圖工作方式表IO0~I(xiàn)O7WEOECE2CE1管腳工作方式DINLHLH寫DINLHLH寫DOUTHLLH讀高阻HHHL輸出禁止高阻XXLX未選中(掉電)高阻XXXL未選中(掉電)6264引腳功能A0~A12:地址線引腳,可尋址213=8192=8KD7~D0:數(shù)據(jù)線引腳,用于傳送讀寫數(shù)據(jù)CE1和CE2:片選端,同時(shí)有效允許本芯片工作OE:輸出允許WE:寫允許信號(hào),低電平寫入,高電平讀出VCC:工作電源GND:直流地?cái)?shù)據(jù)存儲(chǔ)器擴(kuò)展與程序存儲(chǔ)器擴(kuò)展的連接方法基本相同。不同的只是控制信號(hào)不一樣。在程序存儲(chǔ)器擴(kuò)展中,單片機(jī)使用PSEN作為讀選通信號(hào),而在數(shù)據(jù)存儲(chǔ)器擴(kuò)展中,單片機(jī)則使用RD和WR分別作為讀和寫的選通信號(hào)2.數(shù)據(jù)存儲(chǔ)器的擴(kuò)展ALEWRRDD7~D0A7~A0A15~A8P2.0~P2.7MCS-518D8QLEOEP0.0~P0.7D7~D0A7~A0A15~A8OEWE采用線選法擴(kuò)展三片6264各片6264的地址范圍6264編號(hào)A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0地址范圍IC16264(P2.5=0)1100000000000000………1101111111111111C000H……DFFFHIC26264(P2.6=0)1010000000000000………1011111111111111A000H……BFFFHIC36264(P2.7=0)0110000000000000………01111111111111116000H……7FFFH8031單片機(jī)內(nèi)部沒有程序存儲(chǔ)器,必須外接。而內(nèi)部RAM很少,經(jīng)常也需要外接數(shù)據(jù)存儲(chǔ)器。下面給出利用74LS138譯碼器同時(shí)擴(kuò)展二片2764和二片6264的電路3.同時(shí)擴(kuò)展程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器采用譯碼法同時(shí)擴(kuò)展ROM和RAM使能選擇譯碼輸出G1G2AG2BCBAY0~Y7的狀態(tài)100000Y0=0,其余為1100001Y1=0,其余為1100010Y2=0,其余為1100011Y3=0,其余為1100100Y4=0,其余為1100101Y5=0,其余為1100110Y6=0,其余為1100111Y7=0,其余為1各片ROM和RAM的地址范圍存儲(chǔ)芯片A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0地址范圍IC12764(Y0=0)0000000000000000………00011111111111110000H……1FFFHIC22764(Y1=0)0010000000000000………00111111111111112000H……3FFFHIC36264(Y2=0)0100000000000000………01011111111111114000H……5FFFHIC46264(Y3=0)0110000000000000………01111111111111116000H……7FFFH一、為什么需要I/O接口(電路)?1)計(jì)算機(jī)的外部設(shè)備的多樣性◆工作原理不同機(jī)械、電子、光電、電磁……◆傳送信息類型多樣數(shù)字量、模擬量、開關(guān)量◆傳送速度差別極大◆信息傳送方式不盡相同串行、并行◆編碼方式不同二進(jìn)制、BCD碼、ASCII碼……6.2I/O接口技術(shù)概述6.2.1I/O接口的作用2)它們不能與CPU直接相連由于需要與CPU交換信息的I/O設(shè)備是多種多樣的,輸入和輸出的信息也不相同,可以是數(shù)字量,也可以是模擬量(電壓、電流),但CPU本身只能處理數(shù)字量,必須進(jìn)行適當(dāng)?shù)淖儞Q,CPU才能接受和處理;3)處理方式和處理速度不同不同的I/O設(shè)備,工作原理、驅(qū)動(dòng)方式、信息格式、以及工作速度方面彼此差別很大;4)必須經(jīng)過中間電路再與系統(tǒng)相連為了要使CPU的有效正確地與I/O設(shè)備交換數(shù)據(jù),就需要在CPU和I/O設(shè)備之間設(shè)置一種部件,以使CPU和I/O設(shè)備的工作協(xié)調(diào)一致,有效地完成輸入輸出信息的任務(wù),這種部件,稱為I/O接口電路。專門研究CPU和外設(shè)之間的數(shù)據(jù)傳送方式、接口電路的工作原理和控制方法的技術(shù),稱為I/O技術(shù),它包括硬件接口電路和軟件控制兩個(gè)方面的問題。二.什么是I/O接口(電路)?(1)狹義的定義I/O接口電路是為了解決計(jì)算機(jī)與外部設(shè)備之間信息交換和變換問題而提出來的,I/O接口是計(jì)算機(jī)與外部設(shè)備之間傳送信息的部件和界面,每個(gè)外設(shè)都要通過I/O接口和CPU相連。(2)廣義的定義接口(Interface)是兩個(gè)需要相互交換信息的部件(硬件或軟件)之間的連接點(diǎn)或邊界。本課程主要討論I/O接口電路。I/O接口電路是位于系統(tǒng)與外設(shè)間、用來協(xié)助完成數(shù)據(jù)傳送和控制任務(wù)的邏輯電路。I/O接口作用輸出數(shù)據(jù)鎖存輸入數(shù)據(jù)緩沖速度匹配數(shù)據(jù)轉(zhuǎn)換1234三、I/O接口的作用⑴隔離與尋址I/O設(shè)備與CPU相連接時(shí)必須使用I/O接口進(jìn)行隔離(總線驅(qū)動(dòng)原則),交換信息時(shí)必須通過地址信息進(jìn)行選擇,只有被地址信息選中的I/O接口,才能與CPU交換信息,其余未被選中須被隔離。CPU對(duì)I/O設(shè)備的訪問(讀/寫)是通過訪問與之相連接的I/O接口來實(shí)現(xiàn)的。每個(gè)I/O接口中可有一個(gè)或多個(gè)I/O端口,而每個(gè)I/O端口在系統(tǒng)中必須有一個(gè)唯一的地址,該地址稱為I/O端口地址。最終CPU對(duì)I/O設(shè)備的訪問就是通過訪問與之相對(duì)應(yīng)的I/O端口來實(shí)現(xiàn)的。而I/O設(shè)備在系統(tǒng)中的描述就歸結(jié)成與之相對(duì)應(yīng)的I/O端口地址。I/O端口地址不同實(shí)現(xiàn)的功能就不同。I/O端口地址與存儲(chǔ)器地址的內(nèi)涵不同。注意:CPU對(duì)外設(shè)的訪問是通過尋址其I/O端口來實(shí)現(xiàn)的。⑵對(duì)輸入輸出數(shù)據(jù)進(jìn)行緩沖和鎖存緩沖和鎖存指的是能接收輸入信號(hào),并且當(dāng)輸入信號(hào)消失后,仍能保存輸入信息。兩者的區(qū)別是:緩沖是選通輸出,鎖存是直接輸出。緩沖器器輸出端應(yīng)為三態(tài)輸出,鎖存器輸出端為直接輸出。I/O接口的緩沖和鎖存的功能用于實(shí)現(xiàn)速度的匹配。⑶對(duì)信號(hào)的形式和數(shù)據(jù)的格式進(jìn)行變換CPU只能處理數(shù)字量,I/O設(shè)備信號(hào)和數(shù)據(jù)多樣,必須進(jìn)行相應(yīng)的變換,使之匹配。如:信號(hào)電平變換,A/D,D/A,串行和并行等。⑷CPU和I/O設(shè)備進(jìn)行聯(lián)絡(luò)功能為CPU與I/O設(shè)備之間的信息交換提供必要的輔助信息。如:I/O設(shè)備狀態(tài)信息,中斷請(qǐng)求等。四、I/O接口的典型結(jié)構(gòu)6.2.2I/O接口的編址外設(shè)端口單獨(dú)編址:I/O寄存器地址空間和存儲(chǔ)器地址空間分開編址I/O接口編址外設(shè)端口與存儲(chǔ)器統(tǒng)一編址:直接使用訪問數(shù)據(jù)存儲(chǔ)器的指令進(jìn)行I/O操作6.2.3I/O數(shù)據(jù)的傳送方式I/O數(shù)據(jù)傳送方式查詢傳送方式中斷傳送方式DMA傳送方式無條件傳送方式一.無條件傳送方式在進(jìn)行信息傳送時(shí),如果CPU能確信一個(gè)外設(shè)已經(jīng)準(zhǔn)備就緒,那就不必查詢外設(shè)的狀態(tài)而可以直接進(jìn)行信息的傳輸,這就稱為無條件傳送方式。在無條件傳送方式下,程序設(shè)計(jì)簡(jiǎn)單。不過,名為無條件傳送,實(shí)際上是有條件的,那就是傳送不能太頻繁,要保證每次傳送時(shí),外設(shè)都必須處于就緒狀態(tài)。因此,無條件傳送方式用的較少,只適用于一些簡(jiǎn)單的外設(shè)操作。二、條件傳送方式(即查詢Poling傳送)條件傳送方式的特點(diǎn)是:在執(zhí)行I/O操作之前,首先用程序?qū)ν庠O(shè)的狀態(tài)進(jìn)行檢查,僅當(dāng)檢測(cè)到所選外設(shè)已作好輸入/輸出準(zhǔn)備,并發(fā)來狀態(tài)信息后,才能開始執(zhí)行I/O操作,否則只有等待所選外設(shè)作好輸入/輸出準(zhǔn)備。因此,硬件接口電路中必須有一個(gè)能反映外設(shè)狀態(tài)信息的狀態(tài)寄存器。查詢方式進(jìn)行數(shù)據(jù)交換的工作流程圖如圖所示。圖中,對(duì)于輸入設(shè)備,有效的狀態(tài)信息為READY(準(zhǔn)備就緒);對(duì)于輸出設(shè)備,有效的狀態(tài)信息為BUSY(不忙),均用一位二進(jìn)數(shù)表示。查詢方式的特點(diǎn):(1)數(shù)據(jù)交換可靠,硬件電路,程序比較簡(jiǎn)單;(2)查詢必須有先有后,導(dǎo)致系統(tǒng)實(shí)時(shí)處理的能力較差;(3)查詢方式傳送中,CPU主動(dòng)查詢外設(shè)的狀態(tài),把大量時(shí)間花在查詢上,導(dǎo)致CPU的效率較低。例如,操作員用鍵盤進(jìn)行輸入,按每秒打入10個(gè)字符計(jì)算,那末計(jì)算機(jī)平均用100000微秒的時(shí)間完成一次輸入過程,而CPU速度較快,真正用來從鍵盤輸入一個(gè)字符的時(shí)間很短,假設(shè)為10微秒(實(shí)際僅執(zhí)行幾條指令),這樣用于測(cè)試和等待的時(shí)間為100000-10=99990微秒,換句話說,就有99.99%的時(shí)間被浪費(fèi)掉了。實(shí)際應(yīng)用中,大多數(shù)外設(shè)的速度遠(yuǎn)比CPU的速度慢得多,因此,查詢方式傳送的實(shí)質(zhì)是降低CPU的工作效率去適應(yīng)低速的外部設(shè)備。(4)適用于外部設(shè)備較少,實(shí)時(shí)性要求不高的場(chǎng)合。三、中斷控制方式(1)引入中斷控制的原因在查詢方式下,造成CPU的工作效率較低和系統(tǒng)實(shí)時(shí)性不好的根本原因是。在查詢控制方式中,是CPU主動(dòng)查詢外設(shè)的工作狀態(tài)。因此,要徹底改變查詢控制方式的不足,就得CPU的主動(dòng)查詢改為CPU被動(dòng)響應(yīng)。即:哪個(gè)外設(shè)需要CPU服務(wù),由該外設(shè)向CPU提出請(qǐng)求,CPU接到請(qǐng)求后,在條件允許時(shí),就為該外設(shè)服務(wù)。這種I/O控制方式就是中斷控制方式。(2)中斷控制方式基本原理在中斷控制方式中,外設(shè)具有申請(qǐng)CPU服務(wù)的主動(dòng)權(quán),當(dāng)外設(shè)準(zhǔn)備好時(shí),便向CPU提出中斷請(qǐng)求,強(qiáng)迫CPU中斷正在執(zhí)行的程序,與外設(shè)進(jìn)行一次I/O操作,I/O操作完成后,CPU再恢復(fù)執(zhí)行原來的程序。這時(shí),CPU不再主動(dòng)查詢等待,而是被動(dòng)響應(yīng),CPU在兩個(gè)I/O操作過程之間,可以處理別的事情。(3)中斷控制方式的特點(diǎn)①CPU效率高;②系統(tǒng)具備較強(qiáng)的實(shí)時(shí)處理的能力。③可以適應(yīng)不同速度的I/O設(shè)備;④硬件電路和程序設(shè)計(jì)較復(fù)雜。(要做出相應(yīng)的付出)三、直接存儲(chǔ)器存?。―MA)控制方式(1)DMA控制方式的提出1)程序控制和中斷控制方式下,每次數(shù)據(jù)的傳輸都得通過CPU,由CPU把一個(gè)字節(jié)或一個(gè)字讀到CPU內(nèi),再?gòu)腃PU內(nèi)寫到其他地方。這種做法在大規(guī)模的數(shù)據(jù)傳輸時(shí),顯然不合適。傳輸效率較低;2)若I/O設(shè)備的數(shù)據(jù)傳輸率較高(如硬盤,網(wǎng)絡(luò)設(shè)備,視頻處理設(shè)備),CPU在和這些高速的I/O設(shè)備進(jìn)行數(shù)據(jù)傳輸時(shí),即使盡量減少程序查詢方式和中斷控制方式中非數(shù)據(jù)傳輸?shù)臅r(shí)間,也仍然不能滿足要求。鑒于上述原因,為了進(jìn)一步提高數(shù)據(jù)傳輸率,就必須徹底改變傳輸方式,使在數(shù)據(jù)傳輸過程中擺脫CPU的干預(yù),而直接傳輸。這種方式就是DMA(直接存儲(chǔ)器存取DirectMemoryAccess)。(3)DMA控制方式的特點(diǎn)①傳輸效率高;②硬件電路和程序設(shè)計(jì)較復(fù)雜;(要做出相應(yīng)的付出)③適用于高速I/O設(shè)備與存儲(chǔ)器之間的大量數(shù)據(jù)傳送。④在現(xiàn)代的計(jì)算機(jī)中幾乎沒有不使用DMA的。有關(guān)DAM的內(nèi)容,請(qǐng)參考相關(guān)書籍及和資料。6.2.4I/O接口的類型并行I/O接口:用于并行傳送I/O數(shù)據(jù),速度快、效率高,適用于近距離傳送I/O接口類型串行I/O接口:用于串行傳送I/O數(shù)據(jù),成本低但速度慢,適用于遠(yuǎn)距離傳送6.3MCS-51單片機(jī)并行I/O口的應(yīng)用與擴(kuò)展6.3.1MCS-51單片機(jī)I/O口的直接應(yīng)用P0口在擴(kuò)展片外存儲(chǔ)器時(shí)作地址/數(shù)據(jù)分時(shí)復(fù)用總線,在不進(jìn)行擴(kuò)展時(shí)作一般準(zhǔn)雙向輸入/輸出口使用。P1口為通用準(zhǔn)雙向輸入/輸出接口。P2口在擴(kuò)展片外存儲(chǔ)器時(shí)作高8位地址總線,在無擴(kuò)展時(shí)可用作通用準(zhǔn)雙向I/O接口。P3口除了作為通用準(zhǔn)雙向I/O使用外,還具有第2功能。1.MCS-51單片機(jī)I/O端口的操作方式
1)輸出數(shù)據(jù)方式CPU通過以端口為目的操作數(shù)的指令均可把數(shù)據(jù)寫到P0~P3的端口鎖存器,然后通過輸出驅(qū)動(dòng)電路輸出到端口的引腳線。例如: MOV P0, R2 ORL P1, A ANL P2, #data XRL P3, A
2)讀端口鎖存器方式讀端口鎖存器方式實(shí)際上并不從外部引腳讀入數(shù)據(jù),而只是把端口鎖存器中的內(nèi)容讀到內(nèi)部總線,按指令要求進(jìn)行運(yùn)算和變換后,再寫回到鎖存器屬于這類操作的指令通常是ANL、ORL、XRL等“讀—修改—寫”指令。例如: ORL P0, #0FH
3)讀引腳方式當(dāng)端口做輸入使用時(shí),若要讀取端口引腳上的信號(hào),要先向其鎖存器寫入“1”,使得該輸出驅(qū)動(dòng)電路的場(chǎng)效應(yīng)管截止,然后再執(zhí)行輸入指令,才能真正把外部引腳的狀態(tài)讀入例如要讀取P1口低4位引腳上信號(hào)的指令如下:MOVP1,#0FH;使P1口低4位鎖存器置“1”MOVA,P1 ;讀P1口低4位引腳信號(hào)送A2.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引腳的灌電流允許到5mA【例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ī)器周期Tm=12/fosc=2μs0.1s的延時(shí)子程序宜采用雙重循環(huán)結(jié)構(gòu),如下所示: DEL1:MOVR2, #200 ;1Tm DEL2:MOVR3, #X ;1Tm NOP ;1Tm DEL3:DJNZR3, DEL3 ;2Tm DJNZR2, DEL2 ;2Tm RET ;2Tm則延時(shí)時(shí)間=[(X×2Tm+4)×200]×2μs+2Tm=100000μs 解得:X≈123⑵主程序連續(xù)10次調(diào)用0.1s延時(shí)子程序,則總延時(shí)時(shí)間就達(dá)到了1s主程序如下: ORG 0000HSTART: MOV A,#01HLOOP: MOV P1,A MOV R1,#10DELAY: LCALLDEL1 ;10次調(diào)用延時(shí)子程序 DJNZR1,DELAY RL A LJMPLOOP3.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”,然后再讀,才能正確讀入引腳上的輸入信號(hào)【例6-2】如圖所示,P1口外接8個(gè)開關(guān),要求將開關(guān)的狀態(tài)輸入到片內(nèi)RAM30H單元
ORG 0100HRDP1: MOV P1, #0FFH ;先向P1口送1 MOV A, P1 ;讀入開關(guān)狀態(tài)
MOV 30H, A ;送指定單元
NOP SJMP RDP1 ;反復(fù)再讀
END為了能正確讀入P1口引腳的輸入信號(hào),必須要先向P1口送“1”,然后再讀。6.3.2采用8255A擴(kuò)展并行I/O口8255A是Intel公司生產(chǎn)的可編程并行I/O接口芯片,具有3個(gè)8位并行I/O口,3種工作方式,可通過編程改變其功能,因而使用靈活方便,通用性強(qiáng),可作為單片機(jī)與多種外圍設(shè)備連接時(shí)的接口電路Intel8255A是為8080/8085微機(jī)系統(tǒng)設(shè)計(jì)的可編程通用并行接口電路,也可用于MCS-51系列單片機(jī)擴(kuò)展并行I/O接口。8255A是8位可編程通用并行I/O接口芯片,有24條I/O引腳,分成A,B兩大組(每組12條),允許獨(dú)立編程,工作方式分為方式0、1和2三種。使用8255A可實(shí)現(xiàn)以下各項(xiàng)功能:(1)并行輸入或輸出8位數(shù)據(jù);(2)實(shí)現(xiàn)輸入數(shù)據(jù)的鎖存和輸出數(shù)據(jù)的緩沖;(3)提供多個(gè)通信接口聯(lián)絡(luò)控制信號(hào)(如中斷請(qǐng)求、外設(shè)準(zhǔn)備好及選通脈沖等);(4)通過讀取狀態(tài)字可實(shí)現(xiàn)程序?qū)ν庠O(shè)的查詢。6.3.2采用8255A擴(kuò)展并行I/O口1.8255A內(nèi)部結(jié)構(gòu)和引腳PA3PA4PA2PA5PA1PA6PA0PA7RDWRGNDD0A1D1A0D2PC7D3PC6D4PC5D5PC4D6PC0D78255APC2PB7PC3PB6PB0PB5PB1PB4PB2PB3CSRESETPC1VCC(a)引腳功能(b)內(nèi)部結(jié)構(gòu)框圖D7~D0:三態(tài)雙向數(shù)據(jù)線,傳送數(shù)據(jù)以及控制字PA7~PA0:A口輸入/輸出線。PB7~PB0:B口輸入/輸出線。PC7~PC0:C口輸入/輸出線。 CS:片選信號(hào)線,低電平有效,表示本芯片被選中RD:讀出信號(hào)線,低電平有效,控制從8255A讀WR:寫入信號(hào)線,低電平有效,控制向8255A寫入A1、A0:地址線,用來選擇8255A內(nèi)部的4個(gè)端口RESET:復(fù)位線,高電平有效。Vcc:+5V電源。8255A引腳功能從8255的I/O口讀有效8255對(duì)系統(tǒng)總線呈高阻態(tài)控制寄存器只能寫不能讀8255對(duì)系統(tǒng)總線呈高阻態(tài)初始化8255時(shí)必做的工作向8255的I/O口寫有效說明數(shù)據(jù)總線高阻XX未選中XX1無效10寫入控制字01控制寄存器11寫入C口C口01寫入B口B口10寫入A口01A口00讀C口內(nèi)容C口01讀B口內(nèi)容B口10讀A口內(nèi)容10A口000CPU操作功能WRRD所選端口A0A1CS操作選擇端口選擇8255A端口地址及工作狀態(tài)選擇表2.8255A的控制字和狀態(tài)字8255A共有兩個(gè)控制字和一個(gè)狀態(tài)字,控制字用來選擇工作方式或?qū)口控制。狀態(tài)字用來反映8255A的工作狀態(tài)。兩個(gè)控制字均在A1A0=11的情況下發(fā)送,共用一個(gè)端口地址。若控制字的最高位(D7)是1,表示是工作方式控制字;若最高位(D7)是0,表示是按位置數(shù)控制字??刂谱志褪荂PU發(fā)給可編程器件的控制命令或者初始化命令。其格式(命令中每一位的取值),由可編程器件規(guī)定。8255A方式控制字C口置/復(fù)位控制字8255A沒有專門的狀態(tài)字,工作于方式1或方式2時(shí),讀取PC口的數(shù)據(jù),即得狀態(tài)字。當(dāng)狀態(tài)字中有效信息不滿8位時(shí),所缺的即為對(duì)應(yīng)PC口C引腳的輸入電平。8255A狀態(tài)字格式8255A的工作方式方式1:選通I/O方式方式2:雙向I/O方式(僅A口)方式0:基本I/O方式3.8255A的工作方式1)方式0(基本輸入/輸出方式)方式0不需要選通信號(hào)。PA、PB、PC7~4和PC3~0中任一端口都可以通過方式控制字設(shè)定為輸入或輸出端口,共有8種組合。方式1下,共有2個(gè)口,分為A組和B組,由編程設(shè)定為輸入或輸出,A組包括A口和PC7~4,PC7~4
作為A口輸入/輸出的選通信號(hào)和應(yīng)答信號(hào)。同理,B組包括B口和PC3~0,PC3~0作為B口輸入/輸出的選通信號(hào)和應(yīng)答信號(hào)。當(dāng)8255A工作于方式1時(shí)A口和B口的功能完全相同。2)方式1(選通輸入/輸出方式)8255A的C口聯(lián)絡(luò)控制信號(hào)線OBFAXOBFAI/OPC7ACKA(INTE1)XACKA(INTEA)I/OPC6XIBFAI/OIBFAPC5XSTBA(INTE2)I/OSTBA(INTEA)PC4INTRAINTRAINTRAINTRAPC3I/OI/OACKB(INTEB)STBB(INTEB)PC2I/OI/OOBFBIBFBPC1I/OI/OINTRBINTRBPC0輸出輸入輸出輸入方式2(僅用于A口)方式1(A口、B口)C口的位A.方式1輸入方式選通(應(yīng)答式)輸入過程輸入緩沖器空IBF=0可以接收數(shù)據(jù)數(shù)據(jù)準(zhǔn)備好發(fā)鎖存脈沖STB=0數(shù)據(jù)存入輸入緩沖器IBF=1供查詢STB=1IBF=1RD=1產(chǎn)生中斷請(qǐng)求中斷響應(yīng)或程序查詢讀走輸入數(shù)據(jù)B.方式1輸出方式選通(應(yīng)答式)輸出過程輸出緩沖器空OBF=1可以輸出數(shù)據(jù)輸出數(shù)據(jù)準(zhǔn)備好通知外設(shè)OBF=0撤銷中斷請(qǐng)求外設(shè)取走數(shù)據(jù)發(fā)應(yīng)答信號(hào)ACK=0撤銷數(shù)據(jù)準(zhǔn)備好信號(hào)產(chǎn)生中斷請(qǐng)求中斷響應(yīng)或程序查詢輸出數(shù)據(jù)當(dāng)A口工作于方式2下時(shí),PC7~3的分配如圖,選通信號(hào)和應(yīng)答信號(hào)的功能與方式1的含義相同。僅A口才可以工作于方式2。2.方式2(僅A口選通雙向方式)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),再?gòu)腁口輸出點(diǎn)亮發(fā)光二極管依題意,8255A各端口工作在方式0,且A口作輸出,B口作輸入,根據(jù)8255A方式控制字各個(gè)位的定義,應(yīng)作如下設(shè)置根據(jù)硬件連接,可得8255A各端口地址如下端口A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0端口地址A口01111111000000007F00HB口01111111000000017F01HC口01111111000000107F02H控制口01111111000000117F03H源程序 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:MOV R2,#200 ;延時(shí)DEL2: MOV R3,#123 NOP DEL3: DJNZ R3,DEL3 DJNZ R2,DEL2 SJMPINPB END6.3.3采用8155擴(kuò)展并行I/O口8155也是Intel公司生產(chǎn)的可編程并行I/O接口芯片,具有3個(gè)并行I/O口(其中兩個(gè)為8位口,一個(gè)為6位口),還提供了256字節(jié)的SRAM以及一個(gè)14位定時(shí)/計(jì)數(shù)器。8155內(nèi)置有地址鎖存器,其地址線可直接與MCS-51單片機(jī)的P0口相連,無須外接地址鎖存器1.8155內(nèi)部結(jié)構(gòu)和引腳AD7~AD0:地址/數(shù)據(jù)總線ALE:地址鎖存信號(hào)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:片選輸入信號(hào),低電平有效。RD:從I/O口或內(nèi)部RAM讀選通信號(hào),低電平有效WR:向I/O口、命令寄存器或內(nèi)部RAM寫選通信號(hào)IO/M:I/O口與存儲(chǔ)器選擇8155引腳功能8155各端口地址分配CEIO/MA7A6A5A4A3A2A1A0所選的端口01×××××000命令/狀態(tài)寄存器0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建材賣場(chǎng)燈箱廣告合同
- 股權(quán)增資協(xié)議書范本
- 二手木材購(gòu)銷協(xié)議
- 小區(qū)視頻監(jiān)控設(shè)備招標(biāo)文件
- 戶口遷移的承諾保證書
- 房屋買賣合同的簡(jiǎn)單格式
- 長(zhǎng)期租賃汽車合同
- 招標(biāo)文件的撰寫
- 招標(biāo)文件編制指南
- 室外兒童游樂場(chǎng)玩具購(gòu)銷協(xié)議
- 建筑施工安全檢查標(biāo)準(zhǔn)JGJ59-2011
- 古代小說戲曲專題-形考任務(wù)2-國(guó)開-參考資料
- 運(yùn)動(dòng)是良醫(yī)智慧樹知到期末考試答案章節(jié)答案2024年成都師范學(xué)院
- 部編人教版小學(xué)四年級(jí)語文下冊(cè)教案(全冊(cè))
- 臨床常用抗凝藥物的應(yīng)用培訓(xùn)課件
- 重慶開縣井噴事故
- 浙美版六年級(jí)上冊(cè)美術(shù)復(fù)習(xí)資料
- 年度工作總結(jié)ppt美觀模板
- 軟件體系結(jié)構(gòu)實(shí)驗(yàn)報(bào)告(1)
- 寶潔麥克銷售模式中文版
- 設(shè)計(jì)加熱爐推料機(jī)傳動(dòng)裝置 - 副本
評(píng)論
0/150
提交評(píng)論