第9章 80C51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)_第1頁
第9章 80C51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)_第2頁
第9章 80C51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)_第3頁
第9章 80C51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)_第4頁
第9章 80C51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第9章80C51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)

2023/9/211內(nèi)容單片機(jī)系統(tǒng)擴(kuò)展概述9.1數(shù)據(jù)存儲(chǔ)器的擴(kuò)展9.2并行I/O口的擴(kuò)展9.3鍵盤接口技術(shù)9.4LCD液晶顯示器與單片機(jī)的接口9.52023/9/212單片微機(jī),在一片芯片上集成了計(jì)算機(jī)的基本功能部件,理應(yīng)獨(dú)立作為計(jì)算機(jī)使用,更好地發(fā)揮其體積小、重量輕、價(jià)格低、耗電少的優(yōu)點(diǎn)。然而,在組成計(jì)算機(jī)系統(tǒng)時(shí),有時(shí)在使用過程中會(huì)嫌單片機(jī)本身的功能部件容量還不夠,這就需要予以擴(kuò)展。9.1單片機(jī)系統(tǒng)擴(kuò)展概述2023/9/213復(fù)習(xí):最小應(yīng)用系統(tǒng)

1.片內(nèi)帶程序存儲(chǔ)器的單片機(jī)的最小應(yīng)用系統(tǒng)

(1)8051、8751、8052本身,

(2)時(shí)鐘電路,

(3)復(fù)位電路即可構(gòu)成最小應(yīng)用系統(tǒng)。接高電平,系統(tǒng)就可以工作。如下頁圖所示。該系統(tǒng)的特點(diǎn)如下:(1)系統(tǒng)有大量的I/O線可供用戶使用:P0、P1、P2、P3四個(gè)口都可以作為I/O口使用。

(2)內(nèi)部存儲(chǔ)器的容量有限,只有128B的RAM和4KB的程序存儲(chǔ)器。2023/9/2148051/8751最小應(yīng)用系統(tǒng)2023/9/215

2.片內(nèi)無程序存儲(chǔ)器的單片機(jī)的最小應(yīng)用系統(tǒng)

(1)8031、8032本身,

(2)時(shí)鐘電路,

(3)復(fù)位電路

(4)片外存儲(chǔ)器芯片

(5)地址鎖存器構(gòu)成最小應(yīng)用系統(tǒng)。接低電平,ALE接地址鎖存器,接存儲(chǔ)器的輸出允許端。2023/9/2168031最小應(yīng)用系統(tǒng)PSENOE2023/9/217

擴(kuò)展一般有以下幾方面的內(nèi)容:

①外部程序存儲(chǔ)器的擴(kuò)展;②外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展;③輸入/輸出接口的擴(kuò)展;④管理功能器件的擴(kuò)展(如定時(shí)/計(jì)數(shù)器、鍵盤/顯示器、中斷控制器等)。擴(kuò)展的基本方法:

使用TTL中小規(guī)模集成電路進(jìn)行擴(kuò)展。9.1.1單片機(jī)系統(tǒng)擴(kuò)展資源分類2023/9/2189.1.2單片機(jī)系統(tǒng)擴(kuò)展結(jié)構(gòu)80C51單片機(jī)系統(tǒng)擴(kuò)展采用三總線結(jié)構(gòu),即地址總線、數(shù)據(jù)總線和控制總線。AT89C51單片機(jī)擴(kuò)展時(shí)系統(tǒng)總線結(jié)構(gòu)圖如圖9-1所示。2023/9/219系統(tǒng)擴(kuò)展的首要問題:

構(gòu)造系統(tǒng)總線,然后再往系統(tǒng)總線上“掛”存儲(chǔ)器芯片或I/O接口芯片,“掛”存儲(chǔ)器芯片就是存儲(chǔ)器擴(kuò)展,“掛”I/O接口芯片就是I/O擴(kuò)展。

80C51由于受引腳數(shù)目的限制,數(shù)據(jù)線和低8位地址線復(fù)用。為了將它們分離出來,需要外加地址鎖存器,從而構(gòu)成與一般CPU相類似的片外三總線,見圖9-1。2023/9/2110

地址總線(AB):

由P2口提供高8位地址線,此口具有輸出鎖存的功能,能保留地址信息。由P0口提供低8位地址線。

數(shù)據(jù)總線(DB):

由P0口提供。此口是雙向、輸入三態(tài)控制的8位通道口。

控制總線(CB):

擴(kuò)展系統(tǒng)時(shí)常用的控制信號(hào)為:

ALE——地址鎖存信號(hào),用以實(shí)現(xiàn)對(duì)低8位地址的鎖存。

——片外程序存儲(chǔ)器取指信號(hào)。

——片外數(shù)據(jù)存儲(chǔ)器讀信號(hào)。

——片外數(shù)據(jù)存儲(chǔ)器寫信號(hào)。2023/9/2111

地址鎖存器一般采用74LS373,采用74LS373的地址總線的擴(kuò)展電路如下圖2023/9/21129.2數(shù)據(jù)存儲(chǔ)器的擴(kuò)展

