標題: 51單片機和arduino哪個好?怎么選? [打印本頁]

作者: sfme1    時間: 2020-11-27 11:08
標題: 51單片機和arduino哪個好?怎么選?
很多剛?cè)腴T的電子愛好者剛開始學習的時候都會遇到一個問題,那就是單片機和arduino要如何選擇的問題?51單片機和arduino究竟學習哪個好?今天我們就來詳細的聊聊兩者的優(yōu)缺點和選擇的問題。



有部分朋友支持先學51單片機,理由是51單片機涉及的東西比較多,比如模電,數(shù)電,c等。如果沒有C基礎,底層的東西不學習,原理不清楚那么學習其他的也走不遠,畢竟覺得大家學這個不是為了會玩,而是為了以后的工作著想。
有部分朋友支持學習arduino,理由是arduino不止是一塊板子,而是包括編譯器在內(nèi)的系列產(chǎn)品。如果先學51單片機,做一個產(chǎn)品時間超長,而且大部分初學者剛開始很有熱情,但經(jīng)過一些困難后到最后很多都會放棄。在學51時,如果沒學完,但又急著想做東西出來用,這時候arduino可以解決的,就可以用arduino來做,又快而且不耽誤學習時間。


51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是51系列的單片機一般不具備自編程能力,一般廣泛應用于工業(yè)測控系統(tǒng)之中。
Arduino是一款便捷靈活、方便上手的開源電子原型平臺,包含硬件(各種型號的Arduino板)和軟件(Arduino IDE)。它適用于愛好者、藝術家、設計師和對于"互動"有興趣的朋友們。


51單片機和arduino哪個好?

51更底層一些,但如果想玩機器人,智能車之類的就可以用arduino更方便些。不過現(xiàn)在的話51還算是主流點的,51和c語言是基礎,在此基礎上即可學習arduino也可選擇學習stm32這些復雜一些的。
arduino和51單片機,基礎都是C言語,都需要懂得一些硬件知識,51單片機是單獨針對單片機的,arduino其實可以說包含單片機在內(nèi)及現(xiàn)在的物聯(lián)網(wǎng)通訊控制都可以做,像ESP8266wifi模塊,ESP32wifi藍牙模塊都直接可以用 arduino 來編寫。
arduino更加基礎一些,ar的標準是面對中學生的,編程較為簡單,51則比較繁瑣,但51的面向范圍更廣。如果您是一名新手小白,推薦先學51,回頭再學ar的話就比較容易入手了,不管先學哪兒個,建議都先買本C語言從入門到精通看看,單片機推薦51單片機C語言教程,有教學視頻講的比較細致,ar的話推薦arduino權(quán)威指南,可以先在DFRobot商城買一套循跡或藍牙小車的模塊,再嘗試自己開板。
如果想要快速的做一個小項目的話,而且還不會MCU就用Arduino,如果想好好學習一下MCU的話就先學學51吧。


arduino與51單片機比的優(yōu)點

Arduino比51更先進一些,編程變得簡單更人性化和直觀,沒有單片機基礎的人也能很快上手。
Arduino是一款便捷靈活、方便上手的開源電子原型平臺,包含硬件(各種型號的Arduino板)和軟件(Arduino IDE)。它適用于愛好者、藝術家、設計師和對于"互動"有興趣的朋友們。
Arduino的核心開發(fā)團隊成員包括:Massimo Banzi,David Cuartielles,Tom Igoe,Gianluca Martino,David Mellis和Nicholas Zambetti。
Arduino是一個基于開放原始碼的軟硬件平臺,構(gòu)建于開放原始碼simple I/O介面版,并且具有使用類似Java、C語言的Processing/Wiring開發(fā)環(huán)境。
Arduino包含兩個主要的部分:硬件部分是可以用來做電路連接的Arduino電路板;另外一個則是Arduino IDE,你的計算機中的程序開發(fā)環(huán)境。你只要在IDE中編寫程序代碼,將程序上傳到Arduino電路板后,程序便會告訴Arduino電路板要做些什么了。
Arduino能通過各種各樣的傳感器來感知環(huán)境,通過控制燈光、馬達和其他的裝置來反饋、影響環(huán)境。板子上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進制文件,燒錄進微控制器。對Arduino的編程是利用 Arduino編程語言 (基于 Wiring)和Arduino開發(fā)環(huán)境(基于 Processing)來實現(xiàn)的;贏rduino的項目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運行的軟件,他們之間進行通信 (比如 Flash, Processing, MaxMSP)來實現(xiàn)。

arduino51單片機比區(qū)別
1、arduino用的是AVR單片機,AVR單片機跟51單片機內(nèi)部結(jié)構(gòu)不同(寄存器多少和名稱都 不一樣),編程工具燒寫bai軟件均不一樣。
2、arduino編程將一些輸入輸出方法編成了子程序(庫函數(shù)),應用更加方便。
3、arduino在軟件開發(fā)反面考慮的更多的是功能的實現(xiàn),而單片機開發(fā)還需要考慮相應的外圍電路,和底層軟件。

