第9章 AT89C51擴(kuò)展IO接口的設(shè)計(jì)_第1頁(yè)
第9章 AT89C51擴(kuò)展IO接口的設(shè)計(jì)_第2頁(yè)
第9章 AT89C51擴(kuò)展IO接口的設(shè)計(jì)_第3頁(yè)
第9章 AT89C51擴(kuò)展IO接口的設(shè)計(jì)_第4頁(yè)
第9章 AT89C51擴(kuò)展IO接口的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩53頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第9 9章章 AT89C51AT89C51擴(kuò)展擴(kuò)展I/OI/O接口的設(shè)計(jì)接口的設(shè)計(jì)9.1 I/O9.1 I/O接口擴(kuò)展概述接口擴(kuò)展概述由第由第8 8章可知,擴(kuò)展章可知,擴(kuò)展I/OI/O接口與擴(kuò)展存儲(chǔ)器一樣,都屬于系統(tǒng)接口與擴(kuò)展存儲(chǔ)器一樣,都屬于系統(tǒng)擴(kuò)展的內(nèi)容。那么擴(kuò)展的內(nèi)容。那么AT89C51AT89C51單片機(jī)擴(kuò)展單片機(jī)擴(kuò)展I/OI/O接口接口應(yīng)該具有哪些應(yīng)該具有哪些功能呢?功能呢? 9.1.1 I/O9.1.1 I/O接口的功能接口的功能I/OI/O接口電路應(yīng)滿足以下要求:接口電路應(yīng)滿足以下要求:1.1.實(shí)現(xiàn)和不同外設(shè)的速度匹配實(shí)現(xiàn)和不同外設(shè)的速度匹配大多數(shù)的外設(shè)的速度很慢,無(wú)法和大多數(shù)

2、的外設(shè)的速度很慢,無(wú)法和s s量級(jí)的單片機(jī)速量級(jí)的單片機(jī)速度相比度相比。單片機(jī)只有在單片機(jī)只有在確認(rèn)確認(rèn)外設(shè)已為數(shù)據(jù)傳送做好準(zhǔn)備的前提外設(shè)已為數(shù)據(jù)傳送做好準(zhǔn)備的前提下才能進(jìn)行下才能進(jìn)行I/OI/O操作。操作。想知道外設(shè)是否準(zhǔn)備好想知道外設(shè)是否準(zhǔn)備好,需需I/OI/O接口電路與外設(shè)之間接口電路與外設(shè)之間傳送傳送狀態(tài)信息狀態(tài)信息。 2. 2. 輸出數(shù)據(jù)鎖存輸出數(shù)據(jù)鎖存由于由于單片機(jī)工作速度快,單片機(jī)工作速度快,數(shù)據(jù)在數(shù)據(jù)總線上保留的時(shí)間十分短數(shù)據(jù)在數(shù)據(jù)總線上保留的時(shí)間十分短 暫,暫,無(wú)法滿足慢速外設(shè)的數(shù)據(jù)接收無(wú)法滿足慢速外設(shè)的數(shù)據(jù)接收。I/OI/O電路應(yīng)具有數(shù)據(jù)輸電路應(yīng)具有數(shù)據(jù)輸 出鎖存器,以保證

3、接收設(shè)備接出鎖存器,以保證接收設(shè)備接 收。收。3. 3. 輸入數(shù)據(jù)三態(tài)緩沖輸入數(shù)據(jù)三態(tài)緩沖輸入設(shè)備向單片機(jī)輸入數(shù)據(jù)時(shí),但輸入設(shè)備向單片機(jī)輸入數(shù)據(jù)時(shí),但數(shù)據(jù)總線上面可能數(shù)據(jù)總線上面可能“掛掛”有有多多 個(gè)數(shù)據(jù)源個(gè)數(shù)據(jù)源,為不發(fā)生沖突,為不發(fā)生沖突,只允許當(dāng)前正在進(jìn)行數(shù)據(jù)傳送的只允許當(dāng)前正在進(jìn)行數(shù)據(jù)傳送的 數(shù)據(jù)源使用數(shù)據(jù)總線,其余的應(yīng)處于隔離狀態(tài)。數(shù)據(jù)源使用數(shù)據(jù)總線,其余的應(yīng)處于隔離狀態(tài)。 9.1.2 I/O9.1.2 I/O端口的編址端口的編址首先搞清楚首先搞清楚I/OI/O接口接口(InterfaceInterface)和)和I/OI/O端口端口(PortPort)的概念。)的概念。I/OI/

4、O端口:端口:簡(jiǎn)稱簡(jiǎn)稱I/OI/O口口,指具有端口地址的寄存器或緩沖器。,指具有端口地址的寄存器或緩沖器。I/OI/O接口:接口:是指單片機(jī)與外設(shè)間的是指單片機(jī)與外設(shè)間的I/OI/O接口芯片。接口芯片。一個(gè)一個(gè)I/OI/O接口芯片可以有多個(gè)接口芯片可以有多個(gè)I/OI/O端口,分為:端口,分為: (1 1)數(shù)據(jù)口數(shù)據(jù)口(2 2)命令口命令口(3 3)狀態(tài)口狀態(tài)口I/OI/O端口編址端口編址是給所有是給所有I/OI/O接口中的寄存器接口中的寄存器編址編址。I/OI/O端口編址兩種方式端口編址兩種方式:獨(dú)立編址獨(dú)立編址與與統(tǒng)一編址統(tǒng)一編址。1 1獨(dú)立編址獨(dú)立編址I/OI/O寄存器地址空間和存儲(chǔ)器地址