目前大多數(shù)單片機(jī)都含有大容量FlashEEPROM,其存儲(chǔ)單元數(shù)量都達(dá)到了64KB,能滿足絕大多數(shù)用戶程序存儲(chǔ)的需要,故很少再進(jìn)行片外程序存儲(chǔ)器的擴(kuò)展。但單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器容量較小,其中一些已作為工作寄存器、堆棧和數(shù)據(jù)緩沖器使用,當(dāng)控制系統(tǒng)需要暫存的數(shù)據(jù)量較大時(shí),片內(nèi)RAM常常不夠用,常需進(jìn)行數(shù)據(jù)存儲(chǔ)器的擴(kuò)展。若要擴(kuò)展片外程序存儲(chǔ)器,方法與數(shù)據(jù)存儲(chǔ)器擴(kuò)展相類似,不同之處僅在于控制信號(hào)的接法不一樣,擴(kuò)展數(shù)據(jù)存儲(chǔ)器用單片機(jī)的RD和WR信號(hào)直接與數(shù)據(jù)存儲(chǔ)器的OE端和WE端相連,發(fā)送讀、寫控制信號(hào),擴(kuò)展程序存儲(chǔ)器則用單片機(jī)的PSEN信號(hào)與程序存儲(chǔ)器的OE端相連,發(fā)送讀控制信號(hào)。此處只介紹數(shù)據(jù)存儲(chǔ)器的擴(kuò)展。2023/9/21139.2.1數(shù)據(jù)存儲(chǔ)器芯片典型型號(hào)有:6116、6264、62128、62256。+5V電源供電,雙列直插,6116為24引腳封裝,6264、62128、62256為28引腳封裝。6116:2KB62128:16KB6264:8KB62256:32KB2023/9/21142023/9/21159.2.2地址鎖存器芯片74LS373的結(jié)構(gòu)及引腳1.鎖存器74LS3732023/9/2116

2.鎖存器8282

功能及內(nèi)部結(jié)構(gòu)與74LS373完全一樣,只是其引腳的排列與74LS373不同,8282的引腳如下圖。2023/9/2117引腳的排列為繪制印刷電路板時(shí)的布線提供了方便。2023/9/21183.鎖存器74LS573

輸入的D端和輸出的Q端也是依次排在芯片的兩側(cè),與鎖存器8282一樣,為繪制印刷電路板時(shí)的布線提供了方便。2023/9/21199.2.3數(shù)據(jù)存儲(chǔ)器的擴(kuò)展電路

存儲(chǔ)芯片地址線低8位A7-A0地址線高(n-8)位An-1-A8數(shù)據(jù)線D7-D0片選信號(hào)CE讀允許OE、寫允許WE接地需要考慮與80C51相連的存儲(chǔ)芯片引腳:80C51CPU(1)地址總線P0.0-P0.7(2)地址總線P2.0-P2.n-9(3)數(shù)據(jù)總線的P0.0-P0.7(4)EA接+5V(5)(6)ALE74LS37374LS373G端2023/9/2120圖9-7AT89C51外擴(kuò)一片6264的電路連接例9-1對(duì)AT89C51單片機(jī)外擴(kuò)一片8kB的RAM6264芯片。解:擴(kuò)展的電路連接如圖9-7所示。由于只有一片存儲(chǔ)器芯片,所以將6264的片選直接接地。6264芯片中存儲(chǔ)單元的地址變化范圍為:xxx0000000000000B~xxx1111111111111B,即單片機(jī)地址線的P2.4~P2.0與P0.7~P0.0發(fā)出的信號(hào)可以從全0變化到全1,P2.7~P2.5因?yàn)闆]有與6264相連,所以狀態(tài)任意。如果將任意狀態(tài)x都看成0,則6264的地址范圍為:0000000000000000B~0001111111111111B,即0000H~1FFFH。2023/9/21219.2.4存儲(chǔ)器的編址存儲(chǔ)器擴(kuò)展的核心問題是存儲(chǔ)器的編址問題。所謂編址,就是利用單片機(jī)系統(tǒng)提供的地址總線,通過適當(dāng)?shù)倪B接,使系統(tǒng)中每一個(gè)外擴(kuò)芯片的每一個(gè)單元都有一個(gè)唯一的地址,以便保證同一時(shí)刻只能有一個(gè)外設(shè)使用數(shù)據(jù)總線與CPU交換數(shù)據(jù),保證系統(tǒng)有條不紊地工作。存儲(chǔ)器芯片內(nèi)部有多個(gè)可尋址單元,因此編址涉及兩方面問題:一個(gè)是片內(nèi)單元的編址,稱為片內(nèi)尋址,由芯片內(nèi)部的地址譯碼電路完成,只需將存儲(chǔ)器芯片自身的地址線與單片機(jī)的地址線按位號(hào)對(duì)應(yīng)相連;另一個(gè)是存儲(chǔ)器芯片的片選/使能信號(hào)產(chǎn)生問題,稱為芯片尋址,由單片機(jī)剩余的地址線通過片外譯碼電路完成。

編址技術(shù)就是研究系統(tǒng)地址空間的分配問題,即如何產(chǎn)生芯片片選/使能信號(hào)的問題。存儲(chǔ)器存在編址問題,本章后面所講的各種外擴(kuò)芯片也都存在編址問題。2023/9/2122通常,產(chǎn)生外擴(kuò)芯片片選信號(hào)的方法有2種:線選法和譯碼法。1.線選法