通過以上詳細介紹很多朋友應該知道51單片機和arduino的優(yōu)缺點了吧,建議根據(jù)自己不同的實際需求來選擇學習,一切從實際出發(fā)。
此文內(nèi)容來源于DF創(chuàng)客社區(qū)Arduino論壇


作者: sjzmayi    時間: 2021-1-2 12:43
可以考慮學習arduino
作者: sjzmayi    時間: 2021-2-13 22:39
我是先學的51,airduino底層通信不如51清晰
作者: 繞指的柔    時間: 2021-2-15 10:55
可以先學習51
作者: a894304337    時間: 2021-2-21 14:20
考慮學習arduino
作者: pyq208    時間: 2021-2-28 14:06
arduino好
作者: 584051429    時間: 2021-3-3 11:28
沒有電子和編程基礎的arduino好一點,51學習就更做菜一樣,從買菜,摘菜,洗菜,炒菜都需要自己親力親為,而arduino則是直接從炒菜開始,只要把基本函數(shù)和相關傳感器的庫了解了,就能做出來想做的小設備。
作者: singrain    時間: 2021-4-12 11:36


感覺還是STM32功能更強大一些,開始想學32,論壇很多人建議先學51,51還沒學明白又感覺arduino有很多圖形化編程軟件,于是又想學arduino。
來這快2年了,還是沒想好學什么。

作者: farname    時間: 2021-4-22 16:19
arduino吧,感覺可以快速入門
作者: woshishui22    時間: 2021-5-12 10:51
直接上stm32的單片機是不是更好
作者: npn    時間: 2021-5-12 12:43
51、stm、arduino 、windows的C語言除了寄存器名稱、頭文件、中斷不一樣。
其他什么四則運算、數(shù)據(jù)類型、指針數(shù)組、循環(huán)語句、聯(lián)合結(jié)構(gòu)體基本都一樣。
stc的51是國產(chǎn)的,100%中文資料,建議你學這個。
作者: myemcu    時間: 2021-5-12 13:26
如果要在這行吃飯就51,如果心血來潮就Arduino.
作者: 已飛的鷹    時間: 2021-5-21 17:48
51是基礎,其他可以觸類旁通。。。
作者: singrain    時間: 2021-6-8 00:09
板子都買的有,一直糾結(jié)學什么。












IMG_20210510_101103.jpg (326.02 KB, 下載次數(shù): 137)

IMG_20210510_101103.jpg

IMG_20210510_101103.jpg (326.02 KB, 下載次數(shù): 138)

IMG_20210510_101103.jpg

作者: whbt51h    時間: 2021-7-10 11:04
singrain 發(fā)表于 2021-6-8 00:09
板子都買的有,一直糾結(jié)學什么。

可以開店了。
作者: 沖沖沖呀呀呀    時間: 2021-7-16 19:55
singrain 發(fā)表于 2021-6-8 00:09
板子都買的有,一直糾結(jié)學什么。

確實可以開店了老哥哈哈哈哈哈哈
作者: zzx157670    時間: 2021-7-17 10:25
我當初是51學好了,后面學arduino很快就上手了
作者: tanjia29    時間: 2021-7-17 15:07
對于小白的我,學習arduino比較容易入門一些,不用去學繁雜的代碼
作者: copower    時間: 2021-7-18 15:23
arduino的編譯器支持C++,C51和SDCC貌似不支持C++。如果樓主不想了解學習C++則選哪個都無所謂,如果樓主對C++感興趣推薦學習Arduino。arduino的庫函數(shù)都是開源的。通過閱讀理解庫函數(shù)來學習。
作者: copower    時間: 2021-7-18 15:25
tanjia29 發(fā)表于 2021-7-17 15:07
對于小白的我,學習arduino比較容易入門一些,不用去學繁雜的代碼

arduino大量庫函數(shù)使用C++寫的,并不比51簡單,而且arduino用的AVR芯片架構(gòu)也不比51簡單。只是看你是學arduino還是用arduino了。這是兩回事。學arduino的人完全可以看懂并擴展庫函數(shù)。用arduino的人只是會用而已。遇到庫函數(shù)問題自己都解決不了。
作者: wwh2382    時間: 2021-7-28 08:36
主要看你學了以后做什么。如果只是玩玩,想速成,選Arduino。如果想最終產(chǎn)品化,51具有絕對優(yōu)勢。
作者: myemcu    時間: 2021-7-28 09:48
學啥都行,關鍵看工作需要。
作者: jianwuboss    時間: 2021-8-5 08:22
我是先學51再A的,個人覺得A的入門更簡單,好操作,適合培養(yǎng)興趣與基本知識,再學51更容易
作者: 2544155047    時間: 2021-8-22 10:06
arduino他的兼容性剛好一點吧
作者: 1588848    時間: 2021-8-24 21:15
singrain 發(fā)表于 2021-6-8 00:09
板子都買的有,一直糾結(jié)學什么。