5、空間寄存器地址空間和存儲(chǔ)器地址空間分開編址分開編址,但,但 需專門讀寫需專門讀寫I/OI/O的指令和控制信號(hào)。的指令和控制信號(hào)。2 2統(tǒng)一編址統(tǒng)一編址I/OI/O寄存器與數(shù)據(jù)存儲(chǔ)器單元同等對(duì)待寄存器與數(shù)據(jù)存儲(chǔ)器單元同等對(duì)待,統(tǒng)一編址。,統(tǒng)一編址。 不需要專門的不需要專門的I/OI/O指令,直接使用訪問(wèn)數(shù)據(jù)存儲(chǔ)器指令,直接使用訪問(wèn)數(shù)據(jù)存儲(chǔ)器 的指令進(jìn)行的指令進(jìn)行I/OI/O操作,簡(jiǎn)單、方便且功能強(qiáng)。操作,簡(jiǎn)單、方便且功能強(qiáng)。AT89C51AT89C51使用使用統(tǒng)一編址統(tǒng)一編址的方式的方式 每一接口芯片中的每一接口芯片中的一個(gè)功能寄存器(端口)的地址一個(gè)功能寄存器(端口)的地址, ,就相當(dāng)于就相當(dāng)

6、于一個(gè)一個(gè)RAMRAM單元單元。9.1.3 I/O9.1.3 I/O數(shù)據(jù)的幾種傳送方式數(shù)據(jù)的幾種傳送方式為實(shí)現(xiàn)和不同的外設(shè)的為實(shí)現(xiàn)和不同的外設(shè)的速度匹配速度匹配,I/OI/O接口必須根據(jù)不同外設(shè)接口必須根據(jù)不同外設(shè)選擇恰當(dāng)?shù)倪x擇恰當(dāng)?shù)腎/OI/O數(shù)據(jù)傳送方式。數(shù)據(jù)傳送方式。I/OI/O數(shù)據(jù)傳送的幾種傳送方式是:數(shù)據(jù)傳送的幾種傳送方式是: (1 1)同步傳送()同步傳送(2 2)查詢傳送()查詢傳送(3 3)中斷傳送。)中斷傳送。1.1.同步傳送方式同步傳送方式當(dāng)外設(shè)速度和單片機(jī)的速度相比擬時(shí),常采用同步傳送方當(dāng)外設(shè)速度和單片機(jī)的速度相比擬時(shí),常采用同步傳送方 式,式,最典型的同步傳送最典型的同

7、步傳送就是單片機(jī)和外部數(shù)據(jù)存儲(chǔ)器之就是單片機(jī)和外部數(shù)據(jù)存儲(chǔ)器之 間的數(shù)據(jù)傳送。間的數(shù)據(jù)傳送。2.2.查詢傳送方式查詢傳送方式查詢外設(shè)查詢外設(shè)“準(zhǔn)備好準(zhǔn)備好”后,再進(jìn)行數(shù)據(jù)傳送。后,再進(jìn)行數(shù)據(jù)傳送。 優(yōu)點(diǎn):優(yōu)點(diǎn):通用性好,硬件連線和查詢程序十分簡(jiǎn)單,通用性好,硬件連線和查詢程序十分簡(jiǎn)單, 缺點(diǎn):缺點(diǎn):效率不高。效率不高。為提高效率,通常采用中斷傳送方式。為提高效率,通常采用中斷傳送方式。3.3.中斷傳送方式中斷傳送方式外設(shè)準(zhǔn)備好后,發(fā)中斷請(qǐng)求,單片機(jī)進(jìn)入與外設(shè)數(shù)據(jù)傳送的外設(shè)準(zhǔn)備好后,發(fā)中斷請(qǐng)求,單片機(jī)進(jìn)入與外設(shè)數(shù)據(jù)傳送的 中斷服務(wù)程序,進(jìn)行數(shù)據(jù)的傳送。中斷服務(wù)程序,進(jìn)行數(shù)據(jù)的傳送。中斷服務(wù)完成后

8、又返回主程序繼續(xù)執(zhí)行。中斷服務(wù)完成后又返回主程序繼續(xù)執(zhí)行。工作效率高。工作效率高。如何實(shí)現(xiàn)如何實(shí)現(xiàn)I/OI/O接口的擴(kuò)展。接口的擴(kuò)展。IntelIntel公司公司的的配套可編程配套可編程I/OI/O接口接口 芯片芯片的種類齊全,為擴(kuò)展的種類齊全,為擴(kuò)展I/OI/O接口提供了很大的方便。接口提供了很大的方便。9.1.4 I/O9.1.4 I/O接口電路接口電路常用的外圍常用的外圍I/OI/O接口芯片有:接口芯片有: (1 1)82C5582C55:可編程的通用并行接口電路(:可編程的通用并行接口電路(3 3個(gè)個(gè)8 8位位I/OI/O口)口)(2 2)81C5581C55:可編程的:可編程的IO/

9、RAMIO/RAM擴(kuò)展接口電路(擴(kuò)展接口電路(2 2個(gè)個(gè)8 8位位I/OI/O口口,1,1個(gè)個(gè)6 6位位I/OI/O口口, , 256256個(gè)個(gè)RAMRAM字節(jié)單元,字節(jié)單元,1 1個(gè)個(gè)1414位的減法定時(shí)位的減法定時(shí)器器/ /計(jì)數(shù)器計(jì)數(shù)器)。)??膳c可與89C5189C51單片機(jī)單片機(jī)直接連接直接連接,接口邏輯十分簡(jiǎn)單。,接口邏輯十分簡(jiǎn)單。9.2 AT89C519.2 AT89C51與可編程并行與可編程并行I/OI/O芯片芯片82C5582C55的接口設(shè)計(jì)的接口設(shè)計(jì)9.2.1 82C559.2.1 82C55芯片介紹芯片介紹82C5582C55是是IntelIntel公司生產(chǎn)的公司生產(chǎn)的可編

