十幾年前w大家都在學習51單片機,這麼多年過去了,現在應該選擇什麼樣的單片機學習呢?


我認為還是合適,雖然有說Arduino已納入國外某高校課程,但是否為EE專業準備尚不清楚。

恰恰是因為十年前大家都在學,發展到今日的51有非常多的教程和資源,以及很多熟悉51的工程師。

51合適入門,一是相對簡單,二是學習資源豐富。這是作為入門,我最看中的兩點,而arduino更簡單,資源同樣非常豐富,但是其高度封裝的庫,卻也是一個阻礙新人了解原理的屏障。

有人會告訴你:現在市面上已經不用51了。的確,用51的公司或產品是少之又少,連宏晶公司都不再推薦,但是,實際用不到,不說明不可以作為初學者入門。總是有人抱有非常樸素的是非觀,認為用不上,就沒必要學。

不過,51隻能作為入門,而不能作為終點,畢業前還是最好對STM32或其他相對高級的單片機有一定的理解和實踐,這樣才具備更大的競爭力。


這個問題可能和學習編程的第一選擇是什麼類似。

1.類比一下:彙編語言C語言一直以來都是學校教授學生的首選編程語言(彙編更早一些),但是我們聽到更多的往往是Python、C++;C#;Java。其實先學習哪門語言都可以,但是實踐證明學習彙編C語言之後再去接觸現在更為流行的語言可以更快的上手,更好的理解並運用它們。

2.初學選擇什麼單片機:51一直以來都是首選,但現在STM32、樹莓派玩的人更多,且可玩性也更大,也是初學者一個不錯的選擇。主要還是看題主是的目的是什麼?單純學習嵌入式開發,那51單片機首選(價格低,學習資料齊全,一搜一大把);實現項目中的某個問題,那選擇學習STM32這些目前實際應用更多的單片機則更為合適。

3.總結:以學習嵌入式開發為目的,則首選51單片機;想快速學習後,拿到實際項目中去應用為目的,首選STM32、樹莓派等開發板。


具體看看你學習的目的,你想今後玩的深入點,以後搞搞嵌入式,對底層有更深認知的,從51開始挺不錯;

你要是想馬上就應用的,建議stm32開始;現在產品用stm32也多。

現在8位的市場佔有率還是不低的,不過未來肯定慢慢向32位靠齊了。

我是51玩了一下,因為要用低功耗,所以直接上msp430了,其實原理都差不多,關鍵是演算法。

我會比較傾向從51開始,資料多,也夠基礎,都要自己去試去深入理解,對今後有幫助。


無所謂,我就是大2開始做arduino的,開始並不會單片機,同時學校開展的課程是數電模電,大三下才學的51單片機,其實沒有什麼區別,要看本質,都是單片機,arduino確實封裝了很多東西,會讓人產生依賴性。但是當你深入學習單片機後,你就可以看到單片機的全貌,對於不從事這方面工作的人,就更沒有意義了,學個arduino玩玩就行了 。主要看你是否想從事這方面,畢竟如果工作,單51 32加arduino可是不夠用的偶


我覺得還是比較適合的,相對於STM32,51單片機你可能不用關心引腳的一些模式配置,51引腳的配置非常簡單,你只需要關係我什麼時候拉高什麼時候拉低,不用關心什麼時鐘樹、什麼速率、什麼推挽、開漏等模式。你只要關心,我的用戶層的邏輯,所以,C語言功底才是最最關鍵的,只有學好C語言,你才能遊刃有餘的學習開發板。其次,最好的學習單片機的方法是不斷地做小項目,從最基礎的點亮一個LED燈,再到最經典的顯示「Hello World」,再到後面的利用中斷、定時器等配上感測器實現各種各樣的功能,這些都是通過一個一個小項目來不斷積累的,多買些感測器回來玩玩,淘寶上有很多賣感測器的店鋪,多找找,一次買幾個,回來玩玩,慢慢的,你就牛逼了。

這裡給大家提供一個小的學習網站,裡面有很多小項目,照著別人做,嘗試一下。

網頁鏈接:

畢設狗-畢業設計指導、下載,為大學生打造一個完整的畢設資料圈?

www.bsdog.cn?aff=q970y4圖標

資料詳情:


對於初學者,51單片機是比較適合的。

首先51相對簡單,容易上手,但麻雀雖小 五臟俱全,51單片機玩幾輪下來,嵌入式軟體開發的流程基本上都熟悉了。


51單片機作為入門級別,目前對初學者來說還是首選,原因有三:一是內部硬體結構簡單,容易入門;二是有大量成熟常式供初學者實踐;三是市面上有大量的價廉物優的開發板供選擇。


學單片機可以


入門不學51學什麼呢?有什麼晶元學習資料比他多,而且價格比他親民的嗎?


不適合,不適合,不適合。

都什麼年代了,小學生都用python開發了,樹莓派搞起,python 搞起。真的對硬體交互感興趣,再考慮STM32,51放棄吧。


我認為現在最適合入門的是RISC-V。

根本原因就兩個:指令足夠簡單,應用廣泛。現在RISC-V的教程也不少了,開發板也很容易買到。


不是。純小白剛入門單片機不建議51,因為它編程直接是c語言或彙編語言,硬體知識也偏專業,整體的學習周期比較長。義大利教授和他的學生就解決了這個問題,把c語言包裝一遍專門給單片機用,把需要的電路硬體套標準化,模塊化。

Arduino系列的編程語言:是包裝過的c語言,整套表達會很淺顯易懂,比如,digitalwrite(13,HIGH),可以一眼看明白,是把數字(digital)引腳13寫成高電平,而這就可以點亮led了。相比51單片機直接對多個寄存器位操作的寫法更容易看懂、容易模仿和活用。也用不到指針、用不到16進位書寫。也就是Arduino社區把小白能用到的功能基本都做成了函數庫,使用究極簡單。

Arduino系列的IDE:對小白很友好、配置簡單、支持和Arduino單片機通信調試,串口監視。

Arduino系列的移植性:家族龐大,滿足小白基礎到進階的多種需要,家族成員間程序的移植性極好。

一些板子的引腳和功能排布是一樣的,之前用arduino maga板子的程序直接上傳到arduino Due板子上,無需任何修改直接用。

綜上,arduino很適合小白入門,因為簡簡單單就能體驗到單片機的樂趣。而興趣是最好的老師


還是很適合的


@魏cnz 偷偷反對一下這位博主,我最近也在學學arduino(主要是因為esp系列),很多東西一頭霧水,因為那些庫函數都給封裝好了,直接調用,這不適合一名工程師去學習。

本人也玩過51單片機,十款stm32,imx6ull,s5p6818,raspberry pi4b,tms320f28335,zynq7020,按理說接觸過這些,學arduino應該很容易上手,但是總覺得學的雲里霧裡,差點意思,不知甚解。

有一點點基礎的人都學懵了,新人這樣學可能難以理解函數的真實作用,玩玩可以,當工程師還是51或者32


推薦閱讀:
相关文章