第三章mcs-51單片機的指令系統(tǒng)_第1頁
已閱讀1頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第六章 MCS-51單片機總線系統(tǒng)與I/O口擴展,6.1單片機擴展總線概述6.1.1 片外總線擴展結構6.1.2 三總線擴展的方法6.1.3 AT89C××系列單片機的片內(nèi)存儲容量6.2 MCS-51單片機I/O口擴展及編址技術6.2.1 單片機I/O口擴展6.2.2 89C51單片機總線擴展的編址技術6.3 MCS-51存儲器擴展技術6.3.1 89C51單片機的數(shù)據(jù)存儲器擴展6.3.2 89C

2、51單片機的程序存儲器擴展,6.1.1 片外總線擴展結構,總線:連接系統(tǒng)中主機與各擴展部件的一組公共信號線。,1、數(shù)據(jù)總線(DB): 傳送數(shù)據(jù),雙向,CPU的位數(shù)和外部數(shù)據(jù)總線的位數(shù)一致。而數(shù)據(jù)可能是指令代碼、狀態(tài)量或控制量,也可能是真正的數(shù)據(jù)。2、地址總線(AB): 傳送CPU發(fā)出的地址信息,單向,寬度(線數(shù)目)決定了CPU的可尋址范圍。例如:2根地址線,可尋址22=4個字節(jié)單元; 16根地址線,可尋址216

3、=64K字節(jié)單元;3、控制總線(CB): 傳送使微機協(xié)調(diào)工作的定時、控制信號,雙向,但對于每一條具體的控制線,都有固定的功能??刂凭€數(shù)目受芯片引腳數(shù)量的限制。,8位微機的DB總是8位,AB總是16位,而CB的數(shù)目則隨機型不同而不同。,6.1.2 三總線擴展的方法,1.P0口作為數(shù)據(jù)總線和低8位地址線2.以P2口作為高8位地址線3.地址、數(shù)據(jù)分離電路,,ALE 信號就是 MCS-51 單片機提供的專用于數(shù)據(jù)/地址分離

4、的一個引腳。,6.1.3 AT89Cxx片內(nèi)存儲容量,,6.2 單片機I/O口擴展及編制技術,51系列單片機內(nèi)部有4個雙向的并行I/O端口P0~P3,共占32根引腳。P0口的每一位可以驅(qū)動8個TTL負載,P1~P3口的負載能力為3個TTL負載。 在無片外存儲器擴展的系統(tǒng)中,這4個端口都可以作為準雙向通用I/O口使用。,6.2.1 單片機I/O口擴展,MCS-51單片機的I/O端口通常需要擴充,以便和更多的外設(例如顯示器、

5、鍵盤)進行連接。 簡單的I/O口擴展,通常是采用TTL或CMOS電路鎖存器、三態(tài)門等作為擴展芯片,通過P0口來實現(xiàn)擴展的一種方案。它具有電路簡單、成本低、配置靈活的特點。 實際中可使用74LS244、74LS245等芯片作為并行輸入口進行擴展,使用74LS273、74LS377等芯片作為并行輸出口進行擴展。,6.2.1 單片機I/O口擴展,74LS244為8同相三態(tài)緩沖/驅(qū)動器,6.2.1 單片機I/

6、O口擴展,74LS273為8D三態(tài)同相觸發(fā)器,6.2.1 單片機I/O口擴展,圖6-3為采用74LS244作為擴展輸入、74LS273作為擴展輸出的簡單I/O口擴展。,6.2.1 單片機I/O口擴展,P2.0決定了74LS244的地址為: ×××× ×××0 ×××× ××&#

7、215;×B 其中“×”代表任意電平。由于地址線中有無關位,且無關位可組成多種狀態(tài),則會出現(xiàn)“地址重疊”問題。所謂“地址重疊”,是指一個擴展芯片占有多個額定地址空間。一般情況下,無關位取“1”。確定了地址以后,就可以讀入擴展輸入口的內(nèi)容。程序如下:MOVDPTR,#0FEFFH;確定擴展芯片地址MOVXA,@DPTR;將擴展輸入口內(nèi)容讀入累加器A當與74LS244相連的按鍵都沒有按下時

