版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
并行I/O口的應(yīng)用與擴(kuò)展I/O接口技術(shù)概述存儲器的擴(kuò)展第6章存儲器擴(kuò)展與并行I/O接口擴(kuò)展6.1.1存儲器概述一、存儲器分類存儲器按材料磁芯存儲器(已淘汰)磁和磁表面磁帶:數(shù)據(jù)流磁帶磁盤:軟盤,硬盤半導(dǎo)體材料隨機(jī)存儲器(RAM)只讀存儲器(ROM)串行存儲器
光介質(zhì):光盤CD-ROM,CD-RW,DVD1.按構(gòu)成材料2.按在計算機(jī)中的作用內(nèi)存:CPU能直接讀/寫的存儲器。由半導(dǎo)體存儲器組成,速度快、造價高、容量小,存放當(dāng)前運(yùn)行的程序和中間結(jié)果。外存:CPU通過I/O接口才能讀/寫。由硬盤、光盤和半導(dǎo)體(ROM)存儲器等構(gòu)成,造價低、容量大、信息可長期保存,但速度慢隨機(jī)讀寫RAM(易失):工作時既可讀出也可寫入數(shù)據(jù),斷電后其中的信息將會丟失。二、半導(dǎo)體存儲器隨機(jī)讀寫RAM動態(tài)RAM:用電容的記憶效應(yīng)存儲信息,電路簡單,集成度高。讀寫速度較慢,要定時刷新。靜態(tài)RAM:用觸發(fā)器存儲信息,讀寫速度快,集成度低,容量小,無需刷新,價格高。只讀存儲器ROM只讀存儲器ROM(非易失):正常工作時只能讀出不能寫入,斷電后信息可長期保存。PROM:熔斷絲用戶只能編程一次。EPROM:用戶可多次編程,紫外燈擦除信息。EEPROM:通過加電信號可直接擦除信息。掩膜ROM:信息在制造時由器件廠家固化。1)存儲容量存儲容量是指存儲器所能存儲的二進(jìn)制信息(位)的總量。
存儲器容量=單元數(shù)×數(shù)據(jù)線位數(shù)例如:512×8,1024×8=1KB,2KB,64KB2)存取速度指從CPU給出有效的存儲器地址到存儲器給出有效數(shù)據(jù)所花費(fèi)的時間。存取時間越小,存儲器的存取速度就越快。通常,半導(dǎo)體存儲器的最大存取時間從幾十到幾百毫微秒。3)功耗一般指每個存儲單元的功耗,單位為W/單元;4)電源指芯片工作時所需的電源種類。三、半導(dǎo)體存儲器主要指標(biāo)名稱易失性擦除方法讀寫速度存儲能力價格RAM雙極型易失自動極快數(shù)據(jù)/程序高M(jìn)OSSRAM易失自動快數(shù)據(jù)/程序較高M(jìn)OSSDAM易失自動快數(shù)據(jù)/程序低ROM掩模式ROM非易失不能較快程序低PROM非易失不能較快程序淘汰EPROM非易失紫外線較慢程序較高EEPROM非易失電較慢數(shù)據(jù)/程序較高FLASH非易失電較慢數(shù)據(jù)/程序低半導(dǎo)體存儲器分類及性能比較6.1.2程序存儲器及其擴(kuò)展1.Intel27系列EPROM芯片D3GNDD4D2D5D1D6D0D7A0CEA1A10A2OEA3A11A4A9A5A8A6A13A7A14A12VccVPP27256D3GNDD4D2D5D1D6D0D7A0CEA1A10A2OE/VPPA3A11A4A9A5A8A6A13A7A14A12VccA1527512D3GNDD4D2D5D1D6D0D7A0CEA1A10A2OEA3A11A4A9A5A8A6NCA7PMGA12VccVPP2764D3GNDD4D2D5D1D6D0D7A0CEA1A10A2OEA3A11A4A9A5A8A6A13A7PMGA12VccVPP27128引腳功能A0~A(12~16):地址線,尋址212~16=8~64K(由型號確定)D7~D0:數(shù)據(jù)線引腳,用于傳送數(shù)據(jù)CE:片選輸入端,低電平允許本芯片工作OE:輸出允許PGM:編程控制端VCC:工作電源VPP:編程電源GND:地工作方式表編程禁止編程檢驗編程維持讀編程禁止編程檢驗編程維持讀編程禁止編程檢驗編程維持讀操作DOUTLL27512高阻XHDINVppLDOUTLL高阻VppH高阻VppHHDOUTVppLLDINVppHL高阻VccXHDOUTVccLL27256高阻XVppXHDOUTHVppLLDINLVppHL高阻XVccXHDOUTHVccLL276427128輸出PGMOE/VppVppOECE地址鎖存器P0口ALEPSENRDWREAD7~D0A7~A0地址總線AB數(shù)據(jù)總線DBA15~A8外部程序存儲器選通外部數(shù)據(jù)存儲器讀外部數(shù)據(jù)存儲器寫P2口P1口RXDTXDINT0INT1T0T1RESET并行口串行口中斷請求計數(shù)脈沖復(fù)位MCS-51控制總線CB2.MCS-51外部三總線擴(kuò)展基本方法:數(shù)據(jù)線對應(yīng)相接,地址線對應(yīng)相接,控制線對應(yīng)相接,按地址處理片選信號??偩€驅(qū)動原則:任何時刻只允許一個設(shè)備驅(qū)動總線。為滿足該原則,輸出端與總線連接應(yīng)使用三態(tài)連接,通過片選信號控制連接方式。存儲器擴(kuò)展的關(guān)鍵問題是地址總線、數(shù)據(jù)總線和控制總線這三類總線的連接。MCS-51單片機(jī)由于受引腳數(shù)目的限制,數(shù)據(jù)線和低8位地址線復(fù)用,為了將它們分離出來,需要外加地址鎖存器74LS373外部程序存儲器擴(kuò)展原理ALEPSENEAD7~D0A7~A0A15~A8P2.0~P2.7MCS-518D8QLEOEP0.0~P0.7D7~D0A7~A0A15~A8CEOE鎖存器74LS373EPROME2PROM單片機(jī)【例】使用27128擴(kuò)展16K程序存儲器,硬件連接如圖。3.單片程序存儲器的擴(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共有四個地址空間:1.0000H~3FFFH2.4000H~7FFFH3.8000H~BFFFH4.0C000H~0FFFFH多片存儲器擴(kuò)展的關(guān)鍵問題仍然是地址總線、數(shù)據(jù)總線和控制總線這三類總線的連接。為了區(qū)分CPU是訪問哪一片EPROM,可以利用譯碼器進(jìn)行片選,這種片選方法稱為譯碼法4.多片程序存儲器的擴(kuò)展8031單片機(jī)擴(kuò)展四片27128輸入端輸出端使能端選擇Y0Y1Y2Y3GBA10000×0011×01011011111011111011111074LS139功能:各片27128的地址范圍27128編號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ù)存儲器及其擴(kuò)展1.Intel62系列SRAM型號容量地址線數(shù)61162KB1162648KB136212816KB146225632KB15靜態(tài)隨機(jī)存儲器芯片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:片選端,同時有效允許本芯片工作OE:輸出允許WE:寫允許信號,低電平寫入,高電平讀出VCC:工作電源GND:直流地數(shù)據(jù)存儲器擴(kuò)展與程序存儲器擴(kuò)展的連接方法基本相同。不同的只是控制信號不一樣。在程序存儲器擴(kuò)展中,單片機(jī)使用PSEN作為讀選通信號,而在數(shù)據(jù)存儲器擴(kuò)展中,單片機(jī)則使用RD和WR分別作為讀和寫的選通信號2.數(shù)據(jù)存儲器的擴(kuò)展ALEWRRDD7~D0A7~A0A15~A8P2.0~P2.7MCS-518D8QLEOEP0.0~P0.7D7~D0A7~A0A15~A8OEWE采用線選法擴(kuò)展三片6264各片6264的地址范圍6264編號A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0地址范圍IC16264(P2.5=0)1100000000000000………1101111111111111C000H……DFFFHIC26264(P2.6=0)1010000000000000………1011111111111111A000H……BFFFHIC36264(P2.7=0)0110000000000000………01111111111111116000H……7FFFH8031單片機(jī)內(nèi)部沒有程序存儲器,必須外接。而內(nèi)部RAM很少,經(jīng)常也需要外接數(shù)據(jù)存儲器。下面給出利用74LS138譯碼器同時擴(kuò)展二片2764和二片6264的電路3.同時擴(kuò)展程序存儲器和數(shù)據(jù)存儲器采用譯碼法同時擴(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的地址范圍存儲芯片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ī)的外部設(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ū)動方式、信息格式、以及工作速度方面彼此差別很大;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ù),它包括硬件接口電路和軟件控制兩個方面的問題。二.什么是I/O接口(電路)?(1)狹義的定義I/O接口電路是為了解決計算機(jī)與外部設(shè)備之間信息交換和變換問題而提出來的,I/O接口是計算機(jī)與外部設(shè)備之間傳送信息的部件和界面,每個外設(shè)都要通過I/O接口和CPU相連。(2)廣義的定義接口(Interface)是兩個需要相互交換信息的部件(硬件或軟件)之間的連接點或邊界。本課程主要討論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相連接時必須使用I/O接口進(jìn)行隔離(總線驅(qū)動原則),交換信息時必須通過地址信息進(jìn)行選擇,只有被地址信息選中的I/O接口,才能與CPU交換信息,其余未被選中須被隔離。CPU對I/O設(shè)備的訪問(讀/寫)是通過訪問與之相連接的I/O接口來實現(xiàn)的。每個I/O接口中可有一個或多個I/O端口,而每個I/O端口在系統(tǒng)中必須有一個唯一的地址,該地址稱為I/O端口地址。最終CPU對I/O設(shè)備的訪問就是通過訪問與之相對應(yīng)的I/O端口來實現(xiàn)的。而I/O設(shè)備在系統(tǒng)中的描述就歸結(jié)成與之相對應(yīng)的I/O端口地址。I/O端口地址不同實現(xiàn)的功能就不同。I/O端口地址與存儲器地址的內(nèi)涵不同。注意:CPU對外設(shè)的訪問是通過尋址其I/O端口來實現(xiàn)的。⑵對輸入輸出數(shù)據(jù)進(jìn)行緩沖和鎖存緩沖和鎖存指的是能接收輸入信號,并且當(dāng)輸入信號消失后,仍能保存輸入信息。兩者的區(qū)別是:緩沖是選通輸出,鎖存是直接輸出。緩沖器器輸出端應(yīng)為三態(tài)輸出,鎖存器輸出端為直接輸出。I/O接口的緩沖和鎖存的功能用于實現(xiàn)速度的匹配。⑶對信號的形式和數(shù)據(jù)的格式進(jìn)行變換CPU只能處理數(shù)字量,I/O設(shè)備信號和數(shù)據(jù)多樣,必須進(jìn)行相應(yīng)的變換,使之匹配。如:信號電平變換,A/D,D/A,串行和并行等。⑷CPU和I/O設(shè)備進(jìn)行聯(lián)絡(luò)功能為CPU與I/O設(shè)備之間的信息交換提供必要的輔助信息。如:I/O設(shè)備狀態(tài)信息,中斷請求等。四、I/O接口的典型結(jié)構(gòu)6.2.2I/O接口的編址外設(shè)端口單獨(dú)編址:I/O寄存器地址空間和存儲器地址空間分開編址I/O接口編址外設(shè)端口與存儲器統(tǒng)一編址:直接使用訪問數(shù)據(jù)存儲器的指令進(jìn)行I/O操作6.2.3I/O數(shù)據(jù)的傳送方式I/O數(shù)據(jù)傳送方式查詢傳送方式中斷傳送方式DMA傳送方式無條件傳送方式一.無條件傳送方式在進(jìn)行信息傳送時,如果CPU能確信一個外設(shè)已經(jīng)準(zhǔn)備就緒,那就不必查詢外設(shè)的狀態(tài)而可以直接進(jìn)行信息的傳輸,這就稱為無條件傳送方式。在無條件傳送方式下,程序設(shè)計簡單。不過,名為無條件傳送,實際上是有條件的,那就是傳送不能太頻繁,要保證每次傳送時,外設(shè)都必須處于就緒狀態(tài)。因此,無條件傳送方式用的較少,只適用于一些簡單的外設(shè)操作。二、條件傳送方式(即查詢Poling傳送)條件傳送方式的特點是:在執(zhí)行I/O操作之前,首先用程序?qū)ν庠O(shè)的狀態(tài)進(jìn)行檢查,僅當(dāng)檢測到所選外設(shè)已作好輸入/輸出準(zhǔn)備,并發(fā)來狀態(tài)信息后,才能開始執(zhí)行I/O操作,否則只有等待所選外設(shè)作好輸入/輸出準(zhǔn)備。因此,硬件接口電路中必須有一個能反映外設(shè)狀態(tài)信息的狀態(tài)寄存器。查詢方式進(jìn)行數(shù)據(jù)交換的工作流程圖如圖所示。圖中,對于輸入設(shè)備,有效的狀態(tài)信息為READY(準(zhǔn)備就緒);對于輸出設(shè)備,有效的狀態(tài)信息為BUSY(不忙),均用一位二進(jìn)數(shù)表示。查詢方式的特點:(1)數(shù)據(jù)交換可靠,硬件電路,程序比較簡單;(2)查詢必須有先有后,導(dǎo)致系統(tǒng)實時處理的能力較差;(3)查詢方式傳送中,CPU主動查詢外設(shè)的狀態(tài),把大量時間花在查詢上,導(dǎo)致CPU的效率較低。例如,操作員用鍵盤進(jìn)行輸入,按每秒打入10個字符計算,那末計算機(jī)平均用100000微秒的時間完成一次輸入過程,而CPU速度較快,真正用來從鍵盤輸入一個字符的時間很短,假設(shè)為10微秒(實際僅執(zhí)行幾條指令),這樣用于測試和等待的時間為100000-10=99990微秒,換句話說,就有99.99%的時間被浪費(fèi)掉了。實際應(yīng)用中,大多數(shù)外設(shè)的速度遠(yuǎn)比CPU的速度慢得多,因此,查詢方式傳送的實質(zhì)是降低CPU的工作效率去適應(yīng)低速的外部設(shè)備。(4)適用于外部設(shè)備較少,實時性要求不高的場合。三、中斷控制方式(1)引入中斷控制的原因在查詢方式下,造成CPU的工作效率較低和系統(tǒng)實時性不好的根本原因是。在查詢控制方式中,是CPU主動查詢外設(shè)的工作狀態(tài)。因此,要徹底改變查詢控制方式的不足,就得CPU的主動查詢改為CPU被動響應(yīng)。即:哪個外設(shè)需要CPU服務(wù),由該外設(shè)向CPU提出請求,CPU接到請求后,在條件允許時,就為該外設(shè)服務(wù)。這種I/O控制方式就是中斷控制方式。(2)中斷控制方式基本原理在中斷控制方式中,外設(shè)具有申請CPU服務(wù)的主動權(quán),當(dāng)外設(shè)準(zhǔn)備好時,便向CPU提出中斷請求,強(qiáng)迫CPU中斷正在執(zhí)行的程序,與外設(shè)進(jìn)行一次I/O操作,I/O操作完成后,CPU再恢復(fù)執(zhí)行原來的程序。這時,CPU不再主動查詢等待,而是被動響應(yīng),CPU在兩個I/O操作過程之間,可以處理別的事情。(3)中斷控制方式的特點①CPU效率高;②系統(tǒng)具備較強(qiáng)的實時處理的能力。③可以適應(yīng)不同速度的I/O設(shè)備;④硬件電路和程序設(shè)計較復(fù)雜。(要做出相應(yīng)的付出)三、直接存儲器存?。―MA)控制方式(1)DMA控制方式的提出1)程序控制和中斷控制方式下,每次數(shù)據(jù)的傳輸都得通過CPU,由CPU把一個字節(jié)或一個字讀到CPU內(nèi),再從CPU內(nèi)寫到其他地方。這種做法在大規(guī)模的數(shù)據(jù)傳輸時,顯然不合適。傳輸效率較低;2)若I/O設(shè)備的數(shù)據(jù)傳輸率較高(如硬盤,網(wǎng)絡(luò)設(shè)備,視頻處理設(shè)備),CPU在和這些高速的I/O設(shè)備進(jìn)行數(shù)據(jù)傳輸時,即使盡量減少程序查詢方式和中斷控制方式中非數(shù)據(jù)傳輸?shù)臅r間,也仍然不能滿足要求。鑒于上述原因,為了進(jìn)一步提高數(shù)據(jù)傳輸率,就必須徹底改變傳輸方式,使在數(shù)據(jù)傳輸過程中擺脫CPU的干預(yù),而直接傳輸。這種方式就是DMA(直接存儲器存取DirectMemoryAccess)。(3)DMA控制方式的特點①傳輸效率高;②硬件電路和程序設(shè)計較復(fù)雜;(要做出相應(yīng)的付出)③適用于高速I/O設(shè)備與存儲器之間的大量數(shù)據(jù)傳送。④在現(xiàn)代的計算機(jī)中幾乎沒有不使用DMA的。有關(guān)DAM的內(nèi)容,請參考相關(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ò)展片外存儲器時作地址/數(shù)據(jù)分時復(fù)用總線,在不進(jìn)行擴(kuò)展時作一般準(zhǔn)雙向輸入/輸出口使用。P1口為通用準(zhǔn)雙向輸入/輸出接口。P2口在擴(kuò)展片外存儲器時作高8位地址總線,在無擴(kuò)展時可用作通用準(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ū)動電路輸出到端口的引腳線。例如: MOV P0, R2 ORL P1, A ANL P2, #data XRL P3, A
2)讀端口鎖存器方式讀端口鎖存器方式實際上并不從外部引腳讀入數(shù)據(jù),而只是把端口鎖存器中的內(nèi)容讀到內(nèi)部總線,按指令要求進(jìn)行運(yùn)算和變換后,再寫回到鎖存器屬于這類操作的指令通常是ANL、ORL、XRL等“讀—修改—寫”指令。例如: ORL P0, #0FH
3)讀引腳方式當(dāng)端口做輸入使用時,若要讀取端口引腳上的信號,要先向其鎖存器寫入“1”,使得該輸出驅(qū)動電路的場效應(yīng)管截止,然后再執(zhí)行輸入指令,才能真正把外部引腳的狀態(tài)讀入例如要讀取P1口低4位引腳上信號的指令如下:MOVP1,#0FH;使P1口低4位鎖存器置“1”MOVA,P1 ;讀P1口低4位引腳信號送A2.I/O口用作輸出當(dāng)I/O口用作輸出時,每個I/O引腳輸出高電平時的拉電流應(yīng)控制在1mA之內(nèi)。P1、P2和P3口每個I/O引腳輸出低電平時的灌電流一般應(yīng)控制在3mA之內(nèi),而P0口每個I/O引腳的灌電流允許到5mA【例6-1】如圖所示,P1口的P1.0~P1.7分別通過反相器接8個發(fā)光二極管。要求編寫程序,每隔1s循環(huán)點亮1只發(fā)光二極管,一直循環(huán)下去,已知系統(tǒng)的晶振頻率為6MHz解:用軟件延時實現(xiàn)每隔1s循環(huán)點亮1只發(fā)光管⑴設(shè)計0.1s延時子程序因為fosc=6MHz,所以機(jī)器周期Tm=12/fosc=2μs0.1s的延時子程序宜采用雙重循環(huán)結(jié)構(gòu),如下所示: DEL1:MOVR2, #200 ;1Tm DEL2:MOVR3, #X ;1Tm NOP ;1Tm DEL3:DJNZR3, DEL3 ;2Tm DJNZR2, DEL2 ;2Tm RET ;2Tm則延時時間=[(X×2Tm+4)×200]×2μs+2Tm=100000μs 解得:X≈123⑵主程序連續(xù)10次調(diào)用0.1s延時子程序,則總延時時間就達(dá)到了1s主程序如下: ORG 0000HSTART: MOV A,#01HLOOP: MOV P1,A MOV R1,#10DELAY: LCALLDEL1 ;10次調(diào)用延時子程序 DJNZR1,DELAY RL A LJMPLOOP3.I/O口用作輸入當(dāng)I/O口用作輸入時,每個I/O腳的拉電流、灌電流一般應(yīng)控制在1mA之內(nèi)。如果I/O腳的電流太大時,在單片機(jī)與輸入設(shè)備之間應(yīng)該用限流電阻予以隔離。需要特別注意的是,當(dāng)I/O口作為輸入使用時,必須先向I/O口鎖存器的相應(yīng)位寫“1”,然后再讀,才能正確讀入引腳上的輸入信號【例6-2】如圖所示,P1口外接8個開關(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口引腳的輸入信號,必須要先向P1口送“1”,然后再讀。6.3.2采用8255A擴(kuò)展并行I/O口8255A是Intel公司生產(chǎn)的可編程并行I/O接口芯片,具有3個8位并行I/O口,3種工作方式,可通過編程改變其功能,因而使用靈活方便,通用性強(qiáng),可作為單片機(jī)與多種外圍設(shè)備連接時的接口電路Intel8255A是為8080/8085微機(jī)系統(tǒng)設(shè)計的可編程通用并行接口電路,也可用于MCS-51系列單片機(jī)擴(kuò)展并行I/O接口。8255A是8位可編程通用并行I/O接口芯片,有24條I/O引腳,分成A,B兩大組(每組12條),允許獨(dú)立編程,工作方式分為方式0、1和2三種。使用8255A可實現(xiàn)以下各項功能:(1)并行輸入或輸出8位數(shù)據(jù);(2)實現(xiàn)輸入數(shù)據(jù)的鎖存和輸出數(shù)據(jù)的緩沖;(3)提供多個通信接口聯(lián)絡(luò)控制信號(如中斷請求、外設(shè)準(zhǔn)備好及選通脈沖等);(4)通過讀取狀態(tài)字可實現(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:片選信號線,低電平有效,表示本芯片被選中RD:讀出信號線,低電平有效,控制從8255A讀WR:寫入信號線,低電平有效,控制向8255A寫入A1、A0:地址線,用來選擇8255A內(nèi)部的4個端口RESET:復(fù)位線,高電平有效。Vcc:+5V電源。8255A引腳功能從8255的I/O口讀有效8255對系統(tǒng)總線呈高阻態(tài)控制寄存器只能寫不能讀8255對系統(tǒng)總線呈高阻態(tài)初始化8255時必做的工作向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共有兩個控制字和一個狀態(tài)字,控制字用來選擇工作方式或?qū)口控制。狀態(tài)字用來反映8255A的工作狀態(tài)。兩個控制字均在A1A0=11的情況下發(fā)送,共用一個端口地址。若控制字的最高位(D7)是1,表示是工作方式控制字;若最高位(D7)是0,表示是按位置數(shù)控制字??刂谱志褪荂PU發(fā)給可編程器件的控制命令或者初始化命令。其格式(命令中每一位的取值),由可編程器件規(guī)定。8255A方式控制字C口置/復(fù)位控制字8255A沒有專門的狀態(tài)字,工作于方式1或方式2時,讀取PC口的數(shù)據(jù),即得狀態(tài)字。當(dāng)狀態(tài)字中有效信息不滿8位時,所缺的即為對應(yīng)PC口C引腳的輸入電平。8255A狀態(tài)字格式8255A的工作方式方式1:選通I/O方式方式2:雙向I/O方式(僅A口)方式0:基本I/O方式3.8255A的工作方式1)方式0(基本輸入/輸出方式)方式0不需要選通信號。PA、PB、PC7~4和PC3~0中任一端口都可以通過方式控制字設(shè)定為輸入或輸出端口,共有8種組合。方式1下,共有2個口,分為A組和B組,由編程設(shè)定為輸入或輸出,A組包括A口和PC7~4,PC7~4
作為A口輸入/輸出的選通信號和應(yīng)答信號。同理,B組包括B口和PC3~0,PC3~0作為B口輸入/輸出的選通信號和應(yīng)答信號。當(dāng)8255A工作于方式1時A口和B口的功能完全相同。2)方式1(選通輸入/輸出方式)8255A的C口聯(lián)絡(luò)控制信號線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)生中斷請求中斷響應(yīng)或程序查詢讀走輸入數(shù)據(jù)B.方式1輸出方式選通(應(yīng)答式)輸出過程輸出緩沖器空OBF=1可以輸出數(shù)據(jù)輸出數(shù)據(jù)準(zhǔn)備好通知外設(shè)OBF=0撤銷中斷請求外設(shè)取走數(shù)據(jù)發(fā)應(yīng)答信號ACK=0撤銷數(shù)據(jù)準(zhǔn)備好信號產(chǎn)生中斷請求中斷響應(yīng)或程序查詢輸出數(shù)據(jù)當(dāng)A口工作于方式2下時,PC7~3的分配如圖,選通信號和應(yīng)答信號的功能與方式1的含義相同。僅A口才可以工作于方式2。2.方式2(僅A口選通雙向方式)4.8255A應(yīng)用舉例【例6-4】8255A與MCS-51單片機(jī)接口電路如圖所示,8255A的B口外接8個開關(guān),A口通過反相器接8個發(fā)光二極管,各端口均工作在方式0,要求編寫程序從B口讀入開關(guān)的狀態(tài),再從A口輸出點亮發(fā)光二極管依題意,8255A各端口工作在方式0,且A口作輸出,B口作輸入,根據(jù)8255A方式控制字各個位的定義,應(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 ;延時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個并行I/O口(其中兩個為8位口,一個為6位口),還提供了256字節(jié)的SRAM以及一個14位定時/計數(shù)器。8155內(nèi)置有地址鎖存器,其地址線可直接與MCS-51單片機(jī)的P0口相連,無須外接地址鎖存器1.8155內(nèi)部結(jié)構(gòu)和引腳AD7~AD0:地址/數(shù)據(jù)總線ALE:地址鎖存信號PA7~PA0:A口I/O引腳PB7~PB0:B口I/O引腳PC5~PC0,C口I/O引腳TIMERIN:定時/計數(shù)器輸入端。TIMEROUT:定時/計數(shù)器輸出引腳RESET:復(fù)位引腳,高電平有效CE:片選輸入信號,低電平有效。RD:從I/O口或內(nèi)部RAM讀選通信號,低電平有效WR:向I/O口、命令寄存器或內(nèi)部RAM寫選通信號IO/M:I/O口與存儲器選擇8155引腳功能8155各端口地址分配CEIO/MA7A6A5A4A3A2A1A0所選的端口01×××××000命令/狀態(tài)寄存器0
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆博爾塔拉蒙古自治州(2024年-2025年小學(xué)六年級語文)統(tǒng)編版開學(xué)考試(上學(xué)期)試卷及答案
- 2024年江蘇省《輔警招聘考試必刷500題》考試題庫附答案(能力提升)
- 2023年健康運(yùn)動信息測量產(chǎn)品項目建設(shè)總綱及方案
- 中國傳統(tǒng)文化概論
- 全國山西經(jīng)濟(jì)版小學(xué)信息技術(shù)第三冊第一單元活動6《小企鵝找朋友》說課稿
- 習(xí)作 記一次游戲 說課稿-2024-2025學(xué)年語文四年級上冊(統(tǒng)編版)
- 2025年社區(qū)勞動保障工作計劃2
- Unit 5 Our toys 單元整體 (說課稿)-2024-2025學(xué)年粵教滬外教版(2024)英語三年級上冊
- 2025年度個人銷售工作計劃
- 2025年小學(xué)期初中中考試總結(jié)計劃
- 醫(yī)療團(tuán)隊管理技巧與策略
- 《功能點計算方法》課件
- GB/T 451.2-2023紙和紙板第2部分:定量的測定
- 工會提案培訓(xùn)課件
- 高空拋物法律知識講座
- 射頻工程師年終總結(jié)
- 2019統(tǒng)編版高中數(shù)學(xué)A版必修第二冊教學(xué)計劃含教學(xué)進(jìn)度表(高一下學(xué)期數(shù)學(xué)教學(xué)計劃)
- 抖音短視頻運(yùn)營部門薪酬績效方案(短視頻運(yùn)營薪酬績效考核方案)
- 增值稅發(fā)票銷貨清單
- 貴州高等學(xué)校體育工作評價指標(biāo)體系試行
- 基于實驗教學(xué)培養(yǎng)學(xué)生物理核心素養(yǎng)的研究
評論
0/150
提交評論