




已閱讀5頁,還剩86頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1,第9章 AT89S51單片機的 I/O擴展,1,成都理工大學(xué)工程技術(shù)學(xué)院 自動化工程系,2,2,第9章 目錄 9.1 I/O接口擴展概述 9.1.1 擴展的I/O接口功能 9.1.2 I/O端口的編址 9.1.3 I/O數(shù)據(jù)的傳送方式 9.1.4 I/O接口電路 9.2 AT89S51擴展I/O接口芯片82C55的設(shè)計 9.2.1 82C55芯片簡介 9.2.2 工作方式選擇控制字及端口PC置位/復(fù)位控制字 9.2.3 82C55的3種工作方式 9.2.4 AT89S51單片機與82C55的接口設(shè)計,3,9.3 AT89S51擴展I/O接口芯片81C55的設(shè)計 9.3.1 81C55芯片介紹 9.3.2 81C55的工作方式 9.3.3 AT89S51單片機與81C55的接口設(shè)計及軟件編程 9.4 利用74LSTTL電路擴展并行I/O口 9.5 用AT89S51單片機的串行口擴展并行口 9.5.1 用74LS165擴展并行輸入口 9.5.2 用74LS164擴展并行輸出口 9.6 用I/O口控制的聲音報警接口 9.6.1 蜂鳴音報警接口 9.6.2 音樂報警接口,4,內(nèi)容概要 AT89S51有4個I/O口P0P3,真正用作I/O口線的只有P1口的8位I/O口線和P3口的某些位線。因此,大多需要外部I/O接口的擴展。 介紹AT89S51與兩種常用的可編程I/O接口芯片82C55和81C55的擴展接口設(shè)計。此外還介紹使用廉價的74LSTTL芯片擴展并行I/O接口以及用AT89S51串行口來擴展并行I/O接口的設(shè)計。最后介紹使用I/O口控制的聲音報警接口。,5,9.1 I/O接口擴展概述 擴展I/O接口與擴展存儲器一樣,都屬于系統(tǒng)擴展的內(nèi)容。擴展的I/O接口應(yīng)該具有哪些功能? 9.1.1 擴展的I/O接口功能 擴展的I/O接口電路主要應(yīng)滿足以下功能要求。 1實現(xiàn)和不同外設(shè)的速度匹配 大多數(shù)外設(shè)的速度很慢,無法和s量級的單片機速度相比。單片機在與外設(shè)間進(jìn)行數(shù)據(jù)傳送時,只有在確認(rèn)外設(shè)已為數(shù)據(jù)傳送做好準(zhǔn)備的前提下才能進(jìn)行數(shù)據(jù)傳送。外設(shè)是否準(zhǔn)備好,就需要I/O接口電路與外設(shè)之間傳送狀態(tài)信息,以實現(xiàn)單片機與外設(shè)之間的速度匹配。,5,6,2輸出數(shù)據(jù)鎖存 與外設(shè)比,單片機的工作速度快,數(shù)據(jù)在數(shù)據(jù)總線上保留的時間十分短暫,無法滿足慢速外設(shè)的數(shù)據(jù)接收。所以在擴展的I/O接口電路中應(yīng)有輸出數(shù)據(jù)鎖存器,以保證輸出數(shù)據(jù)能為慢速的接收設(shè)備所接收。 3輸入數(shù)據(jù)三態(tài)緩沖 數(shù)據(jù)總線上可能“掛”有多個數(shù)據(jù)源,為使傳送數(shù)據(jù)時不發(fā)生沖突,只允許當(dāng)前時刻正在接收數(shù)據(jù)的I/O接口使用數(shù)據(jù)總線,其余的I/O接口應(yīng)處于隔離狀態(tài),為此要求I/O接口電路能為數(shù)據(jù)輸入提供三態(tài)緩沖功能。,6,7,9.1.2 I/O端口的編址 介紹I/O端口編址之前,首先要弄清楚I/O接口和I/O端口的概念。 I/O接口是單片機與外設(shè)間的連接電路的總稱。 I/O端口(簡稱I/O口)是指I/O接口電路中具有單元地址的寄存器或緩沖器。一個I/O接口芯片可以有多個I/O端口,如數(shù)據(jù)口,命令口,狀態(tài)口。當(dāng)然,并不是所有的外設(shè)都一定需要3種端口齊全的I/O接口。 每個I/O接口中的端口都要有地址,以便AT89S51通過讀寫端口來和外設(shè)交換信息。常用的I/O端口編址有兩種方式,獨立編址方式與統(tǒng)一編址方式。,7,8,1獨立編址 I/O端口地址空間和存儲器地址空間分開編址。優(yōu)點是I/O地址空間和存儲器地址空間相互獨立,界限分明。但需要設(shè)置一套專門的讀寫I/O端口的指令和控制信號。 2統(tǒng)一編址 把I/O端口與數(shù)據(jù)存儲器單元同等對待。I/O端口和外部數(shù)據(jù)存儲器RAM統(tǒng)一編址。因此外部數(shù)據(jù)存儲器空間也包括I/O端口在內(nèi)。 優(yōu)點是不需專門的I/O指令。缺點是需要把數(shù)據(jù)存儲器單元地址與I/O端口的地址劃分清楚,避免數(shù)據(jù)沖突。,8,9,9.1.3 I/O數(shù)據(jù)的傳送方式 為了實現(xiàn)和不同外設(shè)的速度匹配,必須根據(jù)不同外設(shè)選擇恰當(dāng)?shù)腎/O數(shù)據(jù)傳送方式。I/O數(shù)據(jù)傳送方式有:同步傳送、異步傳送和中斷傳送。 1同步傳送 同步傳送又稱無條件傳送。當(dāng)外設(shè)速度和單片機的速度相比擬時,常采用同步傳送方式,典型的同步傳送是單片機和外部數(shù)據(jù)存儲器之間的數(shù)據(jù)傳送。 2查詢傳送 又稱有條件傳送(也稱異步式傳送)。通過查詢外設(shè)“準(zhǔn)備好”后,再進(jìn)行數(shù)據(jù)傳送。優(yōu)點是通用性好,硬件連線和查詢程序簡單,但工作效率不高。,9,10,3中斷傳送 為了提高單片機對外設(shè)的工作效率,通常采用中斷傳送方式,來實現(xiàn)I/O數(shù)據(jù)的傳送。單片機只有在外設(shè)準(zhǔn)備好后,才中斷主程序的執(zhí)行,從而進(jìn)入與外設(shè)數(shù)據(jù)傳送的中斷服務(wù)子程序,進(jìn)行數(shù)據(jù)傳送。中斷服務(wù)完成后又返回主程序斷點處繼續(xù)執(zhí)行。采用中斷方式可大大提高工作效率。 9.1.4 I/O接口電路 常用的外圍I/O接口芯片: (1)82C55:可編程通用并行接口(3個8位I/O口)。,10,11,(2)81C55:可編程的IO/RAM擴展接口電路(2個8位I/O口,1個6位I/O口,256RAM單元,1個14位的減法計數(shù)器)。 都可以和AT89S51直接連接,接口邏輯簡單。 9.2 AT89S51擴展I/O接口芯片82C55的設(shè)計 先介紹可編程并行I/O接口芯片82C55的應(yīng)用特性,然后介紹AT89S51與82C55的接口電路以及軟件設(shè)計。 9.2.1 82C55芯片簡介 Intel公司的可編程并行I/O接口芯片,3個8位并行I/O口,3種工作方式,單片機與多種外設(shè)連接時的中間接口電路。引腳及內(nèi)部結(jié)構(gòu)如圖9-1和圖9-2所示。,11,12,12,圖9-1 82C55的引腳圖 圖9-2 82C55的內(nèi)部結(jié)構(gòu),13,1引腳說明 共40個引腳,引腳功能如下: D7D0:三態(tài)雙向數(shù)據(jù)線,與單片機的P0口連接,用來與單片機之間傳送數(shù)據(jù)信息。 :片選信號線,低有效,表示本芯片被選中。 :讀信號線,低有效,讀82C55端口數(shù)據(jù)的控制信號。 :寫信號線,低電平有效,用來向82C55寫入端口數(shù)據(jù)的控制信號。 VCC:+5V電源。,13,14,PA7PA0:端口A輸入/輸出線。 PB7PB0:端口B輸入/輸出線。 PC7PC0:端口C輸入/輸出線。 A1、A0:地址線,用來選擇82C55內(nèi)部的4個端口。 RESET:復(fù)位引腳,高電平有效。 2內(nèi)部結(jié)構(gòu) 如圖9-2所示,3個并行數(shù)據(jù)輸入/輸出端口,兩種工作方式的控制電路,一個讀/寫控制邏輯電路和一個8位數(shù)據(jù)總線緩沖器。 各部件的功能如下:,14,(1)端口PA、PB、PC 3個8位并行口PA、PB和PC,都可以選為輸入/輸出工作模式,功能和結(jié)構(gòu)上有差異。 PA口:一個8位數(shù)據(jù)輸出鎖存器和緩沖器;一個8位數(shù)據(jù)輸入鎖存器。 PB口:一個8位數(shù)據(jù)輸出鎖存器和緩沖器;一個8位數(shù)據(jù)輸入緩沖器。 PC口:一個8位的輸出鎖存器;一個8位數(shù)據(jù)輸入緩沖器。 通常PA口、PB口作為輸入/輸出口,PC口既可作為輸入/輸出口,也可在軟件控制下,分為兩個4位的端口,作為端口PA、PB選通方式操作時的狀態(tài)控制信號。,15,16,(2)A組和B組控制電路 是兩組根據(jù)AT89S51寫入的“命令字”控制82C55工作方式的控制電路。A組控制PA口和PC口的上半部(PC7PC4);B組控制PB口和PC口的下半部(PC3PC0),并可用“命令字”來對端口PC的每一位實現(xiàn)按位置“1”或清“0”。 (3)數(shù)據(jù)總線緩沖器 數(shù)據(jù)總線緩沖器是一個三態(tài)雙向8位緩沖器,作為82C55與系統(tǒng)總線之間的接口,用來傳送數(shù)據(jù)、指令、控制命令以及外部狀態(tài)信息。,16,17,(4)讀/寫控制邏輯電路 接收AT89S51單片機發(fā)來的控制信號 、 、RESET、地址信號A1、A0等,然后根據(jù)控制信號的要求,端口數(shù)據(jù)被AT89S51單片機讀出,或者將AT89S51單片機送來的數(shù)據(jù)寫入端口。 各端口工作狀態(tài)與控制信號的關(guān)系見表9-1。,17,18,18,19,9.2.2 工作方式選擇控制字及端口PC置位/復(fù)位控制字 可向82C55控制寄存器寫入兩種不同的控制字。 1工作方式選擇控制字 82C55有3種基本工作方式: (1)方式0基本輸入/輸出; (2)方式1選通輸入/輸出; (3)方式2雙向傳送(僅PA口有此工作方式)。 3種工作方式方式控制字來決定。格式如圖9-3所示。最高位D7=1,為本方式控制字的標(biāo)志,以便與另一控制字相區(qū)別(最高位D7 = 0)。,19,20,20,圖9-3 82C55的方式控制字格式,21,PC口分兩部分,隨PA口稱為A組,隨PB口稱為B組。其中PA口可工作于方式0、1和2,而PB口只能工作在方式0和1。 【例9-1】 AT89S51向82C55的控制字寄存器寫入工作方式控制字95H,根據(jù)圖9-3,將82C55編程設(shè)置為:PA口方式0輸入,PB口方式1輸出,PC口的上半部分(PC7PC4)輸出,PC口的下半部分(PC3PC0)輸入。 MOV DPTR,#H ;控制字寄存器端口地址 ;H送DPTR MOV A,#95H ; 方式控制字95H送A MOVX DPTR,A ; 控制字95H送控制字寄存器,21,22,2PC口按位置位/復(fù)位控制字 為另一控制字。即PC口中任何一位,可用一個寫入82C55控制口的置位/復(fù)位控制字來對PC口按位置“1”或清“0”。用于位控。格式如圖9-4所示。 【例9-2】 AT89S51向82C55的控制字寄存器寫入工作方式控制字07H,則PC3置1;08H寫入控制口,則PC4清0。程序段如下: MOV DPTR,#H ; 控制寄存器端口地址 ;H送DPTR MOV A,#07H ; 方式控制字07H送A,22,23,圖9-4 PC口按位置位/復(fù)位控制字格式,24,MOVX DPTR,A; 控制字07H送控制寄存器,把PC3置1 MOV DPTR,#H; 控制字寄存器端口地址送DPTR MOV A,#08H ; 方式控制字08H送A MOVX DPTR,A ; 08H送控制字寄存器,PC4清0,24,25,9.2.3 82C55的3種工作方式 1方式0 是基本輸入/輸出方式。T89S51可對82C55進(jìn)行I/O數(shù)據(jù)的無條件傳送。 例如,AT89S51單片機從82C55的某一輸入口讀入一組開關(guān)狀態(tài),從82C55輸出控制一組指示燈的亮、滅。并不需要任何條件,外設(shè)I/O數(shù)據(jù)可在82C55的各端口得到鎖存和緩沖。因此,方式0稱為基本輸入/輸出方式。 方式0下,3個端口都可以由軟件設(shè)置為輸入或輸出,不需要應(yīng)答聯(lián)絡(luò)信號。方式0的基本功能如下:,25,26,(1)具有兩個8位端口(PA、PB)和兩個4位端口(PC的上半部分和下半部分)。 (2)任何端口都可以設(shè)定為輸入或輸出,各端口的輸入、輸出共有16種組合。 PA口、PB口和PC口均可設(shè)定為方式0,并可根據(jù)需要,向控制寄存器寫入工作方式控制字,規(guī)定各端口為輸入或輸出方式。,27,【例9-3】 假設(shè)82C55的控制字寄存器端口地址為FF7FH,令PA口和PC口的高4位為方式0輸出,PB口和PC口的低4位為方式0輸入,初始化程序: MOV DPTR,#0FF7FH ; 端口地址#0FF7F送DPTR MOV A,#83H ; 方式控制字83H送A MOVX DPTR,A ; 控制字83H送控制字寄存器,27,28,2方式1 是一種采用應(yīng)答聯(lián)絡(luò)的輸入/輸出工作方式。 PA口、PB口皆可設(shè)成這種工作方式。 在方式1下,82C55的PA口和PB口通常用于I/O數(shù)據(jù)的傳送,PC口用作PA口和PB口的應(yīng)答聯(lián)絡(luò)信號線,以實現(xiàn)采用中斷方式來傳送I/O數(shù)據(jù)。 PC口的PC7PC0的應(yīng)答聯(lián)絡(luò)線是規(guī)定好的,其各位分配如圖9-5和圖9-7所示,圖中,標(biāo)有I/O的各位仍可用作基本輸入/輸出,不作應(yīng)答聯(lián)絡(luò)用。 下介紹方式1輸入/輸出時的應(yīng)答聯(lián)絡(luò)信號與工作原理。,28,29,(1)方式1輸入 方式1輸入應(yīng)答聯(lián)絡(luò)信號如圖9-5所示。其中 與IBF為一對應(yīng)答聯(lián)絡(luò)信號。各應(yīng)答聯(lián)絡(luò)信號的功能如下。 :是由輸入外設(shè)發(fā)給82C55的選通輸入信號,低有效。 IBF:輸入緩沖器滿,應(yīng)答信號。82C55通知外設(shè)已收到外設(shè)發(fā)來的且已進(jìn)入輸入緩沖器的數(shù)據(jù),高有效。 INTR:由82C55向AT89S51單片機發(fā)出的中斷請求信號,高有效。 INTEA:控制PA口是否允許中斷的控制信號,由PC4的置位/復(fù)位來控制。,29,30,INTEB:控制PB口是否允許中斷的控制信號,由PC2的置位/復(fù)位來控制。 方式1輸入如圖9-6所示。下面以PA口的方式1輸入為例,介紹方式1輸入的工作過程。 當(dāng)外設(shè)向82C55輸入一個數(shù)據(jù)并送到PA7PA0時,外設(shè)自動在 上向82C55發(fā)送一個低電平選通信號。 82C55收到 后,先把PA7PA0輸入的數(shù)據(jù)存入PA口的輸入數(shù)據(jù)緩沖/鎖存器,然后使輸出應(yīng)答線IBF變?yōu)楦?,通知輸入外設(shè),PA口已收到它送來的數(shù)據(jù)。 82C55檢測到 由低電平變?yōu)楦唠娖健BFA(PC5)為“1”狀態(tài)和中斷允許INTEA(PC4)=1時,使,30,31,INTRA(PC3)變?yōu)楦唠娖?,向單片機發(fā)出中斷請求。INTEA的狀態(tài)可由用戶通過指令對PC4的單一置位/復(fù)位控制字來控制。 單片機響應(yīng)中斷后,進(jìn)入中斷服務(wù)子程序來讀取PA口的外設(shè)發(fā)來的輸入數(shù)據(jù)。當(dāng)輸入數(shù)據(jù)被單片機讀走后,82C55撤銷INTRA上的中斷請求,并使IBFA變低,通知輸入外設(shè)可傳送下一個輸入數(shù)據(jù)。,31,32,32,圖9-5 方式1輸入應(yīng)答聯(lián)絡(luò)信號,33,33,圖9-6 PA口方式1輸入工作過程示意圖,34,(2)方式1輸出 方式1輸出時,應(yīng)答聯(lián)絡(luò)信號如圖9-7所示。 與 構(gòu)成一對應(yīng)答聯(lián)絡(luò)信號,應(yīng)答聯(lián)絡(luò)信號功能如下。 :端口輸出緩沖器滿信號,低有效,它是82C55發(fā)給外設(shè)的聯(lián)絡(luò)信號,表示外設(shè)可以將數(shù)據(jù)取走。 :外設(shè)應(yīng)答信號,低有效。表示外設(shè)已把82C55發(fā)出的數(shù)據(jù)取走。 INTR:中斷請求信號,高有效。表示該數(shù)據(jù)已被外設(shè)取走,向單片機發(fā)出中斷請求,如果AT89S51響應(yīng)該中斷,在中斷服務(wù)子程序中向82C55寫入要輸出的下一數(shù)據(jù)。,34,35,INTEA控制PA口是否允許中斷,由PC6控制。 INTEB控制PB口是否允許中斷,由PC2控制。 方式1輸出工作示意如圖9-8所示。以PB口的方式1輸出為例,介紹工作過程。 AT89S51可以通過“MOVX Ri,A”指令把輸出數(shù)據(jù)送到B口的輸出數(shù)據(jù)鎖存器,82C55收到后便令輸出緩沖器滿引腳 (PC1)變低,以通知輸出設(shè)備輸出的數(shù)據(jù)已在PB口的PB7PB0上。 輸出外設(shè)收到 上低電平后,先從PB7PB0上取走輸出數(shù)據(jù),然后使 B 變低電平,以通知82C55輸出外設(shè)已收到82C55輸出的數(shù)據(jù)。,35,36,36,圖9-7 方式1輸出應(yīng)答聯(lián)絡(luò)信號,37,圖9-8 PB口方式1輸出工作過程示意圖,37,38, 82C55從應(yīng)答輸入線 B收到低電平后就對 B 和中斷允許控制位INTEB狀態(tài)進(jìn)行檢測,若皆為高電平,則INTRB變?yōu)楦唠娖蕉騿纹瑱C請求中斷。 AT89S51單片機響應(yīng)INTRB上中斷請求后便可通過中斷服務(wù)程序把下一個輸出數(shù)據(jù)送到PB口的輸出數(shù)據(jù)鎖存器。重復(fù)上述過程,完成數(shù)據(jù)的輸出。 3方式2 只有PA口才有方式2。圖9-9為工作示意圖。方式2是方式1輸入和輸出組合。PA7PA0為雙向I/O總線。當(dāng)作為輸入口使用,PA7PA0受STBA 和IBFA控制;當(dāng)作輸出端口使用,PA7PA0受 A、 A 控制。,38,39,39,圖9-9 PA口在方式2下的工作示意圖,40,方式2特別適用于像鍵盤、顯示器一類的外部設(shè)備,因為有時需要把鍵盤上輸入的編碼信號通過PA口送給單片機,有時又需把單片機發(fā)出的數(shù)據(jù)通過PA口送給顯示器顯示。 9.2.4 AT89S51單片機與82C55的接口設(shè)計 1硬件接口電路 如圖9-10為AT89S51擴展一片82C55的電路。P0.1、P0.0經(jīng)74LS373與82C55的A1、A0連接;P0.7經(jīng)74LS373與片選端 相連,其它地址線懸空;82C55的控制線 、 直接與單片機 和 端相連;單片機數(shù)據(jù)總線P0.0P0.7與82C55數(shù)據(jù)線D0D7連接。,40,41,2確定82C55端口地址 圖9-10中82C55只有3條線與AT89S51地址線相接,片選端 、端口地址選擇端A1、A0,分別接于P0.7、P0.1和P0.0,其他地址線全懸空。顯然只要保證P0.7為低電平時,即可選中82C55;若P0.1、P0.0再為“00”,則選中82C55的PA口。同理P0.1、P0.0為“01”、“10”、“11”分別選中PB口、PC口及控制口。 若端口地址用16位表示,其他無用端全設(shè)為“1”(也可把無用端全設(shè)為“0”),則82C55的A、B、C及控制口地址分別為FF7CH、FF7DH、FF7EH、FF7FH。,41,42,42,圖9-10 AT89S51單片機擴展一片82C55的接口電路,43,如果沒有用到的位取“0”,則4個端口地址分別為0000H、0001H、0002H、0003H,只要保證 、A1、A0的狀態(tài),無用位設(shè)為“0”或“1”均可。 3軟件編程 在實際設(shè)計中,須根據(jù)外設(shè)的類型選擇82C55的操作方式,并在初始化程序中把相應(yīng)控制字寫入控制口。下面根據(jù)圖9-10,介紹對82C55進(jìn)行操作的編程。 【例9-4】要求82C55工作在方式0,且PA口作為輸入,PB口、PC口作為輸出,程序如下: MOV A,#90H ;控制字送A MOV DPTR,#0FF7FH;控制寄存器地址FF7FHDPTR,43,44,MOVX DPTR,A ;方式控制字控制寄存器 MOV DPTR,#0FF7CH ;PA口地址FF7CHDPTR MOVX A,DPTR ;從PA口讀入數(shù)據(jù)A MOV DPTR,#0FF7DH ;PB口地址FF7DHDPTR MOV A,#data1 ;要輸出的數(shù)據(jù)#data1A MOVX DPTR,A ;將#data1送PB口輸出 MOV DPTR,#0FF7EH ;PC口地址DPTR MOV A,# data 2 ;數(shù)據(jù)#data 2A MOVX DPTR,A ;將數(shù)據(jù)#data 2送PC口輸出,44,45,【例9-5】對端口PC的置位/復(fù)位。 1PC口1中的任1一位,均可用指令來置位或復(fù)位。例如,如果想把PC口的PC5置“1”,相應(yīng)的控制字為00001011B = 0BH(關(guān)于82C55的PC口置位/復(fù)位的控制字說明見圖9-4)。程序如下: MOV R1,7FH ;控制口地址7FHR1 MOV A,0BH ;控制字0BHA MOVX R1, A ;控制字7FH控制口,把PC5置1,45,46,如果想把PC口的PC5復(fù)位,相應(yīng)的控制字0AH,程序如下: MOV R1,7FH ;控制口地址7FH R1 MOV A,0AH ;控制字0AHA MOVX R1,A ;控制字7FH控制口, PC5清0 82C55接口芯片在AT89S51單片機應(yīng)用系統(tǒng)中廣泛用于與各種外部數(shù)字設(shè)備的連接,如打印機、鍵盤、顯示器以及作為數(shù)字信息的輸入、輸出接口。,46,47,9.3 AT89S51擴展I/O接口芯片81C55的設(shè)計 包含256B的RAM存儲器(靜態(tài)),RAM的存取時間為400ns,可編程的兩個8位并行口PA和PB,可編程的一個6位并行口PC,以及一個14位的減1計數(shù)器。PA口和PB口可工作于基本輸入/輸出方式(同82C55的方式0)或選通輸入/輸出方式(同82C55的方式1)。81C55可直接與AT89S51相連,不需增加任何硬件邏輯電路。由于81C55片內(nèi)集成有I/O口、RAM和減1計數(shù)器,因而是被選用的I/O接口芯片之一。 9.3.1 81C55芯片介紹 介紹81C55芯片基本特性。,47,48,181C55的結(jié)構(gòu) 邏輯結(jié)構(gòu)如圖9-11。 圖9-11 81C55的邏輯結(jié)構(gòu),49,281C55的引腳功能 40引腳,采用雙列直插式封裝,如圖9-12所示。 圖9-12 81C55的引腳圖,49,50,各引腳功能如下。 (1)AD7AD0,為地址/數(shù)據(jù)線,與AT89S51單片機的P0口相連,用于分時傳送地址/數(shù)據(jù)信息。 (2)I/O總線(22條)。PA7PA0為通用I/O線,數(shù)據(jù)傳送方向由寫入81C55的命令字決定(圖9-13);PB7PB0為通用I/O線,用于傳送PB口上的外設(shè)數(shù)據(jù),數(shù)據(jù)傳送方向也由寫入81C55的控制字決定。PC5PC0為數(shù)據(jù)/控制線,共有6條,在通用I/O方式下,用作傳送I/O數(shù)據(jù);在選通I/O方式下,用作傳送命令/狀態(tài)信息(見表9-3)。,50,51,(3)控制引腳 RESET:復(fù)位輸入線,在RESET線上輸入一個大于600ns寬的正脈沖時,81C55即可處于復(fù)位狀態(tài),PA、PB、PC三口也定義為輸入方式。 、IO/ : 為片選線,若 =0,則AT89S51單片機選中本81C55工作;否則,本81C55未被選中。IO/ 為I/O端口或RAM存儲器選擇線,若IO/ =0,則AT89S51單片機選中81C55片內(nèi)的RAM存儲器;若IO/ =1,則AT89S51單片機選中81C55的某一I/O端口。 和 :當(dāng) =0且 =1時,81C55被讀出數(shù)據(jù)狀態(tài);當(dāng) =1且 = 0時,81C55被寫入數(shù)據(jù)狀態(tài)。,51,52,ALE:允許地址輸入線,高有效。若ALE=1,則81C55允許AT89S51通過AD7AD0線發(fā)出地址鎖存到81C55片內(nèi)“地址鎖存器”;否則,81C55地址鎖存器處于封鎖狀態(tài)。81C55的ALE常和AT89S51的ALE相連。 TIMERIN和 :TIMERIN是計數(shù)器脈沖輸入線,輸入的脈沖上跳沿用于對81C55片內(nèi)的14位計數(shù)器減1。 為計數(shù)器輸出線,當(dāng)14位計數(shù)器減為0時就可以在該引線上輸出脈沖或方波,輸出脈沖或方波與所選的計數(shù)器工作方式有關(guān)。 (4)電源線。VCC為+5V電源輸入線,VSS接地。,52,53,3CPU對81C55 I/O端口的控制 3個端口數(shù)據(jù)傳送方式是由控制字和狀態(tài)字來決定的。 (1)81C55各端口地址分配 內(nèi)部有7個端口,需要3位地址A2A0上的不同組合代碼來加以區(qū)分。表9-2為端口地址分配以及RAM單元的選擇。 (2)81C55的控制字 有一個控制寄存器和一個狀態(tài)標(biāo)志寄存器。工作方式由寫入控制寄存器的控制字來確定。控制字格式如圖9-13所示??刂萍拇嫫髦荒軐懭氩荒茏x出。,53,54,圖9-13 81C55的控制字格式,54,55,控制寄存器中的D3D0位用來設(shè)置PA口、PB口和PC口的工作方式。 D4、D5位用來確定A口、B口以選通輸入/輸出方式工作時是否允許中斷請求。 D6、D7位用來設(shè)置計數(shù)器的操作。 (3)81C55的狀態(tài)字 有一個狀態(tài)標(biāo)志寄存器,用來存入PA口和PB口的狀態(tài)標(biāo)志。它的地址與控制寄存器地址相同,只能對其讀出,不能寫入。格式如圖9-14所示。,56,下面僅對狀態(tài)字中的D6位給出說明。 D6為計數(shù)器中斷狀態(tài)標(biāo)志位TIMER。 若計數(shù)器正在計數(shù)或開始計數(shù)前,則D6=0;若計數(shù)器的計數(shù)長度已計滿,即計數(shù)器減為0,則D6=1,可作為計數(shù)器中斷請求標(biāo)志。在硬件復(fù)位或?qū)λx出后又恢復(fù)為0。 9.3.2 81C55的工作方式 下面介紹81C55的兩種工作方式。,56,57,圖9-14 81C55狀態(tài)字格式,57,58,1存儲器方式 存儲器方式用于對片內(nèi)256B RAM單元進(jìn)行讀/寫,若IO/ =0且 =0,則AT89S51可通過AD7AD0上的地址選擇RAM存儲器中任意單元讀/寫。 2I/O方式 分基本I/O和選通I/O兩種方式,見表9-3。在I/O方式下,81C55可選擇片內(nèi)任意端口寄存器讀/寫,端口地址由A2、A1、A0三位決定(見表9-2)。 (1)基本I/O方式。本方式下,PA、PB、PC三口用作輸入/輸出,由圖9-13的命令字決定。其中,PA、PB兩口的輸入/輸出由D1、D0決定,PC口各位由D3、D2狀態(tài)決,58,59,定。例如,若把02H的命令字送到81C55命令寄存器,則81C55的PA口和PC口各位設(shè)定為輸入方式,PB口設(shè)定為輸出方式。 (2)選通I/O方式。由命令字中D3、D2狀態(tài)設(shè)定,PA口和PB口都可獨立工作于這種方式。此時,PA口和PB口用作數(shù)據(jù)口,PC口用作A口和B口的應(yīng)答聯(lián)絡(luò)控制。PC口各位應(yīng)答聯(lián)絡(luò)線的定義是在設(shè)計81C55時規(guī)定的,其分配和命名見表9-3。,59,60,60,選通I/O方式又可分為選通I/O數(shù)據(jù)輸入和選通I/O數(shù)據(jù)輸出兩種方式。 選通I/O數(shù)據(jù)輸入 PA口和PB口都可設(shè)定為本方式。若命令字中D0=0且D3、D2=10,則PA口設(shè)定為本工作方式;若命令字中D1= 0且,61,D3、D2=11,則PB口設(shè)定為本工作方式。本工作方式和82C55的選通I/O輸入情況類似,如圖9-15(a)所示。 選通I/O數(shù)據(jù)輸出 PA口和PB口都可設(shè)定為本方式。若命令字D0=1且D3、D2=10,則PA口設(shè)定為本工作方式;若命令字D1=1且D3、D2=11,則PB口設(shè)定為本工作方式。 選通I/O數(shù)據(jù)的輸出過程也和82C55的選通I/O輸出情況類似,圖9-15(b)所示為選通I/O數(shù)據(jù)輸出的示意圖。,61,62,圖9-15 選通I/O方式示意圖,62,63,3內(nèi)部計數(shù)器/計數(shù)器及使用 14位的計數(shù)器/計數(shù)器,CPU可通過軟件來選擇計數(shù)長度和計數(shù)方式。計數(shù)長度和計數(shù)方式由寫入計數(shù)器的控制字來確定。計數(shù)器的格式如圖9-16所示。 圖9-16 81C55計數(shù)器的格式 其中,T13T0為計數(shù)器的計數(shù)位;M2、M1用來設(shè)置計數(shù)器的輸出方式。81C55計數(shù)器的4種工作方式及對應(yīng)的 引腳輸出波形如圖9-17所示。,63,64,64,圖9-17 81C55計數(shù)器工作方式及 引腳輸出波形,65,任何時候都可設(shè)置計數(shù)器長度和工作方式,將控制字寫入控制寄存器。如果計數(shù)器正在計數(shù),只有在寫入啟動命令后,計數(shù)器才接收新計數(shù)長度并按新的工作方式計數(shù)。 若寫入計數(shù)器的初值為奇數(shù), 引腳的方波輸出是不對稱的。例如,初值為9時,計數(shù)器的輸出,在5個計數(shù)脈沖周期內(nèi)為高電平,4個計數(shù)脈沖周期內(nèi)為低電平,如圖9-18所示。 圖9-18 計數(shù)長度為奇數(shù)時的不對稱方波輸出(長度為9),65,66,注意,81C55的計數(shù)器初值不是從0開始,從2開始。這是因為,如果選擇計數(shù)器的輸出為方波形式(無論是單方波還是連續(xù)方波),則規(guī)定是從啟動計數(shù)開始,前一半計數(shù)輸出為高電平,后一半計數(shù)輸出為低電平。顯然,如果計數(shù)初值是0或1,就無法產(chǎn)生這種方波。因此81C55計數(shù)器的寫入初值范圍是3FFFH2H。 如果硬要將0或1作為初值寫入,其效果將與送入初值2的情況一樣。81C55復(fù)位后使計數(shù)器停止計數(shù)。 9.3.3 AT89S51單片機與81C55的接口設(shè)計及軟件編程 1硬件接口電路 接口如圖9-19所示。直接連接不需外加器件。,66,67,67,圖9-19 AT89S51單片機與81C55的接口電路,68,在圖9-19中,單片機P0口輸出的低8位地址不需要另外加鎖存器(81C55片內(nèi)集成有地址鎖存器),而直接與81C55的AD0AD7相連,既可作為低8位地址總線,又可作為數(shù)據(jù)總線,地址鎖存控制直接用AT89S51發(fā)出的ALE信號。 81C55的 端接P2.7,IO/ 端與P2.0相連。當(dāng)P2.7=0時,若P2.0=0,則訪問81C55的RAM單元。由此可得到圖9-19中81C55的各端口以及RAM單元的地址編碼,見表9-4。,68,69,69,70,281C55的編程 根據(jù)圖9-19接口,介紹對81C55的具體操作。 初始化程序設(shè)計 【例9-6】若PA口定義為基本輸入方式,PB口定義為基本輸出方式,對輸入脈沖進(jìn)行24分頻(81C55計數(shù)器的最高計數(shù)頻率為4MHz),則81C55的初始化程序如下START: MOV DPTR,7F04H;DPTR指針指向計數(shù)器低8位 MOV A,18H ;計數(shù)初值24送A MOVX DPTR,A ;計數(shù)初值低8位裝入計數(shù)器 INC DPTR ;指向計數(shù)器高8位,70,71,MOV A,40H ;計數(shù)器為連續(xù)方波輸出 MOVX DPTR,A ;計數(shù)初值高6位裝入計數(shù)器 MOV DPTR,7F00H ;指向命令/狀態(tài)口 MOV A,#0C2H ;設(shè)定命令控制字 MOVX DPTR,A;A口基本輸入,B口基本輸出,開啟計數(shù) 【例9-7】讀81C55的7EF1H單元。程序如下: MOV DPTR,#7EF1H;DPTR指針指向81C55的7EF1H單元 MOVX A,DPTR ;7EF1H單元內(nèi)容A,71,72,【例9-8】將立即數(shù)41H寫入81C55 RAM的7E20H單元。程序如下: MOV A,#41H ;立即數(shù)A MOV DPTR,#7E20H;DPTR指針指向81C55的7E20H單元 MOVX DPTR,A;立即數(shù)41H送81C55 RAM的7E20H單元 81C55既有RAM又有I/O口,此外,還有計數(shù)器。在同時需要擴展RAM 、I/O和計數(shù)器的系統(tǒng)中,選用81C55特別經(jīng)濟,是單片機系統(tǒng)中常用的外圍接口芯片之一。,72,73,9.4 利用74LSTTL電路擴展并行I/O口 在單片機應(yīng)用中,有些場合需要降低成本、縮小體積,這時采用TTL電路、CMOS電路鎖存器或三態(tài)門電路也可構(gòu)成各種類型的簡單輸入/輸出口。 如圖9-20所示為一個利用74LS244和74LS273芯片,將P0口擴展成簡單的輸入/輸出口的電路。 74LS244和74LS273的工作受AT89S51的P2.0、 、 3條控制線控制。74LS244作為擴展輸入口,8個輸入端分別接8個按鈕開關(guān)。74LS273是8D鎖存器擴展輸出口,接8個LED發(fā)光二極管,以顯示8個按鈕開關(guān)狀態(tài)。,73,74,圖9-20 74LSTTL I/O擴展舉例,75,當(dāng)某條輸入口線的按鈕開關(guān)按下時,該輸入口線為低電平,讀入單片機后,其相應(yīng)位為“0”,然后再將口線的狀態(tài)經(jīng)74LS273輸出,某位低電平時二極管發(fā)光,從而顯示出按下的按鈕開關(guān)的位置。 該電路的工作原理如下。 當(dāng)P2.0=0, =0( =1)時,選中74LS244芯片,此時若無按鈕開關(guān)按下,輸入全為高電平。當(dāng)某開關(guān)按下時則對應(yīng)位輸入為“0”,74LS244的輸入端不全為“1”,其輸入狀態(tài)通過P0口數(shù)據(jù)線被讀入AT89S51片內(nèi)。,75,76,當(dāng)P2.0 = 0, =1 ( = 0)時,選中74LS273芯片,CPU通過P0口輸出數(shù)據(jù)鎖存到74LS273,74LS273的輸出端低電平位對應(yīng)的LED發(fā)光二極管點亮。 總之,在圖9-20中只要保證P2.0為“0”,其他地址位或“0”或“1”即可。如地址用FEFFH(無效位全為“1”),或用0000H(無效位全為“0”)都可。,76,77,輸入程序段: MOV DPTR,#0FEFFH ;I/O地址DPTR MOVX A,DPTR ; 為低,74LS244數(shù)據(jù)被讀入A中 輸出程序段: MOV A,#data ;數(shù)據(jù)#dataA MOV DPTR,#0FEFFH ;I/O地址#0FEFFHDPTR MOVX DPTR,A ; 為低,數(shù)據(jù)經(jīng)74LS273口輸出,77,78,【例9-9】 編寫程序把按鈕開關(guān)狀態(tài)通過圖9-20的發(fā)光二極管顯示出來。程序如下: DDIS: MOV DPTR,#0FEFFH ;輸入口地址DPTR LP: MOVX A,DPTR ;按鈕開關(guān)狀態(tài)讀入A中 MOVX DPTR,A ;A中數(shù)據(jù)送顯示輸出口 SJMP LP ;反復(fù)連續(xù)執(zhí)行 由程序可看出,對于擴展接口的輸入/輸出就像從外部RAM讀/寫數(shù)據(jù)一樣方便。圖9-20僅僅擴展了兩片,如果仍不夠用,還可擴展多片74LS244、74LS273之類的芯片。但作為輸入口時,一定要求有三態(tài)功能,否則將影響總線的正常工作。,78,79,9.5 用AT89S51單片機的串行口擴展并行口 串口的方式0用于I/O擴展。方式0為同步移位寄存器工作方式,波特率為fosc/12。數(shù)據(jù)由RXD端(P3.0)輸入,同步移位時鐘由TXD端(P3.1)輸出。 9.5.1 用74LS165擴展并行輸入口 圖9-21串口擴展兩個8位并行輸入口。74LS165是8位并行輸入串行輸出的寄存器。當(dāng)74LS165的S/ 端由高到低跳變,并行輸入端的數(shù)據(jù)被置入寄存器;當(dāng)S/ = 1,且時鐘禁止端(15腳)為低時,允許TXD(P3.1)移位時鐘輸入,在該脈沖作用下,數(shù)據(jù)由右向左方向移動。,79,80,TXD與所有74LS165的CP相連;RXD與74LS165的串行輸出端QH相連;P1.0與 S/ 相連,控制74LS165的串行移位或并行輸入;15腳接地,允許時鐘輸入。當(dāng)擴展多個8位輸入口時,相鄰兩芯片的首尾(QH與SIN)相連。 圖9-21 利用74LS165擴展并行輸入口,80,81,【例9-10】從16位擴展口讀入5組數(shù)據(jù)(每組2B),把它們轉(zhuǎn)存到內(nèi)部RAM 20H開始的單元。 MOV R7,#05H ;設(shè)置讀入組數(shù) MOV R0,#20H ;設(shè)置內(nèi)部RAM數(shù)據(jù)區(qū)首址 START: CLR P1.0 ;并行置入數(shù)據(jù),S/ =0 SETB P1.0 ;允許串行移位,S/ =1 MOV R2,#02H;設(shè)每組字節(jié)數(shù), 即74LS165的個數(shù) RXDATA:MOV SCON,#00010000H;設(shè)置串口方式0,允許 ;接收,啟動接收過程,81,82,WAIT: JNB RI,WAIT ;未接收完一幀,循環(huán)等待 CLR RI ;RI標(biāo)志清“0”,準(zhǔn)備下次接收 MOV A,SBUF ;讀入數(shù)據(jù) MOV R0,A ;送至RAM緩沖區(qū) INC R0 ;指向下一個地址 DJNZ R2,RXDATA ;未讀完一組數(shù)據(jù), 繼續(xù) DJNZ R7,START ;5組數(shù)據(jù)未讀完重新并行置入 ;對數(shù)據(jù)進(jìn)行處理,82,83,串行接收過程采用查詢等待的方式,如必要,可改中斷方式
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)防接種課件幻燈片
- 預(yù)防小學(xué)生近視教案課件
- 預(yù)防傳染主題班會課件
- 音樂課件兒童歌曲
- 2025年基因工程亞單元疫苗項目合作計劃書
- 屋面雨水排水系統(tǒng)安裝監(jiān)理指南
- 2025年建筑用天然石料項目合作計劃書
- 文化遺產(chǎn)傳承與現(xiàn)代化
- 衛(wèi)生部《手足口病預(yù)防控制指南版》
- 安全設(shè)施使用管理制度培訓(xùn)
- 體育賽事中的后勤保障工作
- 瀝青鋪設(shè)作業(yè)的安全風(fēng)險控制措施
- 建材家居業(yè)商業(yè)計劃書
- CNAS-CL01-A004:2018 實驗室能力認(rèn)可準(zhǔn)則在醫(yī)療器械檢測領(lǐng)域的應(yīng)用說明
- 2025年中國果蔬加工行業(yè)市場調(diào)研分析及投資戰(zhàn)略咨詢報告
- DB50-T 1727.2-2024 零散天然氣橇裝回收安全技術(shù)規(guī)程 第2部分:壓縮天然氣
- 店面工程裝修合同書
- DB33T 1149-2018 城鎮(zhèn)供排水有限空間作業(yè)安全規(guī)程
- 反肩關(guān)節(jié)置換術(shù)的護理
- 內(nèi)蒙古交通集團有限公司社會化招聘考試試卷及答案2022
- 國家開放大學(xué)《當(dāng)代中國政治制度》期末考試題庫
評論
0/150
提交評論