5x系列芯片的復位入口問題
有關(guān)5x系列的復位入口位于可用程序空間的最高地址 , 在那里寫上一條GOTOMAIN讓程序跳到主程序入口。如:
ORGPIC16C54
GOTOMAIN
這些都沒有錯誤。很多書上也是這么寫的。
其實,你可以根本不用管5x系列復位入口的不同,所有程序都從000位置開始寫。以57為例,其復位地址是7FFH,空片時此處為FFF,對應指令是"xorlw0xff",當這條指令執(zhí)行后,PC加一,為8000H?不是,PC變成000H,在57中PC只有11位長。類似的,所有5x系列在復位后于程序空間最高處執(zhí)行一條無關(guān)緊要的指令后,回到000處繼續(xù)執(zhí)行。
為什么推薦大家這么做?主要是在一些有片上內(nèi)部RC振蕩的單片機內(nèi),如12C508,16C505等,在出廠前做了振蕩器頻率校準,校準值被放在復位入口出,以指令“movlwxx”形式存放。這時,如果你再在該處寫指令GOTOMAIN,就會產(chǎn)生沖突。而且,這樣寫的程序移植性得到提高,程序排列不用做任何修改(OPTION/TRIS例外),就可以移植到PIC其它系列的單片機中。