版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第9章80C51單片機系統(tǒng)擴展技術(shù)
2023/9/211內(nèi)容單片機系統(tǒng)擴展概述9.1數(shù)據(jù)存儲器的擴展9.2并行I/O口的擴展9.3鍵盤接口技術(shù)9.4LCD液晶顯示器與單片機的接口9.52023/9/212單片微機,在一片芯片上集成了計算機的基本功能部件,理應(yīng)獨立作為計算機使用,更好地發(fā)揮其體積小、重量輕、價格低、耗電少的優(yōu)點。然而,在組成計算機系統(tǒng)時,有時在使用過程中會嫌單片機本身的功能部件容量還不夠,這就需要予以擴展。9.1單片機系統(tǒng)擴展概述2023/9/213復(fù)習(xí):最小應(yīng)用系統(tǒng)
1.片內(nèi)帶程序存儲器的單片機的最小應(yīng)用系統(tǒng)
(1)8051、8751、8052本身,
(2)時鐘電路,
(3)復(fù)位電路即可構(gòu)成最小應(yīng)用系統(tǒng)。接高電平,系統(tǒng)就可以工作。如下頁圖所示。該系統(tǒng)的特點如下:(1)系統(tǒng)有大量的I/O線可供用戶使用:P0、P1、P2、P3四個口都可以作為I/O口使用。
(2)內(nèi)部存儲器的容量有限,只有128B的RAM和4KB的程序存儲器。2023/9/2148051/8751最小應(yīng)用系統(tǒng)2023/9/215
2.片內(nèi)無程序存儲器的單片機的最小應(yīng)用系統(tǒng)
(1)8031、8032本身,
(2)時鐘電路,
(3)復(fù)位電路
(4)片外存儲器芯片
(5)地址鎖存器構(gòu)成最小應(yīng)用系統(tǒng)。接低電平,ALE接地址鎖存器,接存儲器的輸出允許端。2023/9/2168031最小應(yīng)用系統(tǒng)PSENOE2023/9/217
擴展一般有以下幾方面的內(nèi)容:
①外部程序存儲器的擴展;②外部數(shù)據(jù)存儲器的擴展;③輸入/輸出接口的擴展;④管理功能器件的擴展(如定時/計數(shù)器、鍵盤/顯示器、中斷控制器等)。擴展的基本方法:
使用TTL中小規(guī)模集成電路進行擴展。9.1.1單片機系統(tǒng)擴展資源分類2023/9/2189.1.2單片機系統(tǒng)擴展結(jié)構(gòu)80C51單片機系統(tǒng)擴展采用三總線結(jié)構(gòu),即地址總線、數(shù)據(jù)總線和控制總線。AT89C51單片機擴展時系統(tǒng)總線結(jié)構(gòu)圖如圖9-1所示。2023/9/219系統(tǒng)擴展的首要問題:
構(gòu)造系統(tǒng)總線,然后再往系統(tǒng)總線上“掛”存儲器芯片或I/O接口芯片,“掛”存儲器芯片就是存儲器擴展,“掛”I/O接口芯片就是I/O擴展。
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):
擴展系統(tǒng)時常用的控制信號為:
ALE——地址鎖存信號,用以實現(xiàn)對低8位地址的鎖存。
——片外程序存儲器取指信號。
——片外數(shù)據(jù)存儲器讀信號。
——片外數(shù)據(jù)存儲器寫信號。2023/9/2111
地址鎖存器一般采用74LS373,采用74LS373的地址總線的擴展電路如下圖2023/9/21129.2數(shù)據(jù)存儲器的擴展
目前大多數(shù)單片機都含有大容量FlashEEPROM,其存儲單元數(shù)量都達到了64KB,能滿足絕大多數(shù)用戶程序存儲的需要,故很少再進行片外程序存儲器的擴展。但單片機的內(nèi)部數(shù)據(jù)存儲器容量較小,其中一些已作為工作寄存器、堆棧和數(shù)據(jù)緩沖器使用,當(dāng)控制系統(tǒng)需要暫存的數(shù)據(jù)量較大時,片內(nèi)RAM常常不夠用,常需進行數(shù)據(jù)存儲器的擴展。若要擴展片外程序存儲器,方法與數(shù)據(jù)存儲器擴展相類似,不同之處僅在于控制信號的接法不一樣,擴展數(shù)據(jù)存儲器用單片機的RD和WR信號直接與數(shù)據(jù)存儲器的OE端和WE端相連,發(fā)送讀、寫控制信號,擴展程序存儲器則用單片機的PSEN信號與程序存儲器的OE端相連,發(fā)送讀控制信號。此處只介紹數(shù)據(jù)存儲器的擴展。2023/9/21139.2.1數(shù)據(jù)存儲器芯片典型型號有: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引腳的排列為繪制印刷電路板時的布線提供了方便。2023/9/21183.鎖存器74LS573
輸入的D端和輸出的Q端也是依次排在芯片的兩側(cè),與鎖存器8282一樣,為繪制印刷電路板時的布線提供了方便。2023/9/21199.2.3數(shù)據(jù)存儲器的擴展電路
存儲芯片地址線低8位A7-A0地址線高(n-8)位An-1-A8數(shù)據(jù)線D7-D0片選信號CE讀允許OE、寫允許WE接地需要考慮與80C51相連的存儲芯片引腳: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外擴一片6264的電路連接例9-1對AT89C51單片機外擴一片8kB的RAM6264芯片。解:擴展的電路連接如圖9-7所示。由于只有一片存儲器芯片,所以將6264的片選直接接地。6264芯片中存儲單元的地址變化范圍為:xxx0000000000000B~xxx1111111111111B,即單片機地址線的P2.4~P2.0與P0.7~P0.0發(fā)出的信號可以從全0變化到全1,P2.7~P2.5因為沒有與6264相連,所以狀態(tài)任意。如果將任意狀態(tài)x都看成0,則6264的地址范圍為:0000000000000000B~0001111111111111B,即0000H~1FFFH。2023/9/21219.2.4存儲器的編址存儲器擴展的核心問題是存儲器的編址問題。所謂編址,就是利用單片機系統(tǒng)提供的地址總線,通過適當(dāng)?shù)倪B接,使系統(tǒng)中每一個外擴芯片的每一個單元都有一個唯一的地址,以便保證同一時刻只能有一個外設(shè)使用數(shù)據(jù)總線與CPU交換數(shù)據(jù),保證系統(tǒng)有條不紊地工作。存儲器芯片內(nèi)部有多個可尋址單元,因此編址涉及兩方面問題:一個是片內(nèi)單元的編址,稱為片內(nèi)尋址,由芯片內(nèi)部的地址譯碼電路完成,只需將存儲器芯片自身的地址線與單片機的地址線按位號對應(yīng)相連;另一個是存儲器芯片的片選/使能信號產(chǎn)生問題,稱為芯片尋址,由單片機剩余的地址線通過片外譯碼電路完成。
編址技術(shù)就是研究系統(tǒng)地址空間的分配問題,即如何產(chǎn)生芯片片選/使能信號的問題。存儲器存在編址問題,本章后面所講的各種外擴芯片也都存在編址問題。2023/9/2122通常,產(chǎn)生外擴芯片片選信號的方法有2種:線選法和譯碼法。1.線選法
線選法是指直接將單片機高位地址線作為外擴芯片的片選信號,即把單片機選定的高位地址線與外擴芯片的片選/使能端(或)直接連接。例9-2設(shè)計兩片RAM6264芯片與AT89C51單片機的連接電路,兩片6264芯片的片選信號采用線選法產(chǎn)生,計算存儲器的地址范圍。解:6264地址線有13條(A12~A0),因此低位地址線為A12~A0,高位地址線為A15~A13。片內(nèi)地址范圍均為0000H~1FFFH。6264(1)的片選線接P2.5,6264(2)的片選線接P2.6,單片機與存儲器的連接電路如圖9-8所示。2023/9/2123圖9-8采用線選法擴展兩片6264的電路連接芯片的地址計算過程及地址范圍:2023/9/2124高位未用的地址線P2.7取為1,實際上也可以為0。當(dāng)P2.7為0時,6264(1)的地址范圍為4000H~5FFFH;6264(2)的地址范圍為2000H~3FFFH;可見,芯片上的一個單元可以有多個地址,即地址不唯一,通常稱為地址重疊。原因是因為有的高位線沒有參與片選信號的產(chǎn)生,可以是1也可以是0。由例9-2可知,線選法的特點是電路簡單,不需外加地址譯碼電路;但芯片占用的存儲空間不緊湊,尋址范圍不唯一,且地址空間利用率低,可擴展的芯片個數(shù)少。適用于小規(guī)模單片機應(yīng)用系統(tǒng)的簡單擴展。2023/9/2125
2.譯碼法譯碼法是利用片外譯碼電路對系統(tǒng)高位地址線進行譯碼,產(chǎn)生外圍芯片的片選信號,低位地址線仍用于片內(nèi)尋址。其中,當(dāng)所有高位地址線都參與譯碼時稱為全譯碼法,只有部分高位地址線參與譯碼時稱為部分譯碼法。譯碼電路可用專用的譯碼器芯片實現(xiàn),單片機應(yīng)用系統(tǒng)常用的譯碼器有以下3種:2-4譯碼器(如雙2-4譯碼器74LS139),可對2位高位地址進行譯碼,產(chǎn)生4個片選信號,最多可外接4個芯片。3-8譯碼器(如74LS138),可對3位高位地址進行譯碼,產(chǎn)生8個片選信號,最多可外接8個芯片。4-16譯碼器(如74LS154),可對4位高位地址進行譯碼,產(chǎn)生16個片選信號,最多可外接16個芯片。譯碼法的地址計算方法同線選法類似,不同之處在于片外地址的形成與譯碼電路有關(guān),需要進行簡單計算。2023/9/2126例9-3在AT89C51單片機外擴4片6264芯片,設(shè)計單片機與存儲器的連接電路,要求6264芯片的片選信號采用譯碼法產(chǎn)生,計算存儲器的地址范圍。解:4片6264的地址線均有13條,因此低位地址線為A12~A0,高位地址線為A15~A13。4個芯片的片選線采用3-8譯碼器譯碼后獲得,電路連接如圖9-10所示。2023/9/21272023/9/2128由于高位地址線全部參與產(chǎn)生片選信號,因此芯片上的單元與地址一一對應(yīng),地址不重疊,且4個芯片的地址連續(xù)。本題也可以利用2-4譯碼器實現(xiàn),這樣只有2條高位地址線參與譯碼,為部分譯碼法。由于剩余的一條地址線可0可1,因此也會出現(xiàn)地址重疊現(xiàn)象。由例9-3可知,譯碼法的特點是對系統(tǒng)地址空間的利用率高,各芯片的地址連續(xù),特別是全譯碼法,每個芯片上每個單元只有一個唯一的系統(tǒng)地址,不存在地址重疊現(xiàn)象,利用相同位數(shù)的高位地址線,全譯碼法產(chǎn)生的片選信號線比線選法多,可擴展更多的外圍芯片。部分譯碼法雖然存在地址重疊現(xiàn)象,但譯碼電路更簡單。譯碼法適用于較復(fù)雜的單片機系統(tǒng)的擴展。2023/9/21299.3并行I/O接口的擴展單片機系統(tǒng)內(nèi)部具有4個8位并行I/O口,均可用于雙向并行I/O接口,與外部設(shè)備相連。但在實際應(yīng)用中,只有在單片機的最小應(yīng)用系統(tǒng)下,這4個I/O口才作為通用I/O口使用。在系統(tǒng)進行外部擴展時,P0口作為數(shù)據(jù)總線和低8位地址總線,P2口作為高8位地址總線,P3口用于第二功能提供部分控制總線,因此用戶只能使用P1口,這在外設(shè)較多的情況往往不夠用,必須進行并行I/O口的擴展。
2023/9/21309.3.1并行I/O口擴展概述1.并行I/O口的擴展方法(1)并行總線擴展將待擴展的I/O接口芯片的數(shù)據(jù)線與單片機的數(shù)據(jù)總線(P0口)并接,需要一根片選信號線,并分時占用P0口。特點:由于不影響其他芯片的連接與操作,也不給單片機硬件帶來額外開支,因此在應(yīng)用系統(tǒng)的并行I/O口擴展中被廣泛采用。(2)串行口擴展方法單片機串行口的工作方式0為移位寄存器方式,對于不使用串行口的單片機應(yīng)用系統(tǒng),可在串行口外接一串入/并出移位寄存器以實現(xiàn)并行I/O口的擴展。通過移位寄存器的級聯(lián),還可擴展大量的并行I/O口線。特點:這種擴展方法數(shù)據(jù)傳輸速度較慢。2023/9/21312.I/O口的編址方式I/O接口中的端口:指存放地址、數(shù)據(jù)、控制信息的寄存器I/O端口的編址方式有獨立編址和統(tǒng)一編址
(1)獨立編址方式獨立編址是指I/O端口的地址空間與存儲器地址空間相互獨立,完全分開。優(yōu)點是有專門的輸入/輸出指令,程序清晰;存儲器和I/O端口的控制結(jié)構(gòu)相互獨立。缺點是要求CPU設(shè)置專門的引腳信號;I/O指令的功能不豐富,程序設(shè)計的靈活性差。80x86系列的CPU采用此種編址方式。(2)統(tǒng)一編址方式統(tǒng)一編址是指I/O端口與數(shù)據(jù)存儲器共用一個地址空間。其優(yōu)點是不需要專門的輸入/輸出指令,編程靈活;I/O端口的數(shù)目不受限制。缺點是占去數(shù)據(jù)存儲器地址空間,使存儲器可尋址空間減小。80C51單片機采用此種編址方式。2023/9/213280C51單片機的I/O端口與外部數(shù)據(jù)存儲單元使用共同的地址空間,范圍是0000H~FFFFH。不需要專門的輸入輸出指令,單片機對擴展I/O端口的訪問方法同訪問外部RAM一樣,用匯編語言編程時使用的指令相同,如果用C51編程,數(shù)據(jù)類型應(yīng)定義為xdata或pdata。2023/9/21339.3.2簡單并行I/O口的擴展要求:作為輸入接口的芯片應(yīng)具有三態(tài)特性;作為輸出接口的芯片應(yīng)具有鎖存功能。擴展方法特點:電路結(jié)構(gòu)簡單,成本低,傳送控制方式簡單,配置靈活使用方便,但電路連接后,功能難以改變。因此適用于擴展單個8位的輸入/輸出口選用TTL或CMOS電路的三態(tài)緩沖器、寄存器或數(shù)據(jù)鎖存器等芯片作為I/O口擴展芯片。這些電路具有數(shù)據(jù)緩沖或鎖存功能,但自身只有數(shù)據(jù)的輸入或輸出、選通端或時鐘信號端,沒有地址線和讀/寫控制線,故在進行擴展時往往需要將地址線和讀/寫等控制線經(jīng)邏輯組合后再輸出至選通端或時鐘信號端。編址通常采用的是線選法,芯片地址由使用的地址線決定,往往有重疊。2023/9/2134常使用緩沖器作為輸入接口芯片,經(jīng)常使用的芯片有:1.74HC244/74LS244—正相三態(tài)緩沖器(單向驅(qū)動)。2.74HC240/74LS240—反相三態(tài)緩沖器。3.74HC245/74LS245—8總線接收器(雙向驅(qū)動)。常使用寄存器、鎖存器作為輸出接口芯片,常用芯片:1.74HC273/74LS273—8D觸發(fā)器(共時鐘,帶清除)。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單片機利用74HC373和74HC244進行擴展的開關(guān)與指示燈接口電路如圖9-14所示,編寫程序?qū)崿F(xiàn)當(dāng)開關(guān)DSW1打在“ON”位置時對應(yīng)的LED亮,打在“OFF”位置時對應(yīng)的LED暗,即用LED指示開關(guān)的狀態(tài)。圖9-14例9-4proteus仿真電路解:分析:74HC373和74HC244分別作為輸出接口和輸入接口。P2.0與RD相或后作為74HC244的片選信號,與WR相或后作為74HC373的片選信號。74HC373和74HC244芯片的地址計算如圖9-15所示,兩個芯片的地址相同,但是74HC244只有讀操作(RD=0,WR=1),而74HC373只有寫操作(RD=1,WR=0),因此依然可以使用P0口與CPU交換數(shù)據(jù)而不會產(chǎn)生沖突。當(dāng)開關(guān)打在“ON”位置時,從74HC244讀入的對應(yīng)位為0,通過74HC373輸出時,剛好使對應(yīng)的LED點亮。圖9-1574HC373和74HC244芯片的地址計算2023/9/2137程序設(shè)計如下:#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口的擴展采用TTL或CMOS電路擴展的I/O口,只能用于對輸入/輸出要求較為簡單的系統(tǒng)中,當(dāng)單片機應(yīng)用系統(tǒng)中需要較為復(fù)雜的I/O接口時,應(yīng)選用通用可編程的I/O接口芯片來擴展。
可編程I/O接口芯片的工作方式和功能均可通過軟件編程設(shè)定,使用靈活,既可作為輸入口使用,又可作為輸出口使用,適應(yīng)多種功能需求,應(yīng)用非常廣泛。2023/9/21391.8255A的內(nèi)部結(jié)構(gòu)和功能(1)與外設(shè)相關(guān)的外部接口它包含3個8位的可編程雙向I/O接口,分別稱為A口、B口、C口。外設(shè)通過這些端口與單片機交換信息。A口具有一個8位數(shù)據(jù)輸出鎖存/緩沖器和一個8位輸入鎖存器,是最靈活的輸入/輸出寄存器,它可以編程為輸入/輸出或雙向寄存器;
B口具有一個8位數(shù)據(jù)輸出鎖存/緩沖器和一個8位輸入緩沖器(但不鎖存),它可以編程為輸入/輸出寄存器,但不能雙向輸入/輸出;
C口具有一個8位數(shù)據(jù)輸出鎖存/緩沖器和一個8位輸入緩沖器(但不鎖存)。(2)與內(nèi)部工作方式相關(guān)的內(nèi)部控制邏輯它包含有兩組控制電路,稱為A組和B組的控制電路,其內(nèi)設(shè)有控制寄存器,控制寄存器的內(nèi)容由單片機寫入,它決定了8255A的工作方式。(3)與單片機有關(guān)的CPU接口包括數(shù)據(jù)總線緩沖器和讀/寫控制邏輯,這是任何一個可編程接口芯片都具有的組成部分。
數(shù)據(jù)總線緩沖器是8255A與系統(tǒng)總線連接的通道,它可以輸入或輸出各種數(shù)據(jù),如外設(shè)送給單片機的信息、單片機送給8255A的命令和單片機送給外設(shè)的信息等。
讀/寫控制邏輯電路負責(zé)管理8255A的數(shù)據(jù)傳輸過程,它接收片選信號及系統(tǒng)讀信號、寫信號、復(fù)位信號RESET、口地址選擇信號(一般用地址線的最低位A1和A0),用于控制對8255A內(nèi)部的四個寄存器進行讀/寫操作。2023/9/2140(1)面向CPU的引腳信號及功能D0~D7:8位雙向三態(tài)數(shù)據(jù)線,可以與系統(tǒng)數(shù)據(jù)總線直接相連,用于在CPU與8255A之間傳送數(shù)據(jù)信息、控制信息及狀態(tài)信息。RESET:復(fù)位信號,高電平有效,輸入,用來清除8255A的內(nèi)部寄存器,并置A口、B口、C口均為輸入方式。注意:8255A工作之前,硬件上必須先復(fù)位,使8255A內(nèi)部的各個部件處于待命狀態(tài)。CS:片選,輸入,低電平有效,用來決定芯片是否被選中。只有該信號有效時,才允許CPU與8255A交換信息。RD:讀信號,輸入,低電平有效,當(dāng)有效且為低電平時,將被選中的端口數(shù)據(jù)或狀態(tài)信息送至數(shù)據(jù)總線。WR:寫信號,輸入,低電平有效,當(dāng)有效且為低電平時,CPU將數(shù)據(jù)線上的數(shù)據(jù)或控制信息寫入被選中的端口。A1、A0:內(nèi)部口地址選擇信號,輸入。這兩個引腳上的信號組合決定對8255A內(nèi)部的哪一個口或寄存器進行操作。8255A內(nèi)部共有4個端口:端口A、端口B、端口C和控制口。引腳Al、A0與、、組合,可用來選中端口,并對其進行讀或?qū)懖僮鳎?255A的操作功能如表9-3所示。2023/9/2141圖9-178255A的引腳圖(2)面向外設(shè)的引腳信號及功能PA0~PA7:A口數(shù)據(jù)信號,用來連接外設(shè)。PB0~PB7:B口數(shù)據(jù)信號,用來連接外設(shè)。PC0~PC7:C口數(shù)據(jù)信號,其作用由軟件設(shè)定,可連接外設(shè),在CPU與外設(shè)之間傳送數(shù)據(jù);也可以作為A口或B口輸入/輸出操作的聯(lián)絡(luò)線和控制線。2023/9/21423.8255A與單片機的接口電路單片機與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,分別對應(yīng)選擇A、B、C口與控制寄存器。(3)控制總線的連接8255A的片選信號由單片機P2.5~P2.7經(jīng)74HC138譯碼器的Y7產(chǎn)生。若要選中8255A,則Y7必須有效,此時P2.7P2.6P2.5=111。2023/9/21432023/9/21444.8255的工作方式8255A有三種工作方式:方式0:基本輸入輸出;方式1:選通輸入輸出;方式2:雙向傳送(僅A口有)。2023/9/2145A.具有兩個8位端口(A、B)和兩個4位端口(C的上半部分和下半部分)。B.任一個端口都可以設(shè)定為輸入或輸出,各端口的輸入、輸出可構(gòu)成16種組合。C.數(shù)據(jù)輸出鎖存,輸入不鎖存。(1)方式0基本輸入輸出功能:應(yīng)用場合:A.無條件傳送;B.查詢式傳送。在利用查詢傳送方式傳送數(shù)據(jù)時,可用A口、B口、C口這三個口的任一位充當(dāng)查詢信號,其余I/O口仍作為獨立的端口和外設(shè)相連。2023/9/2146(2)方式1選通輸入/輸出工作方式三個端口分為A、B兩組。A、B口仍作為兩個獨立的8位I/O數(shù)據(jù)通道,可單獨連接外設(shè),通過編程設(shè)置它們?yōu)檩斎牖蜉敵?,C口則要由六位(分成兩個3位)分別作為A口和B口的應(yīng)答信號線,其余兩位分別仍可工作在方式0。
A.方式1輸入控制聯(lián)絡(luò)信號如下頁圖所示,STB與IBF構(gòu)成了一對應(yīng)答聯(lián)絡(luò)信號。2023/9/2147方式1輸入2023/9/2148INTR(Interruptrequest)
:中斷請求信號,高電平有效。由8255A輸出,向單片機發(fā)中斷請求。INTEA(InterruptEnable):A口中斷允許,由PC4控制,INTEB:B口中斷允許,由PC2控制。STB(Strobe):選通輸入,是由外設(shè)送來的輸入信號。當(dāng)其為低時,將外設(shè)數(shù)據(jù)輸入8255A。IBF(InputBufferFull)
:輸入緩沖器滿,高電平有效。表示數(shù)據(jù)已送入8255A的輸入鎖存器,它由STB信號的下降沿置位,由RD信號的上升沿使其復(fù)位。2023/9/2149B.方式1輸出如下頁圖所示。OBF與ACK構(gòu)成了一對應(yīng)答聯(lián)絡(luò)信號,各信號的功能如下:OBF(OutputBufferFull)
:輸出緩沖器滿信號,8255A給外設(shè)的聯(lián)絡(luò)信號,外設(shè)可以將數(shù)據(jù)取走。ACK(Acknowledge)
:外設(shè)的響應(yīng)信號,外設(shè)已將數(shù)據(jù)取走。INTR:中斷請求信號。表示該數(shù)據(jù)已被外設(shè)取走,請求單片機繼續(xù)輸出下一個數(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)輸入時,PA7~PA0受STBA和IBFA控制,其工作過程和方式1輸入時相同;當(dāng)輸出時,PA7~PA0受OBFA、ACKA控制,其工作過程和方式1輸出時相同。2023/9/2152方式22023/9/21535.8255A的控制字和初始化編程
8255A芯片的初始化編程是通過對控制口寫入控制字的方式實現(xiàn)的??刂谱钟袃蓚€,一是方式控制字,另一個是C口按位置位/復(fù)位控制字,用D7位來區(qū)分,故D7位稱為特征位。方式控制字用于設(shè)置8255A芯片三個端口的工作方式以及輸入輸出狀態(tài),用D7位為1來標(biāo)識。圖9-198255A的方式控制字例如,設(shè)定A口為方式1輸入,B口為方式0輸出,PC7~PC4為輸入,PC3~PC0為輸出的方式控制字為:10111000B。2023/9/2154
C口的按位置位/復(fù)位控制字用于對C口的某一位進行置位或復(fù)位,用D7位為1來標(biāo)識,如圖9-20所示。圖9-208255A的C口按位置位/復(fù)位控制字C口具有位操作能力,每一位都可以通過向控制口寫入置位/復(fù)位控制字設(shè)置為1或0而不影響其他位的狀態(tài)。例如PC5置1的置位控制字為:
00001011B注意:將C口的某位置位或復(fù)位時,置位/復(fù)位控制字一定要寫入控制口,即所寫入的地址應(yīng)為控制口的地址而不是C口的地址,這一點常被疏忽。
2023/9/2155例9-5電路連接如圖9-18,對8255A芯片進行初始化,要求A口工作在方式0輸入,B口為方式1輸出,C口高4位PC4~PC7為輸入,C口低4位PC3~PC0為輸出。編寫實現(xiàn)上述功能的初始化程序段。解:首先根據(jù)CS、A1和A0的接線計算8255A控制口的地址,當(dāng)CS=0;A1=1;A0=1時選擇控制口,即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。解:控制口的地址計算和例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對AT89C51單片機外擴一片8255A芯片,8255A的地址線A1、A0由單片機P0.1、P0.0經(jīng)74LS373鎖存后獲得,片選信號接單片機的P2.7,8255A的PA、PB、PC口各接8個發(fā)光二極管,仿真電路如圖9-21所示。試編寫程序使三行發(fā)光二極管逐行從左往右循環(huán)點亮。圖9-21例9-7仿真電路2023/9/2159程序設(shè)計如下:#include<reg52.h>#include<absacc.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar#definePAXBYTE[0x0000]//PA,PB,PC及命令端口地址定義#definePBXBYTE[0x0001]#definePCXBYTE[0x0002]#defineCOMXBYTE[0x0003]voidDelay(uintx)//延時子程序{uchari;while(x--){for(i=0;i<120;i++);}}voidmain(){uchark,m=0x7f;COM=0x80;//控制字while(1){for(k=0;k<8;k++)//輪流點亮第一排小燈{m=_crol_(m,1);PA=m;Delay(100);}PA=0xff;//關(guān)閉第一排小燈for(k=0;k<8;k++)//輪流點亮第二排小燈{m=_crol_(m,1);PB=m;Delay(100);}PB=0xff;//關(guān)閉第二排小燈 for(k=0;k<8;k++)//輪流點亮第三排小燈{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所示,對AT89C51單片機外擴一片8255A芯片,8255A的地址線A1、A0由單片機P0.1、P0.0經(jīng)74LS373鎖存后獲得,片選信號接單片機的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è)計如下:#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;//選通某個數(shù)碼管的位選PB=DSY_CODE[k-1];//將段碼送給上面數(shù)碼管對應(yīng)的段DelayMS(2);}}}解:根據(jù)圖中的連接,PA、PB、PC與控制口的端口地址分別為0x0000、0x0001、0x0002、0x0003。8255的控制字為:0x80。2023/9/21629.4鍵盤接口技術(shù)
鍵盤用于實現(xiàn)單片機應(yīng)用系統(tǒng)中的數(shù)據(jù)和控制命令的輸入,鍵盤接口的主要功能是對鍵盤上所按下的鍵進行識別,常用的鍵盤有全編碼鍵盤和非編碼鍵盤兩種。
全編碼鍵盤使用專用的硬件邏輯自動識別按鍵,還具有去抖動和多鍵、竄鍵保護電路。這種鍵盤使用方便,但價格較高,常用于PC機中,一般的單片機系統(tǒng)很少使用。
非編碼鍵盤使用軟件對按鍵進行識別,可分為獨立式按鍵和矩陣式鍵盤。這種鍵盤結(jié)構(gòu)簡單、成本低,在單片機系統(tǒng)中廣泛使用。2023/9/21639.4.1按鍵開關(guān)單片機中的鍵盤通常由按鍵開關(guān)組成,按鍵開關(guān)的外形和參數(shù)如圖9-23所示,它是一種常開型按鍵開關(guān),為了便于安裝固定,它有四個管腳,其管腳說明如圖9-23中的文字所示,在常態(tài)時開關(guān)觸點(1和2)處于斷開狀態(tài),只有按下按鍵時開關(guān)觸點才閉合短路,所以可以用萬用表檢測開關(guān)的管腳排列、好壞和質(zhì)量。圖9-23按鍵開關(guān)外形2023/9/21649.4.2鍵盤工作原理1.按鍵消抖問題按鍵是利用機械觸點的合、斷來實現(xiàn)鍵的閉合與釋放,由于彈性作用,機械觸點在閉合及斷開瞬間會有抖動的過程,從而使鍵輸入電壓的信號也存在抖動現(xiàn)象。若鍵盤接口電路如圖9-24所示,當(dāng)開關(guān)S未被按下(即斷開)時,P1.1輸入為高電平,S閉合后,P1.1輸入為低電平,實際由于有按鍵抖動,P1.1引腳輸入的波形如圖9-25所示。分別將鍵的閉合和斷開過程中的抖動期稱為前沿抖動和后沿抖動。
圖9-24鍵盤接口電路圖9-25按鍵抖動波形2023/9/2165抖動時間的長短與開關(guān)的機械特性有關(guān),一般為5~10ms,穩(wěn)定閉合期時間的長短由按鍵的動作決定,一般為幾百ms~幾s。為了保證按鍵按動一次,CPU對鍵閉合僅作一次按鍵處理,必須去除抖動的影響。
去除抖動的方法一般有硬件和軟件兩種。
硬件方法就是在按鍵輸出通道上添加去抖動電路,從根本上避免電壓抖動的產(chǎn)生,去抖動電路可以是單穩(wěn)態(tài)電路或者濾波電路。
軟件方法通常是在檢測到有鍵按下時延遲10~20ms的時間,待抖動期過去后,再次檢測按鍵的狀態(tài),如果仍然為閉合狀態(tài),才認為是有鍵按下,否則認為是一個擾動信號。按鍵釋放的過程與此相同,都要利用延時進行消抖處理。由于人的按鍵速度與單片機的運行速度相比要慢很多,所以,軟件延時的方法簡單可行,而且不需要增加硬件電路,成本低,因而被廣泛采用。2023/9/2166
鍵盤中的每個按鍵都是一個常開的開關(guān)電路,按下時則處于閉合狀態(tài)。無論是一組獨立式按鍵還是一個矩陣式鍵盤,都需要通過接口電路與單片機相連,以便將鍵的開關(guān)狀態(tài)通知單片機。單片機檢測鍵狀態(tài)的方式有以下幾種:(1)編程掃描方式,利用程序?qū)︽I盤進行隨機掃描,通常在CPU空閑時
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025電視機買賣合同范本
- 二零二五年度新材料研發(fā)借款協(xié)議3篇
- 二零二五年度電子商務(wù)散伙協(xié)議書3篇
- 二零二五年度公司對公租賃房屋物業(yè)管理合同2篇
- 2025年度年度文化旅游股份收購?fù)顿Y合同3篇
- 二零二五年度股東間戰(zhàn)略聯(lián)盟合作協(xié)議書3篇
- 2025年度農(nóng)村合作社農(nóng)村電商直播培訓(xùn)合同
- 2025年農(nóng)村環(huán)境衛(wèi)生保潔與農(nóng)村環(huán)境保護法律法規(guī)執(zhí)行合同
- 2025年度全新工業(yè)機器人價格保密協(xié)議3篇
- 2025年度軍人保密協(xié)議與軍事設(shè)施維護保密合同3篇
- 前臺文員的工作靈活性與適應(yīng)能力計劃
- 人教版歷史2024年第二學(xué)期期末考試七年級歷史試卷(含答案)
- 2024年秋八年級歷史上冊 第24課 人民解放戰(zhàn)爭的勝利教案 新人教版
- 預(yù)算法及實施條例測試題(含答案)
- 提高護士應(yīng)用PDA落實患者身份識別準(zhǔn)確率 2
- 游戲產(chǎn)品自行審核工作報告
- 1.1 我與社會 課件-2024-2025學(xué)年道德與法治八年級上冊(統(tǒng)編版2024)
- 廚政管理說課市公開課一等獎省賽課微課金獎?wù)n件
- 遵守道德規(guī)范錘煉道德品格專題第3講 投身崇德向善的道德實踐1課件
- 《高等數(shù)學(xué)教程》全套教學(xué)課件
- 2024年天津市中考英語試題卷(含答案)
評論
0/150
提交評論