第6章 IO口擴(kuò)展_第1頁
第6章 IO口擴(kuò)展_第2頁
第6章 IO口擴(kuò)展_第3頁
第6章 IO口擴(kuò)展_第4頁
第6章 IO口擴(kuò)展_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第第6章章 MCS-51擴(kuò)展擴(kuò)展I/O接口的設(shè)計接口的設(shè)計6.1 I/O接口擴(kuò)展概述接口擴(kuò)展概述6.2 MCS-51與可編程并行與可編程并行I/O芯片芯片8255A的接口設(shè)計的接口設(shè)計6.3 MCS-51與可編程與可編程RAM/IO芯片芯片8155H的接口的接口6.4 用用74LS TTL電路擴(kuò)展并行電路擴(kuò)展并行I/O口口6.5 用用MCS-51的串行口擴(kuò)展并行口的串行口擴(kuò)展并行口2I/O (輸入輸入/輸出輸出)接口是接口是MCS-51與外設(shè)交換數(shù)字信息的橋梁。與外設(shè)交換數(shù)字信息的橋梁。真正用作真正用作I/O口線的只有口線的只有P1口的口的8位位I/O線和線和P3口的某些位線。口的某些位線。

2、在多數(shù)應(yīng)用系統(tǒng)中,在多數(shù)應(yīng)用系統(tǒng)中,MCS-51單片機(jī)都需要外擴(kuò)單片機(jī)都需要外擴(kuò)I/O接口電路。接口電路。6.1 I/O接口擴(kuò)展概述接口擴(kuò)展概述3I/O接口電路應(yīng)滿足以下要求:接口電路應(yīng)滿足以下要求:1. 實現(xiàn)和不同外設(shè)的速度匹配實現(xiàn)和不同外設(shè)的速度匹配大多數(shù)外設(shè)的速度很慢,無法和大多數(shù)外設(shè)的速度很慢,無法和s量級的單片機(jī)速度相比。量級的單片機(jī)速度相比。單片機(jī)只有在確認(rèn)外設(shè)已為數(shù)據(jù)傳送做好準(zhǔn)備的前提下才單片機(jī)只有在確認(rèn)外設(shè)已為數(shù)據(jù)傳送做好準(zhǔn)備的前提下才能進(jìn)行能進(jìn)行I/O操作。操作。想知道外設(shè)是否準(zhǔn)備好,需想知道外設(shè)是否準(zhǔn)備好,需I/O接口電路與外設(shè)之間傳送狀接口電路與外設(shè)之間傳送狀態(tài)信息。態(tài)信

3、息。6.1.1 I/O接口的功能接口的功能42. 輸出數(shù)據(jù)鎖存輸出數(shù)據(jù)鎖存由于由于單片機(jī)工作速度快單片機(jī)工作速度快,數(shù)據(jù)在數(shù)據(jù)總線上保留的時間十,數(shù)據(jù)在數(shù)據(jù)總線上保留的時間十分短暫,無法滿足分短暫,無法滿足慢速外設(shè)的數(shù)據(jù)接收慢速外設(shè)的數(shù)據(jù)接收。I/O電路應(yīng)具有電路應(yīng)具有數(shù)據(jù)鎖存器,以保證接收設(shè)備接收。數(shù)據(jù)鎖存器,以保證接收設(shè)備接收。3. 輸入數(shù)據(jù)三態(tài)緩沖輸入數(shù)據(jù)三態(tài)緩沖輸入設(shè)備向單片機(jī)輸入數(shù)據(jù)時,但數(shù)據(jù)總線上面可能輸入設(shè)備向單片機(jī)輸入數(shù)據(jù)時,但數(shù)據(jù)總線上面可能“掛掛”有多個數(shù)據(jù)源,為不發(fā)生沖突,只允許當(dāng)前時刻有多個數(shù)據(jù)源,為不發(fā)生沖突,只允許當(dāng)前時刻正在進(jìn)行數(shù)據(jù)傳送的數(shù)據(jù)源使用數(shù)據(jù)總線,其余的

4、數(shù)據(jù)正在進(jìn)行數(shù)據(jù)傳送的數(shù)據(jù)源使用數(shù)據(jù)總線,其余的數(shù)據(jù)源應(yīng)處于隔離狀態(tài)。源應(yīng)處于隔離狀態(tài)。6.1.1 I/O接口的功能接口的功能5首先清楚首先清楚I/O接口接口 (Interface) 和和I/O端口端口 (Port) 的概念。的概念。I/O端口端口:簡稱簡稱I/O口口,指具有端口地址的寄存器或緩沖器。,指具有端口地址的寄存器或緩沖器。I/O接口:接口:是指單片機(jī)與外設(shè)間的是指單片機(jī)與外設(shè)間的I/O接口芯片。接口芯片。一個一個I/O接口芯片可以有多個接口芯片可以有多個I/O端口,端口,(1)數(shù)據(jù)口數(shù)據(jù)口 (2)命令口命令口(3)狀態(tài)口狀態(tài)口I/O端口編址端口編址是給所有是給所有I/O接口中的寄存

5、器編址。接口中的寄存器編址。6.1.2 I/O端口的編址端口的編址I/O端口編址兩種方式:端口編址兩種方式:獨(dú)立編址獨(dú)立編址與與統(tǒng)一編址統(tǒng)一編址。61. 獨(dú)立編址方式獨(dú)立編址方式I/O寄存器地址空間和存儲器地址空間寄存器地址空間和存儲器地址空間分開編址分開編址,但需一,但需一套專門的讀寫套專門的讀寫I/O的指令和控制信號。的指令和控制信號。2. 統(tǒng)一編址方式統(tǒng)一編址方式I/O寄存器與數(shù)據(jù)存儲器單元同等對待寄存器與數(shù)據(jù)存儲器單元同等對待,統(tǒng)一編址。不需要,統(tǒng)一編址。不需要專門的專門的I/O指令,直接使用訪問數(shù)據(jù)存儲器的指令進(jìn)行指令,直接使用訪問數(shù)據(jù)存儲器的指令進(jìn)行I/O操作,簡單、方便且功能強(qiáng)。

