![第9章擴(kuò)展輸入輸出_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/d674fe24-bb25-4fd4-aa97-40b9debb3e37/d674fe24-bb25-4fd4-aa97-40b9debb3e371.gif)
![第9章擴(kuò)展輸入輸出_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/d674fe24-bb25-4fd4-aa97-40b9debb3e37/d674fe24-bb25-4fd4-aa97-40b9debb3e372.gif)
![第9章擴(kuò)展輸入輸出_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/d674fe24-bb25-4fd4-aa97-40b9debb3e37/d674fe24-bb25-4fd4-aa97-40b9debb3e373.gif)
![第9章擴(kuò)展輸入輸出_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/d674fe24-bb25-4fd4-aa97-40b9debb3e37/d674fe24-bb25-4fd4-aa97-40b9debb3e374.gif)
![第9章擴(kuò)展輸入輸出_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/d674fe24-bb25-4fd4-aa97-40b9debb3e37/d674fe24-bb25-4fd4-aa97-40b9debb3e375.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第第9 9章章 AT89S51AT89S51單片機(jī)單片機(jī) 的的I/OI/O擴(kuò)展擴(kuò)展12 2 第第9章章 目錄目錄9.1 I/O接口擴(kuò)展概述接口擴(kuò)展概述 9.1.1 擴(kuò)展的I/O接口功能 9.1.2 I/O端口的編址 9.1.3 I/O數(shù)據(jù)的傳送方式 9.1.4 I/O接口電路9.2 AT89S51擴(kuò)展擴(kuò)展I/O接口芯片接口芯片82C55的設(shè)計(jì)的設(shè)計(jì) 9.2.1 82C55芯片簡(jiǎn)介 9.2.2 工作方式選擇控制字及端口PC置位/復(fù)位控制字 9.2.3 82C55的3種工作方式 9.2.4 AT89S51單片機(jī)與82C55的接口設(shè)計(jì)39.3 AT89S51擴(kuò)展擴(kuò)展I/O接口芯片接口芯片81C55
2、的設(shè)計(jì)的設(shè)計(jì) 9.3.1 81C55芯片介紹 9.3.2 81C55的工作方式 9.3.3 AT89S51單片機(jī)與81C55的接口設(shè)計(jì)及軟件編程9.4 利用利用74LSTTL電路擴(kuò)展并行電路擴(kuò)展并行I/O口口9.5 用用AT89S51單片機(jī)的串行口擴(kuò)展并行口單片機(jī)的串行口擴(kuò)展并行口 9.5.1 用74LS165擴(kuò)展并行輸入口 9.5.2 用74LS164擴(kuò)展并行輸出口9.6 用用I/O口控制的聲音報(bào)警接口口控制的聲音報(bào)警接口 9.6.1 蜂鳴音報(bào)警接口 9.6.2 音樂(lè)報(bào)警接口4內(nèi)容概要內(nèi)容概要AT89S51有4個(gè)I/O口P0P3,真正用作I/O口線的只有P1口口的8位I/O口線和P3P3口口
3、的某些位線。因此,大多需要大多需要外部I/O接口的擴(kuò)展。介紹AT89S51與兩種兩種常用的可編程I/O接口芯片82C55和81C55的擴(kuò)展接口設(shè)計(jì)。此外還介紹使用廉價(jià)的74LSTTL芯片芯片擴(kuò)展并行I/O接口以及用AT89S51串行口串行口來(lái)擴(kuò)展并行I/O接口的設(shè)計(jì)。最后介紹使用I/O口控制口控制的聲音聲音報(bào)警報(bào)警接口。59.1 I/O接口擴(kuò)展概述接口擴(kuò)展概述擴(kuò)展I/O接口與擴(kuò)展存儲(chǔ)器一樣,都屬于系統(tǒng)擴(kuò)展系統(tǒng)擴(kuò)展的內(nèi)容。擴(kuò)展的I/O接口應(yīng)該具有哪些功能?9.1.1 擴(kuò)展的擴(kuò)展的I/O接口功能接口功能擴(kuò)展的I/O接口電路主要應(yīng)滿足以下功能要求。1實(shí)現(xiàn)和不同外設(shè)的速度匹配實(shí)現(xiàn)和不同外設(shè)的速度匹配大
4、多數(shù)外設(shè)大多數(shù)外設(shè)的速度很慢速度很慢,無(wú)法和s量級(jí)的單片機(jī)速度量級(jí)的單片機(jī)速度相比。單片機(jī)在與外設(shè)間進(jìn)行數(shù)據(jù)傳送時(shí),只有在確認(rèn)外設(shè)已為數(shù)據(jù)傳送做好準(zhǔn)備做好準(zhǔn)備的前提下才能進(jìn)行數(shù)據(jù)傳送才能進(jìn)行數(shù)據(jù)傳送。外設(shè)是否準(zhǔn)備好,就需要I/O接口電路與外設(shè)之間傳送狀態(tài)傳送狀態(tài)信息信息,以實(shí)現(xiàn)單片機(jī)與外設(shè)之間的速度匹配。562輸出數(shù)據(jù)鎖存輸出數(shù)據(jù)鎖存與外設(shè)比,單片機(jī)的工作速度快,與外設(shè)比,單片機(jī)的工作速度快,數(shù)據(jù)在數(shù)據(jù)總線上保數(shù)據(jù)在數(shù)據(jù)總線上保留的時(shí)間十分短暫留的時(shí)間十分短暫,無(wú)法滿足慢速外設(shè)的數(shù)據(jù)接收。所以,無(wú)法滿足慢速外設(shè)的數(shù)據(jù)接收。所以在擴(kuò)展的在擴(kuò)展的I/O接口電路中接口電路中應(yīng)有輸出數(shù)據(jù)鎖存器應(yīng)有輸出
5、數(shù)據(jù)鎖存器,以保證輸,以保證輸出數(shù)據(jù)能出數(shù)據(jù)能為慢速的接收設(shè)備為慢速的接收設(shè)備所接收。所接收。3輸入數(shù)據(jù)三態(tài)緩沖輸入數(shù)據(jù)三態(tài)緩沖數(shù)據(jù)總線數(shù)據(jù)總線上可能上可能“掛掛”有多個(gè)數(shù)據(jù)源有多個(gè)數(shù)據(jù)源,為使傳送數(shù)據(jù)時(shí),為使傳送數(shù)據(jù)時(shí)不發(fā)生沖突不發(fā)生沖突,只允許當(dāng)前時(shí)刻,只允許當(dāng)前時(shí)刻正在接收數(shù)據(jù)的正在接收數(shù)據(jù)的I/O接口使接口使用數(shù)據(jù)總線用數(shù)據(jù)總線,其余的其余的I/O接口接口應(yīng)處于隔離狀態(tài)應(yīng)處于隔離狀態(tài),為此要求,為此要求I/O接口電路能為數(shù)據(jù)輸入提供三態(tài)緩沖功能。接口電路能為數(shù)據(jù)輸入提供三態(tài)緩沖功能。679.1.2 I/O端口的編址端口的編址介紹I/O端口編址端口編址之前,首先要弄清楚I/O接口接口和I
6、/O端端口口的概念。I/O接口接口是單片機(jī)與外設(shè)間的連接電路的總稱(chēng)。I/O端口端口(簡(jiǎn)稱(chēng)I/O口)是指I/O接口電路中具有單元地址的寄存器或緩沖器。一個(gè)I/O接口芯片可以有多個(gè)I/O端口,如數(shù)據(jù)口,命令口,狀態(tài)口數(shù)據(jù)口,命令口,狀態(tài)口。當(dāng)然,并不是所有的外設(shè)都一定需要3種端口齊全的I/O接口。每個(gè)I/O接口中的端口接口中的端口都要有地址都要有地址,以便AT89S51通過(guò)讀寫(xiě)端口來(lái)和外設(shè)交換信息和外設(shè)交換信息。常用的I/O端口編址端口編址有兩種方式,獨(dú)立編址方式獨(dú)立編址方式與統(tǒng)一編址方式統(tǒng)一編址方式。781獨(dú)立編址獨(dú)立編址I/O端口地址空間和存儲(chǔ)器地址空間分開(kāi)編址。優(yōu)點(diǎn)是I/O地址空間和存儲(chǔ)器地
7、址空間相互獨(dú)立,界限分明。但需要設(shè)置一套專(zhuān)門(mén)的讀寫(xiě)I/O端口的指令和控制信號(hào)。2統(tǒng)一編址把I/O端口與數(shù)據(jù)存儲(chǔ)器單元同等對(duì)待。I/O端口和外部數(shù)據(jù)存儲(chǔ)器RAM統(tǒng)一編址統(tǒng)一編址。因此外部數(shù)據(jù)存儲(chǔ)器空間也包括I/O端口在內(nèi)。優(yōu)點(diǎn)優(yōu)點(diǎn)是不需專(zhuān)門(mén)的I/O指令。缺點(diǎn)缺點(diǎn)是需要把數(shù)據(jù)存儲(chǔ)器是需要把數(shù)據(jù)存儲(chǔ)器單元地址與單元地址與I/O端口的地址劃分清楚端口的地址劃分清楚,避免數(shù)據(jù)沖突。899.1.3 I/O數(shù)據(jù)的傳送方式數(shù)據(jù)的傳送方式為了實(shí)現(xiàn)和不同外設(shè)的速度匹配速度匹配,必須根據(jù)不同外設(shè)選擇恰當(dāng)?shù)腎/O數(shù)據(jù)傳送方式數(shù)據(jù)傳送方式。I/O數(shù)據(jù)傳送方式有:同步傳送、異步傳送和中斷傳送。1同步傳送同步傳送同步傳送又
8、稱(chēng)無(wú)條件傳送。當(dāng)外設(shè)速度和單片機(jī)的速度相比擬時(shí),常采用同步傳送方式,典型的同步傳送是單片單片機(jī)和外部數(shù)據(jù)存儲(chǔ)器之間機(jī)和外部數(shù)據(jù)存儲(chǔ)器之間的數(shù)據(jù)傳送數(shù)據(jù)傳送。2查詢(xún)傳送查詢(xún)傳送又稱(chēng)有條件傳送(也稱(chēng)異步式傳送)。通過(guò)查詢(xún)外設(shè)“準(zhǔn)備好”后,再進(jìn)行數(shù)據(jù)傳送。優(yōu)點(diǎn)是通用性好,硬件連線和查詢(xún)程序簡(jiǎn)單,但工作效率不高。9103中斷傳送中斷傳送為了提高提高單片機(jī)對(duì)外設(shè)的工作效率工作效率,通常采用中斷傳送方式,來(lái)實(shí)現(xiàn)I/O數(shù)據(jù)的傳送。單片機(jī)只有在外設(shè)準(zhǔn)備好只有在外設(shè)準(zhǔn)備好后,才中斷主程序的執(zhí)行后,才中斷主程序的執(zhí)行,從而進(jìn)入與外設(shè)數(shù)據(jù)傳送的中斷服務(wù)子程序,進(jìn)行數(shù)據(jù)傳送。中斷服務(wù)完成后又返回主程序斷點(diǎn)處繼續(xù)執(zhí)行。
9、采用中斷方式可大大提高工作效率提高工作效率。9.1.4 I/O接口電路接口電路常用的外圍I/O接口芯片:(1)82C55:可編程通用并行接口(3個(gè)8位I/O口)。1011(2)81C55:可編程的IO/RAM擴(kuò)展接口電路(2個(gè)8位I/O口,1個(gè)6位I/O口,256RAM單元,1個(gè)14位的減法計(jì)數(shù)器)。都可以和AT89S51直接連接,接口邏輯簡(jiǎn)單。9.2 AT89S51擴(kuò)展擴(kuò)展I/O接口芯片接口芯片82C55的設(shè)計(jì)的設(shè)計(jì)先介紹可編程并行I/O接口芯片82C55的應(yīng)用特性應(yīng)用特性,然后介紹AT89S51與82C55的接口電路接口電路以及軟件設(shè)計(jì)軟件設(shè)計(jì)。9.2.1 82C55芯片簡(jiǎn)介芯片簡(jiǎn)介Int
10、el公司的可編程并行I/O接口芯片,3個(gè)個(gè)8位并行位并行I/O口,口,3種工作方式,種工作方式,單片機(jī)與多種外設(shè)連接時(shí)的中間接口電路。中間接口電路。引腳及內(nèi)部結(jié)構(gòu)如圖圖9-1和圖圖9-2所示所示。111212圖圖9-1 82C55的引腳圖的引腳圖 圖圖9-2 82C55的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)131引腳說(shuō)明引腳說(shuō)明共40個(gè)引腳個(gè)引腳,引腳功能如下引腳功能如下:D7D0:三態(tài)雙向數(shù)據(jù)線,與單片機(jī)的P0口連接,用來(lái)與單片機(jī)之間傳送數(shù)據(jù)信息。 :片選信號(hào)線,低有效,表示本芯片被選中。 :讀信號(hào)線,低有效,讀82C55端口數(shù)據(jù)的控制信號(hào)。 :寫(xiě)信號(hào)線,低電平有效,用來(lái)向82C55寫(xiě)入端口數(shù)據(jù)的控制信號(hào)。V
11、CC:+5V電源。13CSRDWR14PA7PA0:端口A輸入/輸出線。PB7PB0:端口B輸入/輸出線。PC7PC0:端口C輸入/輸出線。A1、A0:地址線,用來(lái)選擇82C55內(nèi)部的4個(gè)端口。RESET:復(fù)位引腳,高電平有效。2內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu)如圖圖9-2所示所示,3個(gè)并行數(shù)據(jù)輸入個(gè)并行數(shù)據(jù)輸入/輸出端口輸出端口,兩種工作兩種工作方式方式的控制電路,一個(gè)讀/寫(xiě)控制邏輯電路和一個(gè)8位數(shù)據(jù)總線緩沖器。各部件的功能如下:1415(1)端口)端口PA、PB、PC3個(gè)8位并行口PA、PB和PC,都可以選為輸入/輸出工作模式,功能和結(jié)構(gòu)上有差異。PA口:口:一個(gè)8位數(shù)據(jù)輸出鎖存器和緩沖器輸出鎖存器和緩沖
12、器;一個(gè)8位數(shù)據(jù)輸入鎖存輸入鎖存器。PB口:口:一個(gè)8位數(shù)據(jù)輸出鎖存器和緩沖器輸出鎖存器和緩沖器;一個(gè)8位數(shù)據(jù)輸入緩沖器輸入緩沖器。PC口:口:一個(gè)8位的輸出鎖存器輸出鎖存器;一個(gè)8位數(shù)據(jù)輸入緩沖輸入緩沖器器。通常PA口、口、PB口口作為輸入/輸出口,PC口口既可作為輸入/輸出口,也可在軟件控制下,分為兩個(gè)4位的端口,作為端口PA、PB選通方式操作時(shí)的狀態(tài)控制信號(hào)。1516(2)A組和組和B組控制電路組控制電路是兩組根據(jù)AT89S51寫(xiě)入的“命令字命令字”控制82C55工作方式的控制電路。A組組控制PA口和PC口的上半部上半部(PC7PC4);B組組控制PB口和PC口的下半部下半部(PC3PC
13、0),并可用“命令字”來(lái)對(duì)端口PC的每一位實(shí)現(xiàn)按位置“1”或清“0”。(3)數(shù)據(jù)總線緩沖器)數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是一個(gè)三態(tài)雙向8位緩沖器,作為82C55與系統(tǒng)總線之間的接口,用來(lái)傳送用來(lái)傳送數(shù)據(jù)、指令、控制命令以及外部狀態(tài)信息。1617(4)讀)讀/寫(xiě)控制邏輯電路寫(xiě)控制邏輯電路接收接收AT89S51單片機(jī)發(fā)來(lái)單片機(jī)發(fā)來(lái)的控制信號(hào)控制信號(hào) 、 、RESET、地址信號(hào)地址信號(hào)A1、A0等,然后根據(jù)控制信號(hào)的要求,端口數(shù)據(jù)被AT89S51單片機(jī)讀出,或者將AT89S51單片機(jī)送來(lái)的數(shù)據(jù)寫(xiě)入端口。各端口工作狀態(tài)與控制信號(hào)的關(guān)系見(jiàn)表表9-1。17RDWR1818RDWRCS199.2.2 工作方
14、式選擇控制字及端口工作方式選擇控制字及端口PC置位置位/復(fù)位控制字復(fù)位控制字可向向82C55控制寄存器寫(xiě)入兩種控制寄存器寫(xiě)入兩種不同的控制字不同的控制字。1工作方式選擇控制字工作方式選擇控制字82C55有3種種基本工作方式:(1)方式)方式0基本輸入/輸出;(2)方式)方式1選通輸入/輸出;(3)方式)方式2雙向傳送(僅PA口有此工作方式)。3種工作方式方式控制字來(lái)決定。格式格式如圖圖9-3所示所示。最高位D7=1,為本方式控制字的標(biāo)志標(biāo)志,以便與另一控制字相區(qū)別(最高位D7 = 0)。192020圖圖9-3 82C55的方式控制字格式的方式控制字格式21PCPC口分兩部分口分兩部分,隨,隨P
15、APA口口稱(chēng)為稱(chēng)為A A組組,隨,隨PBPB口口稱(chēng)為稱(chēng)為B B組組。其中。其中PAPA口口可工作于方式可工作于方式0 0、1 1和和2 2,而,而PBPB口口只能工作在只能工作在方式方式0 0和和1 1?!纠?-19-1】AT89S51AT89S51向向82C5582C55的控制字寄存器寫(xiě)入的控制字寄存器寫(xiě)入工作工作方式控制字方式控制字9595H H,根據(jù)圖,根據(jù)圖9-39-3,將,將82C5582C55編程設(shè)置為:編程設(shè)置為:PAPA口口方式方式0 0輸入,輸入,PBPB口方式口方式1 1輸出,輸出,PCPC口的上半部分(口的上半部分(PC7PC7PC4PC4)輸出,輸出,PCPC口的下半
16、部分(口的下半部分(PC3PC3PC0PC0)輸入。)輸入。MOVMOVDPTRDPTR,# #H H;控制字寄存器端口地址;控制字寄存器端口地址;H H送送DPTR DPTR MOV MOV A A,#95H#95H; 方式控制字方式控制字95H95H送送A AMOVXMOVXDPTRDPTR,A A; 控制字控制字95H95H送控制字寄存器送控制字寄存器21222PC口按位置位口按位置位/復(fù)位控制字復(fù)位控制字為另一控制字。即PC口中任何一位,可用一個(gè)寫(xiě)入82C55控制口的置位置位/復(fù)位控制字復(fù)位控制字來(lái)對(duì)PC口按位置置“1”或清“0”。用于位控位控。格式如圖圖9-4所示所示?!纠?-2】
17、 AT89S51向82C55的控制字寄存器寫(xiě)入工作工作方式控制字方式控制字07H,則PC3置置1;08H寫(xiě)入控制口,則PC4清清0。程序段如下:MOVDPTR,#H; 控制寄存器端口地址;H送DPTR MOV A,#07H; 方式控制字07H送A2223圖圖9-4 PC口按位置位口按位置位/復(fù)位控制字格式復(fù)位控制字格式24MOVXDPTR,A; 控制字07H送控制寄存器,把PC3置1MOVDPTR,#H; 控制字寄存器端口地址送DPTR MOV A,#08H; 方式控制字08H送AMOVXDPTR,A; 08H送控制字寄存器,PC4清024259.2.3 82C55的的3種工作方式種工作方式1
18、方式方式0是基本輸入基本輸入/輸出方式輸出方式。T89S51可對(duì)82C55進(jìn)行I/O數(shù)據(jù)的無(wú)條件傳送無(wú)條件傳送。例如,例如,AT89S51單片機(jī)從82C55的某一輸入口讀入一組開(kāi)關(guān)狀態(tài),從82C55輸出控制一組指示燈的亮、滅。并不并不需要任何條件,需要任何條件,外設(shè)I/O數(shù)據(jù)可在82C55的各端口得到鎖存和緩沖。因此,方式方式0稱(chēng)為基本輸入基本輸入/輸出方式輸出方式。方式0下,3個(gè)端口都可以由軟件設(shè)置為輸入或輸出,不需要應(yīng)答聯(lián)絡(luò)信號(hào)。方式0的基本功能基本功能如下:2526(1)具有兩個(gè)8位端口(PA、PB)和兩個(gè)4位端口(PC的上半部分和下半部分)。(2)任何端口都可以設(shè)定為輸入或輸出,各端口
19、的輸入、輸出共有16種組合。PA口、口、PB口和口和PC口口均可設(shè)定為均可設(shè)定為方式方式0,并可根據(jù)需要,向控制寄存器寫(xiě)入工作方式控制字,規(guī)定各端口為輸入或輸出方式。27【例例9-3】假設(shè)82C55的控制字寄存器控制字寄存器端口地址為端口地址為FF7FH,令PA口和口和PC口口的高高4位位為方式0輸出,PB口口和PC口口的低低4位位為方式0輸入,初始化程序:MOVDPTR,#0FF7FH; 端口地址#0FF7F送DPTR MOV A,#83H; 方式控制字83H送AMOVXDPTR,A; 控制字83H送控制字寄存器27282 2方式方式1 1是一種采用應(yīng)答聯(lián)絡(luò)應(yīng)答聯(lián)絡(luò)的輸入的輸入/輸出工作方式
20、輸出工作方式。PA口、PB口皆可設(shè)成這種工作方式。在方式1下,82C55的PA口和口和PB口口通常用于I/O數(shù)據(jù)的傳送,PC口口用作PA口和PB口的應(yīng)答聯(lián)絡(luò)信號(hào)線應(yīng)答聯(lián)絡(luò)信號(hào)線,以實(shí)現(xiàn)采用中斷方式來(lái)傳送I/O數(shù)據(jù)。PC口的PC7PC0的應(yīng)答聯(lián)絡(luò)線是規(guī)定好的應(yīng)答聯(lián)絡(luò)線是規(guī)定好的,其各位分配如圖如圖9-5和圖圖9-7所示,圖中,標(biāo)有I/O的各位仍可用作基本輸入/輸出,不作應(yīng)答聯(lián)絡(luò)用。下介紹方式1輸入/輸出時(shí)的應(yīng)答聯(lián)絡(luò)信號(hào)應(yīng)答聯(lián)絡(luò)信號(hào)與工作原理工作原理。2829(1)方式)方式1輸入輸入方式1輸入應(yīng)答聯(lián)絡(luò)信號(hào)如圖圖9-5所示所示。其中 與IBF為一對(duì)一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào)。各應(yīng)答聯(lián)絡(luò)信號(hào)應(yīng)答聯(lián)絡(luò)信號(hào)的功能
21、功能如下。n :是由輸入外設(shè)輸入外設(shè)發(fā)給82C55的選通輸入信號(hào)選通輸入信號(hào),低有效。nIBF:輸入緩沖器滿,應(yīng)答信號(hào)。82C55通知外設(shè)已收到外設(shè)發(fā)來(lái)的且已進(jìn)入輸入緩沖器的數(shù)據(jù),高有效。nINTR:由82C55向AT89S51單片機(jī)發(fā)出的中斷請(qǐng)求信號(hào),高有效。nINTEA:控制PA口是否允許中斷口是否允許中斷的控制信號(hào),由PC4的置位/復(fù)位來(lái)控制。29STBSTB30nINTEB:控制PB口是否允許中斷的控制信號(hào),由PC2的置位/復(fù)位來(lái)控制。方式1輸入如圖圖9-6所示所示。下面以PA口的方式1輸入為例,介紹方式方式1輸入的工作過(guò)程。輸入的工作過(guò)程。 當(dāng)外設(shè)向82C55輸入一個(gè)數(shù)據(jù)并送到PA7
22、PA0時(shí),外設(shè)自動(dòng)在 上向82C55發(fā)送一個(gè)低電平選通信號(hào)。 82C55收到 后,先把PA7PA0輸入的數(shù)據(jù)存入存入PA口的輸入數(shù)據(jù)緩沖/鎖存器,然后使輸出應(yīng)答線IBF變?yōu)楦?,通知輸入外設(shè),PA口已收到它送來(lái)的數(shù)據(jù)。 82C55檢測(cè)到 由低電平變?yōu)楦唠娖?、IBFA(PC5)為“1”狀態(tài)和中斷允許INTEA(PC4)=1時(shí),使30STBSTBSTB31INTRA(PC3)變?yōu)楦唠娖剑┳優(yōu)楦唠娖?,向單片機(jī)發(fā)出中斷請(qǐng)求。INTEA的狀態(tài)可由用戶(hù)通過(guò)指令對(duì)PC4的單一置位/復(fù)位控制字來(lái)控制。 單片機(jī)響應(yīng)中斷后,進(jìn)入中斷服務(wù)子程序進(jìn)入中斷服務(wù)子程序來(lái)讀取讀取PA口的外設(shè)發(fā)來(lái)的輸入數(shù)據(jù)口的外設(shè)發(fā)來(lái)的輸入數(shù)
23、據(jù)。當(dāng)輸入數(shù)據(jù)被單片機(jī)讀走后,82C55撤銷(xiāo)撤銷(xiāo)INTRA上的中斷請(qǐng)求上的中斷請(qǐng)求,并使IBFA變低低,通知輸通知輸入外設(shè)入外設(shè)可傳送下一個(gè)輸入數(shù)據(jù)。313232圖圖9-5 方式方式1輸入應(yīng)答聯(lián)絡(luò)信號(hào)輸入應(yīng)答聯(lián)絡(luò)信號(hào)3333圖圖9-6 PA口方式口方式1輸入工作過(guò)程示意圖輸入工作過(guò)程示意圖34(2)方式)方式1輸出輸出方式1輸出時(shí),應(yīng)答聯(lián)絡(luò)信號(hào)如圖圖9-7所示所示。 與與 構(gòu)成一對(duì)一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào)應(yīng)答聯(lián)絡(luò)信號(hào),應(yīng)答聯(lián)絡(luò)信號(hào)功能如下。n :端口輸出緩沖器滿信號(hào),低有效,它是82C55發(fā)給外設(shè)的聯(lián)絡(luò)信號(hào),表示外設(shè)可以將數(shù)據(jù)取走。n :外設(shè)應(yīng)答信號(hào),低有效。表示外設(shè)已把82C55發(fā)出的數(shù)據(jù)取走。nI
24、NTR:中斷請(qǐng)求信號(hào),高有效。表示該數(shù)據(jù)已被外設(shè)取走,向單片機(jī)單片機(jī)發(fā)出中斷請(qǐng)求,如果AT89S51響應(yīng)該中斷,在中斷服務(wù)子程序中向82C55寫(xiě)入要輸出的下一數(shù)據(jù)。34OBFACKOBFACK35nINTEA控制PA口是否允許中斷,由PC6控制。nINTEB控制PB口是否允許中斷,由PC2控制。方式1輸出工作示意如圖圖9-8所示所示。以PB口的方式口的方式1輸出輸出為例,介紹工作過(guò)程。 AT89S51可以通過(guò)“MOVX Ri,A”指令把輸出數(shù)據(jù)送到B口的輸出數(shù)據(jù)鎖存器,82C55收到后便令輸出緩沖器滿引腳 (PC1)變低,以通知輸出設(shè)備輸出的數(shù)據(jù)已在PB口的PB7PB0上。 輸出外設(shè)收到 上低
25、電平后,先從PB7PB0上取走輸出數(shù)據(jù),然后使 B 變低電平,以通知82C55輸出外設(shè)已收到82C55輸出的數(shù)據(jù)。35OBFACKOBF3636圖圖9-7 方式方式1輸出應(yīng)答聯(lián)絡(luò)信號(hào)輸出應(yīng)答聯(lián)絡(luò)信號(hào)37 圖圖9-8 PB口方式口方式1輸出工作過(guò)程示意圖輸出工作過(guò)程示意圖3738 82C55從應(yīng)答輸入線 B收到低電平后就對(duì) B 和中斷允許控制位INTEB狀態(tài)進(jìn)行檢測(cè),若皆為高電平,則INTRB變?yōu)楦唠娖阶優(yōu)楦唠娖蕉騿纹瑱C(jī)請(qǐng)求中斷。 AT89S51單片機(jī)響應(yīng)響應(yīng)INTRB上中斷請(qǐng)求后便可通過(guò)中斷服務(wù)程序把下一個(gè)輸出數(shù)據(jù)下一個(gè)輸出數(shù)據(jù)送到PB口的輸出數(shù)據(jù)鎖存器。重復(fù)上述過(guò)程,完成數(shù)據(jù)的輸出。3方式
26、方式2只有PA口才有方式2。圖圖9-9為工作示意圖。方式方式2是是方方式式1輸入輸入和和輸出輸出組合組合。PA7PA0為雙向I/O總線。當(dāng)作為輸入口使用,PA7PA0受STBA 和IBFA控制;當(dāng)作輸出輸出端口端口使用,PA7PA0受 A、 A 控制。38ACKOBFACKOBF3939圖圖9-9 PA口在方式口在方式2下的工作示意圖下的工作示意圖40方式方式2特別適用于像鍵盤(pán)、顯示器一類(lèi)的外部設(shè)備特別適用于像鍵盤(pán)、顯示器一類(lèi)的外部設(shè)備,因?yàn)橛袝r(shí)需要把鍵盤(pán)上輸入的編碼信號(hào)通過(guò)PA口送給單片機(jī),有時(shí)又需把單片機(jī)發(fā)出的數(shù)據(jù)通過(guò)PA口送給顯示器顯示。9.2.4 AT89S51單片機(jī)與單片機(jī)與82C5
27、5的接口設(shè)計(jì)的接口設(shè)計(jì)1硬件接口電路硬件接口電路如圖9-10為AT89S51擴(kuò)展一片82C55的電路。P0.1、P0.0經(jīng)經(jīng)74LS373與與82C55的的A1、A0連接連接;P0.7經(jīng)74LS373與片選端 相連,其它地址線懸空;82C55的控制線 、 直接與單片機(jī) 和和 端相連;單片機(jī)數(shù)據(jù)總線P0.0P0.7與82C55數(shù)據(jù)線D0D7連接。40CSRDWRRDWR412確定確定82C55端口地址端口地址圖圖9-10中中82C55只有只有3條線與條線與AT89S51地址線相接,片地址線相接,片選端選端 、端口地址選擇端、端口地址選擇端A1、A0,分別接于,分別接于P0.7、P0.1和和P0.
28、0,其他地址線全懸空。顯然只要保證,其他地址線全懸空。顯然只要保證P0.7為低為低電平時(shí),電平時(shí),即可選中即可選中82C55;若;若P0.1、P0.0再為再為“00”,則,則選中選中82C55的的PA口。同理口。同理P0.1、P0.0為為“01”、“10”、“11”分別選中分別選中PB口、口、PC口及控制口。口及控制口。若端口地址用若端口地址用16位表示,其他無(wú)用端全設(shè)為位表示,其他無(wú)用端全設(shè)為“1”(也(也可把無(wú)用端全設(shè)為可把無(wú)用端全設(shè)為“0”),則),則82C55的的A、B、C及控制及控制口口地址地址分別為分別為FF7CH、FF7DH、FF7EH、FF7FH。41CS4242圖圖9-10
29、AT89S51單片機(jī)擴(kuò)展一片單片機(jī)擴(kuò)展一片82C55的接口電路的接口電路43如果沒(méi)有用到的位取“0”,則4個(gè)端口地址分別為個(gè)端口地址分別為0000H、0001H、0002H、0003H,只要保證 、A1、A0的狀態(tài),無(wú)用位設(shè)為“0”或“1”均可。3軟件編程軟件編程在實(shí)際設(shè)計(jì)中,須根據(jù)外設(shè)的類(lèi)型選擇82C55的操作方式,并在初始化程序中把相應(yīng)控制字寫(xiě)入控制口在初始化程序中把相應(yīng)控制字寫(xiě)入控制口。下面根據(jù)圖圖9-10,介紹對(duì)82C55進(jìn)行操作的編程?!纠?-4】要求82C55工作在方式0,且PA口作為輸入,PB口、PC口作為輸出,程序如下:MOVA,#90H ;控制字送A MOVDPTR,#0F
30、F7FH;控制寄存器地址FF7FHDPTR4344MOVXDPTR,A;方式控制字控制寄存器MOVDPTR,#0FF7CH;PA口地址FF7CHDPTRMOVXA,DPTR;從PA口讀入數(shù)據(jù)AMOVDPTR,#0FF7DH;PB口地址FF7DHDPTRMOVA,#data1;要輸出的數(shù)據(jù)#data1AMOVXDPTR,A;將#data1送PB口輸出MOVDPTR,#0FF7EH;PC口地址DPTRMOVA,# data 2;數(shù)據(jù)#data 2AMOVXDPTR,A;將數(shù)據(jù)#data 2送PC口輸出4445【例例9-5】對(duì)端口PC的置位/復(fù)位。1PC口1中的任1一位,均可用指令來(lái)置位或復(fù)位。例如
31、,如果想把PC口的PC5置“1”,相應(yīng)的控制字為00001011B = 0BH(關(guān)于82C55的PC口置位/復(fù)位的控制字說(shuō)明見(jiàn)圖9-4)。程序如下:MOVR1,7FH;控制口地址;控制口地址7FHR1MOV A,0BH ;控制字;控制字0BHAMOVX R1, A ;控制字;控制字7FH控制口,把控制口,把PC5置置14546如果想把PC口的PC5復(fù)位復(fù)位,相應(yīng)的控制字0AH,程序如下:MOV R1,7FH;控制口地址;控制口地址7FH R1MOV A,0AH;控制字;控制字0AHAMOVX R1,A;控制字;控制字7FH控制口,控制口, PC5清清082C55接口芯片在AT89S51單片機(jī)應(yīng)
32、用系統(tǒng)中廣泛用于與各種外部數(shù)字設(shè)備的連接,如打印機(jī)、鍵盤(pán)、顯示器以及作為數(shù)字信息的輸入、輸出接口。46479.3 AT89S51擴(kuò)展擴(kuò)展I/O接口芯片接口芯片81C55的設(shè)計(jì)的設(shè)計(jì)包含256B的RAM存儲(chǔ)器(靜態(tài)),RAM的存取時(shí)間為400ns,可編程的兩個(gè)兩個(gè)8位并行口位并行口PA和和PB,可編程的一個(gè)一個(gè)6位并行口位并行口PC,以及一個(gè)一個(gè)14位的減位的減1計(jì)數(shù)器計(jì)數(shù)器。PA口和口和PB口可工作于基本輸入口可工作于基本輸入/輸出方式輸出方式(同82C55的方式0)或選或選通輸入通輸入/輸出方式輸出方式(同82C55的方式1)。81C55可直接與AT89S51相連,不需增加任何硬件邏輯電路。
33、由于81C55片內(nèi)集成有I/O口、RAM和減1計(jì)數(shù)器,因而是被選用的I/O接口芯片之一。9.3.1 81C55芯片介紹芯片介紹介紹81C55芯片基本特性。4748181C55的結(jié)構(gòu)的結(jié)構(gòu)邏輯結(jié)構(gòu)如圖圖9-11。 圖圖9-11 81C55的邏輯結(jié)構(gòu)49281C55的引腳功能的引腳功能40引腳,采用雙列直插式封裝,如圖圖9-12所示所示。 圖圖9-12 81C55的引腳圖的引腳圖4950各引腳功能如下。(1)AD7AD0,為地址/數(shù)據(jù)線,與AT89S51單片機(jī)的P0口相連,用于分時(shí)傳送地址/數(shù)據(jù)信息。(2)I/O總線(總線(22條)。條)。PA7PA0為通用I/O線,數(shù)據(jù)傳送方向由寫(xiě)入81C55的
34、命令字決定(圖9-13);PB7PB0為通用I/O線,用于傳送PB口上的外設(shè)數(shù)據(jù),數(shù)據(jù)傳送方向也由寫(xiě)入81C55的控制字決定。PC5PC0為數(shù)據(jù)/控制線,共有6條,在通用I/O方式下,用作傳送I/O數(shù)據(jù);在選通I/O方式下,用作傳送命令/狀態(tài)信息(見(jiàn)表9-3)。 5051(3)控制引腳)控制引腳nRESET:復(fù)位輸入線,在RESET線上輸入一個(gè)大于600ns寬的正脈沖時(shí),81C55即可處于復(fù)位狀態(tài),PA、PB、PC三口也定義為輸入方式。n 、IO/ : 為片選線,若 =0,則AT89S51單片機(jī)選中本81C55工作;否則,本81C55未被選中。IO/ 為I/O端口或RAM存儲(chǔ)器選擇線,若IO/
35、 =0,則AT89S51單片機(jī)選中81C55片內(nèi)的RAM存儲(chǔ)器;若IO/ =1,則AT89S51單片機(jī)選中81C55的某一I/O端口。n 和和 :當(dāng) =0且 =1時(shí),81C55被讀出數(shù)據(jù)狀態(tài);當(dāng) =1且 = 0時(shí),81C55被寫(xiě)入數(shù)據(jù)狀態(tài)。51CEMCECEMMRDWRRDWRRDWR52nALE:允許地址輸入線,高有效。若ALE=1,則81C55允許AT89S51通過(guò)AD7AD0線發(fā)出地址鎖存到81C55片內(nèi)“地址鎖存器”;否則,81C55地址鎖存器處于封鎖狀態(tài)。81C55的ALE常和AT89S51的ALE相連。nTIMERIN和和 :TIMERIN是計(jì)數(shù)器脈沖輸入線,輸入的脈沖上跳沿用于對(duì)
36、81C55片內(nèi)的14位計(jì)數(shù)器減1。 為計(jì)數(shù)器輸出線計(jì)數(shù)器輸出線,當(dāng)14位計(jì)數(shù)器減為0時(shí)就可以在該引線上輸出脈沖或方波輸出脈沖或方波,輸出脈沖或方波與所選的計(jì)數(shù)器工作方式有關(guān)。(4)電源線。VCC為+5V電源輸入線,VSS接地。52TIMEROUTTIMEROUT533CPU對(duì)對(duì)81C55 I/O端口的控制端口的控制 3個(gè)端口數(shù)據(jù)傳送方式是由控制字和狀態(tài)字來(lái)決定的。(1)81C55各端口地址分配各端口地址分配內(nèi)部有7個(gè)端口個(gè)端口,需要3位地址位地址A2A0上的不同組合代碼來(lái)加以區(qū)分。表表9-2為端口地址分配以及RAM單元的選擇。(2)81C55的控制字的控制字有一個(gè)控制寄存器和一個(gè)狀態(tài)標(biāo)志寄存器
37、。工作方式由寫(xiě)入控制寄存器控制寄存器的的控制字控制字來(lái)確定來(lái)確定??刂谱指袷饺鐖D9-13所所示示。控制寄存器只能寫(xiě)入不能讀出只能寫(xiě)入不能讀出。535455 圖圖9-13 81C55的控制字格式的控制字格式5556控制寄存器中的控制寄存器中的D3D0位位用來(lái)設(shè)置PA口、PB口和PC口的工作方式。D4、D5位位用來(lái)確定A口、B口以選通輸入/輸出方式工作時(shí)是否允許中斷請(qǐng)求。D6、D7位位用來(lái)設(shè)置計(jì)數(shù)器的操作。(3)81C55的狀態(tài)字的狀態(tài)字有一個(gè)狀態(tài)標(biāo)志寄存器,用來(lái)存入PA口和PB口的狀態(tài)標(biāo)志。它的地址與控制寄存器地址相同地址與控制寄存器地址相同,只能對(duì)其讀出,不能寫(xiě)只能對(duì)其讀出,不能寫(xiě)入入。格式如
38、圖9-14所示所示。57下面僅對(duì)狀態(tài)字中的D6位位給出說(shuō)明。D6為計(jì)數(shù)器中斷狀態(tài)標(biāo)志位中斷狀態(tài)標(biāo)志位TIMER。若計(jì)數(shù)器正在計(jì)數(shù)或開(kāi)始計(jì)數(shù)前計(jì)數(shù)或開(kāi)始計(jì)數(shù)前,則D6=0;若計(jì)數(shù)器的計(jì)數(shù)長(zhǎng)度已計(jì)滿計(jì)數(shù)長(zhǎng)度已計(jì)滿,即計(jì)數(shù)器減為0,則D6=1,可作為計(jì)數(shù)器中斷請(qǐng)求標(biāo)志。在硬件復(fù)位或?qū)λx出后又恢復(fù)為0。9.3.2 81C55的工作方式的工作方式下面介紹81C55的兩種工作方式兩種工作方式。5758 圖圖9-14 81C55狀態(tài)字格式狀態(tài)字格式58591存儲(chǔ)器方式存儲(chǔ)器方式存儲(chǔ)器方式用于對(duì)片內(nèi)256B RAM單元進(jìn)行讀/寫(xiě),若IO/ =0且 =0,則AT89S51可通過(guò)AD7AD0上的地址選擇RAM存
39、儲(chǔ)器中任意單元讀/寫(xiě)。2I/O方式方式分基本基本I/O和選通選通I/O兩種方式,見(jiàn)表表9-3。在I/O方式下,81C55可選擇片內(nèi)任意端口寄存器讀/寫(xiě),端口地址由A2、A1、A0三位決定(見(jiàn)表9-2)。(1)基本)基本I/O方式方式。本方式下,PA、PB、PC三口用作輸入/輸出,由圖9-13的命令字決定。其中,PA、PB兩口的輸入/輸出由D1、D0決定,PC口口各位由D3、D2狀態(tài)狀態(tài)決59MCE60定。例如,例如,若把02H的命令字送到81C55命令寄存器,則81C55的PA口和PC口各位設(shè)定為輸入方式,PB口設(shè)定為輸出方式。 (2)選通)選通I/O方式。方式。由命令字中D3、D2狀態(tài)設(shè)定,
40、PA口和PB口都可獨(dú)立工作于這種方式。此時(shí),PA口和PB口用作數(shù)據(jù)口,PC口用作A口和B口的應(yīng)答聯(lián)絡(luò)控制。PC口各位應(yīng)答聯(lián)絡(luò)線的定義是在設(shè)計(jì)81C55時(shí)規(guī)定的,其分配和命名見(jiàn)表表9-3。606161ASTBASTBBSTB 選通選通I/O方式又可分為方式又可分為選通選通I/O數(shù)據(jù)輸入數(shù)據(jù)輸入和和選通選通I/O數(shù)據(jù)輸出數(shù)據(jù)輸出兩兩種方式種方式。 選通選通I/O數(shù)據(jù)輸入數(shù)據(jù)輸入 PA口和口和PB口口都可設(shè)定為本方式。若命令字中D0=0且D3、D2=10,則PA口設(shè)定為本工作方式;若命令字中D1= 0且62D3、D2=11,則PB口設(shè)定為本工作方式。本工作方式和82C55的選通I/O輸入情況類(lèi)似,如
41、圖圖9-15(a)所示。 選通選通I/O數(shù)據(jù)輸出數(shù)據(jù)輸出PA口和口和PB口口都可設(shè)定為本方式。若命令字命令字D0=1且且D3、D2=10,則PA口設(shè)定為本工作方式;若命令字命令字D1=1且D3、D2=11,則PB口設(shè)定為本工作方式。選通I/O數(shù)據(jù)的輸出過(guò)程也和82C55的選通I/O輸出情況類(lèi)似,圖圖9-15(b)所示為選通I/O數(shù)據(jù)輸出的示意圖。6263 圖圖9-15 選通I/O方式示意圖63643內(nèi)部計(jì)數(shù)器內(nèi)部計(jì)數(shù)器/計(jì)數(shù)器及使用計(jì)數(shù)器及使用14位位的計(jì)數(shù)器/計(jì)數(shù)器,CPU可通過(guò)軟件軟件來(lái)選擇計(jì)數(shù)長(zhǎng)來(lái)選擇計(jì)數(shù)長(zhǎng)度和計(jì)數(shù)方式度和計(jì)數(shù)方式。計(jì)數(shù)長(zhǎng)度和計(jì)數(shù)方式由寫(xiě)入計(jì)數(shù)器的控制字來(lái)確定。計(jì)數(shù)器的格
42、式如圖圖9-16所示。 圖圖9-16 81C55計(jì)數(shù)器的格式計(jì)數(shù)器的格式其中,T13T0為計(jì)數(shù)器的計(jì)數(shù)位;M2、M1用來(lái)設(shè)置計(jì)數(shù)器的輸出方式。81C55計(jì)數(shù)器的4種工作方式種工作方式及對(duì)應(yīng)的 引腳輸出波形引腳輸出波形如圖圖9-17所示。646565圖圖9-17 81C55計(jì)數(shù)器工作方式及計(jì)數(shù)器工作方式及 引腳輸出波形引腳輸出波形66任何時(shí)候任何時(shí)候都可設(shè)置計(jì)數(shù)器長(zhǎng)度長(zhǎng)度和工作方式,工作方式,將控制字寫(xiě)入控制寄存器。如果計(jì)數(shù)器正在計(jì)數(shù)如果計(jì)數(shù)器正在計(jì)數(shù),只有在寫(xiě)入啟動(dòng)命寫(xiě)入啟動(dòng)命令令后,計(jì)數(shù)器才接收新計(jì)數(shù)長(zhǎng)度才接收新計(jì)數(shù)長(zhǎng)度并按新的工作方式計(jì)數(shù)。若寫(xiě)入計(jì)數(shù)器的初值為初值為奇數(shù)奇數(shù), 引腳的方波輸
43、出方波輸出是不對(duì)不對(duì)稱(chēng)稱(chēng)的。例如例如,初值為初值為9時(shí),計(jì)數(shù)器的輸出,在5個(gè)計(jì)數(shù)脈沖周期內(nèi)為高電平高電平,4個(gè)計(jì)數(shù)脈沖周期內(nèi)為低電平,如圖圖9-18所示。 圖圖9-18 計(jì)數(shù)長(zhǎng)度為奇數(shù)時(shí)的不對(duì)稱(chēng)方波輸出(長(zhǎng)度為計(jì)數(shù)長(zhǎng)度為奇數(shù)時(shí)的不對(duì)稱(chēng)方波輸出(長(zhǎng)度為9)6667注意,注意,81C55的計(jì)數(shù)器初值不是從初值不是從0開(kāi)始開(kāi)始,從從2開(kāi)始開(kāi)始。這是因?yàn)?,如果選擇計(jì)數(shù)器的輸出為方波形式(無(wú)論是單方波還是連續(xù)方波),則規(guī)定是從啟動(dòng)計(jì)數(shù)開(kāi)始,前一半計(jì)數(shù)輸出為高電平,后一半計(jì)數(shù)輸出為低電平。顯然,如果顯然,如果計(jì)數(shù)初值是計(jì)數(shù)初值是0或或1,就無(wú)法產(chǎn)生這種方波,就無(wú)法產(chǎn)生這種方波。因此81C55計(jì)數(shù)器的寫(xiě)入初
44、值范圍是初值范圍是3FFFH2H。如果硬要將硬要將0或或1作為初值寫(xiě)入作為初值寫(xiě)入,其效果將與送入初值初值2的情況一樣。81C55復(fù)位后使計(jì)數(shù)器停止計(jì)數(shù)。9.3.3 AT89S51單片機(jī)與單片機(jī)與81C55的接口設(shè)計(jì)及軟件編程的接口設(shè)計(jì)及軟件編程1硬件接口電路硬件接口電路接口如圖圖9-19所示。直接連接不需外加器件。676868圖圖9-19 AT89S51單片機(jī)與單片機(jī)與81C55的接口電路的接口電路69在圖在圖9-19中,單片機(jī)P0口口輸出的低低8位地址不需要另外位地址不需要另外加鎖存器加鎖存器(81C55片內(nèi)集成有地址鎖存器),而直接與81C55的AD0AD7相連,既可作為低8位地址總線,
45、又可作為數(shù)據(jù)總線,地址鎖存控制直接用AT89S51發(fā)出的ALE信號(hào)。81C55的 端接P2.7,IO/ 端與P2.0相連。當(dāng)P2.7=0時(shí),若P2.0=0,則訪問(wèn)81C55的RAM單元。由此可得到圖9-19中81C55的各端口以及RAM單元的地址編碼,見(jiàn)表表9-4。69MCE707071281C55的編程的編程根據(jù)圖9-19接口,介紹對(duì)81C55的具體操作。初始化程序設(shè)計(jì)初始化程序設(shè)計(jì)【例例9-6】若PA口定義為基本輸入方式,PB口定義為基本輸出方式,對(duì)輸入脈沖進(jìn)行24分頻(81C55計(jì)數(shù)器的最最高計(jì)數(shù)頻率高計(jì)數(shù)頻率為4MHz),則81C55的初始化程序初始化程序如下START:MOV DPT
46、R,7F04H;DPTR指針指向計(jì)數(shù)器低指針指向計(jì)數(shù)器低8位位MOV A,18H ;計(jì)數(shù)初值;計(jì)數(shù)初值24送送AMOVX DPTR,A;計(jì)數(shù)初值低;計(jì)數(shù)初值低8位裝入計(jì)數(shù)器位裝入計(jì)數(shù)器INC DPTR;指向計(jì)數(shù)器高;指向計(jì)數(shù)器高8位位7172MOV A,40H;計(jì)數(shù)器為連續(xù)方波輸出;計(jì)數(shù)器為連續(xù)方波輸出MOVX DPTR,A;計(jì)數(shù)初值高;計(jì)數(shù)初值高6位裝入計(jì)數(shù)器位裝入計(jì)數(shù)器MOV DPTR,7F00H;指向命令;指向命令/狀態(tài)口狀態(tài)口MOV A,#0C2H;設(shè)定命令控制字;設(shè)定命令控制字MOVX DPTR,A;A口基本輸入,口基本輸入,B口基本輸出,開(kāi)啟計(jì)數(shù)口基本輸出,開(kāi)啟計(jì)數(shù)【例例9-7】讀
47、81C55的7EF1H單元。程序如下:程序如下:MOVDPTR,#7EF1H;DPTR指針指向81C55的7EF1H單元MOVX A,DPTR;7EF1H單元內(nèi)容A7273【例例9-8】將立即數(shù)41H寫(xiě)入81C55 RAM的7E20H單元。程序如下:MOV A,#41H;立即數(shù);立即數(shù)AMOV DPTR,#7E20H;DPTR指針指向指針指向81C55的的7E20H單元單元MOVX DPTR,A;立即數(shù);立即數(shù)41H送送81C55 RAM的的7E20H單元單元81C55既有RAM又有I/O口,此外,還有計(jì)數(shù)器。在同時(shí)需要擴(kuò)展RAM 、I/O和計(jì)數(shù)器的系統(tǒng)中,選用81C55特別經(jīng)濟(jì),是單片機(jī)系統(tǒng)
48、中常用的外圍接口芯片之一常用的外圍接口芯片之一。73749.4 利用利用74LSTTL電路擴(kuò)展并行電路擴(kuò)展并行I/O口口在單片機(jī)應(yīng)用中,有些場(chǎng)合有些場(chǎng)合需要降低成本、縮小體積,這時(shí)采用TTL電路、CMOS電路鎖存器或三態(tài)門(mén)電路也可構(gòu)成各種類(lèi)型的簡(jiǎn)單輸入/輸出口。如圖圖9-20所示為一個(gè)利用用74LS244和和74LS273芯片芯片,將將P0口擴(kuò)展成簡(jiǎn)單的輸入口擴(kuò)展成簡(jiǎn)單的輸入/輸出口的電路輸出口的電路。74LS244和74LS273的工作受AT89S51的P2.0、 、 3條條控制線控制。74LS244作為擴(kuò)展輸入口,8個(gè)輸個(gè)輸入端入端分別接8個(gè)按鈕開(kāi)關(guān)。74LS273是8D鎖存器擴(kuò)展輸出擴(kuò)展
49、輸出口口,接8個(gè)個(gè)LED發(fā)光二極管發(fā)光二極管,以顯示以顯示8個(gè)按鈕個(gè)按鈕開(kāi)關(guān)狀態(tài)。開(kāi)關(guān)狀態(tài)。74RDWR75圖圖9-20 74LSTTL I/O擴(kuò)展舉例擴(kuò)展舉例76當(dāng)某條輸入口線的按鈕開(kāi)關(guān)按下時(shí),該輸入口線為低電為低電平平,讀入單片機(jī)后,其相應(yīng)位為“0”,然后再將口線的狀態(tài)經(jīng)74LS273輸出,某位低電平時(shí)二極管發(fā)光,從而顯示出按下的按鈕開(kāi)關(guān)的位置。該電路的工作原理電路的工作原理如下。當(dāng)P2.0=0, =0( =1)時(shí),選中74LS244芯片,此時(shí)若無(wú)按鈕開(kāi)關(guān)按下,輸入全為高電平。當(dāng)某開(kāi)關(guān)按下時(shí)則對(duì)應(yīng)位輸入為“0”,74LS244的輸入端不全為“1”,其輸入狀態(tài)通過(guò)P0口數(shù)據(jù)線被讀入AT89S
50、51片內(nèi)。76RDWR77當(dāng)P2.0 = 0, =1 ( = 0)時(shí),選中74LS273芯片,CPU通過(guò)P0口輸出數(shù)據(jù)鎖存到74LS273,74LS273的輸出端低電平位對(duì)應(yīng)的LED發(fā)光二極管點(diǎn)亮??傊?,在圖9-20中只要保證P2.0為“0”,其他地址位或“0”或“1”即可。如地址用FEFFH(無(wú)效位全為“1”),或用0000H(無(wú)效位全為“0”)都可。77RDWR78輸入程序段:輸入程序段:MOV DPTR,#0FEFFH;I/O地址地址DPTRMOVX A,DPTR ; 為低,為低,74LS244數(shù)據(jù)被讀入數(shù)據(jù)被讀入A中中輸出程序段:輸出程序段:MOV A,#data;數(shù)據(jù);數(shù)據(jù)#data
51、AMOV DPTR,#0FEFFH;I/O地址地址#0FEFFHDPTRMOVXDPTR,A; 為低,數(shù)據(jù)經(jīng)為低,數(shù)據(jù)經(jīng)74LS273口輸出口輸出78RDWR79【例例9-9】編寫(xiě)程序把按鈕開(kāi)關(guān)狀態(tài)通過(guò)圖9-20的發(fā)光二極管顯示出來(lái)。程序如下:DDIS:MOV DPTR,#0FEFFH ;輸入口地址;輸入口地址DPTRLP:MOVX A,DPTR;按鈕開(kāi)關(guān)狀態(tài)讀入;按鈕開(kāi)關(guān)狀態(tài)讀入A中中 MOVX DPTR,A;A中數(shù)據(jù)送顯示輸出口中數(shù)據(jù)送顯示輸出口 SJMP LP ;反復(fù)連續(xù)執(zhí)行;反復(fù)連續(xù)執(zhí)行由程序可看出,對(duì)于擴(kuò)展接口的輸入/輸出就像從外部RAM讀/寫(xiě)數(shù)據(jù)一樣方便。圖圖9-20僅僅擴(kuò)展了兩片
52、,如果僅僅擴(kuò)展了兩片,如果仍不夠用,還可擴(kuò)展多片仍不夠用,還可擴(kuò)展多片74LS244、74LS273之類(lèi)的芯片之類(lèi)的芯片。但作為輸入輸入口時(shí),一定要求有三態(tài)功能要求有三態(tài)功能,否則將影響總線的正常工作。79809.5 用用AT89S51單片機(jī)的串行口擴(kuò)展并行口單片機(jī)的串行口擴(kuò)展并行口串口的方式方式0用于用于I/O擴(kuò)展擴(kuò)展。方式0為同步移位寄存器同步移位寄存器工作方式,波特率為fosc/12。數(shù)據(jù)由數(shù)據(jù)由RXD端(端(P3.0)輸入)輸入,同步移位時(shí)鐘由TXD端(端(P3.1)輸出。9.5.1 用用74LS165擴(kuò)展并行輸入口擴(kuò)展并行輸入口圖9-21串口擴(kuò)展兩個(gè)擴(kuò)展兩個(gè)8位并行輸入口。位并行輸入
53、口。74LS165是8位并行輸入串行輸出的寄存器。當(dāng)74LS165的S/ 端由高到低跳變,并行輸入端的數(shù)據(jù)被置入寄存器;當(dāng)S/ = 1,且時(shí)鐘禁止端(15腳)為低時(shí),允許TXD(P3.1)移位時(shí)鐘輸入,在該脈沖作用下,數(shù)據(jù)由右向左方向移動(dòng)。80LL81TXD與所有74LS165的的CP相連相連;RXD與74LS165的串串行輸出端行輸出端QH相連;P1.0與 S/ 相連,控制74LS165的串行移位或并行輸入;15腳接地,允許時(shí)鐘輸入。當(dāng)擴(kuò)展多個(gè)8位輸入口時(shí),相鄰兩芯片的首尾(QH與SIN)相連。 圖圖9-21 利用74LS165擴(kuò)展并行輸入口81L82【例例9-10】從16位擴(kuò)展口讀入5組數(shù)
54、據(jù)(每組2B),把它們轉(zhuǎn)存到內(nèi)部RAM 20H開(kāi)始的單元。 MOVR7,#05H;設(shè)置讀入組數(shù);設(shè)置讀入組數(shù) MOV R0,#20H;設(shè)置內(nèi)部;設(shè)置內(nèi)部RAM數(shù)據(jù)區(qū)首址數(shù)據(jù)區(qū)首址START: CLR P1.0;并行置入數(shù)據(jù),;并行置入數(shù)據(jù),S/ =0 SETB P1.0;允許串行移位,;允許串行移位,S/ =1 MOV R2,#02H;設(shè)每組字節(jié)數(shù),;設(shè)每組字節(jié)數(shù), 即即74LS165的個(gè)數(shù)的個(gè)數(shù)RXDATA:MOV SCON,#00010000H;設(shè)置串口方式;設(shè)置串口方式0,允許,允許;接收,啟動(dòng)接收過(guò)程;接收,啟動(dòng)接收過(guò)程8283WAIT:JNB RI,WAIT;未接收完一幀,循環(huán)等待;未接收完一幀,循環(huán)等待 CLR RI;RI標(biāo)志清標(biāo)志清“0”,準(zhǔn)備下次接,準(zhǔn)備下次接收收 MOV A,SBUF;讀入數(shù)據(jù);讀入數(shù)據(jù) MOV R0,A;送至;送至RAM緩沖區(qū)緩沖區(qū) INC R0;指向下一個(gè)地址;指向下一個(gè)地址 DJNZ R2,RXDATA;未讀完一組數(shù)據(jù),;未讀完一組數(shù)據(jù), 繼續(xù)繼續(xù) DJNZ R7,START;5組數(shù)據(jù)未讀完重新并行置入組數(shù)據(jù)未讀完重新并行置入 ;對(duì)數(shù)據(jù)進(jìn)行處理;對(duì)數(shù)據(jù)進(jìn)行處理8384串行接收過(guò)程采用查詢(xún)等待查詢(xún)等待的方式,如必要,可改中斷中斷方式方式。9.5.2 用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南工學(xué)院《低代碼開(kāi)發(fā)實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 部編人教版歷史七年級(jí)下冊(cè)第11課《元朝的統(tǒng)治》聽(tīng)課評(píng)課記錄
- 鄭州電子信息職業(yè)技術(shù)學(xué)院《給排水有機(jī)化學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 冀教版數(shù)學(xué)七年級(jí)下冊(cè)7.3《平行線》聽(tīng)評(píng)課記錄
- 南昌航空大學(xué)科技學(xué)院《工程生態(tài)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 紫藤蘿瀑布聽(tīng)評(píng)課記錄
- 科技園弱電項(xiàng)目施工方案
- 中南民族大學(xué)《證券投資分析實(shí)驗(yàn)實(shí)驗(yàn)教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 中圖版地理八年級(jí)上冊(cè)《第三節(jié) 聚落》聽(tīng)課評(píng)課記錄7
- 四川護(hù)理職業(yè)學(xué)院《跨文化與國(guó)際傳播》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京市房山區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末英語(yǔ)試題(含答案)
- 2025年南陽(yáng)科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 加油站復(fù)工復(fù)產(chǎn)方案
- 2025-2030年中國(guó)增韌劑(MBS高膠粉)行業(yè)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 《鋼筋焊接及驗(yàn)收規(guī)程》(JGJ18)
- 2025年高考物理復(fù)習(xí)新題速遞之萬(wàn)有引力與宇宙航行(2024年9月)
- 2025年首都機(jī)場(chǎng)集團(tuán)公司招聘筆試參考題庫(kù)含答案解析
- 2025云南省貴金屬新材料控股集團(tuán)限公司面向高校畢業(yè)生專(zhuān)項(xiàng)招聘144人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 蘇州市區(qū)2024-2025學(xué)年五年級(jí)上學(xué)期數(shù)學(xué)期末試題一(有答案)
- 暑期預(yù)習(xí)高一生物必修二知識(shí)點(diǎn)
- 醫(yī)院人體器官捐獻(xiàn)及獲取流程
評(píng)論
0/150
提交評(píng)論