




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、7.1 擴(kuò)展使用的三總線擴(kuò)展使用的三總線地址總線:地址總線:P0低8位 P2高8位數(shù)據(jù)總線:數(shù)據(jù)總線:P0控制總線控制總線:RD、WR、 ALE、 PSEN ( 讀、讀、 寫、寫、 地址鎖存允許、地址鎖存允許、 外部外部ROM讀選通讀選通)程序存儲(chǔ)器的擴(kuò)展程序存儲(chǔ)器的擴(kuò)展 在在8051單片機(jī)外部擴(kuò)展單片機(jī)外部擴(kuò)展8K字節(jié)程序存儲(chǔ)器字節(jié)程序存儲(chǔ)器2764的連接圖的連接圖數(shù)據(jù)存儲(chǔ)器擴(kuò)展數(shù)據(jù)存儲(chǔ)器擴(kuò)展在在8051單片機(jī)外部擴(kuò)展一片單片機(jī)外部擴(kuò)展一片8K字節(jié)數(shù)據(jù)存儲(chǔ)器字節(jié)數(shù)據(jù)存儲(chǔ)器6264的連接圖的連接圖7.2系統(tǒng)擴(kuò)展選址方法系統(tǒng)擴(kuò)展選址方法1 1、線選法:、線選法: 利用單片機(jī)的一根空閑高位地址線(
2、通常采用P2的某根口線)選中一個(gè)外部擴(kuò)展I/O端口芯片,若要選中某個(gè)芯片工作,將對(duì)應(yīng)芯片的片選信號(hào)端設(shè)為低電平,其它未被選中芯片的片選信號(hào)端設(shè)為高電平,從而保證只選中指定的芯片工作。 優(yōu)點(diǎn):不需要地址譯碼器,可以節(jié)省器件,減小 體積,降低成本 缺點(diǎn):可尋址的器件數(shù)目受到很大限制,而且地 址空間不連續(xù),這些都會(huì)給系統(tǒng)設(shè)計(jì)帶來 不便。線選法進(jìn)行外部擴(kuò)展舉例線選法進(jìn)行外部擴(kuò)展舉例 6264的地址范圍:的地址范圍:高高8位位地址變化范圍地址變化范圍 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1 1 0 低低8位位地址變化范圍:地址變化范圍:P0.7 P0.6 P0
3、.5 P0.4 P0.3 P0.2 P0.1 P0.0 由此可得由此可得6264的地址范圍為:的地址范圍為:C000HDFFFH。8255的地址范圍:的地址范圍: 高高8位地址變化范圍位地址變化范圍 :P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 1 0 1 1 1 1 1 1低低8位地址變化范圍:位地址變化范圍:P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1 1 1 1 1 1 由此可得由此可得8255的地址范圍為:的地址范圍為:BFFCHBFFFH。0832的地址:的地址:高高8位地址變化范圍:位地址變化范圍: P2.7
4、 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 0 1 1 1 1 1 1 1 低低8位地址變化范圍:位地址變化范圍: P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1 1 1 1 1 1 1 1由此可得由此可得0832的地址為:的地址為:7FFFH。 2 2、地址譯碼法、地址譯碼法 對(duì)于容量較大的存儲(chǔ)器或I/O端口較多的單片機(jī)應(yīng)用系統(tǒng)進(jìn)行外部擴(kuò)展,當(dāng)芯片所需要的片選信號(hào)多于可利用的高位地址線時(shí),就需要采用地址譯碼法。地址譯碼法必須采用地址譯碼器,常用的地址譯碼器有3-8譯碼器74LS138、雙2-4譯碼器74LS139等。擴(kuò)擴(kuò) 展展
5、器器 件件片內(nèi)字節(jié)地址數(shù)片內(nèi)字節(jié)地址數(shù)地址編碼地址編碼626462648K8K0000H0000H1FFFH1FFFH825582554 43FFCH3FFCH3FFFH3FFFH083208321 17FFFH7FFFH825582554 49FFCH9FFCH9FFFH9FFFH地址譯碼進(jìn)行外部擴(kuò)展舉例地址譯碼進(jìn)行外部擴(kuò)展舉例 7.3并行并行I/OI/O端口擴(kuò)展芯片端口擴(kuò)展芯片一. 8255可編程并行I/O接口擴(kuò)展芯片二. 8155可編程并行I/O接口擴(kuò)展芯片7.3.1 I/O數(shù)據(jù)的傳送方式數(shù)據(jù)的傳送方式為實(shí)現(xiàn)和不同外設(shè)的速度匹配速度匹配,須根據(jù)不同外設(shè)選擇恰當(dāng)?shù)腎/O數(shù)據(jù)傳送方式數(shù)據(jù)傳送
6、方式。I/O數(shù)據(jù)傳送方式有:同步傳送、異步傳送和中斷傳送。1同步傳送同步傳送又稱無條件傳送。當(dāng)外設(shè)速度和單片機(jī)的速度相比擬時(shí),常采用同步傳送方式,典型的同步傳送是單片機(jī)和外部數(shù)據(jù)單片機(jī)和外部數(shù)據(jù)存儲(chǔ)器之間存儲(chǔ)器之間的數(shù)據(jù)傳送數(shù)據(jù)傳送。2查詢傳送查詢傳送又稱有條件傳送(也稱異步式傳送)。通過查詢外設(shè)“準(zhǔn)備好”后,再進(jìn)行數(shù)據(jù)傳送。優(yōu)點(diǎn)是通用性好,硬件連線和查詢程序簡單,但工作效率不高。113中斷傳送中斷傳送為提高提高單片機(jī)對(duì)外設(shè)的工作效率工作效率,常采用中斷傳送方式,來實(shí)現(xiàn)I/O數(shù)據(jù)的傳送。單片機(jī)只有在外設(shè)準(zhǔn)備好后,才中斷只有在外設(shè)準(zhǔn)備好后,才中斷主程序的執(zhí)行主程序的執(zhí)行,從而進(jìn)入與外設(shè)數(shù)據(jù)傳送的
7、中斷服務(wù)子程序,進(jìn)行數(shù)據(jù)傳送。中斷服務(wù)完成后又返回主程序斷點(diǎn)處繼續(xù)執(zhí)行。采用中斷方式可大大提高工作效率提高工作效率。7.3.2 I/O接口電路接口電路常用的外圍I/O接口芯片:(1)82C55:可編程通用并行接口(3個(gè)8位I/O口);12 (2)81C55:可編程的IO/RAM擴(kuò)展接口電路(2個(gè)8位I/O口,1個(gè)6位I/O口,256RAM單元,1個(gè)14位的減法計(jì)數(shù)器)。都可以和AT89S51直接連接,接口邏輯簡單。7.3.4 AT89S51擴(kuò)展擴(kuò)展I/O接口芯片接口芯片82C55的設(shè)計(jì)的設(shè)計(jì) 先介紹可編程并行I/O接口芯片82C55的應(yīng)用特性應(yīng)用特性,然后介紹AT89S51與82C55的接口電
8、路接口電路以及軟件設(shè)計(jì)軟件設(shè)計(jì)。一、一、 82C55芯片簡介芯片簡介 Intel公司的可編程并行I/O接口芯片,3個(gè)個(gè)8位并行位并行I/O口,口,3種工作方式,種工作方式,單片機(jī)與多種外設(shè)連接時(shí)的中間接口電路。中間接口電路。引腳及內(nèi)部結(jié)構(gòu)如圖圖9-1和圖圖9-2。1382C55的引腳圖 82C55的內(nèi)部結(jié)構(gòu)14(1)引腳說明引腳說明共40個(gè)引腳個(gè)引腳,引腳功能如下引腳功能如下:D7D0:三態(tài)雙向數(shù)據(jù)線,與單片機(jī)的P0口連接,用來與單片機(jī)之間傳送數(shù)據(jù)信息。CS*:片選信號(hào)線,低有效,表示本芯片被選中。RD*:讀信號(hào)線,低有效,讀82C55端口數(shù)據(jù)的控制信號(hào)。WR*:寫信號(hào)線,低電平有效,用來向8
9、2C55寫入端口數(shù)據(jù)的控制信號(hào)。Vcc:+5V電源。15 PA7PA0:端口A輸入/輸出線。 PB7PB0:端口B輸入/輸出線。 PC7PC0:端口C輸入/輸出線。 A1、A0:地址線,用來選擇82C55內(nèi)部的4個(gè)端口。 RESET:復(fù)位引腳,高電平有效。(2)內(nèi)部結(jié)構(gòu)內(nèi)部結(jié)構(gòu) 如圖圖,3個(gè)并行數(shù)據(jù)輸入個(gè)并行數(shù)據(jù)輸入/輸出端口輸出端口,兩種工作方式兩種工作方式的控制電路,一個(gè)讀/寫控制邏輯電路和一個(gè)8位數(shù)據(jù)總線緩沖器。各部件的功能如下:16端口端口PA、PB、PC3個(gè)8位并行口PA、PB和PC,都可選為輸入/輸出工作模式,功能和結(jié)構(gòu)上有差異。PA口:口:一個(gè)8位數(shù)據(jù)輸出鎖存器和緩沖器輸出鎖存器
10、和緩沖器;一個(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)。17A組和組和B組控制電路組控制電路是兩組根據(jù)AT89S51寫入的“命令字命令字”控制82C55工作方式的控制電路。A組組控制PA口和PC口的上半部上半部(PC7PC4);B組組控制PB口和PC口的下半部下半部(PC3PC0),
11、并可用“命令字”來對(duì)端口PC的每一位實(shí)現(xiàn)按位置“1”或清“0”。數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是一個(gè)三態(tài)雙向8位緩沖器,作為82C55與系統(tǒng)總線之間的接口,用來傳送用來傳送數(shù)據(jù)、指令、控制命令以及外部狀態(tài)信息。18讀讀/寫控制邏輯電路寫控制邏輯電路接收接收AT89S51單片機(jī)發(fā)來單片機(jī)發(fā)來的控制信號(hào)控制信號(hào)RD* 、WR* 、RESET、地址信號(hào)地址信號(hào)A1、A0等,然后根據(jù)控制信號(hào)的要求,端口數(shù)據(jù)被AT89S51單片機(jī)讀出,或者將AT89S51單片機(jī)送來的數(shù)據(jù)寫入端口。各端口工作狀態(tài)與控制信號(hào)的關(guān)系如表表9-1。1920RDWRCS二、二、 工作方式選擇控制字及端口工作方式選擇控
12、制字及端口PC置位置位/復(fù)位控制字復(fù)位控制字可向向82C55控制寄存器寫入兩種控制寄存器寫入兩種不同的控制字不同的控制字。1工作方式選擇控制字工作方式選擇控制字82C55有3種種基本工作方式:(1)方式)方式0基本輸入/輸出;(2)方式)方式1選通輸入/輸出;(3)方式)方式2雙向傳送(僅PA口有此工作方式)。3種工作方式方式控制字來決定。格式格式如圖圖。最高位D7=1,為本方式控制字的標(biāo)志標(biāo)志,以便與另一控制字相區(qū)別(最高位D7 = 0)。212282C55的方式控制字格式PCPC口分兩部分口分兩部分,隨,隨PAPA口口稱為稱為A A組組,隨,隨PBPB口口稱為稱為B B組組。其中。其中PA
13、PA口口可工作于方式可工作于方式0 0、1 1和和2 2,而,而PBPB口口只能工作在只能工作在方式方式0 0和和1 1?!纠纠?-57-5】AT89S51單片機(jī)向單片機(jī)向82C55的控制字寄存器的控制字寄存器(假設(shè)假設(shè)端口地址為端口地址為FF7FH)寫入工作方式控制字寫入工作方式控制字95H,根據(jù)圖,根據(jù)圖9-3所所示,可將示,可將82C55編程設(shè)置為:編程設(shè)置為:PA口方式口方式0輸入,輸入,PB口方式口方式1輸出,輸出,PC口的上半部分(口的上半部分(PC7PC4)輸出,)輸出,PC口的下半口的下半部分(部分(PC3PC0)輸入。)輸入。#include #define COM8255
14、 XBYTE0 xff7f/*0 xff7f為為82C55的控制寄存器地址的控制寄存器地址*/#define uchar unsigned charvoid init8255(void)23COM 8255=0 x95;/*工作方式選擇控制字寫入工作方式選擇控制字寫入82C55的控制的控制寄存器寄存器*/2PC口按位置位口按位置位/復(fù)位控制字復(fù)位控制字 82C55的另一個(gè)控制字為的另一個(gè)控制字為PC口按位置位口按位置位/復(fù)位控制字。即復(fù)位控制字。即PC口口8位中的任何一位,可用一個(gè)寫入位中的任何一位,可用一個(gè)寫入82C55控制口的置位控制口的置位/復(fù)位復(fù)位控制字來對(duì)控制字來對(duì)PC口按位置口按位
15、置“1”或清或清“0”。該功能主要用于位控。該功能主要用于位控。PC口按位置位口按位置位/復(fù)位控制字的格式如復(fù)位控制字的格式如圖圖所示。所示。 【例【例7-6】 AT89S51單片機(jī)向單片機(jī)向82C55的控制字寄存器寫入工的控制字寄存器寫入工作方式控制字作方式控制字07H,則,則PC3置置1;08H寫入控制口,則寫入控制口,則PC4清清0。假設(shè)假設(shè)82C55的端口寄存器的地址為的端口寄存器的地址為FF7FH,程序段如,程序段如下:下:#include #define COM 8255 XBYTE0 xff7f /*0 xff7f為為82C55的控制寄存器地址的控制寄存器地址*/void ini
16、t8255(void) COM 8255=0 x07;/*PC置置/復(fù)位控制字寫控制寄存器,復(fù)位控制字寫控制寄存器,PC3=1 */COM 8255=0 x08;/*PC置置/復(fù)位控制字寫入控制寄存器,復(fù)位控制字寫入控制寄存器,PC4=0*/ 25圖圖 PC口按位置位/復(fù)位控制字格式三三 82C55的的3種工作方式種工作方式1方式方式0 基本輸入基本輸入/輸出方式輸出方式。T89S51可對(duì)82C55進(jìn)行I/O數(shù)據(jù)的無條件傳送無條件傳送。 例如,例如,AT89S51單片機(jī)從82C55的某一輸入口讀入一組開關(guān)狀態(tài),從82C55輸出控制一組指示燈的亮、滅。并不需并不需要任何條件,要任何條件,外設(shè)I/
17、O數(shù)據(jù)可在82C55的各端口得到鎖存和緩沖。因此,方式方式0稱為基本輸入基本輸入/輸出方式輸出方式。 方式0下,3個(gè)端口都可以由軟件設(shè)置為輸入或輸出,不需要應(yīng)答聯(lián)絡(luò)信號(hào)。方式0基本功能基本功能:27 (1)具有兩個(gè)8位端口(PA、PB)和兩個(gè)4位端口(PC的上半部分和下半部分); (2)任何端口都可以設(shè)定為輸入或輸出,各端口的輸入、輸出共有16種組合。 PA口、口、PB口和口和PC口口均可設(shè)定為均可設(shè)定為方式方式0,并可根據(jù)需要,向控制寄存器寫入工作方式控制字,規(guī)定各端口為輸入或輸出方式?!纠纠?-7】假設(shè)假設(shè)82C55的控制字寄存器端口地址為的控制字寄存器端口地址為FF7FH,則令則令PA
18、口和口和PC口的高口的高4位工作在方式位工作在方式0輸出,輸出,PB口和口和PC口口的低的低4位工作于方式位工作于方式0輸入,初始化程序如下:輸入,初始化程序如下:uchar xdata COM8255 _at_0 xff7f/*0 xff7f為82C55的控制寄存器地址*/void init8255(void) COM8255=0 x83;/*工作方式選擇控制字寫入控制寄存器*/292 2方式方式1 1應(yīng)答聯(lián)絡(luò)應(yīng)答聯(lián)絡(luò)的輸入的輸入/輸出工作方式輸出工作方式。PA口、PB口皆可設(shè)成這種工作方式。方式1下,82C55的PA口和口和PB口口通常用于I/O數(shù)據(jù)的傳送,PC口口用作PA口和PB口的應(yīng)答
19、聯(lián)絡(luò)信號(hào)線應(yīng)答聯(lián)絡(luò)信號(hào)線,以實(shí)現(xiàn)采用中斷方式來傳送I/O數(shù)據(jù)。PC口的PC7PC0的應(yīng)答聯(lián)絡(luò)線是規(guī)定好的應(yīng)答聯(lián)絡(luò)線是規(guī)定好的,其各位分配如圖如圖所示,圖中,標(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)與工作原理工作原理。30圖圖 方式方式1輸入應(yīng)答聯(lián)絡(luò)信號(hào)輸入應(yīng)答聯(lián)絡(luò)信號(hào)(1)方式)方式1輸入輸入 方式1輸入應(yīng)答聯(lián)絡(luò)信號(hào)如圖圖。其中STB* 與IBF為一對(duì)一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào)。各應(yīng)答聯(lián)絡(luò)信號(hào)應(yīng)答聯(lián)絡(luò)信號(hào)的功能功能如下。STB*:是由輸入外設(shè)輸入外設(shè)發(fā)給82C55的選通輸入信號(hào)選通輸入信號(hào),低有效。IBF:輸入緩沖器滿,應(yīng)答信號(hào)。82C55
20、通知外設(shè)已收到外設(shè)發(fā)來的且已進(jìn)入輸入緩沖器的數(shù)據(jù),高有效。INTR:由82C55向AT89S51單片機(jī)發(fā)出的中斷請(qǐng)求信號(hào),高有效。INTEA:控制PA口是否允許中斷口是否允許中斷的控制信號(hào),由PC4的置位/復(fù)位來控制。32INTEB:控制PB口是否允許中斷的控制信號(hào),由PC2的置位/復(fù)位來控制。方式1輸入如圖圖。下面以PA口的方式1輸入為例,介紹方方式式1輸入的工作過程。輸入的工作過程。 當(dāng)外設(shè)向82C55輸入一個(gè)數(shù)據(jù)并送到PA7PA0時(shí),外設(shè)自動(dòng)在STB*上向82C55發(fā)送一個(gè)低電平選通信號(hào)。 82C55收到STB*后,先把PA7PA0輸入的數(shù)據(jù)存入存入PA口的輸入數(shù)據(jù)緩沖/鎖存器,然后使輸
21、出應(yīng)答線IBF變?yōu)楦撸ㄖ斎胪庠O(shè),PA口已收到它送來的數(shù)據(jù)。 82C55檢測到STB*由低電平變?yōu)楦唠娖?、IBFA(PC5)為“1”狀態(tài)和中斷允許INTEA(PC4)=1時(shí),使INTRA(PC3)33圖圖 PA口方式1輸入工作過程示意圖變?yōu)楦唠娖阶優(yōu)楦唠娖剑騿纹瑱C(jī)發(fā)出中斷請(qǐng)求。INTEA的狀態(tài)可由用戶通過指令對(duì)PC4的單一置位/復(fù)位控制字來控制。 單片機(jī)響應(yīng)中斷后,進(jìn)入中斷服務(wù)子程序進(jìn)入中斷服務(wù)子程序來讀取讀取PA口口的外設(shè)發(fā)來的輸入數(shù)據(jù)的外設(shè)發(fā)來的輸入數(shù)據(jù)。當(dāng)輸入數(shù)據(jù)被單片機(jī)讀走后,82C55撤銷撤銷INTRA上的中斷請(qǐng)求上的中斷請(qǐng)求,并使IBFA變低低,通知輸入通知輸入外設(shè)外設(shè)可傳送下
22、一個(gè)輸入數(shù)據(jù)。35(2)方式)方式1輸出輸出 方式1輸出時(shí),應(yīng)答聯(lián)絡(luò)信號(hào)如圖圖。OBF*與與ACK* 構(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)功能如下。OBF*:端口輸出緩沖器滿信號(hào),低有效,它是82C55發(fā)給外設(shè)的聯(lián)絡(luò)信號(hào),表示外設(shè)可以將數(shù)據(jù)取走。ACK*:外設(shè)應(yīng)答信號(hào),低有效。表示外設(shè)已把82C55發(fā)出的數(shù)據(jù)取走。INTR:中斷請(qǐng)求信號(hào),高有效。表示該數(shù)據(jù)已被外設(shè)取走,向單片機(jī)單片機(jī)發(fā)中斷請(qǐng)求,如果AT89S51響應(yīng)該中斷,在中斷服務(wù)子程序中向82C55寫入要輸出的下一數(shù)據(jù)。36圖圖 方式1輸出應(yīng)答聯(lián)絡(luò)信號(hào)INTEA控制PA口是否允許中斷,由PC6控制。INTEB控制PB口是否允
23、許中斷,由PC2控制。方式1輸出工作示意如圖圖。以PB口的方式口的方式1輸出輸出為例,介紹工作過程。 AT89S51可以通過“MOVX Ri,A”指令把輸出數(shù)據(jù)送到B口的輸出數(shù)據(jù)鎖存器,82C55收到后便令輸出緩沖器滿引腳 OBF* (PC1)變低,以通知輸出設(shè)備輸出的數(shù)據(jù)已在PB口的PB7PB0上。 輸出外設(shè)收到OBF*上低電平后,先從PB7PB0上取走輸出數(shù)據(jù),然后使ACKB* 變低電平,以通知82C55輸出外設(shè)已收到82C55輸出的數(shù)據(jù)。38 圖圖 PB口方式1輸出工作過程示意圖39 82C55從應(yīng)答輸入線從應(yīng)答輸入線ACKB*收到低電平后就對(duì)收到低電平后就對(duì)OBF*和和中斷允許控制位中
24、斷允許控制位INTEB狀態(tài)進(jìn)行檢測,若皆為高電平,則狀態(tài)進(jìn)行檢測,若皆為高電平,則INTRB變?yōu)楦唠娖阶優(yōu)楦唠娖蕉騿纹瑱C(jī)請(qǐng)求中斷。而向單片機(jī)請(qǐng)求中斷。 AT89S51單片機(jī)單片機(jī)響應(yīng)響應(yīng)INTRB上中斷請(qǐng)求后便可通過中斷上中斷請(qǐng)求后便可通過中斷服務(wù)程序把服務(wù)程序把下一個(gè)輸出數(shù)據(jù)下一個(gè)輸出數(shù)據(jù)送到送到PB口的輸出數(shù)據(jù)鎖存器。重口的輸出數(shù)據(jù)鎖存器。重復(fù)上述過程,完成數(shù)據(jù)的輸出。復(fù)上述過程,完成數(shù)據(jù)的輸出?!纠?-8】設(shè)置設(shè)置PA口為應(yīng)答方式輸入,口為應(yīng)答方式輸入,PB口為應(yīng)答方式輸口為應(yīng)答方式輸出。假設(shè)出。假設(shè)82C55的端口寄存器的地址為的端口寄存器的地址為FF7FH,程序如下:程序如下:u
25、char xdata COM8255 _at_0 xff7f/*0 xff7f為為82C55的控制寄存器地址的控制寄存器地址*/40void init8255(void) COM8255=0 xb4;/*工作方式選擇控制字寫入控制寄存器*/ 3方式方式2只有PA口有方式2。圖圖 為工作示意圖。方式方式2是是方式方式1輸入輸入和和輸出輸出組合組合。PA7PA0為雙向I/O總線。當(dāng)作為輸入口使用,PA7PA0受STBA 和IBFA控制;當(dāng)作輸出端口輸出端口使用,PA7PA0受OBFA*、ACKA* 控制。圖圖9-9 PA口在方式2下的工作示意圖方式方式2 2特別適用于像鍵盤、顯示器一類的外部設(shè)備特
26、別適用于像鍵盤、顯示器一類的外部設(shè)備,因?yàn)椋驗(yàn)橛袝r(shí)需要把鍵盤上輸入的編碼信號(hào)通過有時(shí)需要把鍵盤上輸入的編碼信號(hào)通過PAPA口送給單片機(jī),有口送給單片機(jī),有時(shí)又需把單片機(jī)發(fā)出的數(shù)據(jù)通過時(shí)又需把單片機(jī)發(fā)出的數(shù)據(jù)通過PAPA口送給顯示器顯示??谒徒o顯示器顯示。7.3.4 AT89S51單片機(jī)與單片機(jī)與82C55的接口設(shè)計(jì)的接口設(shè)計(jì)1硬件接口電路硬件接口電路如圖為AT89S51擴(kuò)展一片82C55的電路。P0.1、P0.0經(jīng)經(jīng)74LS373與與82C55的的A1、A0連接連接;P0.7經(jīng)74LS373與片選端CS*相連,其它地址線懸空;82C55的控制線RD*、WR* 直接與單片機(jī)RD*和和 WR*端
27、相連;單片機(jī)數(shù)據(jù)總線P0.0P0.7與82C55數(shù)據(jù)線D0D7連接。442確定確定82C55端口地址端口地址圖圖中中82C5582C55只有只有3 3條線與條線與AT89S51AT89S51地址線相接,片選端地址線相接,片選端 CSCS* *、端口地址選擇端端口地址選擇端A1A1、A0A0,分別接于,分別接于P0.7P0.7、P0.1P0.1和和P0.0P0.0,其他,其他地址線全懸空。顯然只要保證地址線全懸空。顯然只要保證P0.7P0.7為低為低電平時(shí),電平時(shí),即可選中即可選中82C5582C55;若;若P0.1P0.1、P0.0P0.0再為再為“00”00”,則選中,則選中82C5582C
28、55的的PAPA口。同口。同理理P0.1P0.1、P0.0P0.0為為“01”01”、“10”10”、“11”11”分別選中分別選中PBPB口、口、PCPC口及控制口??诩翱刂瓶凇H舳丝诘刂酚萌舳丝诘刂酚?616位表示,其他無用端全設(shè)為位表示,其他無用端全設(shè)為“1”1”(也可(也可把無用端全設(shè)為把無用端全設(shè)為“0”0”),則),則82C5582C55的的A A、B B、C C及控制口及控制口地址地址分別為分別為FF7CHFF7CH、FF7DHFF7DH、FF7EHFF7EH、FF7FHFF7FH。45 圖圖 AT89S51單片機(jī)擴(kuò)展一片82C55的接口電路46如果沒有用到的位取如果沒有用到的位
29、取“0”0”,則,則4 4個(gè)端口地址分別為個(gè)端口地址分別為0000H0000H、0001H0001H、0002H0002H、0003H0003H,只要保證只要保證 、A1A1、A0A0的狀態(tài),無用位的狀態(tài),無用位設(shè)為設(shè)為“0”0”或或“1”1”均可。均可。3軟件編程軟件編程在實(shí)際設(shè)計(jì)中,須根據(jù)外設(shè)的類型選擇82C55的操作方式,并在初始化程序中把相應(yīng)控制字寫入控制口在初始化程序中把相應(yīng)控制字寫入控制口。下面根據(jù)圖圖9-10,介紹對(duì)82C55進(jìn)行操作的編程?!纠纠?-9】根據(jù)上例根據(jù)上例圖圖,要求,要求82C55的的PC口工作在方式口工作在方式0,并從并從PC5腳輸出連續(xù)的方波信號(hào),頻率為腳輸
30、出連續(xù)的方波信號(hào),頻率為500Hz,參考程序,參考程序如下:如下:47#include #include #define PA8255 XBYTE0 xff7c/*0 xff7c為82C55 PA端口地址*/#define PB8255 XBYTE0 xff7d/*0 xff7d為82C55 PB端口地址*/#define PC8255 XBYTE0 xff7e/*0 xff7e為82C55 PC端口地址*/#define COM8255 XBYTE0 xff7f/*0 xff7f為82C55控制寄存器地址*/#define uchar unsigned charextern void del
31、ay_1000us ( );48void init8255(void) COM8255=0 x85;/*工作方式選擇控制字寫入控制寄存器*/void main(void) init8255(void)for(;)COM8255=0 x0b;/*PC5腳為高電平*/delay_1000us ( );/*高電平持續(xù)1000微秒*/COM8255=0 x0a;/*PC5腳為低電平*/delay_1000us ( ) ;/*低電平持續(xù)1000微秒*/ 8155 8155可編程并行可編程并行I/OI/O接口擴(kuò)展芯片接口擴(kuò)展芯片(1 1)81558155內(nèi)部結(jié)構(gòu)及引腳功能內(nèi)部結(jié)構(gòu)及引腳功能(2 2)815
32、58155的控制字格式的控制字格式XTIMINTEBBBFINTRBINTEAABFINTRAA口 中 斷 請(qǐng) 求 標(biāo) 志A口 緩 沖 器 滿 /空 標(biāo) 志允 許 A口 中 斷 標(biāo) 志B口 中 斷 請(qǐng) 求 標(biāo) 志B口 緩 沖 器 滿 /空 標(biāo) 志D7D6D5D4D3D2D1D0允 許 B口 中 斷 標(biāo) 志定 時(shí) 器 中 斷 標(biāo) 志 , 計(jì) 數(shù) 滿 該 位 置 “ 1” 中 斷 請(qǐng) 求 , 復(fù) 位 后 為 “ 0”空(3 3)81558155的狀態(tài)字格式的狀態(tài)字格式 8155片內(nèi)可編程定時(shí)/計(jì)數(shù)器由兩個(gè)8位寄存器組成,低8位和高6位存放計(jì)數(shù)初值,最高2位控制定時(shí)器的工作方式 (4 4)81558
33、155的定時(shí)器使用的定時(shí)器使用M2M1 T13 T12 T11 T10 T9T8D7D6D5D4D3D2D1D0M2M1 T13 T12 T11 T10 T9T8D7D6D5D4D3D2D1D0定時(shí)方式計(jì)數(shù)初值高6位計(jì)數(shù)初值低8位(5 5)81558155的端口地址分配的端口地址分配AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0選選 中中 的的 寄寄 存存 器器 0 0 0 0 0 0命令命令/ /狀態(tài)寄存器狀態(tài)寄存器 0 0 1 0 0 1PAPA口口 0 1 0 0 1 0PBPB口口 0 1 1 0 1 1PC
34、PC口口 1 0 0 1 0 0定時(shí)計(jì)數(shù)器的低定時(shí)計(jì)數(shù)器的低8 8位寄存器位寄存器 1 0 1 1 0 1定時(shí)計(jì)數(shù)器的高定時(shí)計(jì)數(shù)器的高6 6位寄存器及位寄存器及工作方式字工作方式字(2(2位位) )81558155接口擴(kuò)展舉例接口擴(kuò)展舉例(1 1)82558255與單片機(jī)連接圖與單片機(jī)連接圖 81558155的端口地址編碼為:的端口地址編碼為:命令/狀態(tài)寄存器地址:7F00H,片內(nèi)RAM字節(jié)地址: 7E00H7EFFH,PA口地址: 7F01H,PB口地址: 7F02H,PC口地址: 7F03H,定時(shí)計(jì)數(shù)器低位地址: 7F04H,定時(shí)計(jì)數(shù)器高位地址: 7F05H。 若要求若要求81558155
35、的的PAPA、PBPB作為基本輸出口,作為基本輸出口,PCPC作為基本輸作為基本輸入口,不允許中斷,不啟動(dòng)定時(shí)計(jì)數(shù)器,則命令字為入口,不允許中斷,不啟動(dòng)定時(shí)計(jì)數(shù)器,則命令字為03H03H,初始化編程下:,初始化編程下: MOV DPTR, #7F00H MOV DPTR, #7F00H ;81558155命令口地址命令口地址 MOV A, #03H MOV A, #03H MOVX DPTR, A MOVX DPTR, A ;寫入命令字;寫入命令字(2 2) 81558155初始化初始化 I2C總線是PHILIPS公司開發(fā)的一種簡單、雙向二線制同步串行總線, 它只需要兩根線(串行時(shí)鐘線和串行數(shù)
36、據(jù)線)即可在連接于總線上的器件之間傳送信息。 主要特性如下:總線只有兩根線:串行時(shí)鐘線和串行數(shù)據(jù)線; 每個(gè)連到總線上的器件都可由軟件以唯一的地址尋址,并建立簡單的主/從關(guān)系, 主器件既可作為發(fā)送器, 也可作為接收器;它是一個(gè)真正的多主總線, 帶有競爭檢測和仲裁電路, 可使多主機(jī)任意同時(shí)發(fā)送而不破壞總線上的數(shù)據(jù);同步時(shí)鐘允許器件通過總線以不同的波特率進(jìn)行通信;同步時(shí)鐘可以作為停止和重新啟動(dòng)串行口發(fā)送的握手方式;連接到同一總線的集成電路數(shù)只受400PF的最大總線電容的限制。利用利用I2CI2C總線進(jìn)行系統(tǒng)擴(kuò)展總線進(jìn)行系統(tǒng)擴(kuò)展 I2C總線接口的電氣結(jié)構(gòu)如圖所示, 組成I2C總線的串行數(shù)據(jù)線SDA和串
37、行時(shí)鐘線SCL 必須經(jīng)過上拉電阻Rp接到正電源上, 連接到總線上的器件的輸出級(jí)必須為“開漏”或“開集” 的形式,以便完成“線與”功能。SDA和SCL都為雙向I/O口線, 總線空閑時(shí)皆為高電平。 總線上數(shù)據(jù)傳送最高速率可達(dá)100Kbit/s。I2CI2C總線的電氣結(jié)構(gòu)總線的電氣結(jié)構(gòu) I2C總線可以構(gòu)成多主數(shù)據(jù)傳送系統(tǒng), 但只有帶CPU的器件可以成為主器件。 主器件發(fā)送時(shí)鐘、啟動(dòng)位、數(shù)據(jù)工作方式, 從器件則接收時(shí)鐘及數(shù)據(jù)工作方式。接收或發(fā)送則根據(jù)數(shù)據(jù)的傳送方向決定。I2C總線上數(shù)據(jù)傳送時(shí)的啟動(dòng)、結(jié)束和有效狀態(tài)都由SDA、SCL的電平狀態(tài)決定, 在I2C總線規(guī)程中啟動(dòng)和停止條件規(guī)定如下:啟動(dòng)條件:
38、在SCL為高電平時(shí), SDA出現(xiàn)一個(gè)下降沿則啟動(dòng)I2C總線。 停止條件: 在SCL為高電平時(shí), SDA出現(xiàn)一個(gè)上升沿則停止使用I2C總線。 在啟動(dòng)和停止條件之間可轉(zhuǎn)送的數(shù)據(jù)不受限制,但每個(gè)字節(jié)必須為8位,先傳送最高位, 在每個(gè)字節(jié)之后必須跟一個(gè)響應(yīng)位。主器件收發(fā)每個(gè)字節(jié)后產(chǎn)生一個(gè)時(shí)鐘應(yīng)答脈沖, 在這期間, 發(fā)送器必須保證 SDA為高, 由接收器將SDA拉低, 稱為應(yīng)答信號(hào)(ACK)。主器件為接收器時(shí), 在接收了最后一個(gè)字節(jié)之后不發(fā)應(yīng)答信號(hào), 也稱為非應(yīng)答信號(hào)(NOT ACK)。I2CI2C總線的數(shù)據(jù)傳輸總線的數(shù)據(jù)傳輸 總線中每個(gè)器件都有自己唯一確定的地址, 啟動(dòng)條件后主機(jī)發(fā)送的第一個(gè)字節(jié)就是被讀寫的從器件地址, 其中第8位為方向位, “0”(W)表示主器件發(fā)送,“1”(R)表示主器件接收??偩€上每個(gè)器件在啟動(dòng)條件后都把自己的地址與前7位相比較, 如相同則器件被選中, 產(chǎn)生應(yīng)答, 并根據(jù)讀寫位決定在數(shù)據(jù)傳送中是接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于水電安裝合同范本
- 出國保姆合同范本
- 拌合站加工合同范本
- 萬科景觀合同范本
- 北京市裝飾合同范例
- 冷庫玉米加工合同范本
- 合作送外賣合同范例
- 公司結(jié)算合同范本
- 地基注漿加固合同范本
- 光伏發(fā)電代理合同范本
- 2024年全國體育單招英語考卷和答案
- 河北省邯鄲市磁縣2024屆中考數(shù)學(xué)模試卷含解析
- 2024上海市高三英語一模各區(qū)《完形填空》分類匯編
- 2020-2024年安徽省初中學(xué)業(yè)水平考試中考?xì)v史試卷(5年真題+答案解析)
- 企業(yè)解散清算公告模板
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫帶答案
- GB/T 43977-2024電子氣體八氟環(huán)丁烷
- 2024年廊坊市財(cái)信投資集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 以案促改整改方案整改目標(biāo)
- 2024年江西應(yīng)用工程職業(yè)學(xué)院單招職業(yè)技能測試題庫及答案解析
- (正式版)SHT 3224-2024 石油化工雨水監(jiān)控及事故排水儲(chǔ)存設(shè)施設(shè)計(jì)規(guī)范
評(píng)論
0/150
提交評(píng)論