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