STC89系列高性能單片機(jī)及其應(yīng)用
一、 1k bit片內(nèi)RAM(數(shù)據(jù)存儲(chǔ)器)
普通8051系列單片及片內(nèi)RAM只有128(8051)或256(8052)字節(jié),
1、低128字節(jié)(地址:00H~7FH),可直接或間接尋址;
2、高128字節(jié)(地址:80H~FFH),只可間接尋址;
STC89系列單片機(jī)另外增加了768字節(jié)的片內(nèi)擴(kuò)展RAM,以解決眾多技術(shù)人員在編程時(shí)的RAM資源嚴(yán)重缺乏的問(wèn)題。
768字節(jié)的片內(nèi)擴(kuò)展RAM(地址:000H~2FFH)與外部擴(kuò)展RAM地址重疊,單片機(jī)可通過(guò)軟件設(shè)置AUXR.1,決定是否使用片內(nèi)擴(kuò)展RAM,以防止可能的與外部擴(kuò)展RAM的沖突,默認(rèn)為使用片內(nèi)擴(kuò)展RAM。
片內(nèi)擴(kuò)展RAM的訪問(wèn)采用間接尋址,可通過(guò)
①、MOVX A,@DPTR 或 MOVX @DPTR ,A 指令訪問(wèn)片內(nèi)擴(kuò)展RAM(00H~2FFH,共768字節(jié));
②、MOVX A,@Ri 或 MOVX @Ri,A 指令訪問(wèn)片內(nèi)擴(kuò)展RAM(00H~FFH,共256字節(jié))。
當(dāng)DPTR≥300H時(shí),系統(tǒng)訪問(wèn)外部擴(kuò)展RAM。
注意:在使用第二種指令時(shí),特別要注意是使用MOV還是MOVX,MOV訪問(wèn)的是片內(nèi)RAM,MOVX訪問(wèn)的是片內(nèi)擴(kuò)展RAM,剛剛接觸此類單片機(jī)的技術(shù)人員最容易在這里犯錯(cuò)誤。
二、 64/32/16/8K片內(nèi)Flash(程序存儲(chǔ)器)與ISP功能
STC89系列單片機(jī)按芯片型號(hào)分別有64/32/16/8K片內(nèi)Flash,分為2個(gè)Flash存儲(chǔ)塊:Block0和Block1。2個(gè) Flash存儲(chǔ)塊在物理上Block0在前,Block1在后。通過(guò)REMAP功能可以將Flash塊重定位。下圖顯示的是STC89C58的程序存儲(chǔ)器結(jié)構(gòu)
使用過(guò)SST89系列單片機(jī)的用戶要注意與STC89區(qū)別:
①、Block1大小不同;
②、Block扇區(qū)大小不同;
③、指令及SFR的不同。
STC89有2個(gè)配置位SC0,SC1控制上電復(fù)位/外部復(fù)位后程序是從Block0還是Block1啟動(dòng)。
①對(duì)于STC89C58,SC0,SC1同時(shí)起作用:
SC1,SC0=0,0 程序是從Block0啟動(dòng);
SC1,SC0=1,1 程序是從Block1啟動(dòng),這時(shí)Block1物理上在后8K(E000H~FFFFH),邏輯上又影象到前8K(0000H~1FFFH),Block0前8K對(duì)于PC指針不可見。
②對(duì)于STC89C16,只有SC0起作用:
SC0=0 程序是從Block0啟動(dòng);
SC0=1 程序是從Block1啟動(dòng),這時(shí)Block1邏輯上影象到前8K(0000H~1FFFH),將Block0前8K單元覆蓋。
評(píng)論