本文主要是關(guān)于51單片機(jī)的相關(guān)介紹,并著重對(duì)51單片機(jī)原理及其作用進(jìn)行了詳盡的闡述。
51單片機(jī)
51單片機(jī)是對(duì)所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是Intel的8004單片機(jī),后來(lái)隨著Flash rom技術(shù)的發(fā)展,8004單片機(jī)取得了長(zhǎng)足的進(jìn)展,成為應(yīng)用最廣泛的8位單片機(jī)之一,其代表型號(hào)是ATMEL公司的AT89系列,它廣泛應(yīng)用于工業(yè)測(cè)控系統(tǒng)之中。很多公司都有51系列的兼容機(jī)型推出,今后很長(zhǎng)的一段時(shí)間內(nèi)將占有大量市場(chǎng)。51單片機(jī)是基礎(chǔ)入門的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。需要注意的是51系列的單片機(jī)一般不具備自編程能力。
功能
·8位CPU·4kbytes程序存儲(chǔ)器(ROM) (52為8K)
·128bytes的數(shù)據(jù)存儲(chǔ)器(RAM) (52有256bytes的RAM)
·32條I/O口線·111條指令,大部分為單字節(jié)指令
·21個(gè)專用寄存器
·2個(gè)可編程定時(shí)/計(jì)數(shù)器·5個(gè)中斷源,2個(gè)優(yōu)先級(jí)(52有6個(gè))
·一個(gè)全雙工串行通信口
·外部數(shù)據(jù)存儲(chǔ)器尋址空間為64kB
·外部程序存儲(chǔ)器尋址空間為64kB
·邏輯操作位尋址功能·雙列直插40PinDIP封裝
CPU:由運(yùn)算和控制邏輯組成,同時(shí)還包括中斷系統(tǒng)和部分外部特殊功能寄存器;
RAM:用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);
ROM:用以存放程序、一些原始數(shù)據(jù)和表格;
I/O口:四個(gè)8位并行I/O口,既可用作輸入,也可用作輸出
T/C:兩個(gè)定時(shí)/記數(shù)器,既可以工作在定時(shí)模式,也可以工作在記數(shù)模式;
五個(gè)中斷源的中斷控制系統(tǒng);
一個(gè)全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行通信;
片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最佳振蕩頻率為6M—12M。
電腦仿真
Proteus 自從有了單片機(jī)也就有了開發(fā)系統(tǒng),隨著單片機(jī)的發(fā)展開發(fā)系統(tǒng)也在不斷發(fā)展。 keil是一種先進(jìn)的單片機(jī)集成開發(fā)系統(tǒng)。它代表著匯編語(yǔ)言單片機(jī)開發(fā)系統(tǒng)的最新發(fā)展,首創(chuàng)多項(xiàng)便利技術(shù),將開發(fā)的編程/仿真/調(diào)試/寫入/加密等所有過(guò)程一氣呵成,中間不須任何編譯或匯編。
功能特性
1,可以仿真63K程序空間,接近64K 的16位地址空間;
2,可以仿真64Kxdata 空間,全部64K 的16位地址空間;
3,可以真實(shí)仿真全部32 條IO腳;
4,完全兼容keilC51 UV2 調(diào)試環(huán)境,可以通過(guò)UV2 環(huán)境進(jìn)行單步,斷點(diǎn), 全速等操作;
5,可以使用C51語(yǔ)言或者ASM匯編語(yǔ)言進(jìn)行調(diào)試 ;
6,可以非常方便地進(jìn)行所有變量觀察,包括鼠標(biāo)取值觀察,即鼠標(biāo)放在某 變量上就會(huì)立即顯示出它此的值;
7,可選 使用用戶晶振,支持0-40MHZ晶振頻率;
8,片上帶有768字節(jié)的xdata,您可以在仿真時(shí)選 使用他們,進(jìn)行xdata 的仿真;
9,可以仿真雙DPTR 指針;
10,可以仿真去除ALE 信號(hào)輸出。 ;
11,自適應(yīng)300-38400bps 的所有波特率通訊;
12,體積非常細(xì)小,非常方便插入到用戶板中。插入時(shí)緊貼用戶板,沒有連接電纜,這樣可以有效地減少運(yùn)行中的干擾,避免仿真時(shí)出現(xiàn)莫名其妙的故障;
13,仿真插針采用優(yōu)質(zhì)鍍金插針,可以有效地防止日久生銹,選擇優(yōu)質(zhì)園腳IC插座,保護(hù)仿真插針,同時(shí)不會(huì)損壞目標(biāo)板上的插座。 ;
14,仿真時(shí)監(jiān)控和用戶代碼分離,不可能產(chǎn)生不能仿真的軟故障;
15,RS-232接口不計(jì)成本采用MAX202集成電路,串行通訊穩(wěn)定可靠,絕非一般三極管的簡(jiǎn)易電路可比。
功能限制
仿真器占用單片機(jī)串口及定時(shí)器2,與Keil C(PC)通訊,故不支持串口及定時(shí)器2 的仿真功能。全速運(yùn)行時(shí)單片機(jī)串口及定時(shí)器2 可供用戶使用。
使用方法
1.將仿真器插入需仿真的用戶板的CPU插座中,仿真器由用戶板供電;
2.將仿真器的串行電纜和PC機(jī)接好,打開用戶板電源;
3.通過(guò)Keil C 的IDE 開發(fā)仿真環(huán)境UV2 下載用戶程序進(jìn)行仿真、調(diào)試。
硬件說(shuō)明
1、使用用戶板的晶振:仿真器晶振旁有兩組跳線用來(lái)切換內(nèi)部晶振和用戶板晶振,當(dāng)兩個(gè)短路塊位于仿真器晶振一側(cè)時(shí),默認(rèn)使用仿真板上的晶振(11.0592MHz), 當(dāng)兩個(gè)短路塊位于電容一側(cè)時(shí),使用用戶板的晶振。
2、為便于調(diào)試帶看門狗的用戶板,仿真器的復(fù)位端未與用戶板復(fù)位端相連;故仿真器的復(fù)位按鈕只復(fù)位仿真器,不復(fù)位用戶板;若要復(fù)位用戶板,請(qǐng)使用用戶板復(fù)位按鈕。
51單片機(jī)過(guò)時(shí)了嗎
到這個(gè)問題,相信大家很多人都在問,也有很多人想知道,還有很多人有自己的看法,今天我在這里發(fā)表一下自己的觀點(diǎn)。
現(xiàn)在在大學(xué)里,51單片機(jī)仍是電子類專業(yè)必修的課程,然而這幾年隨著ARM的火爆,很多51的學(xué)習(xí)者有了專業(yè)一個(gè)疑問:既然大家都在用ARM,我們?yōu)槭裁催€要學(xué)51?而且找工作的時(shí)候人家也比較關(guān)注有過(guò)ARM使用經(jīng)驗(yàn)的。
為了解決這個(gè)疑問,我們首先需要分清下面幾個(gè)概念:?jiǎn)纹瑱C(jī)、ARM、DSP、FPGA/CPLD,這幾個(gè)關(guān)鍵詞是學(xué)習(xí)電子的人常見的幾種芯片(我不知道該統(tǒng)稱什么,姑且這么叫吧)。這幾個(gè)詞要分類的話首先要把FPGA/CPLD和其他的分開,因?yàn)镕PGA/CPLD的原理和單片機(jī)、ARM、DSP不同。
FPGA/CPLD 是通過(guò)硬件實(shí)現(xiàn)功能的,F(xiàn)PGA是Field-Programmable Gate Array的縮寫,即現(xiàn)場(chǎng)可編程門陣列;CPLD是Complex Programmable Logic Device的縮寫,即復(fù)雜可編程邏輯器件。通過(guò)名字可以看出,二者都是可編程的邏輯器件,即實(shí)實(shí)在在的硬件,通過(guò)對(duì)硬件編程以實(shí)現(xiàn)某種特定功能。說(shuō)直白 一些,二者就是一個(gè)與非門或者或非門陣列。由于所有的邏輯式子都可以變換成與非結(jié)構(gòu)或者或非結(jié)構(gòu),因此所有的邏輯功能都可以通過(guò)FPGA/CPLD實(shí)現(xiàn), 編程后的芯片相當(dāng)于一個(gè)數(shù)字芯片,如加法器,移位寄存器等。二者的區(qū)別在于FPGA是基于RAM結(jié)構(gòu)的,CPLD是基于ROM機(jī)構(gòu)的,這些不是本次討論的 重點(diǎn),不再贅述。
再說(shuō)單片機(jī)和ARM及DSP的關(guān)系,單片機(jī)是“單片微型計(jì)算機(jī)”的簡(jiǎn)稱;ARM是Advanced RISC Machines的簡(jiǎn)稱,它只是一家微處理器設(shè)計(jì)企業(yè)的名字,因此ARM是他們?cè)O(shè)定的微處理器的統(tǒng)稱;DSP是Digital Signal Processing的簡(jiǎn)稱,即數(shù)字信號(hào)處理。了解了這些,我們可以說(shuō)單片機(jī)是所有所有MCU(微型控制單元)的統(tǒng)稱,ARM是DSP只是他們的一 種,ARM屬于用公司名稱的一種稱呼,而DSP則是根據(jù)功能(數(shù)字處理)命名的一種稱呼。但是,在行業(yè)內(nèi),單片機(jī)一般特指8位或16位的MCU,在本文中 仍采用大家熟悉的叫法,把單片機(jī)和ARM放在并列的位置。
了解了這些,我們還需要了解一個(gè)問題,什么是51單片機(jī)。這個(gè)問題本不想說(shuō),可是 看到有人說(shuō)51是AT89C51的簡(jiǎn)稱,所有覺得有必要提一下。1980年,Intel推出了首款單片機(jī)8051(這個(gè)8051有可能是公司內(nèi)部的設(shè)計(jì)編 號(hào),我沒有找到為什么叫這個(gè)),之后又陸續(xù)推出了與8051指令完全相同的8031、8032、8052等系列的單片機(jī),初步形成了MCS-51系列。 1984年,Intel出售了51核,此后,世界上出現(xiàn)了上千種51單片機(jī),如愛特梅爾、飛利浦,華邦,還有國(guó)內(nèi)的宏晶等。51單片機(jī)泛指所有兼容 8051指令的單片機(jī)。當(dāng)然,一些公司購(gòu)買51核后增加了一些功能或者寄存器等,增加的這些東西是不兼容的。于51單片機(jī)處于并列關(guān)系的有AVR系 列,PIC系列等,他們的區(qū)別在于雖然都屬于8位機(jī)(PIC系列的有16位的),但所使用的指令集不同,這也就是區(qū)別一個(gè)單片機(jī)系列的一種方法。
51 單片機(jī)過(guò)時(shí)了嗎?要了解怎么一個(gè)問題,首先得搞清楚51單片機(jī)在市場(chǎng)中的應(yīng)用情況以及將來(lái)的發(fā)展情況。眾所周知,自從ARM出現(xiàn)以來(lái),短短的幾年內(nèi)便出現(xiàn) 了ARM7、ARM9、M3、M4、A8、A9、A10等等多個(gè)系列,其性能也得到了飛速發(fā)展,以其高性能,低價(jià)格,低功耗等優(yōu)勢(shì)迅速占領(lǐng)了MCU的江 山,比起當(dāng)年的51有過(guò)之而無(wú)不及。作為32位機(jī),其性能是毋庸置疑的,即便是相同的時(shí)鐘速率,32位機(jī)的處理一些數(shù)據(jù)的速度也要快于8位機(jī),如一個(gè)32 位的加法運(yùn)算,8位機(jī)至少需要4個(gè)周期,而32位機(jī)只需要一個(gè)周期即可完成。ARM的優(yōu)勢(shì)在于較高的處理速度,還有豐富的外設(shè)資源,還有就是較大的數(shù)據(jù)和 程序存儲(chǔ)空間。相比之下,51單片機(jī)就沒有優(yōu)勢(shì)了嗎?當(dāng)然不是,51單片機(jī)的優(yōu)勢(shì)在于小巧的內(nèi)核,成熟的技術(shù)(其實(shí)現(xiàn)在ARM的技術(shù)也很成熟),還有就是 位操作。在相當(dāng)多的應(yīng)用場(chǎng)合,我們并不需要ARM如此強(qiáng)大的處理功能和速度,而是只需要簡(jiǎn)單的控制,51單片機(jī)已經(jīng)完全可以滿足實(shí)際的需求,這樣一 來(lái),ARM的優(yōu)勢(shì)便顯的不再重要,而51的位操作則是ARM達(dá)不到的,也許你會(huì)說(shuō)ARM同樣可以實(shí)現(xiàn)位操作,但如果你了解的比較深的話會(huì)發(fā)現(xiàn),ARM的位 操作是通過(guò)移位,與或等操作之后實(shí)現(xiàn)的,而51單片機(jī)則又位尋址空間,是真正的位操作。再一個(gè)就是價(jià)格,在價(jià)格上最便宜的ARM好像已經(jīng)降到了0.5美元 (可能是這個(gè)價(jià)格,記不清了),而最便宜的51可能是0.5RMB。但一些中檔的ARM則要比高端的51單片機(jī)便宜了。十幾或者幾十RMB的ARM的性能 是同價(jià)格的51單片機(jī)無(wú)法比擬的。此外,由于51內(nèi)核簡(jiǎn)單,一些高端的51增加的功能使得他們的51單片機(jī)操作起來(lái)變得異常復(fù)雜,而且不同廠家的操作完全 不同,這樣就增加是使用的難度。綜合看來(lái),在高端或者中端應(yīng)用方面,51單片機(jī)已經(jīng)沒有了任何優(yōu)勢(shì),其市場(chǎng)主要是一些老產(chǎn)品或者不想學(xué)新東西的老工程師在 支撐,其消亡也是必然的。然而在低端應(yīng)用方面,51仍然可以占有一席之地,除了操作和價(jià)格上的微弱優(yōu)勢(shì),其更大的優(yōu)勢(shì)在于學(xué)習(xí)簡(jiǎn)單。。
從學(xué)習(xí)角度來(lái)講,衡量是否學(xué)會(huì)一個(gè)MCU的標(biāo)準(zhǔn)應(yīng)該是你寫的程序你應(yīng)該知道他是怎么執(zhí)行的,應(yīng)該具體到某一個(gè)指令所涉及到的寄存器,看到一個(gè)指令之后腦子里應(yīng) 該是一串01運(yùn)算才行,而不是可以簡(jiǎn)單的應(yīng)用了。雖然現(xiàn)在很多公司推出的新產(chǎn)品都給出了固件庫(kù),可以使工程師更快的進(jìn)行編程使用。但是,這樣的結(jié)果是使更 多的硬件工程師變成純軟件工程師而已。你會(huì)對(duì)一個(gè)芯片編程,但你并不了解他。也許有人說(shuō),反正我能用了就行了,干嘛非要了解它呢。其實(shí)這樣想就錯(cuò)了,要想 真正的用好一個(gè)芯片。不了解他是不行的,甚至不深入全面的了解都是不行的,一些硬件上的簡(jiǎn)單改動(dòng)有可能使系統(tǒng)的性能發(fā)生很大的變化。因此要想設(shè)計(jì)一個(gè)比較 好的產(chǎn)品,必須對(duì)芯片本身有一個(gè)深入的了解。在這方面,51單片機(jī)由于內(nèi)核簡(jiǎn)單,很容易上手并容易深入了解。學(xué)習(xí)起來(lái)比較簡(jiǎn)單。熟練掌握了51,再學(xué)習(xí)其 他的芯片,如ARM也是很簡(jiǎn)單的,因?yàn)樗械?a target="_blank">微控制器的功能結(jié)構(gòu)框架都是一樣的,了解了一種之后再學(xué)習(xí)另一種很簡(jiǎn)單。相比復(fù)雜的ARM結(jié)構(gòu),51結(jié)構(gòu)就顯 的很簡(jiǎn)單了,甚至可以認(rèn)為,ARM是在51的結(jié)構(gòu)上增加的許多功能模塊構(gòu)成的,雖然二者的結(jié)構(gòu)并不真的相同。
前幾天在論壇里 看到有人呼吁,別學(xué)51了,改學(xué)ARM吧。我覺得這樣的人應(yīng)該屬于二者都沒有學(xué)好的人,二者的區(qū)別和聯(lián)系肯定不清楚才這樣喊的,同時(shí)有過(guò)51和ARM學(xué)習(xí) 經(jīng)驗(yàn)的人應(yīng)該知道,學(xué)精了51再學(xué)ARM所用的時(shí)間只不過(guò)是看一遍芯片手冊(cè)的時(shí)間(有些夸張),而直接以ARM作為MCU入門的話則要費(fèi)很大的勁。對(duì)于一 個(gè)從來(lái)沒有接觸過(guò)單片機(jī)的人來(lái)說(shuō),面對(duì)復(fù)雜的ARM手冊(cè)往往會(huì)感到無(wú)從下手??梢赃@樣比喻一下,學(xué)ARM是一口氣登上一座高山,而學(xué)51相當(dāng)于到了半山 腰。在半山腰上的風(fēng)景雖不及山頂,卻仍可有所作為。而再?gòu)陌肷窖母叨壬仙剑y度自然減小了。至于有人抱怨說(shuō)找工作的時(shí)候沒人要只會(huì)51的,我覺得應(yīng)該這 樣看這個(gè)問題,學(xué)51和學(xué)ARM并不存在沖突,了解了51只后當(dāng)然可以再學(xué)ARM。
我覺得,即便將來(lái)51的應(yīng)用沒落了,學(xué)習(xí)51仍是一種不錯(cuò)的入門手段,就行學(xué)計(jì)算機(jī)的一直在學(xué)X86一樣。我不反對(duì)直接選擇ARM入門,但卻反對(duì)那些不了解51就呼吁大家放棄51的人。作為電子產(chǎn)品的設(shè)計(jì)者,如何在種類繁多的MCU中選擇自己合適的一款才是最重要的。
雖然不可否認(rèn)51單片機(jī)越來(lái)越多的被高端產(chǎn)品,尤其是ARM所替代,但我仍覺得51單片機(jī)沒有過(guò)時(shí),學(xué)習(xí)51單片機(jī)也沒有過(guò)時(shí)!
51單片機(jī)可以做什么
51單片機(jī)作為學(xué)習(xí)單片機(jī)的過(guò)程中必須要經(jīng)過(guò)的一個(gè)過(guò)程來(lái)講是非常重要的,原因在于51單片機(jī)從內(nèi)部的硬件到軟件有一套完整的按位操作系統(tǒng),稱作位處理器,處理對(duì)象不是字或字節(jié)而是位。不但能對(duì)片內(nèi)某些特殊功能寄存器的某位進(jìn)行處理,如傳送、置位、清零、測(cè)試等,還能進(jìn)行位的邏輯運(yùn)算,其功能十分完備,使用起來(lái)得心應(yīng)手。
學(xué)會(huì)了51可以做什么下面我們來(lái)詳細(xì)的了解一下。
例如,工業(yè)控制領(lǐng)域方面,汽車行業(yè),單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。
通訊方面,51單片機(jī)在GPS、紅外、射頻等方面都有很廣泛的應(yīng)用。航海航空,盡管ARM逐步占有了主導(dǎo)地位,但是各個(gè)模塊的底層51單片機(jī)仍然再使用。
工業(yè)控制領(lǐng)域方面,很多設(shè)備的底層控制都是采用51單片機(jī)實(shí)現(xiàn)的。儀器儀表方面,51單片機(jī)由于成本低廉,所以很受該行業(yè)歡迎。汽車行業(yè),一輛汽車的控制MCU很多,51單片機(jī)也占有一席之地
其他各個(gè)方面,其實(shí)作為最早大量使用的單片機(jī)之一,51單片機(jī)在各行各業(yè)都沒有退出歷史舞臺(tái),仍然在發(fā)揮作用。
51單片機(jī)僅有一個(gè)累加器ACC,許多處理都要通過(guò)ACC來(lái)完成,因此就需要有寄存器來(lái)保存中間結(jié)果。
訪問外部數(shù)據(jù)存儲(chǔ)器,只能用間接尋址,可用@DPTR訪問全部64k(這里包括你擴(kuò)展的打印機(jī),顯示器,鍵盤等),對(duì)于一個(gè)區(qū)域,也可以用P2配合R0或R1完成訪問。
如果使用中斷,中斷中又使用比較多的寄存器,可以交換整個(gè)寄存器組,開機(jī)隱含為0組,可以換用1,2,3組。
簡(jiǎn)單的把51單片機(jī)的應(yīng)用以及其特性給大家簡(jiǎn)單的介紹了一下,希望能夠幫到大家,如果你需要單片機(jī)方面的資料可以看一下在先獲取資料的方法步驟,資料很適合大部分朋友學(xué)習(xí)還不錯(cuò)。
結(jié)語(yǔ)
關(guān)于51單片機(jī)的相關(guān)介紹就到這了,如有不足之處歡迎指正。
評(píng)論
查看更多