程序存儲器的擴展課件_第1頁
程序存儲器的擴展課件_第2頁
程序存儲器的擴展課件_第3頁
程序存儲器的擴展課件_第4頁
程序存儲器的擴展課件_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目七:程序存儲器的擴展項目預備知識知識點鏈接

項目目標通過調(diào)用不同程序存儲器中的程序,觀察控制現(xiàn)象,學習程序存儲器擴展的方法,理解擴展程序存儲器的意義,掌握INC、DEC、JZ、JNZ指令的功能并編寫控制程序。項目任務應用AT89C51芯片和程序存儲器芯片,實現(xiàn)單片機系統(tǒng)程序存儲器的擴展。項目分析

本項目通過編寫不同的程序存儲于不同的程序存儲器(片內(nèi)和片外),學習程序存儲器擴展和讀取程序的方法。

2、加1、減1指令

加1指令又稱為增量指令,共有5條指令;減1指令又稱減量指令,有4條。和加法、減法指令所不同的是,除奇偶標志位外,這些指令的操作不影響PSW中的標志位。1)加1指令匯編指令指令功能

INCA累加器內(nèi)容加1INCdirect直接地址單元內(nèi)容加1INCRn通用寄存器內(nèi)容加1INC@Ri寄存器Ri指向的地址單元中的內(nèi)容加1,結(jié)果送回原地址單元中INCDPTR數(shù)據(jù)指針EPTR內(nèi)容加1

例如,(30H)=22H,執(zhí)行INC30H后,(30H)=23H。本組指令將操作數(shù)內(nèi)容加1,結(jié)果仍然送回原地址存放,如果原地址單元中內(nèi)容為0FFH,加1后將要變?yōu)?0H,運算結(jié)果不影響任何標志位。指令中前4條是8位數(shù)加1指令,可以用來對指定的片內(nèi)RAM單元操作,第5條指令是16位數(shù)的加1指令,運算過程中,若有低8位(DPL)向高8位(DPH)的進位,直接進位即可。這也是MCS-51指令系統(tǒng)中唯一的一條16位算術運算指令。2)減1指令

匯編指令指令功能DECA累加器內(nèi)容減1DECdirect直接地址單元內(nèi)容減1DECRn通用寄存器內(nèi)容減1DEC@Ri寄存器Ri指向的地址單元中的內(nèi)容減1,結(jié)果送回原地址單元中本組指令將操作數(shù)減1,結(jié)果仍送回原地址單元,若原指定單元中的內(nèi)容為00H,減1后將變?yōu)?FFH,運算結(jié)構(gòu)也不影響任何標志位。這4條指令全是8位數(shù)減1指令,若需要對16位數(shù)進行減1操作,可通過簡單的編程實現(xiàn)。例如,R0=30H,(30H)=22H,執(zhí)行DEC@R0后,(30H)=21H。一、單片機應用系統(tǒng)組成

單個的單片機芯片用途是有限的,它往往要和其他具有專門用途的芯片組成單片機應用系統(tǒng),才會更好的發(fā)揮它在控制方面的優(yōu)勢。單片機應用系統(tǒng)的組成特點之一就是單片機、存儲器、I/O口、外設控制均以芯片的形式存在。典型單片機應用系統(tǒng)的硬件組成框圖如圖所示。知識點鏈接:單片機系統(tǒng)擴展技術

MCS51系統(tǒng)單片機(8031、8032除外)盡管是一功能完全的單片機,但因其內(nèi)部資源(RAM、ROM、I/O、A/D、D/A等)不足,在實際應用中不加以擴展直接用其基本系統(tǒng)的情況較少,一般情況下需擴展。單片機擴展的首要問題就是構(gòu)造系統(tǒng)總線,然后再往系統(tǒng)總線上“掛”存儲芯片或I/O接口芯片。MCS-51系列單片機片外引腳可以構(gòu)成三總線結(jié)構(gòu):

地址總線(AB)數(shù)據(jù)總線(DB)控制總線(CB)所有外部芯片都通過這三組總線進行擴展二、外部總線的擴展單片機擴展構(gòu)造圖2)數(shù)據(jù)總線(DB)