線選法是指直接將單片機(jī)高位地址線作為外擴(kuò)芯片的片選信號(hào),即把單片機(jī)選定的高位地址線與外擴(kuò)芯片的片選/使能端(或)直接連接。例9-2設(shè)計(jì)兩片RAM6264芯片與AT89C51單片機(jī)的連接電路,兩片6264芯片的片選信號(hào)采用線選法產(chǎn)生,計(jì)算存儲(chǔ)器的地址范圍。解:6264地址線有13條(A12~A0),因此低位地址線為A12~A0,高位地址線為A15~A13。片內(nèi)地址范圍均為0000H~1FFFH。6264(1)的片選線接P2.5,6264(2)的片選線接P2.6,單片機(jī)與存儲(chǔ)器的連接電路如圖9-8所示。2023/9/2123圖9-8采用線選法擴(kuò)展兩片6264的電路連接芯片的地址計(jì)算過程及地址范圍:2023/9/2124高位未用的地址線P2.7取為1,實(shí)際上也可以為0。當(dāng)P2.7為0時(shí),6264(1)的地址范圍為4000H~5FFFH;6264(2)的地址范圍為2000H~3FFFH;可見,芯片上的一個(gè)單元可以有多個(gè)地址,即地址不唯一,通常稱為地址重疊。原因是因?yàn)橛械母呶痪€沒有參與片選信號(hào)的產(chǎn)生,可以是1也可以是0。由例9-2可知,線選法的特點(diǎn)是電路簡單,不需外加地址譯碼電路;但芯片占用的存儲(chǔ)空間不緊湊,尋址范圍不唯一,且地址空間利用率低,可擴(kuò)展的芯片個(gè)數(shù)少。適用于小規(guī)模單片機(jī)應(yīng)用系統(tǒng)的簡單擴(kuò)展。2023/9/2125

2.譯碼法譯碼法是利用片外譯碼電路對(duì)系統(tǒng)高位地址線進(jìn)行譯碼,產(chǎn)生外圍芯片的片選信號(hào),低位地址線仍用于片內(nèi)尋址。其中,當(dāng)所有高位地址線都參與譯碼時(shí)稱為全譯碼法,只有部分高位地址線參與譯碼時(shí)稱為部分譯碼法。譯碼電路可用專用的譯碼器芯片實(shí)現(xiàn),單片機(jī)應(yīng)用系統(tǒng)常用的譯碼器有以下3種:2-4譯碼器(如雙2-4譯碼器74LS139),可對(duì)2位高位地址進(jìn)行譯碼,產(chǎn)生4個(gè)片選信號(hào),最多可外接4個(gè)芯片。3-8譯碼器(如74LS138),可對(duì)3位高位地址進(jìn)行譯碼,產(chǎn)生8個(gè)片選信號(hào),最多可外接8個(gè)芯片。4-16譯碼器(如74LS154),可對(duì)4位高位地址進(jìn)行譯碼,產(chǎn)生16個(gè)片選信號(hào),最多可外接16個(gè)芯片。譯碼法的地址計(jì)算方法同線選法類似,不同之處在于片外地址的形成與譯碼電路有關(guān),需要進(jìn)行簡單計(jì)算。2023/9/2126例9-3在AT89C51單片機(jī)外擴(kuò)4片6264芯片,設(shè)計(jì)單片機(jī)與存儲(chǔ)器的連接電路,要求6264芯片的片選信號(hào)采用譯碼法產(chǎn)生,計(jì)算存儲(chǔ)器的地址范圍。解:4片6264的地址線均有13條,因此低位地址線為A12~A0,高位地址線為A15~A13。4個(gè)芯片的片選線采用3-8譯碼器譯碼后獲得,電路連接如圖9-10所示。2023/9/21272023/9/2128由于高位地址線全部參與產(chǎn)生片選信號(hào),因此芯片上的單元與地址一一對(duì)應(yīng),地址不重疊,且4個(gè)芯片的地址連續(xù)。本題也可以利用2-4譯碼器實(shí)現(xiàn),這樣只有2條高位地址線參與譯碼,為部分譯碼法。由于剩余的一條地址線可0可1,因此也會(huì)出現(xiàn)地址重疊現(xiàn)象。由例9-3可知,譯碼法的特點(diǎn)是對(duì)系統(tǒng)地址空間的利用率高,各芯片的地址連續(xù),特別是全譯碼法,每個(gè)芯片上每個(gè)單元只有一個(gè)唯一的系統(tǒng)地址,不存在地址重疊現(xiàn)象,利用相同位數(shù)的高位地址線,全譯碼法產(chǎn)生的片選信號(hào)線比線選法多,可擴(kuò)展更多的外圍芯片。部分譯碼法雖然存在地址重疊現(xiàn)象,但譯碼電路更簡單。譯碼法適用于較復(fù)雜的單片機(jī)系統(tǒng)的擴(kuò)展。2023/9/21299.3并行I/O接口的擴(kuò)展單片機(jī)系統(tǒng)內(nèi)部具有4個(gè)8位并行I/O口,均可用于雙向并行I/O接口,與外部設(shè)備相連。但在實(shí)際應(yīng)用中,只有在單片機(jī)的最小應(yīng)用系統(tǒng)下,這4個(gè)I/O口才作為通用I/O口使用。在系統(tǒng)進(jìn)行外部擴(kuò)展時(shí),P0口作為數(shù)據(jù)總線和低8位地址總線,P2口作為高8位地址總線,P3口用于第二功能提供部分控制總線,因此用戶只能使用P1口,這在外設(shè)較多的情況往往不夠用,必須進(jìn)行并行I/O口的擴(kuò)展。

