8051單片機(jī)的常見(jiàn)問(wèn)題
1、MCS8051是什么東西?
本文引用地址:http://www.ex-cimer.com/article/201611/316241.htm答:最開(kāi)始,MCS8051是指INTEL公司出品的MCS51系列的單片機(jī)芯片,由于后來(lái)很多廠(chǎng)家的8051其指令集兼容INTEL公司的,所以,MCS8051又指8051基本指令集。
2、市面上有哪些常見(jiàn)的MCS8051兼容芯片?
答:INTEL的MCS8051內(nèi)核轉(zhuǎn)讓過(guò)很多廠(chǎng)家。目前用的比較多的,最常見(jiàn)的廠(chǎng)家有:
(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下載線(xiàn)就能在單片機(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)各是什么?
答:在A(yíng)TMEL公司出的手冊(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下載線(xiàn)+國(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在這方面與其兼容。在A(yíng)TMEL手冊(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)狗。看門(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)鍵在于你要觀(guān)查周?chē)说男枰?,善于觀(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)得很?chē)?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)論