10、程可編程并行并行I/OI/O接口芯片,具有接口芯片,具有3 3個(gè)個(gè) 8 8位位的的并行并行I/OI/O口口,3 3種工作方式種工作方式,可通過(guò)編程改變其功,可通過(guò)編程改變其功 能,因而能,因而使用靈活方便,通用性強(qiáng)使用靈活方便,通用性強(qiáng)。1.1.引腳說(shuō)明引腳說(shuō)明 4040只引腳,雙列直插式封裝,見(jiàn)只引腳,雙列直插式封裝,見(jiàn)圖圖9-19-1。圖圖9-1引腳功能:引腳功能:D7D7D0D0:三態(tài)雙向數(shù)據(jù)線,與單片機(jī)數(shù)據(jù)總線連接三態(tài)雙向數(shù)據(jù)線,與單片機(jī)數(shù)據(jù)總線連接CSCS* *:片選信號(hào)線,低電平有效,表示本芯片被選中片選信號(hào)線,低電平有效,表示本芯片被選中RDRD* *:讀出信號(hào)線,控制讀出信號(hào)線

11、,控制8255A8255A中數(shù)據(jù)的讀出高中數(shù)據(jù)的讀出高WRWR* *:寫入信號(hào)線,控制向?qū)懭胄盘?hào)線,控制向8255A8255A數(shù)據(jù)的寫入。數(shù)據(jù)的寫入。VccVcc:+5V+5V電源電源PA7PA7PA0PA0:A A口輸入口輸入/ /輸出線。輸出線。PB7PB7PB0PB0:B B口輸入口輸入/ /輸出線輸出線PC7PC7PC0PC0:C C口輸入口輸入/ /輸出線輸出線A1A1、A0A0:地址線,用來(lái)選擇地址線,用來(lái)選擇82C5582C55內(nèi)部的內(nèi)部的4 4個(gè)端口。個(gè)端口。RESETRESET:復(fù)位引腳,高電平有效復(fù)位引腳,高電平有效 2.2.內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)圖圖9-2(1 1)端口)端口P

12、APA、PBPB、PCPC功能和結(jié)構(gòu)上有些差異功能和結(jié)構(gòu)上有些差異 PA PA口口:輸出鎖存和緩沖;輸入鎖存:輸出鎖存和緩沖;輸入鎖存 PB PB口口:輸出鎖存和緩沖;輸入緩沖:輸出鎖存和緩沖;輸入緩沖 PC PC口口:輸出鎖存;數(shù)據(jù)輸入緩沖:輸出鎖存;數(shù)據(jù)輸入緩沖 PC PC口可在軟件的控制下,口可在軟件的控制下,分為兩個(gè)分為兩個(gè)4 4位端口位端口,作為,作為PAPA口、口、PBPB口選通方式操作時(shí)的狀態(tài)控制信號(hào)。口選通方式操作時(shí)的狀態(tài)控制信號(hào)。(2)A(2)A組和組和B B組控制電路組控制電路A A組:組:PAPA口和口和PCPC口的上半部(口的上半部(PC7PC7PC4PC4););B

13、B組:組:PBPB口和口和PCPC口的下半部(口的下半部(PC3PC3PC0PC0), ,可根據(jù)可根據(jù)“命令字命令字”對(duì)對(duì) PCPC口口按位按位“置置1”1”或或“清清0”0”。(3)(3)數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器 三態(tài)雙向,作為三態(tài)雙向,作為8255A8255A與單片機(jī)數(shù)據(jù)線之間接口,傳送數(shù)與單片機(jī)數(shù)據(jù)線之間接口,傳送數(shù)據(jù)、指令、控制命令及外部狀態(tài)信息。據(jù)、指令、控制命令及外部狀態(tài)信息。(4)(4)讀讀/ /寫控制邏輯電路線寫控制邏輯電路線 該電路接收該電路接收CPUCPU發(fā)來(lái)的控制信號(hào)、發(fā)來(lái)的控制信號(hào)、RESETRESET、地址信號(hào)、地址信號(hào)A1A1、A0A0等。對(duì)端口進(jìn)行讀寫。等。對(duì)

14、端口進(jìn)行讀寫。各端口的工作狀態(tài)與控制信號(hào)的關(guān)系各端口的工作狀態(tài)與控制信號(hào)的關(guān)系如如表表9-19-1所示。所示。表表9-1 82C559-1 82C55端口工作狀態(tài)選擇端口工作狀態(tài)選擇A1A1A0A0RDRD* *WRWR* *CSCS* *工作狀態(tài)工作狀態(tài)0 00 00 01 10 0讀端口讀端口A A:A A口數(shù)據(jù)口數(shù)據(jù)數(shù)據(jù)總線數(shù)據(jù)總線讀端口讀端口B B:B B口數(shù)據(jù)口數(shù)據(jù)數(shù)據(jù)總線數(shù)據(jù)總線 讀端口讀端口C C:C C口數(shù)據(jù)口數(shù)據(jù)數(shù)據(jù)總線數(shù)據(jù)總線0 01 10 01 10 01 10 00 01 10 00 00 01 10 00 0寫端口寫端口A A:總線數(shù)據(jù)總線數(shù)據(jù)A A口口寫端口寫端口B

15、 B:總線數(shù)據(jù)總線數(shù)據(jù)B B口口寫端口寫端口C C:總線數(shù)據(jù)總線數(shù)據(jù)C C口口寫控制字:寫控制字:總線數(shù)據(jù)總線數(shù)據(jù)控制字寄控制字寄 存器存器0 01 11 10 00 01 10 01 10 00 01 11 11 10 00 01 1數(shù)據(jù)總線為三態(tài)數(shù)據(jù)總線為三態(tài)1 11 10 01 10 0非法狀態(tài)非法狀態(tài)1 11 10 0數(shù)據(jù)總線為三態(tài)數(shù)據(jù)總線為三態(tài)9.2.2 9.2.2 工作方式選擇控制字及工作方式選擇控制字及C C口置位口置位/ /復(fù)位控制字復(fù)位控制字82C5582C55有三種工作方式:有三種工作方式: (1) (1) 方式方式0 0:基本輸入輸出;基本輸入輸出;(2) (2) 方式方

16、式1 1:選通輸入輸出;選通輸入輸出;(3) (3) 方式方式2 2:雙向傳送(僅雙向傳送(僅A A口有)??谟校?。三種工作方式由方式控制字來(lái)決定。三種工作方式由方式控制字來(lái)決定??刂谱指袷饺缦?。控制字格式如下。1.1.工作方式選擇控制字工作方式選擇控制字圖圖9-3C C口上半部分(口上半部分(PC7PC7PC4PC4)隨)隨A A口稱為口稱為A A組組,C C口下半部分(口下半部分(PC3PC3PC0PC0)隨)隨B B口稱為口稱為B B組組。 其中其中A A口口可工作于方式可工作于方式0 0、1 1、和、和2 2,而,而B B口口只能工作在方式只能工作在方式0 0和和方式方式1 1。例例9

17、-1 寫入工作方式控制字寫入工作方式控制字95H95H可將可將8255A8255A編程為:編程為:A A口口方式方式0 0輸入輸入,B B口口方式方式1 1輸出輸出,C C口的上半口的上半 部分部分(PC7PC7 PC4PC4)輸出,)輸出,C C口的下半部分口的下半部分(PC3PC3PC0PC0)輸入。)輸入。2. C2. C口按位置位口按位置位/ /復(fù)位控制字復(fù)位控制字可對(duì)可對(duì)C C口口8 8位中的任一位置位中的任一位置“1”1”或清或清“0”0”。用于。用于位控位控。圖圖9-4例例9-2 控制字控制字07H07H寫入控制口,置寫入控制口,置“1” PC31” PC3;08H08H寫入控制

