㈠ 89S51單片機的簡介
89C51最致命的缺陷在於不支持
ISP(在線更新程序)功能,必須加上ISP功能等新功能才能更好延續MCS-51的傳奇.89S51
就是在這樣的背景下取代89C51的,現在,89S51目前已經成為了實際應用市場上新的寵兒,
作為市場佔有率第一的Atmel目前公司已經停產AT89C51,將用AT89S51代替.89S51在
工藝上進行了改進,89S51採用0.35新工藝,成本降低,而且將功能提升,增加了競爭力.
89SXX可以像下兼容89CXX等51系列晶元.
89S51相對於89C51增加的新功能包括:
-- 新增加很多功能,性能有了較大提升,價格基本不變,甚至比89C51更低!
-- ISP在線編程功能,這個功能的優勢在於改寫單片機存儲器內的程序不需要把晶元從工作
環境中剝離.是一個強大易用的功能.
-- 最高工作頻率為33MHz,大家都知道89C51的極限工作頻率是24M,就是說S51具有更
高工作頻率,從而具有了更快的計算速度.
-- 具有雙工UART串列通道.
-- 內部集成看門狗計時器,不再需要像89C51那樣外接看門狗計時器單元電路.
-- 雙數據指示器.
-- 電源關閉標識.
-- 全新的加密演算法,這使得對於89S51的解密變為不可能,程序的保密性大大加強,這樣
就可以有效的保護知識產權不被侵犯.
-- 兼容性方面:向下完全兼容51全部字系列產品.比如8051,89C51等等早期MCS-51兼
容產品.也就是說所有教科書,網路教程上的程序(不論教科書上採用的單片機是8051還
是89C51還是MCS-51等等),在89S51上一樣可以照常運行,這就是所謂的向下兼容.
比較結果:就如同INTEL的P3向P4升級一樣,雖然都可以跑Windows98,不過速度是不
同的.
㈡ 89S51單片機詳細介紹
89S51 單片機
MCS-51 單片機是美國INTE 公司於1980 年推出的產品,典型產品有 80 31(內部沒有程序存儲器,實際使用方面已經被市場淘汰)、8051(晶元採用HMOS,功耗是630mW,是89C51 的5 倍,實際使用方面已經被市場淘汰)和8751 等通用產品,一直到現在, MCS-5 1 內核系列兼容的單片機仍是應用
的主流產品(比如目前流行的89S51、已經停產的89C51 等),各高校及專業學校的培訓教材仍與MCS-51 單片機作為代表進行理論基礎學習。
有些文獻甚至也將8051 泛指MCS-51 系列單片機,8051 是早期的最典型的代表作,由於MCS-51 單片機影響極深遠,許多公司都推出了兼容系列單片機,就是說MCS-51 內核實際上已經成為一個8 位單片機的標准。
其他的公司的51 單片機產品都是和MCS-51 內核兼容的產品而以。同樣的一段程序,在各個單片機廠家的硬體上運行的結果都是一樣的,如ATMEL 的89C51(已經停產)、89S51, PHILIPS(菲利浦),和WINBOND(華邦)等,我們常說的已經停產的89C51 指的是ATMEL公司的 AT 89C51 單片機,同時是在原基礎上增強了許多特性,如時鍾,更優秀的是由Flash(程序存儲器的內容至少可以改寫 1000 次)存儲器取帶了原來的 ROM(一次性寫入),AT89C51 的性能相對於8051 已經算是非常優越的了。
不過在市場化方面,89C51 受到了PIC 單片機陣營的挑戰,89C51 最致命的缺陷在於不支持ISP(在線更新程序)功能,必須加上ISP 功能等新功能才能更好延續MCS-51 的傳奇。89S51就是在這樣的背景下取代89C51 的,現在,89S51 目前已經成為了實際應用市場上新的寵兒,作為市場佔有率第一的Atmel 目前公司已經停產AT89C51,將用AT89S51 代替。89S51 在
工藝上進行了改進,89S51 採用 0.35 新工藝,成本降低,而且將功能提升,增 加了競爭力。89SXX 可以像下兼容89CXX 等51 系列晶元。市場上見到的89C51 實際都是Atmel 前期生產的巨量庫存而以。如果市場需要,Atmel當然也可以再恢復生產AT89C51。
AT89S51/LS51單片機是低功耗的、具有4KB在線課編程Flash存儲器的單片機。它與通用80C51系列單片機的指令系統和引腳兼容。片內的Flash可允許在線重新編程,也可使用非易失性存儲器編程。他將通用CPU和在線可編程Flash集成在一個晶元上,形成了功能強大、使用靈活和具有較高性能性價比的微控制器。
AT89S51/LS51具有如下特性:
--片內程序存儲器含有4KB的Flash存儲器,允許在線編程,檫寫周期可達1000次;
--片內數據存儲器內含128位元組的RAM;
--I/O口具有32根可編程I/O線;
--具有兩個16位I/O線;
--中斷系統具有6個中斷源、5個終端矢量、2個中斷優先順序的中斷結構;
--串列口是一個全雙工的串列通信口;
--具有兩個數據指針DPTR0和DPTR1;
--低功耗節電模式有節電模式和掉電模式;
--包含3級程序鎖定位;
--AT89S51的電源電壓為4.0-5.5V,AT89LS51的電源電壓為2.7-4.0V;
-振盪器頻率0-33MHz(AT89S51),0-16MHz(AT89LS51);
--具有片內看門狗定時器;
--靈活的在線片內編程模式(位元組和頁編程模式);
--具有斷電標志模式POF;
89S51 相對於89C51 增加的新功能包括:
-- 新增加很多功能,性能有了較大提升,價格基本不變,甚至比89C51 更低!
-- ISP 在線編程功能,這個功能的優勢在於改寫單片機存儲器內的程序不需要把晶元從工作
環境中剝離。是一個強大易用的功能。
-- 最高工作頻率為33MHz,大家都知道89C51 的極限工作頻率是24M,就是說S51 具有更
高工作頻率,從而具有了更快的計算速度。
-- 具有雙工UART 串列通道。
-- 內部集成看門狗計時器,不再需要像89C51 那樣外接看門狗計時器單元電路。
-- 雙數據指示器。
-- 電源關閉標識。
-- 全新的加密演算法,這使得對於89S51 的解密變為不可能,程序的保密性大大加強,這樣
就可以有效的保護知識產權不被侵犯。
-- 兼容性方面:向下完全兼容51 全部字系列產品。比如8051、89C51 等等早期MCS-51 兼
容產品。也就是說所有教科書、網路教程上的程序(不論教科書上採用的單片機是8051 還
是89C51 還是MCS-51 等等),在89S51 上一樣可以照常運行,這就是所謂的向下兼容。
引腳排列及功能
AT89S51/LS具有PDIP,TQFP和PLCC三種封裝形式。PDIP封裝的引腳排列如圖所示。
引腳功能如下:
--P0口——8位、開漏極、雙向I/O口。
P0口可作為通用I/O口,但必須外接上拉電阻;作為輸出口,每個引腳課吸收8個TTL的灌電流。作為輸入時,首先應將引腳置1。
P0口也可用作外部程序存儲器和數據存儲器是的低八位地址/數據匯流排的復用線。在該模式下,P0口含有內部上拉電阻。
在Flash編程時,Po口接受代碼數據;在編程校驗時,P0口輸出代碼位元組數據(需要外接上拉電阻)。
--P1口——8位、雙向I/O口、內部含有行拉電阻。
P1可作為普通I/O口。輸出緩沖器可驅動4個TTL負載;用作輸入時,先交引腳置1,有片內上拉電阻將其抬到高電平。P1口的引腳可由外部負載拉倒低電平,通過上拉電阻提供拉電流。
在Flash並行
編程和校驗時,P1口可輸入低位元組地址。
在串列編程和校驗時,P1.0/MOSI,P1.6/OSI和P1.7/SCK分別是串列數據輸入、輸出和移位脈沖引腳。
I/O具有內部拉電阻的8位雙向I/O。
P2口用作輸出口時,可驅動四個TTL負載;用作輸入口時,先將引腳置1,由內部上拉電阻將其提高到高電平。若負載為低電平,則通過內部上拉電阻向外輸出電流。
CPU訪問外部16位地址的存儲器時,P2口提供高8位的地址。當CPU用8位地址定址外部存儲器時,P2口為P2特殊功能寄存器內容。
在FLASH並行編程和校檢時,P2口可輸入高位元組地址和某些控制信號。
--P3口——局有內部上拉電阻8位雙向口。
P3口左忽出口時,輸出緩沖器可吸收4個TTL的灌電流;用作輸入口時,手先將引腳置1,有內部上拉電阻抬為高電平。若外部負載是低電平,則通過內部上拉電阻向外輸出電流。
在與FLASH並行編程和校檢時,P3口可輸入某些控制信號。
P3口除了通用I/O功能外,還有替代功能,如下表所示:
引腳
符號
說明
P3.0
RXD
串列口輸入
P3.1
TXD
串列口輸出
P3.2
INT0
外部中斷0
P3.3
INT1
外部中斷0
P3.4
T0
T0定時器的外部計數輸入
P3.5
T1
T1定時器的外部計數輸入
P3.6
WR
外部數據存儲器的寫選通
P3.7
RD
外部數據存儲器的讀選通
--ALE/PROG——地址鎖存允許/編程脈沖信號端。
在CPU訪問外部程序存儲器或者外部數據存儲器時,ALE提供一個地址鎖存信號,將低8位地址鎖存在騙外地址鎖存中。
在與FLASH並行編程時,該引腳也是編程負脈沖的輸入端。
在正常操作狀態下,該引腳埠輸出額定頻率的脈沖,其頻率為額定頻率的1/6,可做外部定時或者其它引發信號。應注意,CPU每次訪問外部數據存儲器時,都要丟失一個ALE脈沖。
如果需要,則通過將SFR(8EH)的第0位置1,可禁止ALE操作,但在使用MOVC或者MOVX指令時候,ALE仍有效。也就是說,ALE的禁止位不影響對外部存儲器的訪問。
--PSEN——外部程序存儲器讀選通信號,低電平有效。
當AT89S51/LS51執行來自外部程序存儲器指令代碼時候,PSEN每個機器周期兩次有效。在訪問外部數據存儲器時候,則無效
--EA/Vpp——外部程序存儲器允許。
當EA接地時,CPU只執行外程序存儲器的程序;當EA接Vcc時,CPU首先執行片內程序存儲器中的程序(0000H ——0FFFH),然後自動轉向執行片外程序存儲器中的程序(1000H——FFFFH).
如果程序鎖定位LB1別編程(P),那麼EA值將在復位時有片內鎖存。
在與FLASH並行編程時,該引腳可介入12V的編程電壓Vpp.
--XTAL1和XTAL2——XTAL1是片內振盪器反相放大器和時鍾發生器的輸入端,XTAL2是片內振盪器反相放大器的輸出端。
--RST——復位輸入段,高電平有效。
在振盪器穩定有效運行狀態下,RST端維持兩個機器周期的高電平,便可復位器件,當看門狗定時器溢出輸出端時,該引腳將輸出長達98個震盪周期的高電平。
--Vcc—電源電壓輸入端。
--GND—電源地。
特殊功能存儲器
AT89S51/LS51的特殊功能存儲器
序號
地址
符號
復位值
說明
1
80H
P0
FFH
P0口鎖存器
2
81H
SP
07H
堆棧指針
3
82H
DP0L
00H
數據指針DPTR0低位元組
4
83H
DPoH
00H
數據指針DPTR0高位元組
5
84H
DP1L
00H
數據指針DPTR1低位元組
6
85H
DP1H
00H
數據指針DPTR1高位元組
7
87H
PCON
0XXX0000B
定時器控制計時器
9
89H
TMOD
00H
定時器模式寄存器
10
8AH
TL0
00H
定時器0低位元組
11
8BH
TL1
00H
定時器1低位元組
12
8CH
TH0
00H
定時器0高位元組
13
8DH
TH1
00H
定時器1高位元組
14
8EH
AUXR
XXX00XX0B
輔助寄存器
15
90H
P1
FFH
P1口鎖存器
16
98H
SCON
00H
串列口控制寄存器
17
99H
SBUF
XXXXXXXXB
串列口數據緩沖器
18
0AOH
P2
FFH
P2口鎖存器
19
OA2H
AUXR1
XXXX XXX0B
輔助寄存器1
20
0A6H
WDTRST
XXXX XXXXB
WDT復位寄存器
21
0A8H
IE
0XX00000B
中斷允許寄存器
22
0BOH
P3
FFH
P3口鎖存器
23
0B8H
IP
XX00000B
中斷優先寄存器
24
0D0H
PSW
00H
程序狀態字
25
0E0H
ACC
OOH
累加器
26
0FOH
B
00H
B寄存器
電源斷電標志POF
POF是PCON.4位。電源上電時,POF置1,POF位可用軟體置位與清零。復位不影響POF位值。
終端和中斷寄存器
AT89S51/LS51含有6個中斷源,5個中斷矢量(中斷服務程序入口地址),如圖:
圖中定時器0和定時器1的中斷標志TF0和TF1是在每個機器周期的S5P2時刻設置(當溢出時)的,然後在下個機器周期由片內線路查詢。
沒個中斷源都可單獨地通過設定或清除特殊功能存儲器IE中某一位來允許/禁止,IE內含一個中斷總控制位EA,可允許/禁止所有中斷。
IE各位功能如下:
IE 地址=A8H 復位值=0XX0 0000B
可以定址位
MSB LSB
位地址
AFH
AEH
ADH
ACH
ABH
AAH
A9H
A8H
位符號
EA
—
—
ES
ET1
EX1
ET0
EX0
每位置1表示允許中斷,每位清0表示禁止中斷。
其中:
EA 中斷總控制位。EA=0,禁止所有中斷;EA=1,每個中斷是否允許還取決於其它各中斷的控制位。
ES 串列口串列中斷允許位。
ET1 定時器1中斷允許位。
EX1 外部中斷1中斷允許位。
ET0 定時器0中斷允許位。
EX0 外部中斷0中斷允許位。
㈢ 單片機89s51與89c51有什麼區別
Atmel公司的
AT89S51支持在系統編程(ISP),而不需要專用的編程器(當然在專用的編程器中也可以被編程),
AT89C51不支持在系統編程,必須使用專用編程器才能編程。
其他功能相同。
㈣ 誰能給我介紹下89c51單片機 要盡量的詳細
很多初學51單片機的網友會有這樣的問題:AT89S51是什麼?書上和網路程上可都是8051,89C51等!沒聽說過有89S51 ?
這里,初學者要澄清單片機實際使用方面的一個產品概念,MCS-51單片機是美國INTE公司於1980年推出的產品,典型產品有 8031(內部沒有程序存儲器,實際使用方面已經被市場淘汰)、8051(晶元採用HMOS,功耗是630mW,是89C51的5倍,實際使用方面已經被市場淘汰)和8751等通用產品,一直到現在, MCS-51內核系列兼容的單片機仍是應用的主流產品(比如目前流行的89S51、已經停產的89C51等),各高校及專業學校的培訓教材仍與MCS-51單片機作為代表進行理論基礎學習。
有些文獻甚至也將8051泛指MCS-51系列單片機,8051是早期的最典型的代表作,由於MCS-51單片機影響極深遠,許多公司都推出了兼容系列單片機,就是說MCS-51內核實際上已經成為一個8位單片機的標准。
其他的公司的51單片機產品都是和MCS-51內核兼容的產品而以。同樣的一段程序,在各個單片機廠家的硬體上運行的結果都是一樣的,如ATMEL的89C51(已經停產)、89S51, PHILIPS(菲利浦),和WINBOND(華邦)等,我們常說的已經停產的89C51指的是ATMEL公司的 AT89C51單片機,同時是在原基礎上增強了許多特性,如時鍾,更優秀的是由Flash(程序存儲器的內容至少可以改寫1000次)存儲器取帶了原來的ROM(一次性寫入),AT89C51的性能相對於8051已經算是非常優越的了。
不過在市場化方面,89C51受到了PIC單片機陣營的挑戰,89C51最致命的缺陷在於不支持ISP(在線更新程序)功能,必須加上ISP功能等新功能才能更好延續MCS-51的傳奇。89S51就是在這樣的背景下取代89C51的,現在,89S51目前已經成為了實際應用市場上新的寵兒,作為市場佔有率第一的Atmel目前公司已經停產AT89C51,將用AT89S51代替。89S51在工藝上進行了改進,89S51採用0.35新工藝,成本降低,而且將功能提升,增加了競爭力。89SXX可以像下兼容89CXX等51系列晶元。同時,Atmel不再接受89CXX的定單,大家在市場上見到的89C51實際都是Atmel前期生產的巨量庫存而以。如果市場需要,Atmel當然也可以再恢復生產AT89C51。
89S51相對於89C51增加的新功能包括:
-- 新增加很多功能,性能有了較大提升,價格基本不變,甚至比89C51更低!
-- ISP在線編程功能,這個功能的優勢在於改寫單片機存儲器內的程序不需要把晶元從工作環境中剝離。是一個強大易用的功能。
-- 最高工作頻率為33MHz,大家都知道89C51的極限工作頻率是24M,就是說S51具有更高工作頻率,從而具有了更快的計算速度。
-- 具有雙工UART串列通道。
-- 內部集成看門狗計時器,不再需要像89C51那樣外接看門狗計時器單元電路。
-- 雙數據指示器。
-- 電源關閉標識。
-- 全新的加密演算法,這使得對於89S51的解密變為不可能,程序的保密性大大加強,這樣就可以有效的保護知識產權不被侵犯。
-- 兼容性方面:向下完全兼容51全部字系列產品。比如8051、89C51等等早期MCS-51兼容產品。也就是說所有教科書、網路教程上的程序(不論教科書上採用的單片機是8051還是89C51還是MCS-51等等),在89S51上一樣可以照常運行,這就是所謂的向下兼容。
比較結果:就如同INTEL的P3向P4升級一樣,雖然都可以跑Windows98,不過速度是不同的。
從AT89C51升級到AT89S51 ,也是同理。和S51比起來,C51就要遜色一些,實際應用市場方面技術的進步是永遠向前的。
********上面這些就是AT89S51的由來********
下面是初學網友對51系列的選型的常見問題
請問現在學習51系列單片機應該選擇AT89C51還是89S51?
答:89C51和89S51內核相同,89S51針對89C51的明顯的幾個升級如下;
1.程序存儲器寫入方式:二者的寫入程序的方式不同,89C51隻支持並行寫入,同時需要VPP燒寫高壓。89S51則支持ISP在線可編程寫入技術!串列寫入、速度更快、穩定性更好,燒寫電壓也僅僅需要4~5V即可。
2.電源范圍:89S5*電源范圍寬達4~5.5V,而89C5*系列在低於4.8V和高於5.3V的時候則無法正常工作。
3.工作頻率:目前89S1*的性能遠高於89C5*,89S5*系列支持最高高達33MHZ的工作頻率,而89C51工作頻率范圍最高只支持到24M。
4.市場價格:由於89C51已經全面停產,所以在市場價格方面,庫存的89C5*的批發價格要比89S5*貴將近一倍!
5.兼容型:89S5*向下兼容89C5*,就是說用89S5*可以替代89C5*使用,同樣的程序,運行結果相同。就是說89S5*也同樣兼容目前所有的教科書范常式序。
6.加密功能:89S5*系列全新的加密演算法,這使得對於89S51的解密變為不可能,程序的保密性大大加強,這樣就可以有效的保護知識產權不被侵犯。
7.抗干擾性:內部集成看門狗計時器,不再需要像89C51那樣外接看門狗計時器單元電路。
8.燒寫壽命更長:89S5*標稱的1000次,實際最少是1000次~10000次,這樣更有利初學者反復燒寫,減低學習成本。綜合上面的一些區別,個人認為89C51的停止使用只是時間問題而已,就象當年的8031。
2問:採用89C2051開發製造產品是不是要比用89S51更好?因為2051看起來體積比較小。
2答:這個問題並不能一概而論,主要的區別如下:
1.功能差別:因為2051不是標準的51內核,所以205*的程序不能直接移植到51上。由於205*是精簡型,所以P口變得很少,這樣一來就只能用來做一些小的簡單產品,可利用資源比較緊張。實際上,做產品的話用205*是不一定合算的,除非是非常簡單的產品。
2.市場價格:由於89C2051的產量不是非常大,所以市場價格方面89C2051的批發價格和89S51比較接近!相對性能價格比就比較低。
3.產品體積:除非對產品的體積有苛刻的要求,否則二者的PCB面積相差不多,因為40腳的51晶元也有PLCC44小體積封裝。
㈤ 89S51的介紹
AT89C51 的性能相對於8051 已經算是非常優越的了。 不過在市場化方面,89C51 受到了PIC 單片機陣營的挑戰,89C51 最致命的缺陷在於不支持ISP(在線更新程序)功能,必須加上ISP 功能等新功能才能更好延續MCS-51 的傳奇。89S51就是在這樣的背景下取代89C51 的,89S51 已經成為了實際應用市場上新的寵兒,作為市場佔有率第一的Atmel 公司已經停產AT89C51,將用AT89S51 代替。
㈥ 51單片機系列的區別與特點介紹
1、8031的特點
8031片內不帶程序存儲器ROM,使用時用戶需外接程序存儲器和一片邏輯電路373,外接的程序存儲器多為EPROM的2764系列。用戶若想對寫入到EPROM中的程序進行修改,必須先用一種特殊的紫外線燈將其照射擦除,之後再可寫入。寫入到外接程序存儲器的程序代碼沒有什麼保密性可言。
2、8051的特點
8051片內有4k ROM,無須外接外存儲器和373,更能體現「單片」的簡練。但是你編的程序你無法燒寫到其ROM中,只有將程序交晶元廠代你燒寫,並是一次性的,今後你和晶元廠都不能改寫其內容。
3、8751的特點
8751與8051基本一樣,但8751片內有4k的EPROM,用戶可以將自己編寫的程序寫入單片機的EPROM中進行現場實驗與應用,EPROM的改寫同樣需要用紫外線燈照射一定時間擦除後再燒寫。
由於上述類型的單片機應用的早,影響很大,已成為事實上的工業標准。後來很多晶元廠商以各種方式與Intel公司合作,也推出了同類型的單片機,如同一種單片機的多個版本一樣,雖都在不斷的改變製造工藝,但內核卻一樣,也就是說這類單片機指令系統完全兼容,絕大多數管腳也兼容;在使用上基本可以直接互換。人們統稱這些與8051內核相同的單片機為「51系列單片機」,學了其中一種,便會所有的51系列。
4、AT89C51、AT89S51的特點
在眾多的51系列單片機中,要算 ATMEL 公司的AT89C51、AT89S51更實用,因他不但和8051指令、管腳完全兼容,而且其片內的4K程序存儲器是FLASH工藝的,這種工藝的存儲器用戶可以用電的方式瞬間擦除、改寫,一般專為 ATMEL AT89xx 做的編程器均帶有這些功能。顯而易見,這種單片機對開發設備的要求很低,開發時間也大大縮短。寫入單片機內的程序還可以進行加密,這又很好地保護了你的勞動成果。再著,AT89C51、AT89S51目前的售價比8031還低,市場供應也很充足。
AT89S51、52是2003年ATMEL推出的新型品種,除了完全兼容8051外,還多了ISP編程和看門狗功能。我們也專門為這種新片設計了一款 編程、學習、實驗板。
5、AT89C2051、AT89C1051等的特點
ATMEL公司的51系列還有AT89C2051、AT89C1051等品種,這些晶元是在AT89C51的基礎上將一些功能精簡掉後形成的精簡版。AT89C2051取掉了P0口和P2口,內部的程序FLASH存儲器也小到2K,封裝形式也由51的P40腳改為20腳,相應的價格也低一些,特別適合在一些智能玩具,手持儀器等程序不大的電路環境下應用;AT89C1051在2051的基礎上,再次精簡掉了串口功能等,程序存儲器再次減小到1k,當然價格也更低。
對2051和1051來說,雖然減掉了一些資源,但他們片內都集成了一個精密比較器,別小看這小小的比較器,他為我們測量一些模擬信號提供了極大的方便,在外加幾個電阻和電容的情況下,就可以測量電壓、溫度等我們日常需要的量。這對很多日用電器的設計是很寶貴的資源。
ATMEL的51、2051、1051均有多種封裝,如AT89C(S)51有PDIP、PLCC和PQFP/TQFP等封裝;2051/1051有PDIP和SOIC封裝等。下圖是部分封裝實物。
由於51系列單片機的內核都一樣,所以在51單片機教材方面目前仍然沿用Intel MCS 8051單片機的書籍。開發軟體和工具也是一樣,我們統稱為8051開發系統、環境、等等,如我們網站介紹的匯編程序ASM51、Keil C51、MedWin 等均是針對8051內核單片機的開發軟體。
單對AT89C51、AT89S51來說,在實際電路中可以直接互換8051//8751,替換8031隻是第31腳有區別,8031因內部沒有ROM,31腳需接地(GND),單片機在啟動後就到外面程序存儲器讀取指令;而8051/8751/89c51因內部有程序存儲器,31腳接高電平(VCC),單片機啟動後直接在內部讀取指令。也就是51晶元的31腳控制著單片機程序從內部讀取還是從外部讀取,31腳接電源,程序從內部讀取,31腳接地,程序從外部讀取。其他無須改動。另外,AT89C51、AT89s51替換8031後因不用外存儲器,不必安裝原電路的外存儲器和373晶元。
6、89S51與89C51的區別
MCS-51單片機是美國INTE公司於1980年推出的產品,典型產品有 8031(內部沒有程序存儲器,實際使用方面已經被市場淘汰)、8051(晶元採用HMOS,功耗是630mW,是89C51的5倍,實際使用方面已經被市場淘汰)和8751等通用產品,一直到現在, MCS-51內核系列兼容的單片機仍是應用的主流產品(比如目前流行的89S51、89C51等),各高校及專業學校的培訓教材仍與MCS-51單片機作為代表進行理論基礎學習。有些文獻甚至也將8051泛指MCS-51系列單片機,8051是早期的最典型的代表作,MCS-51內核實際上已經成為一個8位單片機的標准。
其他的公司的51單片機產品都是和MCS-51內核兼容的產品而以。同樣的一段程序,在各個單片機廠家的硬體上運行的結果都是一樣的,如ATMEL的89C51(已經停產)、89S51, PHILIPS(菲利浦),和WINBOND(華邦)等,我們常說的已經停產的89C51指的是ATMEL公司的 AT89C51單片機,同時是在原基礎上增強了許多特性,如時鍾,更優秀的是由Flash(程序存儲器的內容至少可以改寫1000次)存儲器取帶了原來的ROM(一次性寫入),AT89C51的性能相對於8051已經算是非常優越的了。
不過在市場化方面,89C51受到了PIC單片機陣營的挑戰,89C51最致命的缺陷在於不支持ISP(在線更新程序)功能,必須加上ISP功能等新功能才能更好延續MCS-51的傳奇。89S51就是在這樣的背景下取代89C51的,現在,89S51目前已經成為了實際應用市場上新的寵兒,作為市場佔有率第一的Atmel目前公司已經停產AT89C51,將用AT89S51代替。89S51在工藝上進行了改進,89S51採用0.35新工藝,成本降低,而且將功能提升,增加了競爭力。89SXX可以像下兼容89CXX等51系列晶元。同時,Atmel不再接受89CXX的定單,大家在市場上見到的89C51實際都是Atmel前期生產的巨量庫存而以。如果市場需要,Atmel當然也可以再恢復生產AT89C51。
7、89S51相對於89C51增加的新功能包括:
1)性能有了較大提升,價格基本不變,甚至比89C51更低!
2)ISP在線編程功能,這個功能的優勢在於改寫單片機存儲器內的程序不需要把晶元從工作環境中剝離。是一個強大易用的功能。
3)最高工作頻率為33MHz,大家都知道89C51的極限工作頻率是24M,就是說S51具有更高工作頻率,從而具有了更快的計算速度。
4)具有雙工UART串列通道。
5)內部集成看門狗計時器,不再需要像89C51那樣外接看門狗計時器單元電路。
6)雙數據指示器。
7)電源關閉標識。
8)全新的加密演算法,這使得對於89S51的**變為不可能,程序的保密性大大加強,這樣就可以有效的保護知識產權不被侵犯。
9) 兼容性方面:向下完全兼容51全部字系列產品。比如8051、89C51等等早期MCS-51兼容產品。
㈦ 單片機89c51、89c52、89s51之間的最大區別是什麼
單片機89c51跟89C52最大的區別在於資源,如下:
89C51
4K
flash
128byte
RAM
89C52
8k
flash
256byte
RAM
,還多一個time2(定時器2)
89c51跟89s51沒有區別,從晶元資源來說,都是8位單片機,資源也是一樣的。4Kflash,128byteRAM
㈧ 89s51單片機有哪幾個中斷源對應的中斷入口地址是什麼
AT89s51單片機有5個中斷源,分別是:
外部中斷0:入口:0003H
定時器0: 入口:000BH
外中斷1: 入口:0013H
定時器1: 入口:001BH
串口中斷:入口:0023H
AT89S51是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes
ISP(In-system
programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件採用ATMEL公司的高密度、非易失性存儲技術製造。
兼容標准MCS-51指令系統及80C51引腳結構,晶元內集成了通用8位中央處理器和ISP
Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統提供高性價比的解決方案。
㈨ AT89S51單片機的內部資源有哪些,分別是怎麼使用的
單片機對於初學者來說確實很難理解,不少學過單片機的同學或電子愛好者,甚至在畢業時仍舊是一無所獲。基於此,電子發燒友網將整合《單片機關鍵知識點全攻略》,共分為四個系列,以饗讀者,敬請期待!此系列對於業內電子工程師也有收藏和參考價值。
單片機關鍵知識點一覽:
系列一
點擊瀏覽下一頁1:單片機簡敘
點擊瀏覽下一頁2:單片機引腳介紹
點擊瀏覽下一頁3:單片機存儲器結構
點擊瀏覽下一頁4:第一個單片機小程序
點擊瀏覽下一頁5:單片機延時程序分析
點擊瀏覽下一頁6:單片機並行口結構
點擊瀏覽下一頁7:單片機的特殊功能寄存器
系列二
點擊瀏覽下一頁8:單片機定址方式與指令系統
點擊瀏覽下一頁9:單片機數據傳遞類指令
點擊瀏覽下一頁10:單片機數據傳送類指令
點擊瀏覽下一頁11:單片機算術運算指令
點擊瀏覽下一頁12:單片機邏輯運算類指令
點擊瀏覽下一頁13:單片機邏輯與或異或指令祥解
點擊瀏覽下一頁14:單片機條件轉移指令
系列三
點擊瀏覽下一頁15:單片機位操作指令
點擊瀏覽下一頁16:單片機定時器與計數器
點擊瀏覽下一頁17:單片機定時器/計數器的方式
點擊瀏覽下一頁18:單片機的中斷系統
點擊瀏覽下一頁19:單片機定時器、中斷試驗
點擊瀏覽下一頁20:單片機定時/計數器實驗
點擊瀏覽下一頁21:單片機串列口介紹
系列四
點擊瀏覽下一頁22:單片機串列口通信程序設計
點擊瀏覽下一頁23:LED數碼管靜態顯示介面與編
點擊瀏覽下一頁24:動態掃描顯示介面電路及程序
點擊瀏覽下一頁25:單片機鍵盤介面程序設計
點擊瀏覽下一頁26:單片機矩陣式鍵盤介面技術及
點擊瀏覽下一頁27:關於單片機的一些基本概念
點擊瀏覽下一頁28:實際案例實踐——單片機音樂程序設計
1:單片機簡敘
什麼是單片機 一台能夠工作的計算機要有這樣幾個部份構成:CPU(進行運算、控制)、RAM(數據存儲)、ROM(程序存儲)、輸入/輸出設備(例如:串列口、並行輸出口等)。在個人計算機上這些部份被分成若干塊晶元,安裝一個稱之為主板的印刷線路板上。而在單片機中,這些部份,全部被做到一塊集成電路晶元中了,所以就稱為單片(單晶元)機,而且有一些單片機中除了上述部份外,還集成了其它部份如A/D,D/A等。
單片機是一種控制晶元,一個微型的計算機,而加上晶振,存儲器,地址鎖存器,邏輯門,七段解碼器(顯示器),按鈕(類似鍵盤),擴展晶元,介面等那是單片機系統。
2:單片機引腳介紹
點擊瀏覽下一頁
單片機的40個引腳大致可分為4類:電源、時鍾、控制和I/O引腳。
⒈ 電源:
⑴ VCC - 晶元電源,接+5V;
⑵ VSS - 接地端;
⒉ 時鍾:XTAL1、XTAL2 - 晶體振盪電路反相輸入端和輸出端。
⒊ 控制線:控制線共有4根,
⑴ ALE/PROG:地址鎖存允許/片內EPROM編程脈沖
① ALE功能:用來鎖存P0口送出的低8位地址
② PROG功能:片內有EPROM的晶元,在EPROM編程期間,此引腳輸入編程脈沖。
⑵ PSEN:外ROM讀選通信號。
⑶ RST/VPD:復位/備用電源。
① RST(Reset)功能:復位信號輸入端。
② VPD功能:在Vcc掉電情況下,接備用電源。
⑷ EA/Vpp:內外ROM選擇/片內EPROM編程電源。
① EA功能:內外ROM選擇端。
② Vpp功能:片內有EPROM的晶元,在EPROM編程期間,施加編程電源Vpp。
⒋ I/O線
80C51共有4個8位並行I/O埠:P0、P1、P2、P3口,共32個引腳。P3口還具有第二功能,用於特殊信號輸入輸出和控制信號(屬控制匯流排)。
拿到一塊晶元,想要使用它,首先必須要知道怎樣連線,我們用的一塊稱之為89C51的晶元,下面我們就看一下如何給它連線。
1、 電源:這當然是必不可少的了。單片機使用的是5V電源,其中正極接40管腳,負極(地)接20管腳。
2、 振蒎電路:單片機是一種時序電路,必須供給脈沖信號才能正常工作,在單片機內部已集成了振盪器,使用晶體振盪器,接18、19腳。只要買來晶體震盪器,電容,連上就能了,按圖1接上即可。
3、 復位管腳:按圖1中畫法連好,至於復位是何含義及為何需要復要復位,在單片機功能中介紹。
4、 EA管腳:EA管腳接到正電源端。 至此,一個單片機就接好,通上電,單片機就開始工作了。
我們的第一個任務是要用單片機點亮一隻發光二極體LED,顯然,這個LED必須要和單片機的某個管腳相連,不然單片機就沒法控制它了,那麼和哪個管腳相連呢?單片機上除了剛才用掉的5個管腳,還有35個,我們將這個LED和1腳相連。(見圖1,其中R1是限流電阻)
按照這個圖的接法,當1腳是高電平時,LED不亮,只有1腳是低電平時,LED才發亮。因此要1腳我們要能夠控制,也就是說,我們要能夠讓1管腳按要求變為高或低電平。即然我們要控制1腳,就得給它起個名字,總不能就叫它一腳吧?叫它什麼名字呢?設計51晶元的INTEL公司已經起好了,就叫它P1.0,這是規定,不能由我們來更改。
點擊瀏覽下一頁
圖1
名字有了,我們又怎樣讓它變『高』或變『低』呢?叫人做事,說一聲就能,這叫發布命令,要計算機做事,也得要向計算機發命令,計算機能聽得懂的命令稱之為計算機的指令。讓一個管腳輸出高電平的指令是SETB,讓一個管腳輸出低電平的指令是CLR。因此,我們要P1.0輸出高電平,只要寫SETB P1.0,要P1.0輸出低電平,只要寫 CLR P1.0就能了。
現在我們已經有辦法讓計算機去將P10輸出高或低電平了,但是我們怎樣才能計算機執行這條指令呢?總不能也對計算機也說一聲了事吧。要解決這個問題,還得有幾步要走。第一,計算機看不懂SETB CLR之類的指令,我們得把指令翻譯成計算機能懂的方式,再讓計算機去讀。計算機能懂什麼呢?它只懂一樣東西——數字。因此我們得把SETB P1.0變為(D2H,90H ),把CLR P1.0變為 (C2H,90H ),至於為什麼是這兩個數字,這也是由51晶元的設計者--INTEL規定的,我們不去研究。第二步,在得到這兩個數字後,怎樣讓這兩個數字進入單片機的內部呢?這要藉助於一個硬體工具「編程器」。如果你還不知道是什麼是編程器,我來介紹一下,就是把你在電腦上寫出來來的代碼用匯編器等編譯器生成的一個目標燒寫到單片機的eprom裡面去的工具,80c51這種類型的單片機編程是一件很麻煩的事情,必要要先裝到編程器上編程後才能在設備上使用,而目前最新的89s51單片機居然在線編程(isp)功能,不用拔出來利用簡單的電路就可以實現把代碼寫入單片機內部,本站有詳細的at89s51編程器製作教程
我們將編程器與電腦連好,運行編程器的軟體,然後在編緝區內寫入(D2H,90H)見圖2,
點擊瀏覽下一頁
圖2
寫入……好,拿下片子,把片子插入做好的電路板,接通電源……什麼?燈不亮?這就對了,因為我們寫進去的指令就是讓P10輸出高電平,燈當然不亮,要是亮就錯了。現在我們再撥下這塊晶元,重新放回到編程器上,將編緝區的內容改為(C2H,90H),也就是CLR P1.0,寫片,拿下片子,把片子插進電路板,接電,好,燈亮了。因為我們寫入的()就是讓P10輸出低電平的指令。這樣我們看到,硬體電路的連線沒有做任何改變,只要改變寫入單片機中的內容,就能改變電路的輸出效果。
3:單片機存儲器結構
單片機內部存儲結構分析
我們來思考一個問題,當我們在編程器中把一條指令寫進單片要內部,然後取下單片機,單片機就可以執行這條指令,那麼這條指令一定保存在單片機的某個地方,並且這個地方在單片機掉電後依然可以保持這條指令不會丟失,這是個什麼地方呢?這個地方就是單片機內部的只讀存儲器即ROM(READ ONLY MEMORY)。為什麼稱它為只讀存儲器呢?剛才我們不是明明把兩個數字寫進去了嗎?原來在89C51中的ROM是一種電可擦除的ROM,稱為FLASH ROM,剛才我們是用的編程器,在特殊的條件下由外部設備對ROM進行寫的操作,在單片機正常工作條件下,只能從那面讀,不能把數據寫進去,所以我們還是把它稱為ROM。
數的本質和物理現象:我們知道,計算機能進行數學運算,這可令我們非常的難以理解,計算機嗎,我們雖不了解它的組成,但它總只是一些電子元器件,怎麼能進行數學運算呢?我們做數學題如37+45是這樣做的,先在紙上寫37,然後在下面寫45,然後大腦運算,最後寫出結果,運算的原材料:37、45和結果:82都是寫在紙上的,計算機中又是放在什麼地方呢?為了解決這個問題,先讓我們做一個實驗:這里有一盞燈,我們知道燈要麼亮,要麼不亮,就有兩種狀態,我們能用』0』和』1』來代替這兩種狀態,規定亮為』1』,不亮為』0』。現在放上兩盞燈,一共有幾種狀態呢?我們列表來看一下:
請大家自已寫上3盞燈的情況000 001 010 011 100 101 110 111
我們來看,這個000,001,101 不就是我們學過的的二進制數嗎?本來,燈的亮和滅只是一種物理現象,可當我們把它們按一按的次序排更好後,燈的亮和滅就代表了數字了。讓我們再抽象一步,燈為什麼會亮呢?看電路1,是因為輸出電路輸出高電平,給燈通了電。因此,燈亮和滅就能用電路的輸出是高電平還是低電平來替代了。這樣,數字就和電平的高、低聯繫上了。(請想一下,我們還看到過什麼樣的類似的常式呢?(海軍之)燈語、旗語,電報,甚至紅、綠燈)
什麼是位:
通過上面的實驗我們已經知道:一盞燈亮或者說一根線的電平的高低,能代表兩種狀態:0和1。實際上這就是一個二進制位,因此我們就把一根線稱之為一「位」,用BIT表示。
什麼是位元組:
一根線能表於0和1,兩根線能表達00,01,10,11四種狀態,也就是能表於0到3,而三根能表達0-7,計算機中常常用8根線放在一起,同時計數,就能表過到0-255一共256種狀態。這8根線或者8位就稱之為一個位元組(BYTE)。不要問我為什麼是8根而不是其它數,因為我也不知道。(計算機世界是一本人造的世界,不是自然界,很多事情你無法問為什麼,只能說:它是一種規定,大家在以後的學習過程中也要注意這個問題)
存儲器的工作原理:
1、存儲器構造
存儲器就是用來存放數據的地方。它是利用電平的高低來存放數據的,也就是說,它存放的實際上是電平的高、低,而不是我們所習慣認為的1234這樣的數字,這樣,我們的一個謎團就解開了,計算機也沒什麼神秘的嗎。
點擊瀏覽下一頁
圖2
點擊瀏覽下一頁
圖3
讓我們看圖2。單片機裡面都有這樣的存儲器,這是一個存儲器的示意圖:一個存儲器就象一個個的小抽屜,一個小抽屜里有八個小格子,每個小格子就是用來存放「電荷」的,電荷通過與它相連的電線傳進來或釋放掉,至於電荷在小格子里是怎樣存的,就不用我們操心了,你能把電線想像成水管,小格子里的電荷就象是水,那就好理解了。存儲器中的每個小抽屜就是一個放數據的地方,我們稱之為一個「單元」。
有了這么一個構造,我們就能開始存放數據了,想要放進一個數據12,也就是00001100,我們只要把第二號和第三號小格子里存滿電荷,而其它小格子里的電荷給放掉就行了(看圖3)。可是問題出來了,看圖2,一個存儲器有好多單元,線是並聯的,在放入電荷的時候,會將電荷放入所有的單元中,而釋放電荷的時候,會把每個單元中的電荷都放掉,這樣的話,不管存儲器有多少個單元,都只能放同一個數,這當然不是我們所希望的,因此,要在結構上稍作變化,看圖2,在每個單元上有個控制線,我想要把數據放進哪個單元,就給一個信號這個單元的控制線,這個控制線就把開關打開,這樣電荷就能自由流動了,而其它單元控制線上沒有信號,所以開關不打開,不會受到影響,這樣,只要控制不一樣單元的控制線,就能向各單元寫入不一樣的數據了,同樣,如果要某個單元中取數據,也只要打開對應的控制開關就行了。
2、存儲器解碼
那麼,我們怎樣來控制各個單元的控制線呢?這個還不簡單,把每個單元元的控制線都引到集成電路的外面不就行了嗎?事情可沒那麼簡單,一片27512存儲器中有65536個單元,把每根線都引出來,這個集成電路就得有6萬多個腳?不行,怎麼辦?要想法減少線的數量。我們有一種辦法稱這為解碼,簡單介紹一下:一根線能代表2種狀態,2根線能代表4種狀態,3根線能代表幾種,256種狀態又需要幾根線代表?8種,8根線,所以65536種狀態我們只需要16根線就能代表了。
點擊瀏覽下一頁
3、存儲器的選片及匯流排的概念
至此,解碼的問題解決了,讓我們再來關注另外一個問題。送入每個單元的八根線是用從什麼地方來的呢?它就是從計算機上接過來的,一般地,這八根線除了接一個存儲器之外,還要接其它的器件,如圖4所示。這樣問題就出來了,這八根線既然不是存儲器和計算機之間專用的,如果總是將某個單元接在這八根線上,就不好了,比如這個存儲器單元中的數值是0FFH另一個存儲器的單元是00H,那麼這根線到底是處於高電平,還是低電平?豈非要打架看誰歷害了?所以我們要讓它們分離。辦法當然很簡單,當外面的線接到集成電路的管腳進來後,不直接接到各單元去,中間再加一組開關(參考圖4 )就行了。平時我們讓開關關閉著,如果確實是要向這個存儲器中寫入數據,或要從存儲器中讀出數據,再讓開關接通就行了。這組開關由三根引線選擇:讀控制端、寫控制端和片選端。要將數據寫入片中,先選中該片,然後發出寫信號,開關就合上了,並將傳過來的數據(電荷)寫入片中。如果要讀,先選中該片,然後發出讀信號,開關合上,數據就被送出去了。注意圖4,讀和寫信號同時還接入到另一個存儲器,但是由於片選端不一樣,所以雖有讀或寫信號,但沒有片選信號,所以另一個存儲器不會「誤會」而開門,造成沖突。那麼會不一樣時選中兩片晶元呢?只要是設計好的系統就不會,因為它是由計算控制的,而不是我們人來控制的,如果真的出現同時出現選中兩片的情況,那就是電路出了故障了,這不在我們的討論之列。
㈩ 單片機中的8051,80S51還有89S51,這三個東西之間到底是什麼關系啊
8051是一種單片機內核的類型,通指含有8051內核的單片機
80S51,89S51,就是含8051內核的單片機中的一種
用一個你比較容易理解的方法來形容,8051好比蔬菜,80S51和89S51好比黃瓜和西紅柿