STC89系列高性能單片機(jī)及其應(yīng)用
引言
隨著電子技術(shù)的迅速發(fā)展,單片機(jī)技術(shù)的出現(xiàn)給現(xiàn)代工業(yè)測(cè)控領(lǐng)域帶來了一次新的技術(shù)革命。目前,單片機(jī)以其高可靠性、高性能價(jià)格比,在工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表、辦公自動(dòng)化等諸多領(lǐng)域得到極為廣泛的應(yīng)用,并已走入家庭,洗衣機(jī)、空調(diào)等,到處都可見到單片機(jī)的蹤影。
在單片機(jī)家族的眾多成員中,MCS51系列單片機(jī)以其優(yōu)越的性能、成熟的技術(shù)及高可靠性和高性能價(jià)格比,迅速占領(lǐng)了工業(yè)測(cè)控和自動(dòng)化工程應(yīng)用的主要市場(chǎng),成為國(guó)內(nèi)單片機(jī)應(yīng)用領(lǐng)域中的主流。世界各大單片機(jī)廠商都在MCS51上投入了大量的資金和人力,圍繞51內(nèi)核,衍生出許多品種,增強(qiáng)51單片機(jī)的各種功能。MCS51家族是目前在單片機(jī)領(lǐng)域發(fā)展最快的一個(gè)品種。
這里要向大家推薦的是新近由STC公司推出的高性價(jià)比的STC89系列單片機(jī)。
STC89系列單片機(jī)的性能
STC89系列單片機(jī)是MCS-51系列單片機(jī)的派生產(chǎn)品。它們?cè)谥噶钕到y(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8052單片機(jī)完全兼容,DIP40封裝系列與8051為pin-to-pin兼容。STC89系列單片機(jī)高速(最高時(shí)鐘頻率90MHz),低功耗,在系統(tǒng)/在應(yīng)用可編程(ISP,IAP),不占用戶資源。下表是STC89系列單片機(jī)資源一覽表。
主要特性:
u 80C51核心處理器單元;
u 3V/5V工作電壓,操作頻率0~33MHz(STC89LE516AD最高可達(dá)90MHz);5V工作電壓,操作頻率0~40MHz;
u 大容量?jī)?nèi)部數(shù)據(jù)RAM:1K字節(jié)RAM;
u 64/32/16/8kB片內(nèi)Flash程序存儲(chǔ)器,具有在應(yīng)用可編程(IAP) ,在系統(tǒng)可編程(ISP),可實(shí)現(xiàn)遠(yuǎn)程軟件升級(jí),無(wú)需編程器;
u 支持12時(shí)鐘(默認(rèn))或6時(shí)鐘模式;
u 雙DPTR數(shù)據(jù)指針;
u SPI(串行外圍接口)和增強(qiáng)型UART ;
u PCA(可編程計(jì)數(shù)器陣列),具有PWM的捕獲/比較功能;
u 4個(gè)8位I/O口,含3個(gè)高電流P1口,可直接驅(qū)動(dòng)LED;
u 3個(gè)16位定時(shí)器/計(jì)數(shù)器;
u 可編程看門狗定時(shí)器(WDT);
u 低EMI方式(ALE禁止);
u 兼容TTL和COMS邏輯電平;
u 掉電檢測(cè)和低功耗模式等。
下面主要介紹STC89系列單片機(jī)有特色之處及需要注意的地方。
[!--empirenews.page--]
一、 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)重缺乏的問題。
768字節(jié)的片內(nèi)擴(kuò)展RAM(地址:000H~2FFH)與外部擴(kuò)展RAM地址重疊,單片機(jī)可通過軟件設(shè)置AUXR.1,決定是否使用片內(nèi)擴(kuò)展RAM,以防止可能的與外部擴(kuò)展RAM的沖突,默認(rèn)為使用片內(nèi)擴(kuò)展RAM。
片內(nèi)擴(kuò)展RAM的訪問采用間接尋址,可通過
①、MOVX A,@DPTR 或 MOVX @DPTR ,A 指令訪問片內(nèi)擴(kuò)展RAM(00H~2FFH,共768字節(jié));
②、MOVX A,@Ri 或 MOVX @Ri,A 指令訪問片內(nèi)擴(kuò)展RAM(00H~FFH,共256字節(jié))。
當(dāng)DPTR≥300H時(shí),系統(tǒng)訪問外部擴(kuò)展RAM。
注意:在使用第二種指令時(shí),特別要注意是使用MOV還是MOVX,MOV訪問的是片內(nèi)RAM,MOVX訪問的是片內(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在后。通過REMAP功能可以將Flash塊重定位。下圖顯示的是STC89C58的程序存儲(chǔ)器結(jié)構(gòu)
使用過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單元覆蓋。
[!--empirenews.page--]
剛剛接觸STC89系列單片機(jī)的技術(shù)人員可能對(duì)其REMAP功能不理解,通過了解ISP就會(huì)明白R(shí)EMAP的作用。
ISP主要應(yīng)用于在線(或遠(yuǎn)程)升級(jí),通過執(zhí)行ISP引導(dǎo)碼改寫用戶程序,無(wú)須編程器,無(wú)須親臨現(xiàn)場(chǎng)。STC89系列單片機(jī)在出廠時(shí),片內(nèi)已經(jīng)燒錄有ISP引導(dǎo)碼,占用Block1的程序空間前2K字節(jié),并設(shè)置為從Block1啟動(dòng)。啟動(dòng)時(shí),首先執(zhí)行ISP引導(dǎo)碼,確認(rèn)是程序下載,還是正常啟動(dòng)。無(wú)論是程序下載還是正常啟動(dòng),ISP引導(dǎo)碼最后總是將REMAP取消,恢復(fù)Block0在前8K的地址空間,進(jìn)而執(zhí)行Block0中的用戶程序,即用戶程序總是放在Block0的00H開始的單元,除非用戶自行修改了ISP引導(dǎo)碼。