6、操作,簡單、方便且功能強(qiáng)。6.1.2 I/O端口的編址端口的編址MCS-51使用統(tǒng)一編址的方式使用統(tǒng)一編址的方式每一接口芯片中的一個功能寄存器每一接口芯片中的一個功能寄存器(端口端口)的地址就相當(dāng)于一的地址就相當(dāng)于一個個RAM單元。單元。7如何實現(xiàn)如何實現(xiàn)I/O接口的擴(kuò)展。接口的擴(kuò)展。Intel公司的配套可編程公司的配套可編程I/O接口芯接口芯片的種類齊全,為擴(kuò)展片的種類齊全,為擴(kuò)展I/O接口提供了很大的方便。接口提供了很大的方便。6.1.3 I/O接口電路接口電路常用的外圍常用的外圍I/O接口芯片有:接口芯片有:(1) 8255A:可編程的通用并行接口電路可編程的通用并行接口電路(3個個8位

7、位I/O口口)。(2) 8155H:可編程的可編程的IO/RAM擴(kuò)展接口電路擴(kuò)展接口電路(2個個8位位I/O口口,1個個6位位I/O口口, 256個個RAM字節(jié)單元,字節(jié)單元,1個個14位的減法定位的減法定時器時器/計數(shù)器計數(shù)器)。此外,此外,74LS系列的系列的TTL電路電路也可以作為也可以作為MCS-51的擴(kuò)展的擴(kuò)展I/O口,如口,如74LS244、 74LS273等。等。利用利用串行口串行口來擴(kuò)展并行來擴(kuò)展并行I/O口???。8第第6章章 MCS-51擴(kuò)展擴(kuò)展I/O接口的設(shè)計接口的設(shè)計6.1 I/O接口擴(kuò)展概述接口擴(kuò)展概述6.2 MCS-51與可編程并行與可編程并行I/O芯片芯片8255A

8、的接口設(shè)計的接口設(shè)計6.3 MCS-51與可編程與可編程RAM/IO芯片芯片8155H的接口的接口6.4 用用74LS TTL電路擴(kuò)展并行電路擴(kuò)展并行I/O口口6.5 用用MCS-51的串行口擴(kuò)展并行口的串行口擴(kuò)展并行口96.2.1 8255A芯片介紹芯片介紹8255A是是Intel公司生產(chǎn)的可編程并行公司生產(chǎn)的可編程并行I/O接口芯片,接口芯片,具有具有3個個8位的并行位的并行I/O口,口,有有3種工作方式,種工作方式,可通過編程改變其功能,可通過編程改變其功能,因而使用靈活方便,通用性強(qiáng)。因而使用靈活方便,通用性強(qiáng)。1. 引腳說明引腳說明40只引腳,雙列直插式封裝,引腳功能如下:只引腳,雙

9、列直插式封裝,引腳功能如下:6.2 MCS-51與可編程并行與可編程并行I/O芯片芯片8255A的接口的接口106.2.1 8255A芯片介紹芯片介紹D7D0:三態(tài)雙向數(shù)據(jù)線,三態(tài)雙向數(shù)據(jù)線,與單片機(jī)數(shù)據(jù)總線連接。與單片機(jī)數(shù)據(jù)總線連接。PA7PA0: A口輸入口輸入/輸出線。輸出線。PB7PB0: B口輸入口輸入/輸出線。輸出線。PC7PC0: C口輸入口輸入/輸出線。輸出線。A1、A0:地址線,用來選擇地址線,用來選擇8255A內(nèi)部的內(nèi)部的4個端口。個端口。Vcc: +5V電源。電源。CS*:片選信號線,低電平有效片選信號線,低電平有效.RD*:讀出信號線,控制讀出信號線,控制8255A中數(shù)

10、據(jù)的讀出。中數(shù)據(jù)的讀出。WR*:寫入信號線,控制寫入信號線,控制向向8255A數(shù)據(jù)的寫入。數(shù)據(jù)的寫入。112. 內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)6.2.1 8255A芯片介紹芯片介紹12(1)端口端口A、B、C功能和結(jié)構(gòu)上有些差異功能和結(jié)構(gòu)上有些差異PA口:口:1個個8位數(shù)據(jù)輸出鎖存器和緩沖器;位數(shù)據(jù)輸出鎖存器和緩沖器; 1個個8位數(shù)據(jù)輸位數(shù)據(jù)輸入鎖存器。入鎖存器。PB口:口: 1個個8位數(shù)據(jù)輸出鎖存器和緩沖器;位數(shù)據(jù)輸出鎖存器和緩沖器; 1個個8位數(shù)據(jù)輸位數(shù)據(jù)輸入緩沖器。入緩沖器。PC口:口: 1個個8位數(shù)據(jù)輸出鎖存器;位數(shù)據(jù)輸出鎖存器; 1個個8位數(shù)據(jù)輸入緩沖器。位數(shù)據(jù)輸入緩沖器。PC口可在軟件的控制下,

11、口可在軟件的控制下,分為兩個分為兩個4位端口位端口,作為,作為PA口、口、PB口選通方式操作時的狀態(tài)控制信號??谶x通方式操作時的狀態(tài)控制信號。6.2.1 8255A芯片介紹芯片介紹13(2) A組和組和B組控制電路組控制電路A組:組:PA口和口和PC口的上半部口的上半部(PC7PC4);B組:組:PB口和口和PC口的下半部口的下半部(PC3PC0)。可根據(jù)可根據(jù)“命令字命令字”對對PC口按位口按位“置置1”或或“清清0”。(3) 數(shù)據(jù)總線緩沖器線數(shù)據(jù)總線緩沖器線三態(tài)雙向,作為三態(tài)雙向,作為8255A與單片機(jī)數(shù)據(jù)線之間接口,傳送數(shù)與單片機(jī)數(shù)據(jù)線之間接口,傳送數(shù)據(jù)、指令、控制命令及外部狀態(tài)信息。據(jù)