2023/9/21309.3.1并行I/O口擴(kuò)展概述1.并行I/O口的擴(kuò)展方法(1)并行總線擴(kuò)展將待擴(kuò)展的I/O接口芯片的數(shù)據(jù)線與單片機(jī)的數(shù)據(jù)總線(P0口)并接,需要一根片選信號(hào)線,并分時(shí)占用P0口。特點(diǎn):由于不影響其他芯片的連接與操作,也不給單片機(jī)硬件帶來額外開支,因此在應(yīng)用系統(tǒng)的并行I/O口擴(kuò)展中被廣泛采用。(2)串行口擴(kuò)展方法單片機(jī)串行口的工作方式0為移位寄存器方式,對(duì)于不使用串行口的單片機(jī)應(yīng)用系統(tǒng),可在串行口外接一串入/并出移位寄存器以實(shí)現(xiàn)并行I/O口的擴(kuò)展。通過移位寄存器的級(jí)聯(lián),還可擴(kuò)展大量的并行I/O口線。特點(diǎn):這種擴(kuò)展方法數(shù)據(jù)傳輸速度較慢。2023/9/21312.I/O口的編址方式I/O接口中的端口:指存放地址、數(shù)據(jù)、控制信息的寄存器I/O端口的編址方式有獨(dú)立編址和統(tǒng)一編址

(1)獨(dú)立編址方式獨(dú)立編址是指I/O端口的地址空間與存儲(chǔ)器地址空間相互獨(dú)立,完全分開。優(yōu)點(diǎn)是有專門的輸入/輸出指令,程序清晰;存儲(chǔ)器和I/O端口的控制結(jié)構(gòu)相互獨(dú)立。缺點(diǎn)是要求CPU設(shè)置專門的引腳信號(hào);I/O指令的功能不豐富,程序設(shè)計(jì)的靈活性差。80x86系列的CPU采用此種編址方式。(2)統(tǒng)一編址方式統(tǒng)一編址是指I/O端口與數(shù)據(jù)存儲(chǔ)器共用一個(gè)地址空間。其優(yōu)點(diǎn)是不需要專門的輸入/輸出指令,編程靈活;I/O端口的數(shù)目不受限制。缺點(diǎn)是占去數(shù)據(jù)存儲(chǔ)器地址空間,使存儲(chǔ)器可尋址空間減小。80C51單片機(jī)采用此種編址方式。2023/9/213280C51單片機(jī)的I/O端口與外部數(shù)據(jù)存儲(chǔ)單元使用共同的地址空間,范圍是0000H~FFFFH。不需要專門的輸入輸出指令,單片機(jī)對(duì)擴(kuò)展I/O端口的訪問方法同訪問外部RAM一樣,用匯編語言編程時(shí)使用的指令相同,如果用C51編程,數(shù)據(jù)類型應(yīng)定義為xdata或pdata。2023/9/21339.3.2簡單并行I/O口的擴(kuò)展要求:作為輸入接口的芯片應(yīng)具有三態(tài)特性;作為輸出接口的芯片應(yīng)具有鎖存功能。擴(kuò)展方法特點(diǎn):電路結(jié)構(gòu)簡單,成本低,傳送控制方式簡單,配置靈活使用方便,但電路連接后,功能難以改變。因此適用于擴(kuò)展單個(gè)8位的輸入/輸出口選用TTL或CMOS電路的三態(tài)緩沖器、寄存器或數(shù)據(jù)鎖存器等芯片作為I/O口擴(kuò)展芯片。這些電路具有數(shù)據(jù)緩沖或鎖存功能,但自身只有數(shù)據(jù)的輸入或輸出、選通端或時(shí)鐘信號(hào)端,沒有地址線和讀/寫控制線,故在進(jìn)行擴(kuò)展時(shí)往往需要將地址線和讀/寫等控制線經(jīng)邏輯組合后再輸出至選通端或時(shí)鐘信號(hào)端。編址通常采用的是線選法,芯片地址由使用的地址線決定,往往有重疊。2023/9/2134常使用緩沖器作為輸入接口芯片,經(jīng)常使用的芯片有:1.74HC244/74LS244—正相三態(tài)緩沖器(單向驅(qū)動(dòng))。2.74HC240/74LS240—反相三態(tài)緩沖器。3.74HC245/74LS245—8總線接收器(雙向驅(qū)動(dòng))。常使用寄存器、鎖存器作為輸出接口芯片,常用芯片:1.74HC273/74LS273—8D觸發(fā)器(共時(shí)鐘,帶清除)。2.74HC373/74LS373—8D鎖存器/觸發(fā)器(三態(tài)輸出)。3.74HC374/74LS374—8D觸發(fā)器(三態(tài)輸出)。4.74HC377/74LS377—8D鎖存器。2023/9/2135圖9-1374LS244引腳圖和功能表2023/9/2136例9-4AT89C51單片機(jī)利用74HC373和74HC244進(jìn)行擴(kuò)展的開關(guān)與指示燈接口電路如圖9-14所示,編寫程序?qū)崿F(xiàn)當(dāng)開關(guān)DSW1打在“ON”位置時(shí)對(duì)應(yīng)的LED亮,打在“OFF”位置時(shí)對(duì)應(yīng)的LED暗,即用LED指示開關(guān)的狀態(tài)。圖9-14例9-4proteus仿真電路解:分析:74HC373和74HC244分別作為輸出接口和輸入接口。P2.0與RD相或后作為74HC244的片選信號(hào),與WR相或后作為74HC373的片選信號(hào)。74HC373和74HC244芯片的地址計(jì)算如圖9-15所示,兩個(gè)芯片的地址相同,但是74HC244只有讀操作(RD=0,WR=1),而74HC373只有寫操作(RD=1,WR=0),因此依然可以使用P0口與CPU交換數(shù)據(jù)而不會(huì)產(chǎn)生沖突。當(dāng)開關(guān)打在“ON”位置時(shí),從74HC244讀入的對(duì)應(yīng)位為0,通過74HC373輸出時(shí),剛好使對(duì)應(yīng)的LED點(diǎn)亮。圖9-1574HC373和74HC244芯片的地址計(jì)算2023/9/2137程序設(shè)計(jì)如下:#include<reg52.h>#include<absacc.h>#defineucharunsignedchar#defineHC373XBYTE[0xFEFF]//74HC373的地址為0xFEFF#defineHC244XBYTE[0xFEFF]//74HC244的地址為0xFEFFucharstatus;voidmain(){ while(1){status=HC244;//從74HC245輸入數(shù)據(jù)

