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

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目七:程序存儲(chǔ)器的擴(kuò)展項(xiàng)目預(yù)備知識(shí)知識(shí)點(diǎn)鏈接

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

本項(xiàng)目通過(guò)編寫(xiě)不同的程序存儲(chǔ)于不同的程序存儲(chǔ)器(片內(nèi)和片外),學(xué)習(xí)程序存儲(chǔ)器擴(kuò)展和讀取程序的方法。

2、加1、減1指令

加1指令又稱(chēng)為增量指令,共有5條指令;減1指令又稱(chēng)減量指令,有4條。和加法、減法指令所不同的是,除奇偶標(biāo)志位外,這些指令的操作不影響PSW中的標(biāo)志位。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,運(yùn)算結(jié)果不影響任何標(biāo)志位。指令中前4條是8位數(shù)加1指令,可以用來(lái)對(duì)指定的片內(nèi)RAM單元操作,第5條指令是16位數(shù)的加1指令,運(yùn)算過(guò)程中,若有低8位(DPL)向高8位(DPH)的進(jìn)位,直接進(jìn)位即可。這也是MCS-51指令系統(tǒng)中唯一的一條16位算術(shù)運(yùn)算指令。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,運(yùn)算結(jié)構(gòu)也不影響任何標(biāo)志位。這4條指令全是8位數(shù)減1指令,若需要對(duì)16位數(shù)進(jìn)行減1操作,可通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)。例如,R0=30H,(30H)=22H,執(zhí)行DEC@R0后,(30H)=21H。一、單片機(jī)應(yīng)用系統(tǒng)組成

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

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

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

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

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

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

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

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

27256A工作方式見(jiàn)下表:

CE(第20腳)OE(第20腳)VPP(第1腳)VCC(第28腳)輸出輸出低電平低電平5V5V程序代碼輸出維持高電平任意5V5V高阻抗?fàn)顟B(tài)編程低電平高電平12.5V6V程序代碼輸入編程校驗(yàn)高電平低電平12.5V6V程序代碼輸出編程禁止高電平高電平12.5V6V高阻抗?fàn)顟B(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使能端當(dāng)E=0,G=1時(shí),輸出Q=輸入D(透明);當(dāng)E=0,G=0時(shí),輸出Q端不變(鎖存)當(dāng)E=1,輸出高阻態(tài)G一般與單片機(jī)的鎖存控制信號(hào)ALE相連程序存儲(chǔ)器擴(kuò)展電路舉例擴(kuò)展電路的原理分析(1)單片機(jī)所用到引腳的時(shí)序分析(2)原理分析單片機(jī)取指令是各個(gè)部件相互協(xié)調(diào)工作的一個(gè)過(guò)程.主要是以下幾步.第一步,送16位地址,指明要取的指令的存放位置。高8位地址通過(guò)P2送到27256的A8-A14和片選端\CE。低8位地址由P0口提供,是通過(guò)373連接到27256的A7-A0上的。這里要注意:高8位地址是由A8-A14和片選端\CE共同組成的。片選端\CE為最高位。真正的地址范圍為0000H-7FFFH.第二步,等待ALE第一次有效(高電平)。此時(shí),373通道被打開(kāi),低8位地址被送入A7-A0。與此同時(shí),\PSEN為高電平,因此27256的數(shù)據(jù)輸出端還未打開(kāi),即數(shù)據(jù)沒(méi)有送出。

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

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

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

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

(一)繪制程序流程圖

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

(二)編制匯編源程序

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

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

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、存儲(chǔ)于片外ROM中的程序(EA接低電平)(1)參考程序清單標(biāo)號(hào)操作碼操作數(shù)指令意義(注釋?zhuān)㎡RG0000H;偽指令,指明程序從0000H單元開(kāi)始存放LJMPMAIN7;控制程序跳轉(zhuǎn)到“MAIN7”處執(zhí)行ORG0100HMAIN7:MOVA,#0;將A清零CLRP1.1;將P1.1引腳清零SS2:LCALLDELAY;調(diào)延時(shí)程序CPLP1.1;將P1.1狀態(tài)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論