18、寫入控制 口,清口,清“0” PC40” PC4。9.2.3 82C559.2.3 82C55的三種工作方式的三種工作方式1.1.方式方式0 0基本的輸入基本的輸入/ /輸出方式。輸出方式。外設(shè)的外設(shè)的I/OI/O數(shù)據(jù)可在數(shù)據(jù)可在82C5582C55的各端口得到鎖存和緩沖的各端口得到鎖存和緩沖AT89C51AT89C51可對(duì)可對(duì)82C5582C55進(jìn)行數(shù)據(jù)的進(jìn)行數(shù)據(jù)的無(wú)條件傳送無(wú)條件傳送 例如例如: :從口線從口線讀入一組開關(guān)狀態(tài)讀入一組開關(guān)狀態(tài),向端口輸出數(shù)字量,向端口輸出數(shù)字量,控制控制一組指示燈的亮、滅。一組指示燈的亮、滅。不需要聯(lián)絡(luò)信號(hào)不需要聯(lián)絡(luò)信號(hào),基本功能為:基本功能為:(1 1)

19、具有兩個(gè))具有兩個(gè)8 8位端口(位端口(A A、B B)和兩個(gè))和兩個(gè)4 4位端口(位端口(C C的上半部的上半部分和下半部分)。分和下半部分)。(2 2)任一個(gè)端口都可以設(shè)定為輸入或輸出,各端口的輸入、)任一個(gè)端口都可以設(shè)定為輸入或輸出,各端口的輸入、輸出可構(gòu)成輸出可構(gòu)成1616種組合。種組合。(3 3)數(shù)據(jù)輸出鎖存,輸入不鎖存。)數(shù)據(jù)輸出鎖存,輸入不鎖存。例例9-39-3 假設(shè)假設(shè)82C5582C55的的控制字寄存器地址控制字寄存器地址為為FF7FHFF7FH,則令,則令A(yù) A口和口和 C C口的高口的高4 4位工作在方式位工作在方式0 0輸出,輸出, B B口和口和C C口的低口的低4

20、4位工位工 作于方式作于方式0 0輸入輸入,初始化程序:初始化程序:MOV DPTRMOV DPTR,#0FF7FH #0FF7FH ;控制字寄存器地址送;控制字寄存器地址送DPTR DPTR MOV AMOV A,#83H #83H ;方式控制字;方式控制字83H83H送送A AMOVX DPTRMOVX DPTR,A A ;83H83H送控制字寄存器送控制字寄存器2. 2. 方式方式1 1 選通輸入選通輸入/ /輸出工作方式。輸出工作方式。A A口和口和B B口通常用于口通常用于I/OI/O數(shù)據(jù)傳送,數(shù)據(jù)傳送,C C口用作口用作A A口和口和B B口的聯(lián)絡(luò)線,以中斷方式傳送數(shù)據(jù)。口的聯(lián)絡(luò)線

21、,以中斷方式傳送數(shù)據(jù)。 (1) (1) 方式方式1 1輸入輸入 控制聯(lián)絡(luò)信號(hào)如控制聯(lián)絡(luò)信號(hào)如圖圖9-59-5所示,所示,STBSTB* *與與IBFIBF構(gòu)成了一對(duì)應(yīng)答聯(lián)構(gòu)成了一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào)絡(luò)信號(hào),聯(lián)絡(luò)信號(hào)的功能如下:聯(lián)絡(luò)信號(hào)的功能如下:圖圖9-5STBSTB* *:選通輸入,是由輸入外設(shè)送來(lái)的輸入信號(hào)。選通輸入,是由輸入外設(shè)送來(lái)的輸入信號(hào)。IBFIBF:輸入緩沖器滿,高電平有效。表示數(shù)據(jù)已送入輸入緩沖器滿,高電平有效。表示數(shù)據(jù)已送入 8255A8255A的輸入鎖存器,它由的輸入鎖存器,它由STBSTB* *信號(hào)的下降沿置信號(hào)的下降沿置 位,由信號(hào)的上升沿使其復(fù)位位,由信號(hào)的上升沿使其復(fù)位I