HC373=status;//從74HC373輸出數(shù)據(jù)

}}2023/9/21389.3.3可編程并行I/O口的擴(kuò)展采用TTL或CMOS電路擴(kuò)展的I/O口,只能用于對(duì)輸入/輸出要求較為簡單的系統(tǒng)中,當(dāng)單片機(jī)應(yīng)用系統(tǒng)中需要較為復(fù)雜的I/O接口時(shí),應(yīng)選用通用可編程的I/O接口芯片來擴(kuò)展。

可編程I/O接口芯片的工作方式和功能均可通過軟件編程設(shè)定,使用靈活,既可作為輸入口使用,又可作為輸出口使用,適應(yīng)多種功能需求,應(yīng)用非常廣泛。2023/9/21391.8255A的內(nèi)部結(jié)構(gòu)和功能(1)與外設(shè)相關(guān)的外部接口它包含3個(gè)8位的可編程雙向I/O接口,分別稱為A口、B口、C口。外設(shè)通過這些端口與單片機(jī)交換信息。A口具有一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位輸入鎖存器,是最靈活的輸入/輸出寄存器,它可以編程為輸入/輸出或雙向寄存器;

B口具有一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位輸入緩沖器(但不鎖存),它可以編程為輸入/輸出寄存器,但不能雙向輸入/輸出;

C口具有一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位輸入緩沖器(但不鎖存)。(2)與內(nèi)部工作方式相關(guān)的內(nèi)部控制邏輯它包含有兩組控制電路,稱為A組和B組的控制電路,其內(nèi)設(shè)有控制寄存器,控制寄存器的內(nèi)容由單片機(jī)寫入,它決定了8255A的工作方式。(3)與單片機(jī)有關(guān)的CPU接口包括數(shù)據(jù)總線緩沖器和讀/寫控制邏輯,這是任何一個(gè)可編程接口芯片都具有的組成部分。

數(shù)據(jù)總線緩沖器是8255A與系統(tǒng)總線連接的通道,它可以輸入或輸出各種數(shù)據(jù),如外設(shè)送給單片機(jī)的信息、單片機(jī)送給8255A的命令和單片機(jī)送給外設(shè)的信息等。

