MCS-51單片機(jī)內(nèi)部程序存儲(chǔ)器ROM結(jié)構(gòu)詳解
MCS-51單片機(jī)的程序存儲(chǔ)器用于存放編好的程序和表格常數(shù)。8051片內(nèi)有4 KB的ROM,8751片內(nèi)有4 KB的EPROM,8031片內(nèi)無(wú)程序存儲(chǔ)器。 MCS-51的片外最多能擴(kuò)展64 KB程序存儲(chǔ)器,片內(nèi)外的ROM是統(tǒng)一編址的。如端保持高電平,8051的程序計(jì)數(shù)器PC在0000H~0FFFH地址范圍內(nèi) (即前4 KB地址) 是執(zhí)行片內(nèi)ROM中的程序,當(dāng)PC在1000H~FFFFH地址范圍時(shí),自動(dòng)執(zhí)行片外程序存儲(chǔ)器中的程序;當(dāng)保持低電平時(shí),只能尋址外部程序存儲(chǔ)器,片外存儲(chǔ)器可以從0000H開始編址。
MCS-51的程序存儲(chǔ)器中有些單元具有特殊功能,使用時(shí)應(yīng)予以注意。
其中一組特殊單元是0000H~0002H。系統(tǒng)復(fù)位后,(PC)=0000H,單片機(jī)從0000H單元開始取指令執(zhí)行程序。如果程序不從0000H單元開始,應(yīng)在這三個(gè)單元中存放一條無(wú)條件轉(zhuǎn)移指令,以便直接轉(zhuǎn)去執(zhí)行指定的程序。
還有一組特殊單元是0003H~002AH,共40個(gè)單元。這40個(gè)單元被均勻地分為5段,作為5個(gè)中斷源的中斷地址區(qū)。其中:
0003H~000AH 外部中斷0中斷地址區(qū)
000BH~0012H 定時(shí)/計(jì)數(shù)器0中斷地址區(qū)
0013H~001AH 外部中斷1中斷地址區(qū)
001BH~0022H 定時(shí)/計(jì)數(shù)器1中斷地址區(qū)
0023H~002AH 串行中斷地址區(qū)
中斷響應(yīng)后,按中斷種類,自動(dòng)轉(zhuǎn)到各中斷區(qū)的首地址去執(zhí)行程序,因此在中斷地址區(qū)中理應(yīng)存放中斷服務(wù)程序。但通常情況下,8個(gè)單元難以存下一個(gè)完整的中斷服務(wù)程序,因此通常也是從中斷地址區(qū)首地址開始存放一條無(wú)條件轉(zhuǎn)移指令,以便中斷響應(yīng)后,通過中斷地址區(qū),再轉(zhuǎn)到中斷服務(wù)程序的實(shí)際入口地址。
編輯:admin 最后修改時(shí)間:2018-05-19