22、NTRINTR:中斷請(qǐng)求信號(hào),高電平有效。由中斷請(qǐng)求信號(hào),高電平有效。由8255A8255A輸出,輸出, 向單片機(jī)發(fā)中斷請(qǐng)求。向單片機(jī)發(fā)中斷請(qǐng)求。INTE AINTE A:A A口中斷允許,由口中斷允許,由PC4PC4控制,控制, INTE BINTE B:B B口中斷允許,由口中斷允許,由PC2PC2控制??刂?。A A口的方式口的方式1 1輸入輸入工作方式見(jiàn)工作方式見(jiàn)圖圖9-69-6。圖圖9-6(2 2)方式)方式1 1輸出輸出 如如圖圖9-79-7所示。所示。OBFOBF* *與與ACKACK* *構(gòu)成了一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào)構(gòu)成了一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào),各各信號(hào)的功能如下:信號(hào)的功能如下:OBFOB

23、F* *:輸出緩沖器滿信號(hào),輸出緩沖器滿信號(hào),82C5582C55給外設(shè)的聯(lián)絡(luò)信號(hào),外設(shè)可給外設(shè)的聯(lián)絡(luò)信號(hào),外設(shè)可以將數(shù)據(jù)取走。以將數(shù)據(jù)取走。ACKACK* *:外設(shè)的響應(yīng)信號(hào),外設(shè)已將數(shù)據(jù)取走。外設(shè)的響應(yīng)信號(hào),外設(shè)已將數(shù)據(jù)取走。INTRINTR* *:中斷請(qǐng)求信號(hào)。表示該數(shù)據(jù)已被外設(shè)取走,中斷請(qǐng)求信號(hào)。表示該數(shù)據(jù)已被外設(shè)取走, 請(qǐng)求單片機(jī)繼續(xù)輸出下一個(gè)數(shù)據(jù)。請(qǐng)求單片機(jī)繼續(xù)輸出下一個(gè)數(shù)據(jù)。INTE AINTE A:中斷允許,由:中斷允許,由PC6PC6控制??刂啤NTE BINTE B:中斷允許,由:中斷允許,由PC2PC2控制。控制。圖圖9-7B B口的口的方式方式1 1輸出輸出如如圖圖9

24、-89-8所示:所示:圖圖9-83.3.方式方式2 2只有只有A A口才能設(shè)定為方式口才能設(shè)定為方式2 2。圖圖9-99-9為方式為方式2 2工作示意圖。工作示意圖。在方式在方式2 2下,下,PA7PA7PA0PA0為雙向?yàn)殡p向I/OI/O總線??偩€。 當(dāng)當(dāng)輸入輸入時(shí),時(shí),PA7PA7PA0PA0受受STBASTBA* *和和IBFAIBFA控制,其工作過(guò)程和控制,其工作過(guò)程和方式方式1 1輸入時(shí)相同;輸入時(shí)相同; 當(dāng)當(dāng)輸出輸出時(shí),時(shí),PA7PA7PA0PA0受受OBFAOBFA* *、ACKAACKA* *控制,其工作過(guò)程和方控制,其工作過(guò)程和方式式1 1輸出時(shí)相同。輸出時(shí)相同。圖圖9-99

25、.2.4 AT89C519.2.4 AT89C51單片機(jī)和單片機(jī)和82C5582C55的接口的接口1.1.硬件接口電路硬件接口電路 如如圖圖9-109-10是是80318031擴(kuò)展擴(kuò)展1 1片片8255A8255A的電路圖。的電路圖。74LS37374LS373是地是地址鎖存器,址鎖存器,P0.1P0.1、P0.0P0.0經(jīng)經(jīng)74LS37374LS373與與8255A8255A的地址線的地址線A1A1、A0A0連接;連接; P0.7P0.7經(jīng)經(jīng)74LS37374LS373與片選端相連,其他地址線懸空。與片選端相連,其他地址線懸空。2.2.確定確定82C5582C55端口地址端口地址圖圖9-10

26、9-10中中82C5582C55各端口寄存器的地址為:各端口寄存器的地址為:A A口:口: FF7CHFF7CHB B口:口: FF7DHFF7DHC C口:口: FF7EHFF7EH控制寄存器:控制寄存器: FF7FHFF7FH圖圖9-103.3.軟件編程軟件編程例例9-49-4 要求要求82C5582C55工作在方式工作在方式0 0,且,且A A口作為輸入,口作為輸入,B B口、口、 C C口作為輸出,口作為輸出,程序如下:程序如下:MOV MOV A,#90H A,#90H ;A A口方式口方式0 0輸入,輸入,B B口、口、 ;C C口輸出的控制字送口輸出的控制字送A AMOVMOVD

27、PTR,#0FF7FH DPTR,#0FF7FH ;控制寄存器地址;控制寄存器地址DPTRDPTRMOVX DPTR,AMOVX DPTR,A ;方式控制字;方式控制字控制寄存器控制寄存器MOVMOVDPTR,#0FF7CH DPTR,#0FF7CH ;A A口地址口地址DPTRDPTRMOVX A,DPTRMOVX A,DPTR ;從;從A A口讀數(shù)據(jù)口讀數(shù)據(jù)MOV DPTR,#0FF7DH MOV DPTR,#0FF7DH ;B B口地址口地址DPTRDPTRMOV MOV A,#DATA1A,#DATA1 ;要輸出的數(shù)據(jù);要輸出的數(shù)據(jù)DATA1ADATA1AMOVX DPTR,A MOV

