新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 8051單片機(jī)的常見問題

8051單片機(jī)的常見問題

作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
一、8051基本概念

1、MCS8051是什么東西?

本文引用地址:http://butianyuan.cn/article/201611/316241.htm

答:最開始,MCS8051是指INTEL公司出品的MCS51系列的單片機(jī)芯片,由于后來很多廠家的8051其指令集兼容INTEL公司的,所以,MCS8051又指8051基本指令集。

2、市面上有哪些常見的MCS8051兼容芯片?

答:INTEL的MCS8051內(nèi)核轉(zhuǎn)讓過很多廠家。目前用的比較多的,最常見的廠家有:

(1)ATMEL公司的AT 89C51 /AT89C52/AT89C55、AT 89S51 /AT89S52/AT89S53等。這些芯片可以反復(fù)編程1000次,常見的封裝是40引腳的PDIP。其中AT 89C51 已經(jīng)停產(chǎn)。AT代表ATMEL公司,C的意思就是該芯片使用CMOS工藝。S的意思就是該芯片具有ISP功能。C系列的換代產(chǎn)品是S系列,其最明顯的特點是加入了ISP功能,即In System Programeable(在系統(tǒng)編程),這使得只要有根ISP下載線就能在單片機(jī)應(yīng)用系統(tǒng)板上進(jìn)行編程,無須拔下芯片插入編程器,在現(xiàn)場改變程序時比較方便。

(2)ATMEL公司的AT89C2051和AT89C4051等。這些芯片都只有20引腳,芯片上資源較少,一般做些簡單的玩具和儀表。

(3)SST公司的SST89C54/C55。這兩種芯片在國內(nèi)有個很重要的用途,就是制作8051系統(tǒng)的仿真器。在西門子的手冊上說,SST89C54和SST89C58可以反復(fù)編程1萬次~10萬次(新出的)。所以凡是用這兩者芯片做仿真CPU的仿真器,到了一定時間后都要更換寫壞了的芯片。因此在購買所謂的8051 FLASH仿真器時一定要注意這個問題。

3、AT89C51/AT89S51和基本MCS8051的相同點和不同點各是什么?

答:在ATMEL公司出的手冊上說,AT89C51和AT89S51都是片內(nèi)4K字節(jié)的FLASH程序 存儲器,128字節(jié)的片內(nèi)RAM,2個定時器/計數(shù)器,6個中斷源,5個在手冊上可用中斷,2個中斷級別。都支持掉電模式和空閑模式,都是MSC8051指令集。這兩種芯片與INTEL的8051芯片相比,多了些東西,比如6個中斷源就比書上MCS8051的5個中斷多1個,這個中斷源用于芯片的編程。另外多了所謂的空閑模式和掉電模式。

二、AT89C51/AT89S51的問題

1、為什么要采用這兩種芯片做8051基本實驗和設(shè)計?

答:答案很簡單,因為這兩種芯片容易買的到,價格也便宜,一般在10元以下。特別是AT89C51已經(jīng)停產(chǎn)后,其換代產(chǎn)品AT89S51在價格基本不變的條件下,多了ISP功能,利用一條ISP下載線+國人編寫免費的EASYISP軟件或者ISPDOWN軟件,在現(xiàn)場編程很方便。在保護(hù)自己的程序方面,這些芯片都有3級保護(hù)位,一旦寫入保護(hù),破譯芯片中的內(nèi)容會變的非常困難。

2、AT89C51/AT89S51的掉電模式怎么用?

答:雖然AT89C51已經(jīng)停產(chǎn),但市面上還是有很多存貨的。而AT89S51在這方面與其兼容。在ATMEL手冊上說,掉電模式下,芯片時鐘停止,調(diào)用掉電模式的指令是最后執(zhí)行的指令。從掉電模式中恢復(fù)后,片內(nèi)RAM的數(shù)據(jù)不丟失。復(fù)位時特殊功能寄存器被復(fù)位,但其它內(nèi)部RAM的內(nèi)容不改變。在VCC電源沒有達(dá)到正常電壓之前,復(fù)位不會發(fā)生。復(fù)位時芯片會自己等晶振的工作恢復(fù)正常。 進(jìn)入掉電模式時,軟件將位于片內(nèi)數(shù)據(jù)RAM的87H地址的PCON的PCON.1,即PD位置1,此時ALE引腳和/PSEN引腳都會置為0,這是標(biāo)志。在使用內(nèi)部程序存儲器時,P0口~P3口都會是數(shù)據(jù)。在使用外部程序存儲器時,P0口會浮空,P1~P3口都是數(shù)據(jù)。

3、AT89C51/AT89S51的空閑模式怎么用?

答:ATMEL手冊上說,空閑模式下CPU內(nèi)核進(jìn)入休眠,功耗下降,芯片內(nèi)部的周邊設(shè)備-即定時器中斷、計數(shù)器中斷、外部中斷、串口中斷仍然工作。該模式與掉電模式不同的是,空閑模式由軟件調(diào)用。芯片上的RAM和特殊功能寄存器在該模式下保持原來的值??臻e模式可以由任何中斷或者硬件復(fù)位來喚醒。 值得注意的是,當(dāng)空閑模式由硬件復(fù)位來喚醒的時候,設(shè)備正常地從程序停止的地方恢復(fù)運行,內(nèi)部運算器運行前要過2個機(jī)器周期。在該事件中,芯片上的硬件控制內(nèi)部RAM的存取。當(dāng)空閑模式被硬件喚醒時,要排除不希望的端口的寫操作。在調(diào)用空閑模式的指令后面的第1條指令不能是寫端口引腳或者是寫外部內(nèi)存。 進(jìn)入空閑模式時,軟件將位于片內(nèi)數(shù)據(jù)RAM的87H地址的PCON的PCON.0,即IDL位置1,此時ALE引腳和/PSEN都會置被為0,這是標(biāo)志。在使用內(nèi)部程序存儲器時,P0口~P3口都是數(shù)據(jù)。在使用外部程序存儲器時,P0口浮空,P1~P3口都是數(shù)據(jù)。