12、、指令、控制命令及外部狀態(tài)信息。(4) 讀讀/寫控制邏輯電路線寫控制邏輯電路線該電路接收該電路接收CPU發(fā)來的控制信號、發(fā)來的控制信號、RESET、地址信號、地址信號A1、A0等。對端口進(jìn)行讀寫。等。對端口進(jìn)行讀寫。6.2.1 8255A芯片介紹芯片介紹14A1A0RD*WR*CS*工作狀態(tài)工作狀態(tài)00010讀端口讀端口A:A口數(shù)據(jù)口數(shù)據(jù)數(shù)據(jù)總線數(shù)據(jù)總線讀端口讀端口B:B口數(shù)據(jù)口數(shù)據(jù)數(shù)據(jù)總線數(shù)據(jù)總線 讀端口讀端口C:C口數(shù)據(jù)口數(shù)據(jù)數(shù)據(jù)總線數(shù)據(jù)總線010101001000100寫端口寫端口A:總線數(shù)據(jù):總線數(shù)據(jù)A口口寫端口寫端口B:總線數(shù)據(jù):總線數(shù)據(jù)B口口寫端口寫端口C:總線數(shù)據(jù):總線數(shù)據(jù)C口口

13、寫控制字:總線數(shù)據(jù)寫控制字:總線數(shù)據(jù)控制字寄存器控制字寄存器0110010100111001數(shù)據(jù)總線為三態(tài)數(shù)據(jù)總線為三態(tài)11010非法狀態(tài)(不能讀控制字寄存器)非法狀態(tài)(不能讀控制字寄存器)110數(shù)據(jù)總線為三態(tài)數(shù)據(jù)總線為三態(tài)各端口的工作狀態(tài)與控制信號的關(guān)系各端口的工作狀態(tài)與控制信號的關(guān)系如表如表9-1所示。所示。6.2.1 8255A芯片介紹芯片介紹158255A有三種工作方式:有三種工作方式: (1) 方式方式0:基本輸入輸出;:基本輸入輸出;(2) 方式方式1:選通輸入輸出;選通輸入輸出;(3) 方式方式2:雙向傳送雙向傳送(僅僅A口有口有)。1. 工作方式選擇控制字工作方式選擇控制字三種

14、工作方式由方式控制字來決定。三種工作方式由方式控制字來決定??刂谱指袷饺缦隆?刂谱指袷饺缦?。6.2.2 工作方式選擇控制字及工作方式選擇控制字及C口置位口置位/復(fù)位控制字復(fù)位控制字8255A控制字有控制字有2個:個:工作方式選擇控制字工作方式選擇控制字C口置位口置位/復(fù)位控制字復(fù)位控制字166.2.2 工作方式選擇控制字及工作方式選擇控制字及C口置位口置位/復(fù)位控制字復(fù)位控制字D7 = 1 工作方式選擇控工作方式選擇控制字制字A組組B組組工作方式選擇控制字工作方式選擇控制字17C口上半部分口上半部分(PC7PC4)隨隨A口稱為口稱為A組組;C口下半部分口下半部分(PC3PC0)隨隨B口稱為口稱

15、為B組組。其中其中A口可工作于方式口可工作于方式0、1、和、和2,而,而B口只能工作在方式口只能工作在方式0和和1。例如:例如:寫入工作方式控制字寫入工作方式控制字95H可將可將8255A編程為編程為:控制字狀態(tài)為:控制字狀態(tài)為10010101B,A口方式口方式0輸入,輸入,B口方式口方式1輸出,輸出,C口的上半部分口的上半部分(PC7 PC4)輸出,輸出,C口的下半部分口的下半部分(PC3PC0)輸入。輸入。6.2.2 工作方式選擇控制字及工作方式選擇控制字及C口置位口置位/復(fù)位控制字復(fù)位控制字182. C口按位置位口按位置位/復(fù)位控制字復(fù)位控制字可對可對C口口8位中的任一位置位中的任一位置

16、“1”或清或清“0”。用于位控。用于位控。6.2.2 工作方式選擇控制字及工作方式選擇控制字及C口置位口置位/復(fù)位控制字復(fù)位控制字例如:例如:控制字控制字07H寫入控制寫入控制口,置口,置“1”PC3;08H寫入寫入控制口,控制口,PC4清清0。D7 = 0 C口置位口置位/復(fù)位復(fù)位控控制字制字191. 方式方式0基本的輸入基本的輸入/輸出方式。輸出方式。MCS-51可對可對8255A進(jìn)行數(shù)據(jù)的進(jìn)行數(shù)據(jù)的無條件傳送無條件傳送。例如例如: 從口線讀入一組開關(guān)狀態(tài),向端口輸出數(shù)字量,控制從口線讀入一組開關(guān)狀態(tài),向端口輸出數(shù)字量,控制一組指示燈的亮、滅。不需要聯(lián)絡(luò)信號一組指示燈的亮、滅。不需要聯(lián)絡(luò)信

17、號.6.2.3 8255A的三種工作方式的三種工作方式基本功能為:基本功能為:(1) 具有兩個具有兩個8位端口位端口(A、B)和兩個和兩個4位端口位端口(C的上半部分的上半部分和下半部分和下半部分)。(2) 任一個端口都可以設(shè)定為輸入或輸出,各端口的輸入、任一個端口都可以設(shè)定為輸入或輸出,各端口的輸入、輸出可構(gòu)成輸出可構(gòu)成16種組合。種組合。(3) 數(shù)據(jù)輸出鎖存,輸入不鎖存。數(shù)據(jù)輸出鎖存,輸入不鎖存。例例 假設(shè)假設(shè)8255A8255A的的PAPA接一組接一組8 8只狀態(tài)指示燈,只狀態(tài)指示燈,PB PB 接一組接一組8 8個開關(guān),現(xiàn)需個開關(guān),現(xiàn)需將開關(guān)閉合的狀態(tài)通過指示燈顯示出來,編寫相應(yīng)程序。

18、將開關(guān)閉合的狀態(tài)通過指示燈顯示出來,編寫相應(yīng)程序。 通過分析可知通過分析可知: 8255A: 8255A的的PAPA、PB PB 均為基本輸入輸出方式,即均為基本輸入輸出方式,即A A口口方式方式0 0輸出,輸出,B B口方式口方式0 0輸入,輸入,C C口未用(方式字可以取口未用(方式字可以取0 0,輸出)。,輸出)。 則則8255A8255A的方式字為的方式字為82H82H,初始化及輸入輸出如下。,初始化及輸入輸出如下。 DSP8255: MOV DPTRDSP8255: MOV DPTR,#0003H ;#0003H ;數(shù)據(jù)指針指向數(shù)據(jù)指針指向8255A8255A控制口控制口 MOV A