數(shù)據(jù)總線由P0口提供,其寬度為8位,該口為三態(tài)雙向口,是應用系統(tǒng)中使用最為頻繁的通道。單片機與外部交換的數(shù)據(jù)、指令、信息大部分由P0口傳送。通常系統(tǒng)數(shù)據(jù)總線上連有很多芯片,而在某一時刻,數(shù)據(jù)總線上只能有一個有效的數(shù)據(jù),究竟哪個芯片的數(shù)據(jù)有效,則由地址信號控制各個芯片的片選端來選擇。3)控制總線單片機控制信號有PSEN、WR、RD、ALE和EA。PSEN:用于片外程序存存儲器(EPROM)的“讀”控制,實際上就是取指令選通控制(低電平有效)。WR、RD:用于片外數(shù)據(jù)存儲器(包括其它接口芯片)的“讀”、“寫”控制(低電平有效)

。ALE:用于鎖存P0口上地址低8位的控制線。EA:用于選擇片內(nèi)或片外程序存儲器。當EA=0時,只訪問外部程序存儲器,不管片內(nèi)有無程序存儲器,因此使用片內(nèi)ROM時EA=1。作為數(shù)據(jù)/地址復用總線,P0口可驅(qū)動8個TTL門電路,P1、P2、P3只能驅(qū)動4個TTL門電路。當應用系統(tǒng)規(guī)模較大、超過其負載能力時,系統(tǒng)便不能穩(wěn)定可靠地工作。在這種情況下,系統(tǒng)設計時應加總線驅(qū)動器,以增強系統(tǒng)總線的驅(qū)動能力。常被用戶選擇的有單向總線驅(qū)動器74LS244、74LS273,雙向驅(qū)動器74LS245等芯片。如下圖7-8所示,74LS273作8位并行輸出接口,74LS244作8位并行輸入接口。74LS244是一個三態(tài)輸出八緩沖器及總線驅(qū)動器,其帶負載能力強,可直接驅(qū)動小于130Ω的負載。總線驅(qū)動能力主要功能:數(shù)據(jù)保持(鎖存)8D~1D:8位數(shù)據(jù)輸入;8Q~1Q:8位數(shù)據(jù)輸出;CLK:時鐘信號,上升沿數(shù)據(jù)鎖存;CLR:清除端典型芯片:帶清除端的8D鎖存器(2)74LS2738D鎖存器74LS273只有清除端為高電平才具鎖存功能鎖存器控制較CLK,上升沿鎖存數(shù)據(jù)。單片機ALE引腳需接反相器輸入輸出CLRCLKDQL××LH↑HHH↑LLHL×Q不變74LS273功能表當CLK由低電平向高電平跳變時刻,D端輸入數(shù)據(jù)傳送到Q輸出端。(3)用74LS273和74LS244擴展I/O口芯片及連線說明P0口作為雙向8位數(shù)據(jù)線,既能夠從74LS244輸入數(shù)據(jù),又能夠從74LS273輸出數(shù)據(jù)。輸入控制信號由P2.7和相“或”后形成。當二者都為0時,74LS244的控制端有效,選通74LS244,外部的信息輸入到P0數(shù)據(jù)總線上。當與74LS244相連的按鍵都沒有按下時,輸入全為1,若按下某鍵,則所在線輸入為0。輸出控制信號由P2.7和相“或”后形成。當二者都為0后,74LS273的控制端有效,選通74LS273,P0上的數(shù)據(jù)鎖存到74LS273的輸出端,控制發(fā)光二極管LED,當某線輸出為0時,相應的LED發(fā)光。

I/O口地址確定因為74LS244和74LS273都是在P2.7為0時被選通的,所以二者的口地址都為7FFFH(這個地址不是惟一的,只要保證P2.7=0,其它地址位無關)。但是由于分別由RD和WR控制,因而兩個信號不可能同時為0(執(zhí)行輸入指令,如MOVXA,@DPTR時,RD有效;執(zhí)行輸出指令,如MOVX@DPTR,A時,WR有效),所以邏輯上二者不會發(fā)生沖突。編程應用下述程序?qū)崿F(xiàn)的功能是按下任意鍵,對應的LED發(fā)光。CONT:MOV DPTR,#7FFFH;數(shù)據(jù)指針指向口地址???MOVX A,@DPTR ;檢測按鍵,向74LS244讀入數(shù)據(jù)???MOVX @DPTR,A ;向74LS273輸出數(shù)據(jù),驅(qū)動LED???SJMP CONT ;循環(huán)三、程序存儲器的擴展