讀/寫控制邏輯電路負(fù)責(zé)管理8255A的數(shù)據(jù)傳輸過程,它接收片選信號(hào)及系統(tǒng)讀信號(hào)、寫信號(hào)、復(fù)位信號(hào)RESET、口地址選擇信號(hào)(一般用地址線的最低位A1和A0),用于控制對(duì)8255A內(nèi)部的四個(gè)寄存器進(jìn)行讀/寫操作。2023/9/2140(1)面向CPU的引腳信號(hào)及功能D0~D7:8位雙向三態(tài)數(shù)據(jù)線,可以與系統(tǒng)數(shù)據(jù)總線直接相連,用于在CPU與8255A之間傳送數(shù)據(jù)信息、控制信息及狀態(tài)信息。RESET:復(fù)位信號(hào),高電平有效,輸入,用來清除8255A的內(nèi)部寄存器,并置A口、B口、C口均為輸入方式。注意:8255A工作之前,硬件上必須先復(fù)位,使8255A內(nèi)部的各個(gè)部件處于待命狀態(tài)。CS:片選,輸入,低電平有效,用來決定芯片是否被選中。只有該信號(hào)有效時(shí),才允許CPU與8255A交換信息。RD:讀信號(hào),輸入,低電平有效,當(dāng)有效且為低電平時(shí),將被選中的端口數(shù)據(jù)或狀態(tài)信息送至數(shù)據(jù)總線。WR:寫信號(hào),輸入,低電平有效,當(dāng)有效且為低電平時(shí),CPU將數(shù)據(jù)線上的數(shù)據(jù)或控制信息寫入被選中的端口。A1、A0:內(nèi)部口地址選擇信號(hào),輸入。這兩個(gè)引腳上的信號(hào)組合決定對(duì)8255A內(nèi)部的哪一個(gè)口或寄存器進(jìn)行操作。8255A內(nèi)部共有4個(gè)端口:端口A、端口B、端口C和控制口。引腳Al、A0與、、組合,可用來選中端口,并對(duì)其進(jìn)行讀或?qū)懖僮鳎?255A的操作功能如表9-3所示。2023/9/2141圖9-178255A的引腳圖(2)面向外設(shè)的引腳信號(hào)及功能PA0~PA7:A口數(shù)據(jù)信號(hào),用來連接外設(shè)。PB0~PB7:B口數(shù)據(jù)信號(hào),用來連接外設(shè)。PC0~PC7:C口數(shù)據(jù)信號(hào),其作用由軟件設(shè)定,可連接外設(shè),在CPU與外設(shè)之間傳送數(shù)據(jù);也可以作為A口或B口輸入/輸出操作的聯(lián)絡(luò)線和控制線。2023/9/21423.8255A與單片機(jī)的接口電路單片機(jī)與8255A的連接就是3組總線的連接。(1)數(shù)據(jù)總線的連接將8255A的8根數(shù)據(jù)總線D0~D7與AT89C52的P0.0~P0.7相連。(2)地址總線的連接將8255A的地址線A0、A1通過74HC573鎖存器與AT89C52的P0.0、P0.1連接。Al、A0取值00~11,分別對(duì)應(yīng)選擇A、B、C口與控制寄存器。(3)控制總線的連接8255A的片選信號(hào)由單片機(jī)P2.5~P2.7經(jīng)74HC138譯碼器的Y7產(chǎn)生。若要選中8255A,則Y7必須有效,此時(shí)P2.7P2.6P2.5=111。2023/9/21432023/9/21444.8255的工作方式8255A有三種工作方式:方式0:基本輸入輸出;方式1:選通輸入輸出;方式2:雙向傳送(僅A口有)。2023/9/2145A.具有兩個(gè)8位端口(A、B)和兩個(gè)4位端口(C的上半部分和下半部分)。B.任一個(gè)端口都可以設(shè)定為輸入或輸出,各端口的輸入、輸出可構(gòu)成16種組合。C.數(shù)據(jù)輸出鎖存,輸入不鎖存。(1)方式0基本輸入輸出功能:應(yīng)用場合:A.無條件傳送;B.查詢式傳送。在利用查詢傳送方式傳送數(shù)據(jù)時(shí),可用A口、B口、C口這三個(gè)口的任一位充當(dāng)查詢信號(hào),其余I/O口仍作為獨(dú)立的端口和外設(shè)相連。2023/9/2146(2)方式1選通輸入/輸出工作方式三個(gè)端口分為A、B兩組。A、B口仍作為兩個(gè)獨(dú)立的8位I/O數(shù)據(jù)通道,可單獨(dú)連接外設(shè),通過編程設(shè)置它們?yōu)檩斎牖蜉敵觯珻口則要由六位(分成兩個(gè)3位)分別作為A口和B口的應(yīng)答信號(hào)線,其余兩位分別仍可工作在方式0。

A.方式1輸入控制聯(lián)絡(luò)信號(hào)如下頁圖所示,STB與IBF構(gòu)成了一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào)。2023/9/2147方式1輸入2023/9/2148INTR(Interruptrequest)

:中斷請(qǐng)求信號(hào),高電平有效。由8255A輸出,向單片機(jī)發(fā)中斷請(qǐng)求。INTEA(InterruptEnable):A口中斷允許,由PC4控制,INTEB:B口中斷允許,由PC2控制。STB(Strobe):選通輸入,是由外設(shè)送來的輸入信號(hào)。當(dāng)其為低時(shí),將外設(shè)數(shù)據(jù)輸入8255A。IBF(InputBufferFull)

:輸入緩沖器滿,高電平有效。表示數(shù)據(jù)已送入8255A的輸入鎖存器,它由STB信號(hào)的下降沿置位,由RD信號(hào)的上升沿使其復(fù)位。2023/9/2149B.方式1輸出如下頁圖所示。OBF與ACK構(gòu)成了一對(duì)應(yīng)答聯(lián)絡(luò)信號(hào),各信號(hào)的功能如下:OBF(OutputBufferFull)

:輸出緩沖器滿信號(hào),8255A給外設(shè)的聯(lián)絡(luò)信號(hào),外設(shè)可以將數(shù)據(jù)取走。ACK(Acknowledge)

:外設(shè)的響應(yīng)信號(hào),外設(shè)已將數(shù)據(jù)取走。INTR:中斷請(qǐng)求信號(hào)。表示該數(shù)據(jù)已被外設(shè)取走,請(qǐng)求單片機(jī)繼續(xù)輸出下一個(gè)數(shù)據(jù)。INTEA:中斷允許,由PC6控制。INTEB:中斷允許,由PC2控制。2023/9/2150方式1輸出2023/9/2151C.方式2只有A口才能設(shè)定為方式2。方式2工作示意圖如下頁所示。在方式2下,PA7~PA0為雙向I/O總線。當(dāng)輸入時(shí),PA7~PA0受STBA和IBFA控制,其工作過程和方式1輸入時(shí)相同;當(dāng)輸出時(shí),PA7~PA0受OBFA、ACKA控制,其工作過程和方式1輸出時(shí)相同。2023/9/2152方式22023/9/21535.8255A的控制字和初始化編程