19、MOV A,#82H ;#82H ;控制字送累加器控制字送累加器A A MOVX DPTR MOVX DPTR,A ;A ;控制字送控制字送8255A8255A控制口控制口 MOV DPTRMOV DPTR,#0001H ;#0001H ;數(shù)據(jù)指針指向數(shù)據(jù)指針指向8255A8255A的的B B口口 MOVX AMOVX A,DPTR ;DPTR ;將將B B口開關(guān)狀態(tài)讀入累加器口開關(guān)狀態(tài)讀入累加器A A MOV DPTR MOV DPTR,#0000H ;#0000H ;數(shù)據(jù)指針指向數(shù)據(jù)指針指向8255A8255A的的A A口口 MOVX DPTRMOVX DPTR,A ;A ;開關(guān)狀態(tài)送開關(guān)

20、狀態(tài)送A A口指示燈顯示口指示燈顯示 SJMP DSP8255 ;SJMP DSP8255 ;返回返回212. 方式方式1選通輸入選通輸入/輸出工作方式。輸出工作方式。A口和口和B口通常用于口通常用于I/O數(shù)據(jù)傳送,數(shù)據(jù)傳送,C口用作口用作A口和口和B口的聯(lián)絡(luò)線,以中斷方式傳送數(shù)據(jù)。口的聯(lián)絡(luò)線,以中斷方式傳送數(shù)據(jù)。(1)方式)方式1的基本功能的基本功能 用作一個或兩個選通端口。用作一個或兩個選通端口。 每一個端口包含有:每一個端口包含有:8位數(shù)據(jù)端口;三條控制線位數(shù)據(jù)端口;三條控制線(是固是固定指定的,不能用程序改變定指定的,不能用程序改變);提供中斷邏輯。;提供中斷邏輯。 任何一個端口都可以

21、作為輸入或輸出。任何一個端口都可以作為輸入或輸出。 若只有一個端口工作于方式若只有一個端口工作于方式1,余下的,余下的13位,可以工作位,可以工作在方式在方式0(由控制字決定由控制字決定)。 若兩個端口都工作于方式若兩個端口都工作于方式1,端口,端口C還留下兩位,這兩還留下兩位,這兩位可以由程序指定作為輸入或輸出,也具有置位復(fù)位功能。位可以由程序指定作為輸入或輸出,也具有置位復(fù)位功能。6.2.3 8255A的三種工作方式的三種工作方式22(2) 方式1輸入B口工作于方式口工作于方式1時,如圖時,如圖X11XXXX1端口端口B輸入輸入端口端口B方式方式1B組方式控制字組方式控制字端口端口B方式方

22、式1PB70PC2PC1STBBIBFBINTRB8PC0INTEBRD圖圖 方式方式1輸入組態(tài)輸入組態(tài)D0D1D2D3D4D5D61控制字控制字標(biāo)志標(biāo)志方式選擇方式選擇00=方式方式001=方式方式11X=方式方式2端口端口A1=輸輸入入0=輸輸出出端口端口C(上半部)(上半部)1=輸入輸入0=輸出輸出方式選擇方式選擇0=方式方式01=方式方式1端口端口B1=輸入輸入0=輸出輸出端口端口C(下半部)(下半部)1=輸入輸入0=輸出輸出A組組B組組“方式方式”選擇控制字選擇控制字23XXXI/O1101端口端口A輸入輸入端口端口A方式方式1A組方式控制字組方式控制字PC671=輸入輸入0=輸出輸

23、出I/OPC672端口端口A方式方式1PA70PC4PC5STBAIBFAINTRA8PC3INTEARD圖圖 方式方式1輸入組態(tài)輸入組態(tài)D0D1D2D3D4D5D61控制字控制字標(biāo)志標(biāo)志方式選擇方式選擇00=方式方式001=方式方式11X=方式方式2端口端口A1=輸輸入入0=輸輸出出端口端口C(上半部)(上半部)1=輸入輸入0=輸出輸出方式選擇方式選擇0=方式方式01=方式方式1端口端口B1=輸入輸入0=輸出輸出端口端口C(下半部)(下半部)1=輸入輸入0=輸出輸出A組組B組組24其中各個控制信號的意義為: INTR(Interrupt Request):中斷請求信號,高電平有效。這是:中斷

24、請求信號,高電平有效。這是8255A的一個輸出信號,可用于作為向的一個輸出信號,可用于作為向CPU的中斷請求信號,以要求的中斷請求信號,以要求CPU服務(wù)。當(dāng)服務(wù)。當(dāng)STB、IBF為高電平,同時為高電平,同時INTE(中斷允許中斷允許)被置為被置為1時,時,INTR變?yōu)楦唠娖剑優(yōu)楦唠娖?,而由由RD 信號的下降沿清除。信號的下降沿清除。 STB(Strobe):選通輸入,低電平有效。這是由外設(shè)供給的輸入控制信:選通輸入,低電平有效。這是由外設(shè)供給的輸入控制信號,當(dāng)其有效時,把外設(shè)來的數(shù)據(jù)送入鎖存器。號,當(dāng)其有效時,把外設(shè)來的數(shù)據(jù)送入鎖存器。 IBF(Input Buffer Full):輸入緩

25、沖器滿,高電平有效。這是一個:輸入緩沖器滿,高電平有效。這是一個8255A輸出的狀態(tài)信號。當(dāng)其有效時,表示數(shù)據(jù)已輸入至輸入鎖存器,它由輸出的狀態(tài)信號。當(dāng)其有效時,表示數(shù)據(jù)已輸入至輸入鎖存器,它由STB信信號置位,而號置位,而STB信號的上升沿使其復(fù)位。信號的上升沿使其復(fù)位。 INTE A:A口中斷允許,由口中斷允許,由PC4的置位復(fù)位控制;的置位復(fù)位控制; INTE B:B口中斷允許,由口中斷允許,由PC2的置位復(fù)位控制。的置位復(fù)位控制。25A口的方式口的方式1輸入輸入工作方式見圖。工作方式見圖。6.2.3 8255A的三種工作方式的三種工作方式 26(3)方式1輸出 方式1輸出時,其邏輯組態(tài)