4、這兩款芯片有什么具體不同的地方?

答:有無ISP功能、特殊功能寄存器和不同的極限工作頻率。AT89S51不但多了ISP功能,還有一個很好用的內(nèi)部看門狗??撮T狗是直譯的說法,即一個不斷自己工作的定時器,如果不不斷地“喂”它(不斷地復(fù)位它,表示程序自己沒有死機(jī)),過一段時間,它就會計數(shù)溢出,MCU就復(fù)位,以避免程序卡死后沒人管。 AT89S51的內(nèi)部看門狗叫做WDTRST寄存器,14位長度,最大計數(shù)值16383,即3FFFH,用來替代原來AT89C51要使用外部看門狗。其位置在內(nèi)部數(shù)據(jù)RAM的十六進(jìn)制地址0A6H。激活該看門狗的方法是先向該地址寫01EH,然后寫0E1H即可。此看門狗在晶振工作時工作!在CPU掉電模式下,該功能失效。如果晶振工作,每個機(jī)器周期,該定時器加1,直到自己復(fù)位(喂狗)或者溢出。

AT89C51最高可以使用的晶振頻率時24MHz,AT89S51可以使用的晶振頻率更高,達(dá)33MHz。

5、如何選擇合適的晶振電容?

答:任何一個8051系統(tǒng)都需要一個時鐘來指導(dǎo)MCU芯片工作。很多書上說AT89C51/AT89S51使用的晶振配合的兩個電容C1和C2選25pF的陶瓷電容,取得是下限。 實際上,AT89C51/AT89SS51的這兩個電容的取值范圍如下:如果使用的是晶振,可取30pF±10pF。如果使用的是陶瓷振蕩器,那么電容就要取40±10pF。本人就買35pF的陶瓷電容,反正不管是配合使用什么振蕩器,都可以用。

三、學(xué)習(xí)設(shè)計中的問題

1、如何開始我的第1個設(shè)計?

答:記得學(xué)C語言的時候,第1個例子就是“Hello,World!”,不知道激起了多少程序員的夢想。在單片機(jī)學(xué)習(xí)中,一般第1個例子就是流水燈,也有人把它叫做跑馬燈的。從這個例子入門后,你可以想想看看,怎么反向流動?怎么象霓虹燈那樣閃爍?等等。在設(shè)計中學(xué)習(xí)一直是我向?qū)W生提倡的方法,因為這樣,學(xué)的實在、學(xué)的不會忘記。而且基本上一開始,就可以接觸比較復(fù)雜點的東西了。

2、一個正規(guī)的設(shè)計要做哪幾步?答:除開為了火燒眉毛趕交導(dǎo)師作業(yè)的人以外(開個玩笑)。首先不要急,要寫出設(shè)計的指標(biāo),比如要完成什么功能、使用多少伏特的電源、是交流供電還是直流供電、等等。然后選擇要使用什么芯片。分析一下這些芯片具體運算能力是多少,有沒有可能完成需要的運算任務(wù)等。要學(xué)會一邊設(shè)計、一邊寫設(shè)計說明書,這點非常重要。一個設(shè)計投入工作之日不等于設(shè)計者就可以撒手不管了。而是不斷地改進(jìn)設(shè)計,完成更加完善的功能。平常的時候還多看看相關(guān)的書本、雜志,上相應(yīng)的網(wǎng)站收集些資料,在虛擬社區(qū)中同那些工程師們討論些問題,虛心向高手學(xué)習(xí)、認(rèn)真做好學(xué)習(xí)記錄,你的設(shè)計就一定會不斷進(jìn)步的。

3、我怎么才能靠單片機(jī)賺錢?

答:這大概是最重要的問題之一了。這個問題不但困惑著你,也困惑著我的學(xué)生(笑)。這其實并不困難,關(guān)鍵在于你要觀查周圍人的需要,善于觀察,善于分析,善于移植。比方作個金魚缸的溫度控制,實驗成功后,可以移植成工業(yè)上恒溫箱的控制,可以賣設(shè)備、可以賣設(shè)計,不都是錢嗎?還可以象我一樣,把經(jīng)驗總結(jié)出來,一起討論一下,可以交到朋友。他有活干的時候,自然也會叫上你。條條道路通羅馬,路就在腳下

4、你說的這些芯片上的標(biāo)號我看不懂,有什么意義?

答:這個問題問得很嚴(yán)謹(jǐn)。知道這些標(biāo)號就不會被奸商欺騙。以AT 89S51 為例,有很多不同的型號,如下表:

芯片編號

最高工作頻率

供電電壓范圍

封裝形式

芯片級別

AT89S51-24AC

24MHz

4.0V — 5.5V

44 腳 TQFP

商用(0 ~ 70 ℃)

AT89S51-24JC

24MHz

4.0V — 5.5V

44 腳 PLCC

商用(0 ~ 70 ℃)

AT89S51-24PC

24MHz

4.0V — 5.5V

40 腳 DIP

商用(0 ~ 70 ℃)

AT89S51-24PI

24MHz

4.0V — 5.5V

40 腳 DIP

工業(yè)級(0 ~ 85 ℃)




關(guān)鍵詞: 8051單片機(jī)常見問

評論


技術(shù)專區(qū)

關(guān)閉