8255A芯片的初始化編程是通過對(duì)控制口寫入控制字的方式實(shí)現(xiàn)的??刂谱钟袃蓚€(gè),一是方式控制字,另一個(gè)是C口按位置位/復(fù)位控制字,用D7位來區(qū)分,故D7位稱為特征位。方式控制字用于設(shè)置8255A芯片三個(gè)端口的工作方式以及輸入輸出狀態(tài),用D7位為1來標(biāo)識(shí)。圖9-198255A的方式控制字例如,設(shè)定A口為方式1輸入,B口為方式0輸出,PC7~PC4為輸入,PC3~PC0為輸出的方式控制字為:10111000B。2023/9/2154

C口的按位置位/復(fù)位控制字用于對(duì)C口的某一位進(jìn)行置位或復(fù)位,用D7位為1來標(biāo)識(shí),如圖9-20所示。圖9-208255A的C口按位置位/復(fù)位控制字C口具有位操作能力,每一位都可以通過向控制口寫入置位/復(fù)位控制字設(shè)置為1或0而不影響其他位的狀態(tài)。例如PC5置1的置位控制字為:

00001011B注意:將C口的某位置位或復(fù)位時(shí),置位/復(fù)位控制字一定要寫入控制口,即所寫入的地址應(yīng)為控制口的地址而不是C口的地址,這一點(diǎn)常被疏忽。

2023/9/2155例9-5電路連接如圖9-18,對(duì)8255A芯片進(jìn)行初始化,要求A口工作在方式0輸入,B口為方式1輸出,C口高4位PC4~PC7為輸入,C口低4位PC3~PC0為輸出。編寫實(shí)現(xiàn)上述功能的初始化程序段。解:首先根據(jù)CS、A1和A0的接線計(jì)算8255A控制口的地址,當(dāng)CS=0;A1=1;A0=1時(shí)選擇控制口,即P2.7=1,P2.6=1,P2.5=1,P0.1=1,P0.0=1,P2口和P0口的其他各位都為0,則控制口的地址為1110000000000011B=E003H。2023/9/2156方式控制字為:10011100B=0x9C。初始化程序如下:#include<reg52.h>#include<absacc.h>#defineCOM8255XBYTE[0xe003]#defineucharunsignedcharVoidinit8255(void){COM8255=0x9C;}2023/9/2157例9-6電路連接如圖9-18,編寫程序?qū)口的PC3置0,PC5置1。解:控制口的地址計(jì)算和例9-5一樣,為1110000000000011B=E003H。PC3復(fù)位的控制字為:00000110B=0x06。PC5置位的控制字為:00001011B=0x0B。初始化程序如下:#include<reg51.h>#include<absacc.h>#defineCOM8255XBYTE[0xe003]#defineucharunsignedcharVoidinit8255(void){COM8255=0x06;COM8255=0x0B;}2023/9/21586.8255A的應(yīng)用舉例例9-7對(duì)AT89C51單片機(jī)外擴(kuò)一片8255A芯片,8255A的地址線A1、A0由單片機(jī)P0.1、P0.0經(jīng)74LS373鎖存后獲得,片選信號(hào)接單片機(jī)的P2.7,8255A的PA、PB、PC口各接8個(gè)發(fā)光二極管,仿真電路如圖9-21所示。試編寫程序使三行發(fā)光二極管逐行從左往右循環(huán)點(diǎn)亮。圖9-21例9-7仿真電路2023/9/2159程序設(shè)計(jì)如下:#include<reg52.h>#include<absacc.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar#definePAXBYTE[0x0000]//PA,PB,PC及命令端口地址定義#definePBXBYTE[0x0001]#definePCXBYTE[0x0002]#defineCOMXBYTE[0x0003]voidDelay(uintx)//延時(shí)子程序{uchari;while(x--){for(i=0;i<120;i++);}}voidmain(){uchark,m=0x7f;COM=0x80;//控制字while(1){for(k=0;k<8;k++)//輪流點(diǎn)亮第一排小燈{m=_crol_(m,1);PA=m;Delay(100);}PA=0xff;//關(guān)閉第一排小燈for(k=0;k<8;k++)//輪流點(diǎn)亮第二排小燈{m=_crol_(m,1);PB=m;Delay(100);}PB=0xff;//關(guān)閉第二排小燈 for(k=0;k<8;k++)//輪流點(diǎn)亮第三排小燈{m=_crol_(m,1);PC=m;Delay(100);}PC=0xff;//關(guān)閉第三排小燈}}解:根據(jù)圖中的連接,PA、PB、PC與控制口的端口地址分別為0x0000、0x0001、0x0002、0x0003。8255A的控制字為:0x80。2023/9/2160例9-8仿真電路如圖9-22所示,對(duì)AT89C51單片機(jī)外擴(kuò)一片8255A芯片,8255A的地址線A1、A0由單片機(jī)P0.1、P0.0經(jīng)74LS373鎖存后獲得,片選信號(hào)接單片機(jī)的P2.7,8255A的PA口接8只集成式7段共陽數(shù)碼管的位選,PB口接7段數(shù)碼管的段選(PB7到PB0分別接a到dp段),試編寫程序使數(shù)碼管從高到低顯示7到0字符。圖9-22例9-8仿真電路2023/9/2161程序設(shè)計(jì)如下:#include<reg51.h>#include<absacc.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar#definePAXBYTE[0x0000]//PA,PB,PC及命令端口地址定義#definePBXBYTE[0x0001]#definePCXBYTE[0x0002]#defineCOMXBYTE[0x0003]ucharcodeDSY_CODE[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//0~9的顯示字符voidDelayMS(uintx){uchart;while(x--){for(t=120;t>0;t--);}}voidmain(){uchark,m=0x01;COM=0x80;//8255A工作方式選擇:PA,PB均工作于方式0,輸出PB=0xff;//關(guān)閉數(shù)碼管的段選PA=0x00;//關(guān)閉數(shù)碼管的位選while(1){for(k=8;k>0;k--){m=_cror_(m,1);PA=m;//選通某個(gè)數(shù)碼管的位選PB=DSY_CODE[k-1];//將段碼送給上面數(shù)碼管對(duì)應(yīng)的段DelayMS(2);}}}解:根據(jù)圖中的連接,PA、PB、PC與控制口的端口地址分別為0x0000、0x0001、0x0002、0x0003。8255的控制字為:0x80。2023/9/21629.4鍵盤接口技術(shù)