26、如圖 所示。圖圖 方式方式1輸出組態(tài)輸出組態(tài)X01XXXX1端口端口B輸出輸出端口端口B方式方式1B組方式組方式1輸出控制字輸出控制字端口端口B方式方式1輸出輸出PB70PC2PC1ACKBOBFBINTRB8PC0INTEBWR27圖圖 方式方式1輸出組態(tài)輸出組態(tài)XXXI/O0101端口端口A輸出輸出端口端口A方式方式1A組方式組方式1控制字控制字PC451=輸入輸入0=輸出輸出I/OPC452端口端口A方式方式1輸出輸出PA70PC7PC6OBFAACKAINTRA8PC3INTEAWR28主要的控制信號如下: OBF(Output Buffer Full):輸出緩沖器滿信號,低電平有效,

27、這:輸出緩沖器滿信號,低電平有效,這是是8255A輸出給外輸出給外 設(shè)的一個控制信號。當(dāng)其有效時,表示設(shè)的一個控制信號。當(dāng)其有效時,表示CPU已經(jīng)把數(shù)據(jù)已經(jīng)把數(shù)據(jù)輸出給指定的端口,可以把數(shù)據(jù)輸出。它由輸出命令的輸出給指定的端口,可以把數(shù)據(jù)輸出。它由輸出命令的WR上升沿置成低上升沿置成低電平,由電平,由ACK的有效信號使其恢復(fù)為高電平。的有效信號使其恢復(fù)為高電平。 ACK(Achowledge):低電平有效。這是一個外設(shè)的響應(yīng)信號,指示:低電平有效。這是一個外設(shè)的響應(yīng)信號,指示CPU輸出給輸出給8255A的數(shù)據(jù)已經(jīng)由外設(shè)取走,可以發(fā)送下一組數(shù)據(jù)。的數(shù)據(jù)已經(jīng)由外設(shè)取走,可以發(fā)送下一組數(shù)據(jù)。 出數(shù)據(jù)

28、。當(dāng)出數(shù)據(jù)。當(dāng)ACK為為“1”(高電平高電平),OBF為為“1”(高電平高電平)和和INTE為為“1”(高高電平電平)時,使其置位時,使其置位(高電平高電平),而,而WR信號的上升沿使其復(fù)位信號的上升沿使其復(fù)位(低電平低電平)。 INTR:中斷請求信號,高電平有效。當(dāng)輸出裝置已經(jīng)接收了:中斷請求信號,高電平有效。當(dāng)輸出裝置已經(jīng)接收了CPU輸出的數(shù)據(jù)后,輸出的數(shù)據(jù)后, 它用來作為向它用來作為向CPU提出新的中斷請求,要求提出新的中斷請求,要求CPU繼續(xù)輸繼續(xù)輸INTEA:由:由PC6的置位復(fù)位控制。的置位復(fù)位控制。INTEB:由:由PC2的置位復(fù)位控制。的置位復(fù)位控制。29B口的方式口的方式1輸

29、出如圖所示:輸出如圖所示:6.2.3 8255A的三種工作方式的三種工作方式 MOVX Ri, A 303方式2 這種工作方式為雙向傳送方式。 (1)主要功能 方式2只用于端口A,端口B無此種工作方式。 A口的8位為雙向總線端口, C口中的5位為控制端口。 輸入和輸出是鎖存的。 5位控制端口是用作端口A的控制和狀態(tài)信息。 方式2的邏輯組態(tài)如圖所示 6.2.3 8255A的三種工作方式的三種工作方式311/01/01/0XXX11B組方式組方式0=方式方式01=方式方式1端口端口A方式方式2PC201=輸入輸入0=輸出輸出端口端口B1=輸入輸入0=輸出輸出I/OPC203PA70PC7PC6OB

30、FAACKAINTRA8PC3INTE1WRRDPC4PC5STBAIBFAINTE2+32各個信號的意義為: INTR(中斷請求中斷請求):高電平有效。在輸入和輸出方式時,都:高電平有效。在輸入和輸出方式時,都可用來作為向可用來作為向CPU的中斷請求信號。的中斷請求信號。 OBF(輸出緩沖器滿輸出緩沖器滿):低電平有效。它是對外設(shè)的一種選:低電平有效。它是對外設(shè)的一種選通信號,表示通信號,表示CPU已把數(shù)據(jù)輸出至端口已把數(shù)據(jù)輸出至端口A。用于通知外設(shè)可以。用于通知外設(shè)可以取數(shù)。取數(shù)。 ACK(響應(yīng)信號響應(yīng)信號):低電平有效。它啟動端口:低電平有效。它啟動端口A的三態(tài)輸出的三態(tài)輸出緩沖器,送出

31、數(shù)據(jù);否則,輸出緩沖器處在高阻狀態(tài)。緩沖器,送出數(shù)據(jù);否則,輸出緩沖器處在高阻狀態(tài)。 33 INTE1 (與輸出緩沖器相關(guān)的中斷屏蔽觸發(fā)器與輸出緩沖器相關(guān)的中斷屏蔽觸發(fā)器):由:由PC6的置位復(fù)位控制。的置位復(fù)位控制。 STB(選通輸入選通輸入):低電平有效。這是外設(shè)供給:低電平有效。這是外設(shè)供給8255A的的選通信號,它把輸人數(shù)據(jù)選通至選通信號,它把輸人數(shù)據(jù)選通至8255A的輸入鎖存器。的輸入鎖存器。 IBF(輸入緩沖器滿輸入緩沖器滿)。:高電平有效。它是一個狀態(tài)信息,。:高電平有效。它是一個狀態(tài)信息,指示數(shù)據(jù)已進(jìn)入輸入鎖存器。指示數(shù)據(jù)已進(jìn)入輸入鎖存器。 INTE2(與輸人緩沖器相關(guān)的中斷屏

32、蔽觸發(fā)器與輸人緩沖器相關(guān)的中斷屏蔽觸發(fā)器):由:由PC4的的置位復(fù)位控制。置位復(fù)位控制。 各個信號的意義為:34(2)方式控制字 當(dāng)端口A工作在方式2時,端口B可以工作在方式0 或方式1,可以作為輸入,也可以作為輸出。此時端口C 的各位功能如圖所示。D0D1D2D3D4D5D6D7端口端口C 各位各位A組狀態(tài)組狀態(tài)INTRAINTE2IBFAINTE1OBFAB組狀態(tài)組狀態(tài)I/OI/OI/O方式方式0輸入輸出輸入輸出INTRBIBFBINTEB方式方式1輸入輸入INTRBOBFBINTEB方式方式1輸出輸出圖圖 方式方式2時端口時端口C 的幾種組態(tài)的幾種組態(tài)35 若要求若要求8255A工作于如