28、X DPTR,A ;將;將DATA1DATA1送送B B口輸出口輸出MOV DPTR,#0FF7EH MOV DPTR,#0FF7EH ;C C口地址口地址DPTRDPTRMOV A,#DATA2MOV A,#DATA2 ;DATA2ADATA2AMOVX DPTR,AMOVX DPTR,A ;將數(shù)據(jù);將數(shù)據(jù)DATA2DATA2送送C C口輸出口輸出例例9-59-5 對(duì)端口對(duì)端口C C的置位的置位/ /復(fù)位。復(fù)位。把把PC5PC5置位,控制字為置位,控制字為0BH 0BH MOV R1,#7FH MOV R1,#7FH ;控制口地址;控制口地址R1R1 MOVMOV A,#0BH A,#0BH

29、 ;控制字;控制字A AMOVX R1,A MOVX R1,A ;控制字;控制字控制口,控制口,PC5=1PC5=1把把PC5PC5復(fù)位,控制字為復(fù)位,控制字為0AH0AHMOV R1,#7FH MOV R1,#7FH ;控制口地址;控制口地址R1R1 MOV A,#0AH MOV A,#0AH ;控制字;控制字A AMOVX R1,A MOVX R1,A ;控制字;控制字控制口,控制口,PC5=0PC5=09.3 89C519.3 89C51與可編程與可編程RAM/IORAM/IO芯片芯片81C5581C55的接口的接口 Intel 81C55Intel 81C55芯片包含芯片包含256B2

30、56B的的RAMRAM存儲(chǔ)器存儲(chǔ)器(靜態(tài)),(靜態(tài)),RAMRAM的存的存取時(shí)間為取時(shí)間為400ns400ns,兩個(gè)可編程的兩個(gè)可編程的8 8位并行口位并行口PAPA和和PBPB,一個(gè)可,一個(gè)可編程的編程的6 6位并行口位并行口PCPC,以及一個(gè),以及一個(gè)1414位的位的減減1 1計(jì)數(shù)器計(jì)數(shù)器。PAPA口和口和PBPB口可工作于基本輸入口可工作于基本輸入/ /輸出方式(同輸出方式(同82C5582C55的方式的方式0 0)或選通輸入或選通輸入/ /輸出方式(同輸出方式(同82C5582C55的方式的方式1 1)。)。81C5581C55可直接與可直接與AT89C51AT89C51單片機(jī)相連,不

31、需要增加任何硬件邏單片機(jī)相連,不需要增加任何硬件邏輯電路。輯電路。由于由于81C5581C55片內(nèi)集成有片內(nèi)集成有I/OI/O口、口、RAMRAM和減和減1 1計(jì)數(shù)器,計(jì)數(shù)器,因而是因而是AT89C51AT89C51單片機(jī)系統(tǒng)中經(jīng)常被選用的單片機(jī)系統(tǒng)中經(jīng)常被選用的I/OI/O接口芯片之接口芯片之一。一。9.3.1 81C559.3.1 81C55芯片介紹芯片介紹1.1.8155H8155H的結(jié)構(gòu)的結(jié)構(gòu)如如圖圖9-119-11所示。所示。圖圖9-112.8155H2.8155H的引腳功能的引腳功能8155H8155H的引腳功能的引腳功能(1 1)AD7AD7AD0AD0(8 8條)條)(2 2)

32、I/OI/O總線總線(2222條)條)(3 3)控制總線()控制總線(8 8條)條) RESETRESET:復(fù)位輸入線復(fù)位輸入線 CECE* *和和IO/MIO/M* * RD RD* *和和WRWR* * ALE ALE:地址鎖存允許地址鎖存允許 TIMERINTIMERIN和和TIMEROUTTIMEROUT* *:(4 4)電源線()電源線(2 2條)條) VccVcc:+5V+5V電源電源 VssVss:地地圖圖9-12CECE* *IO/MIO/M* *A7A7A6A6A5A5A4A4A3A3A2A2A1A1A0A0所選的端口所選的端口0 01 10 00 00 0命令命令/ /狀態(tài)

33、寄存器狀態(tài)寄存器0 01 10 00 01 1A A口口0 01 10 01 10 0B B口口0 01 10 01 11 1C C口口0 01 11 10 00 0計(jì)數(shù)器低計(jì)數(shù)器低8 8位位0 01 11 10 01 1計(jì)數(shù)器高計(jì)數(shù)器高6 6位位0 00 0RAMRAM單元單元3.CPU3.CPU對(duì)對(duì)81C55 I/O81C55 I/O端口的控制端口的控制(1)(1)8155H8155H各端口地址分配,見(jiàn)表各端口地址分配,見(jiàn)表9-29-2表表9-29-2(2 2)8155H8155H的控制字的控制字圖圖9-13(3 3)8155H8155H的狀態(tài)字的狀態(tài)字圖圖9-149.3.2 81C559

