版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、外部存儲(chǔ)器的擴(kuò)展技術(shù)并行接口的擴(kuò)展技術(shù)第6章 MCS-51系列單片機(jī)的擴(kuò)展技術(shù)1 在很多復(fù)雜的應(yīng)用情況下,單片機(jī)內(nèi)的RAM、ROM和I/O接口不夠使用時(shí),就需要進(jìn)行擴(kuò)展。 單片機(jī)的系統(tǒng)擴(kuò)展主要是指外接程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器或I/O接口等,以滿足應(yīng)用系統(tǒng)的需要。2 單片機(jī)是通過(guò)地址總線,數(shù)據(jù)總線和控制總線與外部交換信息的。MCS-51單片機(jī)的總線接口信號(hào)見(jiàn)圖。3(1) 地址總線A0A15 地址總線的高8位是由P2口提供的,低8位是由P0口提供的。 在訪問(wèn)外部存儲(chǔ)器時(shí),由地址鎖存信號(hào)ALE的下降沿把P0口的低8位以及P2口的高8位鎖存至地址鎖存器中,從而構(gòu)成系統(tǒng)的16位地址總線。(2) 數(shù)據(jù)總線D
2、0D7 數(shù)據(jù)總線是由P0口提供的,因?yàn)镻0口線既用作地址線,又用作數(shù)據(jù)線(分時(shí)使用),因此,需要加一個(gè)8位鎖存器。4(3) 控制總線 系統(tǒng)控制總線共12根,既P3口的第二功能再加上RESET、EA、ALE和PSEN。實(shí)際應(yīng)用中的常用控制信號(hào)如下。 使用ALE作為地址鎖存的選通信號(hào),以實(shí)現(xiàn)低8位地址的鎖存。 以PSEN信號(hào)作為擴(kuò)展程序存儲(chǔ)器的讀選通信號(hào),在取指令碼時(shí)或執(zhí)行MOVC指令時(shí)變?yōu)橛行А?以EA信號(hào)作為內(nèi)、外程序存儲(chǔ)器的選擇信號(hào)。 以RD和WR作為擴(kuò)展數(shù)據(jù)存儲(chǔ)器和I/O端口的讀、寫(xiě)選通信號(hào)。執(zhí)行MOVX指令時(shí),這兩個(gè)信號(hào)分別自動(dòng)有效。 51.外部程序存儲(chǔ)器時(shí)序分析 程序存儲(chǔ)器擴(kuò)展電路的安
3、排應(yīng)滿足單片機(jī)從外存取指令的時(shí)序要求。從時(shí)序圖中分析ALE、PSEN、P0和P2怎樣配合使程序存儲(chǔ)器完成取指操作,從而得出擴(kuò)展程序存儲(chǔ)器的方法。 單片機(jī)一直處于不斷的取指令碼執(zhí)行取指令碼執(zhí)行的工作過(guò)程中,在取指令碼時(shí)和執(zhí)行MOVC指令時(shí)PSEN會(huì)變?yōu)橛行?,和其它信?hào)配合完成從程序存儲(chǔ)器讀取數(shù)據(jù)。6.1 外部存儲(chǔ)器的擴(kuò)展技術(shù)6.1.1外部程序存儲(chǔ)器的擴(kuò)展技術(shù)6外部程序存儲(chǔ)器訪問(wèn)時(shí)序EA=0,選擇外部ROM。S2P1開(kāi)始,P2口輸出高8位地址A15-A8,一直持續(xù)到S4。S2P1開(kāi)始,P0口輸出低8位地址A7-A0,S2P1結(jié)束ALE下降沿鎖存A7-A0。S3P1開(kāi)始,PSEN讀選通外部存儲(chǔ)器,延
4、時(shí)等待TPLIV存儲(chǔ)器把數(shù)據(jù)送到P0口。在PSEN上升沿來(lái)以前,單片機(jī)讀取P0數(shù)據(jù),完成一次外部程序存儲(chǔ)器訪問(wèn)。一個(gè)機(jī)器周期可訪問(wèn)兩次外部程序存儲(chǔ)器,讀兩字節(jié)指令。72.外部程序存儲(chǔ)器的連接方法三總線分別連接8 單片機(jī)外部擴(kuò)展常用程序存儲(chǔ)器芯片為EPROM,其掉電后信息不會(huì)丟失,且只有在紫外線的照射下,存儲(chǔ)器的單元信息才可擦除。 用作擴(kuò)展的EPROM主要是27系列,如2716、2732、2764、27128、7256等,其中高位數(shù)字27表示該芯片是EPROM,低位數(shù)字表明存儲(chǔ)容量,如2716表示16K個(gè)存儲(chǔ)位,亦即字節(jié)容量為2K的EPROM。 常用的還有EEPROM ,即28系列,如2816/
5、2817、2864等,型號(hào)含義同上。 3.外部程序存儲(chǔ)器的擴(kuò)展(1)常見(jiàn)的EPROM存儲(chǔ)器及擴(kuò)展電路9 EPROM除2716外均為28線雙列直插式封裝,各引腳定義如下。 A0Ai:地址輸入線,i=1215。 D0Di:三態(tài)數(shù)據(jù)總線,讀或編程校驗(yàn)時(shí)為數(shù)據(jù)輸出線,編程時(shí)為數(shù)據(jù)輸入線。其余時(shí)間呈高阻狀態(tài)。 PGM:編程脈沖輸入線。 OE:讀出選通線,低電平有效。 CE:片選線,低電平有效。 VPP:編程電源線,其值因芯片及制作廠商而異。 VCC:電源線,接+5V電源。 GND:接地。1074LS373為8D鎖存器在ALE下跳沿鎖存地址,高位地址直接相連。只擴(kuò)展了一片EPROM,片選端接地。PSEN的
6、下降沿使OE有效,由A0A12指定的單元指令碼從D0D7輸出。P0讀入指令到單片機(jī), 經(jīng)譯碼執(zhí)行。常見(jiàn)的EPROM存儲(chǔ)器及擴(kuò)展電路11 單片機(jī)擴(kuò)展2716,2732,27128等EPROM的方法與上圖相同,差別僅在于不同的芯片的存儲(chǔ)容量不同,因而使用高8位地址的P2端口線的根數(shù)不同。 擴(kuò)展2716(2KB)需使用A8A10 三條高位地址線 擴(kuò)展2732(4KB)需要A8A11 四條高位地址線。 擴(kuò)展27128(16KB)需要A8A13六條高位地址線。 注意:2764和27128的PGM引腳應(yīng)接Vcc。12(2)E2PROM存儲(chǔ)器及擴(kuò)展電路 電可擦除只讀存儲(chǔ)器EEPROM的特點(diǎn)如下: 單+5V供
7、電,電可擦除可改寫(xiě)。 使用次數(shù)為1萬(wàn)次,信息保存時(shí)間為10年。 讀出時(shí)間為ns級(jí),寫(xiě)入時(shí)間為ms級(jí)。 芯片引腳信號(hào)與相應(yīng)的RAM和EPROM芯片兼容。1374LS373為8D鎖存器在ALE下跳沿鎖存地址,高位地址直接相連。只擴(kuò)展了一片EEPROM,片選端接地。PSEN和RD相與后與OE相連,支持讀指令和讀數(shù)據(jù)操作。WR和WE相連,支持寫(xiě)數(shù)據(jù)操作。14(3)多存儲(chǔ)器片選方法 線選法 所謂線選法,就是把單根高位地址線直接加在存貯器芯片的CE端。線選法的優(yōu)點(diǎn)是連接簡(jiǎn)單,不必附加邏輯,但擴(kuò)展的存貯芯片地址不連續(xù)。 15 譯碼法(全譯碼) 譯碼法能提供全部64KB地址空間,且擴(kuò)展的存貯器芯片地址是連續(xù)的
8、。 166.1.2 外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展技術(shù)1.外部數(shù)據(jù)存儲(chǔ)器時(shí)序分析 MCS-51單片機(jī)內(nèi)只有128字節(jié)的數(shù)據(jù)RAM,當(dāng)應(yīng)用中需要更多的RAM時(shí),只能在片外擴(kuò)展??蓴U(kuò)展的最大容量為64KB。 當(dāng)執(zhí)行指令 MOVX A,Ri 或 MOVX A,DPTR 時(shí),進(jìn)入外部數(shù)據(jù)RAM的讀周期。C51語(yǔ)言中采用什么指令訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器?17外部數(shù)據(jù)存儲(chǔ)器的讀周期 第一個(gè)機(jī)器周期讀指令,第二個(gè)機(jī)器周期讀數(shù)據(jù)。P2口輸出高8位地址A15-A8。P0口輸出低8位地址A7-A0。分時(shí)有效,需ALE下降沿鎖存。P0口讀8位數(shù)據(jù)D7-D0。分時(shí)有效,需RD選通外部存儲(chǔ)器。單片機(jī)在RD上升沿之前讀入P0數(shù)據(jù),完成一
9、次外部存儲(chǔ)器讀操作。18外部數(shù)據(jù)存儲(chǔ)器的寫(xiě)周期第一個(gè)機(jī)器周期讀指令,第二個(gè)機(jī)器周期寫(xiě)數(shù)據(jù)。P2口輸出高8位地址A15-A8。P0口輸出低8位地址A7-A0。分時(shí)有效,需ALE下降沿鎖存。P0口讀8位數(shù)據(jù)D7-D0。分時(shí)有效,需WR選通外部存儲(chǔ)器。外部存儲(chǔ)器在WR上升沿之前將P0數(shù)據(jù)寫(xiě)入指定單元。192. 外部數(shù)據(jù)存儲(chǔ)器的連接方法注意:外部數(shù)據(jù)存儲(chǔ)器由RD或WR選通,可讀可寫(xiě);203. 外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展 6116的地址為0000H07FFH,由于高位地址線未接入電路中,該芯片地址還可為1000H17FFH、2000H27FFH等等。 21完成外部數(shù)據(jù)存儲(chǔ)器RAM讀寫(xiě)操作的兩種方式: 例如把累
10、加器A的內(nèi)容寫(xiě)入外部存儲(chǔ)器RAM的02F3H單元中,可有如下兩種程序:第一種:MOV P2,#02H ;端口提供高8位地址 MOV R0,0F3H ;R0提供低8位地址 MOVX R0,A ;A中內(nèi)容寫(xiě)入02F3H單元第二種:MOV DPTR,02F3H ;DPTR提供16位地址 MOVX DPTR,A ;A 中內(nèi)容送02F3H單元 同樣地,若需將外部數(shù)據(jù)存儲(chǔ)器RAM 02F3H地址單元中的內(nèi)容讀入A累加器,其程序可為:第一種:MOV P2,02H ;端口提供高8位地址 MOV R0,0F3H ;R0提供低8位地址 MOVX A,R0 ;02F3H單元內(nèi)容送入A 中第二種:MOV DPTR,0
11、2F3H ;DPTR提供16位地址 MOVX A,DPTR ;02F3H單元內(nèi)容送入A 中C51語(yǔ)言中采用什么指令實(shí)現(xiàn)上述功能?226.2 并行接口的擴(kuò)展技術(shù) MCS-51單片機(jī)共有4個(gè)8位并行I/O口, 在外部擴(kuò)展時(shí), P0和P2口做為總線使用,因而提供給用戶的 I/O口就只有P1或P3口的部分口線。所接的外設(shè)較多時(shí),就必須擴(kuò)展I/O接口。 MCS-51單片機(jī)擴(kuò)展的I/O口和外部數(shù)據(jù)存儲(chǔ)器統(tǒng)一編址、采用相同的控制信號(hào)、相同的尋址方式和相同的指令,即XBYTE宏定義。23(1)XBYTE宏定義讀取外設(shè)數(shù)據(jù): 變量=XBYTE地址;RD=0; 1)送出地址:確定訪問(wèn)的單元 P2口送出高8位;P0
12、口送出低8位 2)讀取數(shù)據(jù): 變量=P0(2)XBYTE宏定義通過(guò)外設(shè)輸出數(shù)據(jù): XBYTE地址=數(shù)據(jù);WR=0; 1)送出地址:確定訪問(wèn)的單元 P2口送出高8位;P0口送出低8位 2)輸出數(shù)據(jù): P0=數(shù)據(jù);246.2.1簡(jiǎn)單輸入/輸出口的擴(kuò)展74LS244的選通信號(hào)由RD和P2.0相或產(chǎn)生,當(dāng)執(zhí)行讀該片的指令時(shí), RD和P2.0有效, 打開(kāi)74LS244控制門, 從而把數(shù)據(jù)通過(guò)74LS244讀入8XX51。74LS244各引腳定義如下:1A11A4:第1組4條輸入線1Y11Y4:第1組4條輸出線2A12A4:第2組4條輸入線2Y12Y4:第2組4條輸出線1G:第1組三態(tài)門使能端, 低電平有
13、效2G:第2組三態(tài)門使能端, 低電平有效VCC:工作電源,接+5V電壓GND:接地 25程序如下(匯編): MOV DPTR, #FEFFH; 數(shù)據(jù)指針指向74LS244 MOVX A, DPTR ; 外部數(shù)據(jù)經(jīng)過(guò)74LS244送入累加器A MOV 61H, A ; 數(shù)據(jù)送61H單元保存 26程序如下(C51語(yǔ)言): (1)變量=XBYTE0 xfeff; (2)unsigned char xdata a _at_ 0 xfeff;(全局變量) 變量=a;2774LS273的選通信號(hào)由WR和P2.0相或產(chǎn)生,通過(guò)執(zhí)行對(duì)該片的寫(xiě)指令,WR和P2.0有效,使8XX51的數(shù)據(jù)往74LS273輸出。7
14、4LS273各引腳定義如下:D0D7:輸入線。Q0Q7:輸出線。CLR:清除控制端, 低電平有效。CLK:時(shí)鐘輸入端, 上升沿有效。VCC:工作電源, 接+5V電壓。GND:接地。28 從74LS273輸出數(shù)據(jù),可使用如下指令(匯編): MOV DPTR, #0FEFFH MOVX DPTR,A ;向74LS273輸出數(shù)據(jù)29 從74LS273輸出數(shù)據(jù),可使用如下指令(C51語(yǔ)言): (1) XBYTE0 xfeff=輸出數(shù)據(jù) (2) unsigned char xdata a _at_ 0 xfeff;(全局變量) a=數(shù)據(jù);30【例】74LS273輸出端接8個(gè)LED發(fā)光二極管,以顯示8個(gè)按
15、鈕開(kāi)關(guān)狀態(tài),某位低電平時(shí)二極管發(fā)光。74LS244擴(kuò)展輸入口,接8個(gè)按鈕開(kāi)關(guān)。 31 74LS273和74LS244的工作受AT89C51的P2.0、RD、WR三條控制線控制。電路的工作原理如下: 當(dāng)P2.0=0,WR=0(RD=)選中寫(xiě)74LS273, AT89C51通過(guò)P0口輸出數(shù)據(jù)到74LS273,; 當(dāng)P2.0=0,RD=0(WR=1)時(shí)選中讀74LS244, 某開(kāi)關(guān)按下時(shí)則對(duì)應(yīng)位輸入為“0”。輸出程序段(匯編):MOV A,#data ;數(shù)據(jù)AMOV DPTR,#0FEFFH ;I/O地址DPTRMOVX DPTR,A ;WR為低,數(shù)據(jù)經(jīng)74LS273口輸出輸入程序段(匯編): MO
16、V DPTR,#0FEFFH ;I/O地址DPTR MOVX A,DPTR ;RD為低,74LS244口 ;數(shù)據(jù)讀入內(nèi)部RAM32輸出程序段(C51語(yǔ)言): (1)XBYTE0 xfeff=輸出數(shù)據(jù) (2)unsigned char xdata a _at_ 0 xfeff;(全局變量) a=輸出數(shù)據(jù)輸入程序段(C51語(yǔ)言): (1)變量=XBYTE0 xfeff; (2)unsigned char xdata a _at_ 0 xfeff;(全局變量) 變量=a;33例1 編寫(xiě)程序把按鈕開(kāi)關(guān)狀態(tài)通過(guò)上圖的發(fā)光二極管顯示出來(lái)。程序如下:DDIS:MOV DPTR,#0FEFFH ;輸入口地址D
17、PTRLP:MOVX A,DPTR ;按鈕開(kāi)關(guān)狀態(tài)讀入A中MOVX DPTR,A ;A中數(shù)據(jù)送輸出口SJMP LP ;反復(fù)連續(xù)執(zhí)行#include #include void main()unsigned char a;while(1) a=XBYTE0 xfeff; XBYTE0 xfeff=a; #include unsigned char xdata a _at_ 0 xfeff;void main() unsigned char b; while(1) b=a;a=b;34一、8255的內(nèi)部結(jié)構(gòu)及引腳功能 8255A是可編程并行輸入/輸出接口芯片,內(nèi)含A、B、C三個(gè)8位的輸入輸出數(shù)據(jù)端
18、口,A、B兩組控制電路,讀/寫(xiě)控制邏輯電路以及數(shù)據(jù)總線緩沖器, 其內(nèi)部結(jié)構(gòu)與引腳配置如下圖所示。6.2.2可編程并行輸入/輸出口8255的擴(kuò)展358255A控制信號(hào)與端口信號(hào)傳送的I/O操作關(guān)系 A1A0 RD* WR* CS*工作狀態(tài)00010讀端口A:A口數(shù)據(jù)數(shù)據(jù)總線讀端口B:B口數(shù)據(jù)數(shù)據(jù)總線 讀端口C:C口數(shù)據(jù)數(shù)據(jù)總線010101001000100寫(xiě)端口A:總線數(shù)據(jù)A口寫(xiě)端口B:總線數(shù)據(jù)B口寫(xiě)端口C:總線數(shù)據(jù)C口寫(xiě)控制字:總線數(shù)據(jù)控制字寄存器0110010100111001數(shù)據(jù)總線為三態(tài)11010非法狀態(tài)110數(shù)據(jù)總線為三態(tài)36二、8255A的工作方式及選擇 8255A在三種基本的方式下
19、工作:方式 0:基本輸入/輸出。方式 1:選通的輸入/輸出。方式 2:雙向傳輸。1、方式選擇控制字 其中A口可工作于方式0、1、和2,而B(niǎo)口只能工作在方式0和方式1。例 寫(xiě)入工作方式控制字95H 可將8255A編程為:A口方式0輸入,B口方式1輸出,C口的上半部分(PC7 PC4)輸出,C口的下半部分(PC3PC0)輸入。372. C口按位置位/復(fù)位控制字可對(duì)C口8位中的任一位置“1”或清“0”。用于位控。例 控制字07H寫(xiě)入控制口,置“1” PC3;08H寫(xiě)入控制口,清“0” PC4。38三、AT89C51單片機(jī)和8255的接口1.硬件接口電路 如圖是89C51擴(kuò)展1片8255A的電路圖。7
20、4LS373是地址鎖存器,P0.1、P0.0經(jīng)74LS373與8255A的地址線A1、A0連接; P0.7經(jīng)74LS373與片選端相連,其他地址線懸空。392.確定8255A端口地址圖中8255A各端口寄存器的地址為:A口: FF7CH B口: FF7DHC口: FF7EH 控制寄存器: FF7FH403.軟件編程例 要求8255A工作在方式0,且A口作為輸入,B口、C口作為輸出,程序如下:MOV A,#90H ;A口方式0輸入,B口、 ;C口輸出的控制字送AMOVDPTR,#0FF7FH ;控制寄存器地址DPTRMOVX DPTR,A ;方式控制字控制寄存器MOVDPTR,#0FF7CH ;A口地址DPTRMOVX A,DPTR ;從A口讀數(shù)據(jù)MOV DPTR,#0FF7DH ;B口地址DPTRMOV A,#DATA1 ;要輸出的數(shù)據(jù)DATA1AMOVX DPTR,A ;將DATA1送B口輸出MOV DPTR,#0FF7EH ;C口地址DPTR41MOV A,#DATA2 ;DATA2AMOVX DPTR,A ;將數(shù)據(jù)DATA2送C口輸出C51語(yǔ)言程序:#include #include void main
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小額信用借款合同書(shū)樣本
- 醫(yī)療器材合作合同樣本
- 農(nóng)村宅基地買賣合同樣本
- 夫妻雙方自愿離婚協(xié)議書(shū)撰寫(xiě)要點(diǎn)
- 2024大學(xué)生就業(yè)協(xié)議書(shū)范例
- 離婚標(biāo)準(zhǔn)協(xié)議書(shū)815672024年
- 股東之間的投資合作協(xié)議
- 汽車買賣合同書(shū)樣本
- 電視劇動(dòng)畫(huà)制作合作協(xié)議
- 合同擔(dān)保書(shū)樣本
- 2021年大慶精神鐵人精神知識(shí)競(jìng)賽題庫(kù)
- 浙江泰隆商業(yè)銀行員工手冊(cè)
- 審計(jì)技能實(shí)訓(xùn)教程(喻竹 第二版) 教案全套 1.1-9.2 業(yè)務(wù)承接與評(píng)價(jià)-審計(jì)底稿歸檔
- 徐州市2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試卷(含答案解析)
- 生涯發(fā)展報(bào)告通用模板
- 越人歌音樂(lè)分析報(bào)告
- 2024年湖北省工業(yè)建筑集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 年輕干部?jī)?yōu)勢(shì)分析報(bào)告
- 社區(qū)家庭教育活動(dòng)指導(dǎo)方案
- 《浮點(diǎn)數(shù)計(jì)算方法》課件
- 蘇州市2022-2023學(xué)年高二下學(xué)期期中考試化學(xué)試題(原卷版)
評(píng)論
0/150
提交評(píng)論