徐春河
XU Chun-he
(山東省信息技術(shù)職業(yè)學(xué)院,濰坊 261061)
隨著大規(guī)模集成電路技術(shù)的迅猛發(fā)展,近年來芯片的集成度也越來越高。各種高性能、低價(jià)格的微型計(jì)算機(jī)相繼問世。而較為突出的單片機(jī)由于體積小,重量輕,抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,指令功能強(qiáng),運(yùn)行速度快,可靠性高及靈活性好,開發(fā)也較為容易等特點(diǎn),所以單片機(jī)的應(yīng)用也相應(yīng)的越來越突出。其最具代表性和廣泛應(yīng)用的單片機(jī)為美國Intel公司的MCS-51系列的8位字長和MCS-96系列的16位字長單片機(jī)。
MCS-51 單片機(jī)是美國INTE公司于1980 年推出的產(chǎn)品,其典型產(chǎn)品有 8031、8051和8751等通用產(chǎn)品,一直到現(xiàn)在, MCS-51 內(nèi)核系列兼容的單片機(jī)仍是應(yīng)用的主流產(chǎn)品,比如目前流行的89S51、已經(jīng)停產(chǎn)的89C51 等,有些文獻(xiàn)甚至也將8051泛指MCS-51系列單片機(jī),8051是早期的最典型的代表作,由于MCS-51單片機(jī)影響極深遠(yuǎn),許多公司都推出了兼容系列單片機(jī),就是說MCS-51內(nèi)核實(shí)際上已經(jīng)成為一個(gè)8位單片機(jī)的標(biāo)準(zhǔn)。其他的公司的 51 單片機(jī)產(chǎn)品都是和MCS-51內(nèi)核兼容的產(chǎn)品而以。同樣的一段程序,在各個(gè)單片機(jī)廠家的硬件上運(yùn)行的結(jié)果都是一樣的,如ATMEL的89C51、89S51,PHILIPS(菲利浦),和WINBOND(華邦)等,我們常說的已經(jīng)停產(chǎn)的89C51 指的是ATMEL公司的AT89C51 單片機(jī),同時(shí)是在原基礎(chǔ)上增強(qiáng)了許多特性,如時(shí)鐘,更優(yōu)秀的是由Flash(程序存儲(chǔ)器的內(nèi)容至少可以改寫1000 次)存儲(chǔ)器取帶了原來的ROM(一次性寫入),而AT89C51 的性能相對(duì)于8051 已經(jīng)算是非常優(yōu)越的了。不過在市場化方面,89C51 受到了PIC 單片機(jī)陣營的挑戰(zhàn),89C51 最致命的缺陷在于不支持ISP(在線更新程序)功能,必須加上ISP 功能等新功能才能更好延續(xù)MCS-51 的傳奇。AT89S51就是在這樣的背景下取代了AT89C51,現(xiàn)在,AT89S51 目前已經(jīng)成為了實(shí)際應(yīng)用市場上新的寵兒,作為市場占有率第一的Atmel 目前公司已經(jīng)停產(chǎn)AT89C51,將用AT89S51代替。AT89S51 在工藝上進(jìn)行了改進(jìn),AT89S51 采用0.35新工藝,成本降低,而且將功能提升,增加了競爭力。AT89S51可以像下兼容AT89C51 等51 系列芯片。同時(shí),Atmel 不再接受89C51的定單,大家在市場上見到的89C51 實(shí)際都是Atmel 前期生產(chǎn)的巨量庫存而以。如果市場需要,Atmel當(dāng)然也可以再恢復(fù)生產(chǎn)AT89C51。
AT89S51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4K的可編程的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲(chǔ)器既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程及通用8位微處理器于單片機(jī)芯片中,ATMEL公司的功能強(qiáng)大,低價(jià)位AT89S51單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。
AT89S51采用40引腳雙列直插封裝(DIP)形式,內(nèi)部由CPU,4kB的 ROM,256 B的 RAM,2個(gè)16b的定時(shí)/計(jì)數(shù)器TO和T1,4個(gè)8 b的工/O端I:IP0,P1,P2,P3,一個(gè)全雙功串行通信口等組成。
其引腳功能如下:
Vcc:電源電壓
GND:接地
P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口時(shí),每位能驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口寫“1”可作為高阻抗輸入端用。
在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。
在Flash編程時(shí),P0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。
P1口:P1是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作為輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。
Flash編程和程序校驗(yàn)期間,P1接收低8位地址。
P2口:P2口是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸出口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。
在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVE @DPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVX @Ri指令)時(shí),P2口線上的內(nèi)容,在整個(gè)訪問期間不改變。
Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和其他控制信號(hào)。
P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸出端口。作輸入端時(shí),被外部拉低的P3口將用上拉電阻輸出電流。
P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能。
P3口還接手一些用于Flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。
RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRTO位(地址8EH)可打開或關(guān)閉該功能。DISRTO位缺省為RESET輸出高電平打開狀態(tài)。
ALE/ ~PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址所存允許)輸出脈沖用于所存地址的低8位字節(jié)。即使不訪問外部存儲(chǔ)器,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。
對(duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(~PROG)。
如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令A(yù)LE 才會(huì)被激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE無效。
~PSEN:程序儲(chǔ)存允許(~PSEN)輸出是外部程序存儲(chǔ)器的選通信號(hào),當(dāng)AT89S51由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次~PSEN有效,即輸出兩個(gè)脈沖。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,沒有兩次有效的~PSEN信號(hào)。
EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H——FFFFH),EA端必須保持低電平(接地)。需要注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)所存EA端狀態(tài)。
如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。
Flash存儲(chǔ)器編程時(shí),該引腳加上+12V的編程電壓VPP。
XTAL1:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。
XTAL2:振蕩器反相放大器的輸出端。
AT89S51標(biāo)準(zhǔn)功能:4K字節(jié)閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)I/O口線,看門狗(WDT),兩個(gè)數(shù)據(jù)指針,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89S51可降至0HZ的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中到內(nèi)容,但振蕩器停止工作并禁止其它所有工作部件直到下一個(gè)硬件復(fù)位。
其主要性能參數(shù):
與MCS-51產(chǎn)品指令系統(tǒng)完全兼容
4K字節(jié)在線系統(tǒng)編程(ISP)Flash 閃速存儲(chǔ)器
1000次擦寫周期
4.0-5.5V的工作電壓范圍
全靜態(tài)工作模式:0HZ-33MHZ
三級(jí)程序加密鎖
128*8字節(jié)內(nèi)部RAM
32個(gè)可編程I/O口線
2個(gè)16位定時(shí)/計(jì)數(shù)器
6個(gè)中斷源
全雙工串行UART通道
低功耗空閑和掉電模式
中斷可從空閑模式喚醒系統(tǒng)
看門狗(WDT)及雙數(shù)據(jù)指針
掉電標(biāo)模示和快速編程特性等
在AT89C51基礎(chǔ)上新增加的功能使AT89S51性能有了較大提升,但價(jià)格基本不變,甚至比AT89C51 更低。
ISP 在線編程功能,這個(gè)功能的優(yōu)勢在于改寫單片機(jī)存儲(chǔ)器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離。是一個(gè)強(qiáng)大易用的功能。
最高工作頻率為33MHz, AT89S51比AT89C51具有更高工作頻率,從而具有了更快的計(jì)算速度。
具有雙工UART 串行通道。
內(nèi)部集成看門狗計(jì)時(shí)器,不再需要像AT89C51 那樣外接看門狗計(jì)時(shí)器單元電路。
雙數(shù)據(jù)指示器。
電源關(guān)閉標(biāo)識(shí)。
全新的加密算法,這使得對(duì)于AT89S51 的解密變?yōu)椴豢赡?,程序的保密性大大加?qiáng),這樣就可以有效的保護(hù)知識(shí)產(chǎn)權(quán)不被侵犯。
兼容性方面:向下完全兼容51 全部字系列產(chǎn)品。比如8051、89C51 等等早期MCS-51 兼容產(chǎn)品。也就是說所有教科書、網(wǎng)絡(luò)教程上的程序,在AT89S51 上一樣可以照常運(yùn)行,這就是所謂的向下兼容。比較結(jié)果:就如同 INTEL 的P3 向P4 升級(jí)一樣,雖然都可以跑Windows98,不過速度是不同的。從 AT89C51 升級(jí)到AT89S51 ,也是同理。
縱觀我們現(xiàn)在生活的各個(gè)領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機(jī)上各種儀表的控制,從計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種智能IC卡、電子寵物等,這些都離不開單片機(jī)。作為典型的主流的AT89S51型單片機(jī)我們更要深刻的認(rèn)識(shí)和掌握。在單片機(jī)產(chǎn)生后,我們就將控制這些東西變?yōu)橹悄芑耍覀冎恍枰趩纹瑱C(jī)外圍接一點(diǎn)簡單的接口電路,核心部分只是由人為的寫入程序來完成。這樣產(chǎn)品的體積變小了,成本也降低了,長期使用也不會(huì)擔(dān)心精度達(dá)不到了。所以,不僅要掌握好51單片機(jī),更重要的是運(yùn)用好。
[1] 安然然,聶鑫.基于AVR單片機(jī)的步進(jìn)電機(jī)控制[J].沈陽化工學(xué)院學(xué)報(bào), 2005(02):126-128.
[2] 李敏,孟臣.彩色液晶顯示器在嵌入式系統(tǒng)中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2004(02):49-52.
[3] 劉玉良,賈子申,劉麗輝,楊偉明.基于MSP430單片機(jī)的軟件代碼快速開發(fā)[J].天津科技大學(xué)學(xué)報(bào), 2010(03):61-65.