33、下的工作方式:端工作于如下的工作方式:端A工作于方式工作于方式2,端口,端口B工作于方式工作于方式1輸入。輸入。 方式控制字:方式控制字:1100 0110B=C6H 在在8255A方式控制字已經(jīng)輸出后,再讀端口方式控制字已經(jīng)輸出后,再讀端口C ,則可得,則可得到如下的到如下的方式方式2狀態(tài)字狀態(tài)字:若要允許方式若要允許方式2 中斷,則可用端口中斷,則可用端口C 的置位復(fù)位控制字:的置位復(fù)位控制字:允許輸出中斷,置允許輸出中斷,置PC6,則控制字為,則控制字為0000 110 l B。允許輸入中斷,置允許輸入中斷,置PC4,控制字為,控制字為0000 100 l B。INTRBIBFBINTE

34、BINTRAINTE2IBFAINTE1OBFAA組組B組組361. 硬件接口電路硬件接口電路如如圖圖是是8031擴(kuò)展擴(kuò)展1片片8255A的電路圖。的電路圖。74LS373是地址鎖存器,是地址鎖存器,P0.1、P0.0經(jīng)經(jīng)74LS373與與8255A的地址線的地址線A1、A0連接;連接; P0.7經(jīng)經(jīng)74LS373與與片選端片選端相連,相連,其他地址線懸空。其他地址線懸空。6.2.4 MCS-51單片機(jī)和單片機(jī)和8255A的接口的接口37 圖中圖中8255A的的PA口地址為口地址為7CH,PB口地址為口地址為7DH,PC口口地址為地址為7EH,控制字寄存器地址為,控制字寄存器地址為7FH。這里

35、。這里8031單片機(jī)對單片機(jī)對8255A采用了線性選址法。采用了線性選址法。無用位全設(shè)為無用位全設(shè)為1:P0.7P0. 6P0. 5P0. 4P0. 3P0. 2P0. 1P0. 0口地址CSA1A0011111007CH PA011111017DH PB011111107EH PC011111117FH 控制口2. 端口地址確定端口地址確定38無用位全設(shè)為無用位全設(shè)為0 0:P0.7P0. 6P0. 5P0. 4P0. 3P0. 2P0. 1P0. 0口地址CSA1A00000000000H PA0000000101H PB0000001002H PC0000001103H 控制口39若地址

36、口用若地址口用16位表示位表示圖圖中中8255A各端口寄存器的地址為:各端口寄存器的地址為:無用位全設(shè)為無用位全設(shè)為1:A口:口:FF7CHB口:口:FF7DHC口:口:FF7EH控制寄存器:控制寄存器:FF7FH無用位全設(shè)為無用位全設(shè)為0 0:A口:口:0000HB口:口:0001HC口:口:0002H控制寄存器:控制寄存器:0003H或或403. 軟件編程軟件編程例例 要求要求8255A工作在方式工作在方式0,且,且A口作為輸入,口作為輸入,B口、口、C口口作為輸出,程序如下:作為輸出,程序如下:MOV A, #90H ;A口方式口方式0輸入,輸入,B口、口、C口輸出的方式口輸出的方式控制

37、字送控制字送A A MOV DPTR, #0FF7FH ;控制寄存器地址;控制寄存器地址DPTRMOVX DPTR, A;方式控制字;方式控制字控制寄存器控制寄存器MOV DPTR, #0FF7CH;A口地址口地址DPTRMOVX A, DPTR;從;從A口讀數(shù)據(jù)口讀數(shù)據(jù)MOV DPTR, #0FF7DH;B口地址口地址DPTRMOV A, #DATA1;要輸出的數(shù)據(jù);要輸出的數(shù)據(jù)DATA1AMOVX DPTR, A;將;將DATA1送送B口輸出口輸出MOV DPTR, #0FF7EH;C口地址口地址DPTRMOV A, #DATA2 ;DATA2AMOVX DPTR, A ;將數(shù)據(jù);將數(shù)據(jù)D

38、ATA2送送C口輸出口輸出6.2.4 MCS-51單片機(jī)和單片機(jī)和8255A的接口的接口41例例 對端口對端口C的置位的置位/復(fù)位。復(fù)位。把把PC5置位,控制字為置位,控制字為0BH MOV R1, #7FH ;控制口地址;控制口地址R1 MOV A, #0BH;控制字;控制字AMOVX R1, A;控制字;控制字控制口,控制口,PC5=1把把PC5復(fù)位,控制字為復(fù)位,控制字為0AHMOV R1, #7FH;控制口地址;控制口地址R1 MOV A, #0AH;控制字;控制字AMOVX R1, A;控制字;控制字控制口,控制口,PC5=06.2.4 MCS-51單片機(jī)和單片機(jī)和8255A的接口的