MCS-51的程序存儲器尋址空間為64KB,其中片內(nèi)包含4K的ROM/EPROM。當片內(nèi)ROM不夠而需要擴展程序存儲器時,MCS-51的EA管腳應接地,其它控制信號還有:1、常用的程序存儲器芯片可用紫外線擦除、由電編程的只讀存儲器EPROM芯片常用作MCS-51應用系統(tǒng)的外部程序存儲器。常用的EPROM芯片有2716、2732、2764、27128、27256、27512等,這些芯片的窗口在專門的紫外線燈光照射下,經(jīng)20min后,存儲器所有單元的信息全部變?yōu)?,從而擦去了程序指令代碼。用戶可用專門的EPROM編程(寫入)電路將程序固化在這些EPROM芯片之中。

以27256A為例說明其工作方式及引腳功能。下圖是27256A的管腳圖。27256A是一種32K×8位EPROM存儲器,單一+5V供電,工作電流為100mA,維持電流為40mA,讀出時間最大為250ns。27256A為28線雙列直插式封裝。

27256A工作方式見下表:

CE(第20腳)OE(第20腳)VPP(第1腳)VCC(第28腳)輸出輸出低電平低電平5V5V程序代碼輸出維持高電平任意5V5V高阻抗狀態(tài)編程低電平高電平12.5V6V程序代碼輸入編程校驗高電平低電平12.5V6V程序代碼輸出編程禁止高電平高電平12.5V6V高阻抗狀態(tài)27256A引腳功能如下:A0~A14:15根地址線。 CE:片選線,低電平有效。 VPP:編程電源。GND:接地線。Q0~Q7:8根數(shù)據(jù)線。OE:讀出選通。VCC:+5V工作電源。

D7D6D5D4D3D2D1D0G74LS373GND+5VEQ7Q6Q5Q4Q3Q2Q1Q0

74LS373引腳功能D0~D6數(shù)據(jù)輸入E輸出允許G數(shù)據(jù)輸出Q0~Q7使能端當E=0,G=1時,輸出Q=輸入D(透明);當E=0,G=0時,輸出Q端不變(鎖存)當E=1,輸出高阻態(tài)G一般與單片機的鎖存控制信號ALE相連程序存儲器擴展電路舉例擴展電路的原理分析(1)單片機所用到引腳的時序分析(2)原理分析單片機取指令是各個部件相互協(xié)調(diào)工作的一個過程.主要是以下幾步.第一步,送16位地址,指明要取的指令的存放位置。高8位地址通過P2送到27256的A8-A14和片選端\CE。低8位地址由P0口提供,是通過373連接到27256的A7-A0上的。這里要注意:高8位地址是由A8-A14和片選端\CE共同組成的。片選端\CE為最高位。真正的地址范圍為0000H-7FFFH.第二步,等待ALE第一次有效(高電平)。此時,373通道被打開,低8位地址被送入A7-A0。與此同時,\PSEN為高電平,因此27256的數(shù)據(jù)輸出端還未打開,即數(shù)據(jù)沒有送出。

第三步,ALE出現(xiàn)下降沿。此時,373的門被關?。ㄦi存數(shù)據(jù)),與此同時,\PSEN出現(xiàn)低電平,27256的數(shù)據(jù)輸出端被打開,要取的指令代碼通過O0-O7端口送入數(shù)據(jù)總線。第四步,ALE第二次有效,此時,總線上的代碼通過P0口讀入單片機。雖然此時373被打開,但是由于此時\PSEN為高電平,把27256關掉了。因此,即使剛才的代碼通過373被送到A7-A0,也不會送入27256中。一、硬件電路設計二、控制程序的編寫三、程序仿真與調(diào)試項目實施(一)設計思路在單片機系統(tǒng)擴展存儲器時,根據(jù)4個并行I/O口使用的一般原則,使用MCS-51單片機芯片的P0口和P2口進行程序存儲器的擴展。P0口具有數(shù)據(jù)/地址復用功能,既可在片外存儲器和單片機芯片之間進行數(shù)據(jù)傳送,又可以和P2口共同組成地址線,利用74HC373鎖存器實現(xiàn)此功能。一、硬件電路設計