8、,輸入全為1,若按下某鍵,則所在線輸入為0。,6.2.1 單片機I/O口擴展,輸出控制信號由P2.0和相“或”后形成。當二者都為0后,74LS273的控制端有效,選通74LS273, P0上的數(shù)據(jù)鎖存到74LS273的輸出端,控制發(fā)光二極管LED,芯片地址與74LS244的選通地址相同(都是×××× ×××0 ×××× 

9、5;×××B,通常取為FEFFH)。當某線輸出為0時,相應的LED發(fā)光。雖然二個芯片的口地址都為FEFFH,但是由于分別由RD和WR控制,兩個信號不可能同時為0(執(zhí)行輸入指令例如MOVX A,@DPTR或MOVX A,@Ri時,有效;執(zhí)行輸出指令例如MOVX @DPTR,A或MOVX @Ri,A時,有效),所以邏輯上二者不會發(fā)生沖突。,6.2.1 單片機I/O口擴展,例6-1:參照圖6-3,編寫程

10、序?qū)崿F(xiàn)把按鈕開關狀態(tài)通過發(fā)光二極管(LED)顯示出來。分析:首先根據(jù)電路確定輸入/輸出擴展芯片的地址;讀入輸入口的數(shù)據(jù)并用此內(nèi)容控制輸出端口(注意要使用MOVX指令)。 循環(huán)檢測并輸出。匯編語言程序如下:MOVDPTR,# 0FEFFH;確定擴展輸入/輸出芯片地址LOOP:MOVXA,@DPTR;將擴展輸入端口內(nèi)容讀入累加器AMOVX@DPTR,A;將讀入的數(shù)據(jù)送到擴展輸出端口SJMPLOOP

11、;循環(huán)檢測,6.2.1 單片機I/O口擴展,C51語言程序如下:#include //定義MCS-51的特殊功能寄存器SFR unsigned char xdata addr _at_ 0xFEFF;//定義擴展輸入/輸出芯片地址main( ){unsigned char x; //定義8位數(shù)據(jù)變量while(1){x = addr; //讀入擴展輸入端口內(nèi)容ad

12、dr = x; //將讀入的數(shù)據(jù)送到擴展輸出端口}},6.2.2 單片機總線擴展的編址技術,可供使用的編址方法有兩種:線選法 適用于小規(guī)模單片機系統(tǒng)的總線擴展。 譯碼法 適用于大容量多芯片存儲器擴展。常用譯碼器來完成譯碼功能。 常用的譯碼芯片有: 74LS139(雙2-4譯碼

13、器)和74LS138(3-8譯碼器)等 。,6.2.2 單片機總線擴展的編址技術,3線-8線譯碼器74LS138,6.2.2 單片機總線擴展的編址技術,,,,地址鎖存器74LS373,6.3 MCS-51存儲器擴展技術,存儲器的主要技術指標:存儲容量存取速度可靠性功耗工作溫度范圍封裝形式,6.3.1 89C51單片機的數(shù)據(jù)存儲器擴展,MCS-51系列單片機產(chǎn)品中片內(nèi)數(shù)據(jù)存儲器容量一般為128~2048個字節(jié)。,表

14、6-3 常用SRAM芯片的主要性能,例6-2:在單片機應用系統(tǒng)中擴展2K字節(jié)靜態(tài)RAM。(1)芯片選擇根據(jù)題目容量的要求我們選用SRAM 6116,它是一種采用CMOS工藝制成的SRAM,采用單一+5V供電,輸入輸出電平均與TTL電平兼容,具有低功耗操作方式。當CPU沒有選中該芯片時( ),芯片處于低功耗狀態(tài),可以減少80%以上的功耗。6116的管腳如圖6-9所示。,6.3.1 89C51單片機的數(shù)據(jù)存儲

15、器擴展,,,6.3.1 89C51單片機的數(shù)據(jù)存儲器擴展,,(2)硬件電路單片機與6116的硬件連接如圖6-10所示。,6.3.1 89C51單片機的數(shù)據(jù)存儲器擴展,,(3)連線說明6116與單片機的連線如下:地址線:A0~A10連接單片機地址總線的A0~A10,即P0.0~P0.7、P2.0、P2.1、P2.2共11根;數(shù)據(jù)線:I/O0~I/O7連接單片機的數(shù)據(jù)線,即P0.0~P0.7;控制線:片選端,寫允許線,.,讀允許線