39、接口42第第6章章 MCS-51擴(kuò)展擴(kuò)展I/O接口的設(shè)計接口的設(shè)計6.1 I/O接口擴(kuò)展概述接口擴(kuò)展概述6.2 MCS-51與可編程并行與可編程并行I/O芯片芯片8255A的接口設(shè)計的接口設(shè)計6.3 MCS-51與可編程與可編程RAM/IO芯片芯片8155H的接口的接口6.4 用用74LS TTL電路擴(kuò)展并行電路擴(kuò)展并行I/O口口6.5 用用MCS-51的串行口擴(kuò)展并行口的串行口擴(kuò)展并行口436.3 MCS-51單片機(jī)與單片機(jī)與8155H的接口的接口6.3 .1 8155H芯片介紹芯片介紹1. 8155H的邏輯結(jié)構(gòu)的邏輯結(jié)構(gòu) 如圖所示。如圖所示。442. 8155H的引腳功能的引腳功能(1)A

40、D7AD0(8條條) 地址地址/數(shù)據(jù)線數(shù)據(jù)線(2) I/O總線總線(22條條) PA、PB、PC口口 數(shù)據(jù)傳送方向由數(shù)據(jù)傳送方向由8155H命令字命令字決定決定(3) 控制總線控制總線(8條條) RESET:復(fù)位輸入線復(fù)位輸入線 CE*: 片選輸入線片選輸入線 IO/M*: I/O端口端口/RAM選通線選通線 RD*和和WR*:讀讀/寫命令輸入線寫命令輸入線 ALE:地址鎖存允許地址鎖存允許 TIMERIN和和IMEROUT*:計數(shù)器輸入計數(shù)器輸入/輸出線輸出線(4) 電源線電源線(2條條) Vcc:+5V電源電源 Vss:地地6.3.1 8155H芯片介紹芯片介紹453. CPU對對8155

41、H I/O端口的控制端口的控制(1) 8155H各端口地址分配各端口地址分配 8155H內(nèi)部有內(nèi)部有7個寄存器,個寄存器,u命令寄存器命令寄存器u狀態(tài)寄存器狀態(tài)寄存器uA口寄存器口寄存器uB口寄存器口寄存器uC口寄存器口寄存器u計數(shù)器低計數(shù)器低8位寄存器位寄存器u計數(shù)器高計數(shù)器高8位寄存器位寄存器6.3 .1 8155H芯片介紹芯片介紹8155HA、B、C3個端口的數(shù)據(jù)傳送是由個端口的數(shù)據(jù)傳送是由命令字和狀態(tài)字命令字和狀態(tài)字控制的??刂频?。需要需要3位地址位地址A2A0上上的不同組合加以區(qū)分的不同組合加以區(qū)分46CE*IO/M*A7A6A5A4A3A2A1A0所選的端口所選的端口01000命令

42、命令/狀態(tài)寄存器狀態(tài)寄存器01001A口口01010B口口01011C口口01100計數(shù)器低計數(shù)器低8位位01101計數(shù)器高計數(shù)器高6位位00RAM單元單元6.3 .1 8155H芯片介紹芯片介紹命令寄存器和狀態(tài)寄存器地址相同,如何加以區(qū)分?命令寄存器和狀態(tài)寄存器地址相同,如何加以區(qū)分?命令寄存器只能寫入,不能讀出;命令寄存器只能寫入,不能讀出;狀態(tài)寄存器只能讀出,不能寫入狀態(tài)寄存器只能讀出,不能寫入 ;47(2) 8155H的命令字的命令字48(3) 8155H的狀態(tài)字的狀態(tài)字6.3 .1 8155H芯片介紹芯片介紹491. 存儲器方式存儲器方式對片內(nèi)對片內(nèi)RAM單元進(jìn)行讀寫,若單元進(jìn)行讀寫

43、,若IO/M*=0和和CE*=0,則通過,則通過AD7AD0上的地址對上的地址對RAM存儲器任一單元讀寫。存儲器任一單元讀寫。2. I/O方式方式8155H的的I/O方式分為方式分為基本基本I/O和和選通選通I/O兩種工作方式。兩種工作方式??蓪ζ瑑?nèi)任一寄存器讀寫,端口地址由可對片內(nèi)任一寄存器讀寫,端口地址由A2、A1、A0三位三位決定。決定。6.3.2 8155H的工作方式的工作方式8155H有有2種工作方式:種工作方式:(1) 基本基本I/O方式方式A、B、C三口用作輸入三口用作輸入/輸出,由輸出,由命令字命令字決定。決定。如:命令字為如:命令字為02H,則,則8155H的的A口、口、C口

44、設(shè)為輸入方式,口設(shè)為輸入方式, B口設(shè)為輸口設(shè)為輸出方式。出方式。50C口口通用通用I/O方式方式選通選通I/O方式方式ALT1ALT2ALT3ALT4PC0輸入輸入輸出輸出AINTR(A口中斷口中斷)AINTR(A口中斷口中斷)PC1輸入輸入輸出輸出ABF(A口緩沖器滿口緩沖器滿) ABF(A口緩沖器滿口緩沖器滿)PC2輸入輸入輸出輸出ASTB* (A口選通口選通)ASTB* (A口選通口選通)PC3輸入輸入輸出輸出輸出輸出BINTR(B口中斷口中斷)PC4輸入輸入輸出輸出輸出輸出BBF(B口緩沖器滿口緩沖器滿)PC5輸入輸入輸出輸出輸出輸出BSTB* (B口選通口選通)表表 C口在兩種口在

45、兩種I/O工作方式下各位定義工作方式下各位定義 6.3.2 8155H的工作方式的工作方式(2) 選通選通I/O方式方式由由命令字命令字D3、D2位設(shè)定位設(shè)定A、B口都可獨(dú)立工作于此方式,口都可獨(dú)立工作于此方式,此時此時A、B口用作數(shù)據(jù)口,口用作數(shù)據(jù)口, C口用作口用作A、B口的聯(lián)絡(luò)控制口的聯(lián)絡(luò)控制。51(1) 基本基本I/O方式方式(2) 選通選通I/O方式方式 (見右圖見右圖) a. 選通選通I/O輸入輸入b. 選通選通I/O輸出輸出523. 內(nèi)部定時器內(nèi)部定時器/計數(shù)器及使用計數(shù)器及使用14位的位的減減1定時器定時器/計數(shù)器計數(shù)器,計數(shù)長度和計數(shù)方式由寫入計,計數(shù)長度和計數(shù)方式由寫入計數(shù)