34、.3.2 81C55的工作方式的工作方式1.1.存儲(chǔ)器方式存儲(chǔ)器方式 對(duì)片內(nèi)對(duì)片內(nèi)RAMRAM單元進(jìn)行讀寫,若單元進(jìn)行讀寫,若IO/MIO/M* *=0=0和和CECE* *=0=0,則通過(guò),則通過(guò)AD7AD7AD0AD0上的地址對(duì)上的地址對(duì)RAMRAM存儲(chǔ)器任一單元讀寫。存儲(chǔ)器任一單元讀寫。2.I/O2.I/O方式方式 8155H 8155H的的I/OI/O方式分為方式分為基本基本I/OI/O和和選通選通I/OI/O兩種工作方式,兩種工作方式,如表如表9-39-3所示??蓪?duì)片內(nèi)任一寄存器讀寫,端口地址由所示??蓪?duì)片內(nèi)任一寄存器讀寫,端口地址由A2A2、A1A1、A0A0三位決定(見(jiàn)表三位決定

35、(見(jiàn)表9-29-2)。)。C C口口通用通用I/OI/O方式方式選通選通I/OI/O方式方式ALT1ALT1ALT2ALT2ALT3ALT3ALT4ALT4PC0PC0輸入輸入輸出輸出AINTRAINTR(A A口口中斷)中斷)AINTRAINTR(A A口中斷)口中斷)PC1PC1輸入輸入輸出輸出ABFABF(A A口緩口緩沖器滿)沖器滿)ABFABF(A A口緩沖器滿)口緩沖器滿)PC2PC2輸入輸入輸出輸出ASTBASTB* * (A A口選通)口選通)ASTBASTB* * (A A口選通)口選通)PC3PC3輸入輸入輸出輸出輸出輸出BINTRBINTR(B B口中斷)口中斷)PC4P

36、C4輸入輸入輸出輸出輸出輸出BBFBBF(B B口緩沖器滿)口緩沖器滿)PC5PC5輸入輸入輸出輸出輸出輸出BSTBBSTB* * (B B口選通)口選通)表表9-3 C9-3 C口在兩種口在兩種I/OI/O工作方式下各位定義工作方式下各位定義 (1 1)基本)基本I/OI/O方式方式(2 2)選通)選通I/OI/O方式方式 ( (見(jiàn)右圖)見(jiàn)右圖) a.a.選通選通I/OI/O輸入輸入b.b.選通選通I/OI/O輸出輸出圖圖9-153. 3. 內(nèi)部定時(shí)器內(nèi)部定時(shí)器/ /計(jì)數(shù)器及使用計(jì)數(shù)器及使用 14 14位的減位的減1 1定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器,計(jì)數(shù)長(zhǎng)度計(jì)數(shù)長(zhǎng)度和和計(jì)數(shù)方式計(jì)數(shù)方式由寫

37、入計(jì)由寫入計(jì)數(shù)寄存器的控制字來(lái)確定。數(shù)寄存器的控制字來(lái)確定。計(jì)數(shù)器的兩個(gè)寄存器的格式如計(jì)數(shù)器的兩個(gè)寄存器的格式如圖圖9-169-16。T13T13 T0:T0:計(jì)數(shù)器長(zhǎng)度計(jì)數(shù)器長(zhǎng)度M2M2、M1:M1:設(shè)置定時(shí)器的設(shè)置定時(shí)器的4 4種工作方式種工作方式4 4種工作方式及相應(yīng)輸出波形種工作方式及相應(yīng)輸出波形如圖如圖9-179-17。圖圖9-17 若寫入計(jì)數(shù)器的初值為奇數(shù),若寫入計(jì)數(shù)器的初值為奇數(shù), 引腳的方波引腳的方波輸出是不對(duì)稱的。輸出是不對(duì)稱的。例如例如,初值為初值為9 9時(shí),計(jì)數(shù)器的輸出,在時(shí),計(jì)數(shù)器的輸出,在5 5個(gè)個(gè)計(jì)數(shù)脈沖周期內(nèi)為高電平,計(jì)數(shù)脈沖周期內(nèi)為高電平,4 4個(gè)計(jì)數(shù)脈沖周期內(nèi)

38、為低電平,如個(gè)計(jì)數(shù)脈沖周期內(nèi)為低電平,如圖圖9-189-18所示。所示。 TIMEROUT圖圖9-189.3.3 9.3.3 AT89C51單片機(jī)與單片機(jī)與81C55的接口設(shè)計(jì)及軟件編程的接口設(shè)計(jì)及軟件編程 1.1.硬件接口電路硬件接口電路圖圖9-1981C5581C55的各端口以及的各端口以及RAMRAM單元的地址編碼,見(jiàn)單元的地址編碼,見(jiàn)表表9-49-4。2 281C5581C55的編程的編程8155H8155H初始化程序設(shè)計(jì)初始化程序設(shè)計(jì)例例9-69-6 若若A A口定義為基本輸入方式,口定義為基本輸入方式,B B口定義為基本輸出方口定義為基本輸出方 式,對(duì)輸入脈沖進(jìn)行式,對(duì)輸入脈沖進(jìn)行

39、2424分頻,初始化程序如下:分頻,初始化程序如下:START:MOV DPTR, START:MOV DPTR, 7F04H 7F04H ;指針指向定時(shí)器低;指針指向定時(shí)器低8 8位位MOV A,MOV A,18H18H ;計(jì)數(shù)初值;計(jì)數(shù)初值2424送送A,A, MOVX DPTR,AMOVX DPTR,A ;計(jì)數(shù)初值低;計(jì)數(shù)初值低8 8位裝入定時(shí)器位裝入定時(shí)器INC DPTR INC DPTR ;指針指向定時(shí)器高;指針指向定時(shí)器高8 8位位MOV A,MOV A,40H 40H ;設(shè)定時(shí)器連續(xù)方波輸出;設(shè)定時(shí)器連續(xù)方波輸出MOVX DPTR,AMOVX DPTR,A ;計(jì)數(shù)初值高;計(jì)數(shù)初值