16、,6.3.1 89C51單片機的數(shù)據(jù)存儲器擴展,,.,4)片外RAM地址范圍的確定及使用,顯然只有P2.7=0,才能夠選中該片6116,故其地址范圍確定如表6-5所示:,6.3.1 89C51單片機的數(shù)據(jù)存儲器擴展,,如果與6116無關的管腳取0,那么6116的地址范圍是0000H—07FFH;如果與6116無關的管腳取1,那么6116的地址范圍是7800H—7FFFH。單片機對片外RAM的讀寫除了可以使用:MOVX@DPTR

17、,A ;64K字節(jié)內(nèi)寫入數(shù)據(jù)MOVXA,@DPTR ;64K字節(jié)內(nèi)讀取數(shù)據(jù)還可以使用以下對低256字節(jié)的讀寫指令:MOVX@Ri,A ;低256字節(jié)內(nèi)寫入數(shù)據(jù)MOVXA,@Ri ;低256字節(jié)內(nèi)讀取數(shù)據(jù)C51編寫方法:xdata和pdata用于單片機的片外RAM區(qū),這兩個區(qū)聲明變量參見第四章。xdata片外數(shù)據(jù)存儲區(qū)(64KB);pdata分頁尋址片外數(shù)據(jù)存儲區(qū)(2

18、56字節(jié))。,例6-3:擴展8K RAM,地址范圍是4000H—5FFFH,并且具有唯一性;其余地址均作為外部I/O擴展地址。(1)芯片選擇①靜態(tài)RAM芯片6264 6264是8K×8位的靜態(tài)RAM,它采用CMOS工藝制造,單一+5V供電,額定功耗200mW,典型讀取時間200ns,封裝形式為DIP28。②3-8譯碼器74LS138 這里采用全譯碼方式,6264的存儲容量是8K×8

19、位,占用了單片機的13條地址線A0~A12,剩余的3條地址線A13~A15通過74LS138來進行全譯碼。,6.3.1 89C51單片機的數(shù)據(jù)存儲器擴展,,,6.3.1 89C51單片機的數(shù)據(jù)存儲器擴展,,(2)硬件電路,(3)連線說明,6.3.1 89C51單片機的數(shù)據(jù)存儲器擴展,,.,4)片外RAM地址范圍的確定及使用,6.3.1 89C51單片機的數(shù)據(jù)存儲器擴展,,.,總結:,擴展一片6264 (8K字節(jié)),需考慮步驟如下:確

20、定地址線根數(shù); 已知1KB=1024字節(jié),則1K = 210 8K = 213 。所以需要13根地址線,A0~A12。確定地址總線AB及其連接; 地址總線 AB:低8位地址A0~A7從P0口輸出,由于P0口是復用口,所以需通過74LS373鎖存。高8位地址A12~A8直接從P2口輸出,其中A12為最高位。確定數(shù)據(jù)總線DB及其連接; 數(shù)據(jù)總線 DB:直接接P0口,即D0~

21、D7。確定控制總線CB及其連接。,6.3.2 89C51單片機的程序存儲器擴展,,.,通常擴展的外部程序存儲器使用EPROM或E2PROM。,單片機與程序存儲器的連接方法和數(shù)據(jù)存儲器連接方法大致相同。,6.3.2 89C51單片機的程序存儲器擴展,,.,89C51單片機擴展程序存儲器27C64的連接,6.3.2 89C51單片機的程序存儲器擴展,,.,例6-4 采用譯碼器法擴展2片8KB EPROM,2片8KB RAM。EPROM選用

22、2764,RAM選用6264。共擴展4片芯片,擴展接口電路見圖6-13。寫出4片存儲芯片的地址范圍。,6.3.2 89C51單片機的程序存儲器擴展,,.,圖6-13為用74LS138作譯碼器的擴展存儲器接口電路,74LS138的地址線輸入端A、B、C分別接P2.5、P2.6、P2.7; 譯碼狀態(tài)信號輸出端Y0、Y1、Y2、Y3分別接存儲芯片IC1、IC2、IC3、IC4的CE端。因此P2.7、P2.6、P2.5的編碼分別為000—011

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論