鍵盤用于實(shí)現(xiàn)單片機(jī)應(yīng)用系統(tǒng)中的數(shù)據(jù)和控制命令的輸入,鍵盤接口的主要功能是對(duì)鍵盤上所按下的鍵進(jìn)行識(shí)別,常用的鍵盤有全編碼鍵盤和非編碼鍵盤兩種。

全編碼鍵盤使用專用的硬件邏輯自動(dòng)識(shí)別按鍵,還具有去抖動(dòng)和多鍵、竄鍵保護(hù)電路。這種鍵盤使用方便,但價(jià)格較高,常用于PC機(jī)中,一般的單片機(jī)系統(tǒng)很少使用。

非編碼鍵盤使用軟件對(duì)按鍵進(jìn)行識(shí)別,可分為獨(dú)立式按鍵和矩陣式鍵盤。這種鍵盤結(jié)構(gòu)簡單、成本低,在單片機(jī)系統(tǒng)中廣泛使用。2023/9/21639.4.1按鍵開關(guān)單片機(jī)中的鍵盤通常由按鍵開關(guān)組成,按鍵開關(guān)的外形和參數(shù)如圖9-23所示,它是一種常開型按鍵開關(guān),為了便于安裝固定,它有四個(gè)管腳,其管腳說明如圖9-23中的文字所示,在常態(tài)時(shí)開關(guān)觸點(diǎn)(1和2)處于斷開狀態(tài),只有按下按鍵時(shí)開關(guān)觸點(diǎn)才閉合短路,所以可以用萬用表檢測開關(guān)的管腳排列、好壞和質(zhì)量。圖9-23按鍵開關(guān)外形2023/9/21649.4.2鍵盤工作原理1.按鍵消抖問題按鍵是利用機(jī)械觸點(diǎn)的合、斷來實(shí)現(xiàn)鍵的閉合與釋放,由于彈性作用,機(jī)械觸點(diǎn)在閉合及斷開瞬間會(huì)有抖動(dòng)的過程,從而使鍵輸入電壓的信號(hào)也存在抖動(dòng)現(xiàn)象。若鍵盤接口電路如圖9-24所示,當(dāng)開關(guān)S未被按下(即斷開)時(shí),P1.1輸入為高電平,S閉合后,P1.1輸入為低電平,實(shí)際由于有按鍵抖動(dòng),P1.1引腳輸入的波形如圖9-25所示。分別將鍵的閉合和斷開過程中的抖動(dòng)期稱為前沿抖動(dòng)和后沿抖動(dòng)。

圖9-24鍵盤接口電路圖9-25按鍵抖動(dòng)波形2023/9/2165抖動(dòng)時(shí)間的長短與開關(guān)的機(jī)械特性有關(guān),一般為5~10ms,穩(wěn)定閉合期時(shí)間的長短由按鍵的動(dòng)作決定,一般為幾百ms~幾s。為了保證按鍵按動(dòng)一次,CPU對(duì)鍵閉合僅作一次按鍵處理,必須去除抖動(dòng)的影響。

去除抖動(dòng)的方法一般有硬件和軟件兩種。

硬件方法就是在按鍵輸出通道上添加去抖動(dòng)電路,從根本上避免電壓抖動(dòng)的產(chǎn)生,去抖動(dòng)電路可以是單穩(wěn)態(tài)電路或者濾波電路。

軟件方法通常是在檢測到有鍵按下時(shí)延遲10~20ms的時(shí)間,待抖動(dòng)期過去后,再次檢測按鍵的狀態(tài),如果仍然為閉合狀態(tài),才認(rèn)為是有鍵按下,否則認(rèn)為是一個(gè)擾動(dòng)信號(hào)。按鍵釋放的過程與此相同,都要利用延時(shí)進(jìn)行消抖處理。由于人的按鍵速度與單片機(jī)的運(yùn)行速度相比要慢很多,所以,軟件延時(shí)的方法簡單可行,而且不需要增加硬件電路,成本低,因而被廣泛采用。2023/9/2166

鍵盤中的每個(gè)按鍵都是一個(gè)常開的開關(guān)電路,按下時(shí)則處于閉合狀態(tài)。無論是一組獨(dú)立式按鍵還是一個(gè)矩陣式鍵盤,都需要通過接口電路與單片機(jī)相連,以便將鍵的開關(guān)狀態(tài)通知單片機(jī)。單片機(jī)檢測鍵狀態(tài)的方式有以下幾種:(1)編程掃描方式,利用程序?qū)︽I盤進(jìn)行隨機(jī)掃描,通常在CPU空閑時(shí)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論