都學一遍吧,其實沒有多難,我就是從smt8直接開始的,c語言基礎還是要的
作者: fbn20050523    時間: 2021-8-25 18:04
arduino底層是avr增強型mega系列。相同主頻下avr的指令系統(tǒng)比51速度更快。arduino平臺生態(tài)好。調(diào)試,庫文件比較多。許多芯片都開始向arduino平臺兼容。ino平臺玩明白了,再用atmel studio開發(fā)裸機深入了解底層
作者: alexzhou88    時間: 2021-9-4 16:41
我覺得兩個都差不多。
作者: dzc3458    時間: 2021-10-23 17:14
學了一年C語言,看了半年c51,玩了幾個月c51單片機,現(xiàn)在想做esp8266物聯(lián)網(wǎng),才來學arduino的,看了幾個例程,感覺和C51單片機編寫的方式差的不大,但是很多單片機需要幾行十幾行的代碼都被封裝到庫函數(shù)里了,直接一兩行調(diào)用就行了
作者: taotie    時間: 2021-10-23 20:18
呵呵~~一個仿真軟件通吃
作者: 了凡命館    時間: 2021-11-1 08:58
可以先從玩具arduino學起,比較簡單。達到能做一般小項目就可以了。不過ardu實在呵呵了,對腦子有余力的實在太low了
如果還有進一步學習的想法,那就學51吧,51是單片機學習的基礎

如果51基本學通了,可以學32了。也可以不學。51會了,基本夠用了。32就是單片機功能更強大一些,可以方便驅(qū)動攝像頭之類的高端外設。有余力可以學
作者: 674625123    時間: 2021-11-22 16:54
copower 發(fā)表于 2021-7-18 15:25
arduino大量庫函數(shù)使用C++寫的,并不比51簡單,而且arduino用的AVR芯片架構(gòu)也不比51簡單。只是看你是學ar ...

也是,害
作者: Wzen    時間: 2022-9-5 20:50
singrain 發(fā)表于 2021-4-12 11:36
感覺還是STM32功能更強大一些,開始想學32,論壇很多人建議先學51,51還沒學明白又感覺arduino有很多圖 ...

搞嵌入式的話,建議學51入門,51學的差不多了?梢詫W一下51的升級版STC12系列的單片機,編程方式類似51處理速度和功能基本上和32差不多。也可以直接學習32。有了51的基礎可以更好理解32單片機的邏輯。
作者: LAOBA道德的熱情    時間: 2022-10-4 10:27
singrain 發(fā)表于 2021-6-8 00:09
板子都買的有,一直糾結(jié)學什么。

應該是先從arduino開始,因為arduino封裝的還不錯,不需要太累就能搞好一個小項目,且相關資料,書籍較為全面,碎片化的少,但是單個開發(fā)板太貴了;之后再是C51,因為C51對于arduino來說比較進階,需要了解一些端口和串口的知識,并且需要寫的代碼比arduino來說就多了很多,之前封裝的東西就需要自己重新做。最后再是STM32,因為STM32就基本上不是學習性質(zhì)的了,是真正的要去做開發(fā)了,做商品了。
作者: 3333kkkk    時間: 2023-1-8 11:44
兩個其實差不多的

作者: suncat0504    時間: 2023-1-9 15:36
我學習Arduino,是為了測試LCD、電子模塊、傳感器用的。二用于開發(fā)的時候,還是使用51或者Arm32位的開發(fā)板。
作者: UK4257    時間: 2023-1-17 15:52
3333kkkk 發(fā)表于 2023-1-8 11:44
兩個其實差不多的

arduino方便開發(fā),體積可以做的很小
作者: 小楓的小七    時間: 2023-1-18 18:11
個人覺得 還是先玩arduino比較好 再買個面包板 和杜邦線 二極管  先做個東西出來  如果有興趣的話可以再繼續(xù)購買喜歡的傳感器模塊  玩好后再開始玩51 或32比較合適 不然容易勸退
作者: 小楓的小七    時間: 2023-1-18 18:11
個人覺得 還是先玩arduino比較好 再買個面包板 和杜邦線 二極管  先做個東西出來  如果有興趣的話可以再繼續(xù)購買喜歡的傳感器模塊  玩好后再開始玩51 或32比較合適 不然容易勸退
作者: tangqida    時間: 2023-1-26 14:00
個人覺得 還是先玩arduino比較好 再買個面包板 和杜邦線 二極管  先做個東西出來  如果有興趣的話可以再繼續(xù)買喜歡的傳感器模塊  玩好后再開始玩51單片機
作者: YLMF    時間: 2023-2-16 18:23
兩個設備都有,現(xiàn)在正在學arduino
作者: YLMF    時間: 2023-2-16 18:24
arduino體積小,更方便




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1