新聞中心

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

8051單片機(jī)的常見(jiàn)問(wèn)題

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

1、MCS8051是什么東西?

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

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

2、市面上有哪些常見(jiàn)的MCS8051兼容芯片?

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

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

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

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

3、AT89C51/AT89S51和基本MCS8051的相同點(diǎn)和不同點(diǎn)各是什么?

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

二、AT89C51/AT89S51的問(wèn)題

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

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

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

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

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

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

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

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

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

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

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

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

1、如何開(kāi)始我的第1個(gè)設(shè)計(jì)?

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

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

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

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

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

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

芯片編號(hào)

最高工作頻率

供電電壓范圍

封裝形式

芯片級(jí)別

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è)級(jí)(0 ~ 85 ℃)




評(píng)論


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

關(guān)閉