40、高6 6位裝入定時(shí)器位裝入定時(shí)器MOV DPTR,MOV DPTR,7F00H 7F00H ;指向命令;指向命令/ /狀態(tài)口狀態(tài)口MOV A,#0C2HMOV A,#0C2H ;設(shè)定命令控制字;設(shè)定命令控制字MOVX DPTR,AMOVX DPTR,A ;A A口輸入,口輸入,B B口輸出口輸出, ,開定時(shí)器開定時(shí)器例例9-79-7 讀讀81C5581C55的的7EF1H7EF1H單元。程序如下:?jiǎn)卧?。程序如下:MOVMOVDPTR,#7EF1HDPTR,#7EF1H;DPTRDPTR數(shù)據(jù)指針指向數(shù)據(jù)指針指向;81C5581C55的的7EF1H7EF1H單元單元MOVX A,DPTRMOVX

41、A,DPTR;7EF1H7EF1H單元內(nèi)容單元內(nèi)容A A例例9-89-8將立即數(shù)將立即數(shù)41H41H寫入寫入81C55 RAM81C55 RAM的的7E20H7E20H單元。程序如下:?jiǎn)卧?。程序如下:MOV MOV A,#41HA,#41H; ;立即數(shù)立即數(shù)A AMOV MOV DPTR,#7E20HDPTR,#7E20H;DPTR;DPTR數(shù)據(jù)指針指向數(shù)據(jù)指針指向81C5581C55;的;的7E20H7E20H單元單元MOVX MOVX DPTR,ADPTR,A; ;立即數(shù)立即數(shù)41H41H送到送到81C55 81C55 ;RAMRAM的的7E20H7E20H單元單元81C5581C55既有

42、既有RAMRAM又有又有I/OI/O口口,此外,此外,還有計(jì)數(shù)器還有計(jì)數(shù)器。在同時(shí)需要。在同時(shí)需要擴(kuò)展擴(kuò)展RAM RAM 、I/OI/O和計(jì)數(shù)器的系統(tǒng)中,選用和計(jì)數(shù)器的系統(tǒng)中,選用81C5581C55特別經(jīng)濟(jì)。特別經(jīng)濟(jì)。是單片機(jī)應(yīng)用系統(tǒng)中是單片機(jī)應(yīng)用系統(tǒng)中常用的常用的外圍接口芯片之一。外圍接口芯片之一。9.4 9.4 用用74LSTTL74LSTTL電路擴(kuò)展并行電路擴(kuò)展并行I/OI/O口口 利用利用74LS27374LS273和和74LS24474LS244,將,將P0P0口擴(kuò)展成簡(jiǎn)單的輸入、輸出口擴(kuò)展成簡(jiǎn)單的輸入、輸出口的電路口的電路。 74LS27374LS273輸出端接輸出端接8 8個(gè)個(gè)

43、LEDLED發(fā)光二極管,以發(fā)光二極管,以顯示顯示8 8個(gè)個(gè)按鈕開關(guān)狀態(tài)按鈕開關(guān)狀態(tài),某位低電平時(shí)二極管發(fā)光。,某位低電平時(shí)二極管發(fā)光。 74LS24474LS244是緩沖驅(qū)動(dòng)器,擴(kuò)展輸入口,是緩沖驅(qū)動(dòng)器,擴(kuò)展輸入口,接接8 8個(gè)按鈕開關(guān)。個(gè)按鈕開關(guān)。 74LS27374LS273和和74LS24474LS244的工作受的工作受80318031的的P2.0P2.0、RDRD* *、WRWR* *三條控三條控制線控制。制線控制。電路的工作原理如下電路的工作原理如下: : 當(dāng)當(dāng)P2.0=0,WRP2.0=0,WR* *=0(RD=0(RD* *= =) )選中寫選中寫74LS27374LS273,

44、AT89C51AT89C51通過(guò)通過(guò)P0P0口輸出數(shù)據(jù)到口輸出數(shù)據(jù)到74LS27374LS273,;,; 當(dāng)當(dāng)P2.0=0,RDP2.0=0,RD* *=0(WR=0(WR* *=1)=1)時(shí)選中讀時(shí)選中讀74LS244,74LS244, 某開關(guān)按下時(shí)某開關(guān)按下時(shí)則對(duì)應(yīng)位輸入為則對(duì)應(yīng)位輸入為“0”0”。 圖圖9-20輸出程序段:輸出程序段:MOV A,#data MOV A,#data ;數(shù)據(jù);數(shù)據(jù)A AMOV DPTR,#0FEFFHMOV DPTR,#0FEFFH;I/OI/O地址地址DPTRDPTRMOVX DPTR,A MOVX DPTR,A ;WRWR* *為低,數(shù)據(jù)經(jīng)為低,數(shù)據(jù)經(jīng)7

45、4LS27374LS273口輸出口輸出輸入程序段:輸入程序段: MOV DPTR,#0FEFFH MOV DPTR,#0FEFFH ;I/OI/O地址地址DPTRDPTR MOVX A,DPTR MOVX A,DPTR;RDRD* *為低,為低,74LS24474LS244口口 ;數(shù)據(jù)讀入內(nèi)部;數(shù)據(jù)讀入內(nèi)部RAMRAM例例9-99-9 編寫程序把按鈕開關(guān)狀態(tài)通過(guò)圖編寫程序把按鈕開關(guān)狀態(tài)通過(guò)圖9-209-20中的發(fā)光二極管中的發(fā)光二極管顯示出來(lái)。顯示出來(lái)。程序如下:程序如下:DDIS:DDIS: MOV DPTR,#0FEFFH MOV DPTR,#0FEFFH ;輸入口地址;輸入口地址DPTRDPTRLP:LP:MOVX A,DPTR MOVX A,DPTR ;按鈕開關(guān)狀態(tài)讀入;按鈕開關(guān)狀態(tài)讀入A A中中MOVX DP

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論