8051系列單片機是否過時了?
沒過時。首先,單片機/arm什麼的基本架構都差不多,學好一個其他觸類旁通。所以全國的大學基本都是教8051。另外,在應用上來講,8051甚至8031的可靠性和性價比還較強。雖然現在Cortex-M0/M3 之類的arm晶元價格都掉到十來元甚至更低。但我還見過有人堅持用8031的。就因為他內部結構相對簡單,簡單到連程序存儲器也沒有(8031需要外擴EEPROM才能用)。但從系統穩定性角度來講,一個系統越簡單,其出錯概率就越低(那人跟我舉了個例子:windows 容易死機,而DOS不容易,因為它內部簡單)。所以,簡單的老東西都被用於一些工業安全性穩定性要求較高的領域。
啊,不好意思,我大部分時間都在搞PLC,對單片機的了解僅限於在工業現場與其他廠家工作中的配合與交流。 就我所了解的來講,我相信以51為代表的一系列8位單片機在未來的幾年內仍然會被廣泛使用。
工業現場的惡劣環境註定了系統中的核心控制器件必須穩定可靠易維護維修,這正是PLC為代表的系列控制器的長項,因此現場控制系統的複雜控制邏輯大部分由PLC完成,而相對抗干擾較弱,維護維修比較複雜的單片機大部分用在儀器儀錶對信號進行簡單的處理然後輸出給其他控制器,很少有需要特別複雜的運算的情況。
工控設備器件選型的重要原則是:穩定可靠,應用成熟,器件所含有的功能和數應量略大於設計需求,就分配給它的任務而言,類似51的8位單片機的性能足矣,在滿足需求的情況下,越簡單就越便於維護和有利於安全。 同時,在學習方面,51單片機的資料和範例是最完整翔實的,對入門者來說學習單片機先學51這是個傳統,僅在這方面,51單片機也很難在短期內被拋棄或者遺忘。可以肯定的回答。現在沒有過時。
作為一個學生,主要從學習單片機的方面來分析,認識肯定不足,還請大神們指教。
先說說學校一個退休教授曾經給我們講過的例子,說16位單片機出來的時候,很多老師覺得8位單片機就要過時了,於是趕緊買16位開發板來學。結果這麼多年過去了,8位單片機也沒有過時,學校的教學還是以8位的8051系列單片機為主流。而且由於16位單片機價錢不如8位單片機,性能不如32位單片機,發展得並不好。
相對於32位單片機、16位單片機,8位單片機沒有過時因為8位單片機內部構造簡單,體積小,成本低廉,易於學習及編程,在一些較簡單的控制系統中應用很廣。
一般在控制領域、安防領域、消費類電子領域使用8位單片機,而在通訊領域、多媒體處理領域主要使用16位或32位單片機。從在市場的佔有率和銷售額來看,8位單片機仍然佔據首先。但從最近幾年的市場來看,8位單片機在銷售數量增加的同時,價格在大幅度的下滑。
相對於AVR單片機、PIC單片機等,51系列單片機沒有過時
應用方面:51 系列是應用最廣泛的單片機,由於產品硬體結構合理,指令系統規範,加之生產歷史「悠久」,有先入為主的優勢。世界有許多著名的晶元公司都購買了51 晶元的核心專利技 術,並在其基礎上進行性能上的擴充,使得晶元得到進一步的完善,形成了一個龐大的體系, 直到現在仍在不斷翻新,把單片機世界炒得沸沸揚揚。
學習方面:
對初學者來說,以51系列單片機作為入門單片機的學習晶元是比較好的。在互聯網上,51系列單片機的學習資料是最多的。而且大多數高校也是以51系列單片機作為單片機課程的學習晶元。作為8位單片機的實際行業標準,學好了51單片機,今後學習其他單片機就比較容易上手了。可以看到,在互聯網上,教授51系列單片機的著名老師,郭天祥郭天祥--《十天學會單片機和C語言編程》和杜洋杜洋工作室 DoYoung Studio,通常都使用STC單片機。STC單片機是宏晶公司推出的以8051為內核的單片機,比傳統單片機有速度快、在線編程、功能增強、價格便宜等優點,(但是可靠性不足)。
總的來說,因為易於編程和後期維護、價格便宜等特點,在一些處理任務不繁重的地方,51系列單片機仍然會發揮重要作用。因為資料較多,易於學習,51系列單片機也仍將會是入門單片機的基石。我覺得是過時了。
首先,「找最簡單的模型說明單片機的基本原理」這個思路是對的。所以樓主可以先看看《計算機組成原理》這本書但是,8051/31 這類單片機並不是最簡單的。雖然功能少,但是由於早期硬體工藝方面的考慮,還是有一些功能上和封裝介面上的妥協。比如定址模式,定時器的功能,不支持在線編程,外接晶振和複位電路等。通俗的講,就是「彆扭,不和諧」。
比較新一點的單片機如AVR等就和諧多了,很多東西可以直接猜出來(比如寄存器的安排)。題主可以看一看Atmel AVR的文檔,寫的還是比較漂亮的。不過單片機本質上還是一個市場導向的東西,最終產品里用量會很大,於是對價格很敏感,所以真正到了工作的時候還是有可能要用51。國內目前STC遍地開花就是成本的問題。STC的51架構就不稀得說了,但看看文檔的排版就知道了。我個人的意見是,8051體系架構混亂,增強型8051又混亂又複雜。初學者入門很容易被混亂的體系結構搞懵。入門強烈推薦AVR和LC1K,8086也還湊合,8051實在不知如何對得起經典的名聲,大概是因為出道早,經典的爛,搞懂8051再遇到系統的妥協和混亂設計不會過度驚訝。學習曲線略陡。
外設也是妥協成本的產物,比如8051准雙向口的概念講起來還不如AVR的全雙向口容易理解。為啥輸入要寫1這樣的問題跟freshman們就講了五分鐘。AVR的IO結構講了一分鐘就夠了。
當然,價格沒優勢,性能是傳統弱點。現在一塊多的M0大把的有,其他優秀的八位機也都層出不窮。好在不要授權費,不少特定用途的SoC如U盤主控還依舊使用它。不過現在開源處理器的崛起大概會讓8051最終消失。然而現有國內的老舊教材和8051可讓烙鐵都拿不穩的初學者相對好搞定的DIP40封裝大概還能給8051多續幾年。但是這註定是迴光返照和暮氣。我們終將看到這箇舊時代單片機代表架構的時代落幕。入門可以,但是一旦有自主選擇權了,不要猶豫,投入32位機的懷抱。搞產品有時候忌諱新生的技術,但是這不意味著不與時俱進,停留在一個平台會死的非常慘。這裡估計不會有人知道前幾年AVR單片機缺貨,大量小企業產品設計好了卻無法生產。另一方面,32位機越來越擠壓8位機的生存空間,能做到這一點就已經說明很多問題了。
我有殺牛大刀,請問殺雞要不要選小刀呢?一種架構會不會過時,主要是由市場決定的。在產品設計的時候,考慮最多的是性價比。低端市場51還有用武之地的。
是的,過時了。
但出於以下原因,仍然需要學習和使用:1,技術成熟、穩定、便宜、易用,所以低端電子設計還是用51(或改進版)比較好。2,作為單片機入門學習素材(就像學彙編很多事8086一樣),上手arm難度就比較大。其實作為一個專業工程師眼光看,無所謂過不過時,我們考慮的是功能、成本、性能能否滿足項目要求,高端低端都不過是工具罷了。我是直接學了stm8,我的大學老師就是一直玩51過來(他是個資深工程師——吃肉那種類型的),他說51好處是簡單,略便宜。壞處是太簡單,功能太弱。stm8因為量太大,價格現在很低,功能比51全很多。51的確已經被比下去了。而嫌棄stm8複雜的那些人,只能總結他們一個詞na?ve。所以你吃不到肉就是這個原因,複雜,玩透了你就是大頭。就是這麼現實。
我是搞汽車電子的,我們用的是飛思卡爾,不知道別的行業用的什麼。但是如果沒有8051基礎,直接上手飛思卡爾是很難的。
完全沒有過時啊....同是學生時代的我也早早遇到過這樣的一個問題,以至於後來看不起8位單片機的我後來竟然苦苦撿回來丟失的知識惡補一次。說說我自己的看法吧,
1.對於學習方面,8051系列單片機的入門的確很容易,但是精通卻是有很大的難度的。比如我來說,剛開始用C學會了用IO口點燈,然後全部功能用了一次就覺得不過如此。然而,隨著接觸多了,其實8051單片機不只是一塊單片機,而是8051內核。像我以前接觸過的Mstar系列視頻顯示晶元就是用8051內核寫成的,官方的固件代碼里看,我竟然看了近一個月啊。所以,如果你是一個學生,千萬別小看8051單片機。
2.對於外面的應用,8位單片機相信仍然是低端市場的主流,像我在大學期間從8051到AVR系列到STM32系列到ARM9系列,第一個打電話過來問我的公司是:你會用彙編寫PIC單片機嗎?我頓時汗顏,為此還是看了一個月的PIC單片機的彙編程序。從中也學到許多硬體的知識。包括我現在手頭上做的一些小項目,有的還是用STC(雖然口碑不好)單片機開發,特別是低端市場的成本控制上,能用彙編的不用C,能便宜的肯定不會貴的想法。8051單片機絕對不算過時。誰都知道殺雞不用牛刀的道理,就像樓上 @Dante Zhu所觀察的,一個紅綠燈,51就可以搞定的東西絕不會動大成本去用其它的。從性價比和性能角度來說,stm8和pic十分出色,已經勝過了51,但我當初投奔stm8時,被那個費解的庫與說明書戲弄了許久,記憶猶新
雖然51單片機的歷史有點久了,不過08年上大學的時候學的還是51 。 老師和我們說不先學51 就像你學物理卻不先學數學一樣。 是基礎呀。而且我的畢設構建一個停車場系統,也用的是51做核心控制 , 感覺足夠用了。
51結構相對簡單,我們學的第一個晶元就是51,還是比較容易上手的,之後學了稍複雜一點的pic單片機,然後現在在學ARM。不過從性能上來說,51並不弱,能夠完成絕大多數任務。
51單片機是不會過時的。1)簡單易學入門必備,如果不通過51對一些術語概念思想進行理解,學習其他高級的控制器會非常難接受。2)現在51基本上經常成為一個「標準「了,你去淘寶買晶元附贈的歷程一般來說都是51。
推薦閱讀:
※晶體管(三極體)中的基極電流究竟做了什麼?
※小米旗下的松果SoC未來如何與其他SoC廠商競爭?
※有源相控陣雷達的天線陣列為什麼要裝成板狀?
※電子科技大學到底是怎樣的一個學校?