46、寄存器的控制字來確定。數(shù)寄存器的控制字來確定。計數(shù)器的兩個寄存器的格式如圖。計數(shù)器的兩個寄存器的格式如圖。T13T0:計數(shù)器長度計數(shù)器長度M2、M1:設(shè)置定時器的設(shè)置定時器的4種輸出方式種輸出方式6.3.2 8155H的工作方式的工作方式534種工作方式及相應(yīng)輸出波形種工作方式及相應(yīng)輸出波形如圖。如圖。6.3.2 8155H的工作方式的工作方式n如果選擇定時器的輸出為方波形式,則從啟動定時器開始,如果選擇定時器的輸出為方波形式,則從啟動定時器開始, 前一半計數(shù)輸出為高電平,后一半計數(shù)輸出為低電平前一半計數(shù)輸出為高電平,后一半計數(shù)輸出為低電平。n若寫入初值為奇數(shù),則輸出方波不對稱。若寫入初值為奇

47、數(shù),則輸出方波不對稱。n計數(shù)初值計數(shù)初值從從2開始開始,即,即8155H的計數(shù)范圍的計數(shù)范圍3FFFH0002H.546.3.3 MCS-51與與8155H接口及軟件編程接口及軟件編程1. MCS-51與與8155H的的硬件接口電路硬件接口電路地址編碼地址編碼(無用位設(shè)為無用位設(shè)為0):RAM單元地址單元地址 (保證保證P2.7=0,P2.0=0):0000H00FFHI/O地址地址(保證保證P2.7=0,P2.0=1) 命令命令/狀態(tài)口狀態(tài)口 0100H PA口口 0101HI/O地址:地址:PB口口 0102H PC口口 0103H 定時器低定時器低8位位 0104H 定時器高定時器高8位

48、位 0105H552. 8155H的編程舉例的編程舉例初始化程序設(shè)計初始化程序設(shè)計例例 若若A口定義為基本輸入方式,口定義為基本輸入方式,B口定義為基本輸出方口定義為基本輸出方式,對輸入脈沖進(jìn)行式,對輸入脈沖進(jìn)行24分頻,初始化程序如下:分頻,初始化程序如下:START: MOV DPTR, 0104H ;指針指向定時器低;指針指向定時器低8位位 MOV A, 18H ;計數(shù)初值;計數(shù)初值24送送A, MOVX DPTR, A ;計數(shù)初值低計數(shù)初值低8位裝入定時器位裝入定時器 INC DPTR ;指針指向定時器高;指針指向定時器高8位位 MOV A, 40H ;設(shè)定時器連續(xù)方波輸出;設(shè)定時器連

49、續(xù)方波輸出 MOVX DPTR,A ;計數(shù)初值高計數(shù)初值高6位裝入定時器位裝入定時器 MOV DPTR, 0100H ;指向命令;指向命令/狀態(tài)口狀態(tài)口 MOV A, #0C2H ;設(shè)定命令控制字;設(shè)定命令控制字 MOVX DPTR, A ;A口輸入,口輸入,B口輸出口輸出,開定時器開定時器6.3.3 MCS-51與與8155H接口及軟件編程接口及軟件編程12周期周期12周期周期566.3.3 MCS-51與與8155H接口及軟件編程接口及軟件編程例例 讀讀8155的的F1H單元。單元。MOV DPTR, 00F1H ;指針指向;指針指向8155的的F1H單元單元MOVX A, DPTR ;F

50、1H單元內(nèi)容送單元內(nèi)容送A例例 將立即數(shù)將立即數(shù)41H寫入寫入8155 RAM的的20H單元。單元。MOV A, #41HMOV DPTR, 0020H ;指針指向;指針指向8155的的20H單元單元MOVX DPTR, A ;立即數(shù);立即數(shù)41H送送8155的的20H單元單元57第第6章章 MCS-51擴(kuò)展擴(kuò)展I/O接口的設(shè)計接口的設(shè)計6.1 I/O接口擴(kuò)展概述接口擴(kuò)展概述6.2 MCS-51與可編程并行與可編程并行I/O芯片芯片8255A的接口設(shè)計的接口設(shè)計6.3 MCS-51與可編程與可編程RAM/IO芯片芯片8155H的接口的接口6.4 用用74LS TTL電路擴(kuò)展并行電路擴(kuò)展并行I/

51、O口口6.5 用用MCS-51的串行口擴(kuò)展并行口的串行口擴(kuò)展并行口58利用利用74LS273和和74LS244,將,將P0口擴(kuò)展成簡單的輸入、輸出口口擴(kuò)展成簡單的輸入、輸出口的電路。的電路。74LS2738D鎖存器,鎖存器,輸出端接輸出端接8個個LED發(fā)光二極管,以發(fā)光二極管,以顯示顯示8個按鈕開關(guān)狀態(tài),某位低電平時二極管發(fā)光。個按鈕開關(guān)狀態(tài),某位低電平時二極管發(fā)光。74LS244是緩沖驅(qū)動器,擴(kuò)展輸入口,接是緩沖驅(qū)動器,擴(kuò)展輸入口,接8個按鈕開關(guān)。個按鈕開關(guān)。74LS273和和74LS244的工作受的工作受8031的的P2.0、RD*、WR*三條控三條控制線控制。制線控制。電路的工作原理如下

52、電路的工作原理如下:當(dāng)當(dāng)P2.0=0,WR*=0(RD*=)時選中寫時選中寫74LS273, 8031通過通過P0口輸出數(shù)據(jù)到口輸出數(shù)據(jù)到74LS273,;,;當(dāng)當(dāng)P2.0=0,RD*=0(WR*=1)時選中讀時選中讀74LS244, 某開關(guān)按下時則某開關(guān)按下時則對應(yīng)位輸入為對應(yīng)位輸入為“0”。6.4 用用74LS TTL電路擴(kuò)展并行電路擴(kuò)展并行I/O口口只要保證只要保證P2.0=0, 其他位為其他位為0或為或為1均可。所以均可。所以, 地址為地址為FEFFH(無效位全為(無效位全為1)或)或0000H (無效位全為(無效位全為0 0) 。5960輸出程序段:輸出程序段:MOV A, #data ;數(shù)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論