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