1、擴展電路設計擴展用的程序存儲器選用27C512芯片,內(nèi)存64KB。使用74HC373鎖存器實現(xiàn)P0口的數(shù)據(jù)/地址分時復用功能。將P0口與鎖存器的輸入引腳D0~D7進行連接,同時與27C512芯片的數(shù)據(jù)引腳D0~D7連接,鎖存器的輸出Q0~Q7與27C512芯片的地址線的低8位(A0~A7)連接。P2口直接與程序存儲器的地址線的高8位(D8~D15)連接即可。設計要求根據(jù)不同的程序控制單個發(fā)光二極管閃爍,因此利用P1.1引腳連接1只發(fā)光二極管。

(二)電路設計2、控制電路設計1)EA/VPP引腳:本設計選用AT89C51單片機芯片,由于要實現(xiàn)存儲器擴展,因此EA/VPP引腳連接一只雙向開關,可以在高電平和低電平之間轉(zhuǎn)換,以選擇要讀取的程序的存儲空間----片內(nèi)或片外。2)ALE引腳:使用此引腳的“地址鎖存允許信號”功能,將ALE引腳與74HC373鎖存器的允許端G連接。3)PSEN引腳:使用此引腳對外部程序存儲器進行讀選通,因以將PSEN引腳與27C512芯片的數(shù)據(jù)輸入選通引腳OE連接。綜合以上分析,得到如圖所示的控制電路圖。(三)材料表

從原理圖可以得到實現(xiàn)本項目所需的元器件。序號元件名稱元件型號元件數(shù)量備注1單片機芯片AT89C511片DIP封裝2鎖存器74HC373N1片DIP封裝3程序存儲器芯片W27C5121片DIP封裝4發(fā)光二極管Φ51只普通型5晶振12MHz1只6電容30pF2只瓷片電容22uF1只電解電容7電阻200Ω8只碳膜電阻,可用排阻代替10kΩ1只碳膜電阻8按鍵1只無自鎖1只帶自鎖9雙向開關1只1040腳IC座1片安裝AT89C51芯片1120腳IC座1片安裝鎖存器芯片1228腳IC座1片安裝程序存儲器芯片13導線二、控制程序的編寫

(一)繪制程序流程圖

為了說明不同存儲器的使用方法,編寫單個發(fā)光二極管閃爍的控制程序,采用循環(huán)程序結(jié)構(gòu)。

(二)編制匯編源程序

1、存儲于片內(nèi)ROM中的程序(EA接高電平)

(1)參考程序清單標號操作碼操作數(shù)指令意義(注釋)ORG0000H;偽指令,指明程序從0000H單元開始存放LJMPMAIN7;控制程序跳轉(zhuǎn)到“MAIN7”處執(zhí)行ORG0700HMAIN7:MOVA,#10;確定閃爍次數(shù)(5次)CLRP1.1;將P1.1引腳清零SS1:LCALLDELAY;調(diào)延時程序DECA;累加器內(nèi)容減1CPLP1.1;將P1.1狀態(tài)取反JNZSS1;判斷閃爍次數(shù)是否到,不到跳轉(zhuǎn)到SS1繼續(xù)執(zhí)行SJMP$;閃爍次數(shù)到,程序停止ORG0F00HDELAY:MOVR7,#10;延時程序同前標號操作碼操作數(shù)指令意義(注釋)………RETEND(2)程序執(zhí)行過程:

ORG 0000H LJMP MAIN7 ORG 0700HMAIN7: MOV A,#10 CLR P1.1SS1: LCALL DELAY DEC A CPL P1.1 JNZ SS1 SJMP $ ORG 0F00HDELAY: MOV R7,#10 ………RET END 2、存儲于片外ROM中的程序(EA接低電平)(1)參考程序清單標號操作碼操作數(shù)指令意義(注釋)ORG0000H;偽指令,指明程序從0000H單元開始存放LJMPMAIN7;控制程序跳轉(zhuǎn)到“MAIN7”處執(zhí)行ORG0100HMAIN7:MOVA,#0;將A清零CLRP1.1;將P1.1引腳清零SS2:LCALLDELAY;調(diào)延時程序CPLP1.1;將P1.1狀態(tài)

溫馨提示

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

最新文檔

評論

0/150

提交評論