8051單片機(jī)的常見問題
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 ℃) |
評論