|
本帖最后由 sfme1 于 2020-11-30 09:37 編輯
51單片機(jī)是基礎(chǔ)入門的一個單片機(jī),還是應(yīng)用最廣泛的一種。需要注意的是51系列的單片機(jī)一般不具備自編程能力。51更底層一些,但如果想玩機(jī)器人,智能車之類的就可以用arduino更方便些。不過現(xiàn)在的話51還算是主流點(diǎn)的,51和c語言學(xué)好了,還可以學(xué)習(xí)arduino和stm32這些更復(fù)雜的。
51單片機(jī)是對所有兼容Intel 8051指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是Intel的8004單片機(jī),后來隨著Flash rom技術(shù)的發(fā)展,8004單片機(jī)取得了長足的進(jìn)展,成為應(yīng)用最廣泛的8位單片機(jī)之一,其代表型號是ATMEL公司的AT89系列,它廣泛應(yīng)用于工業(yè)測控系統(tǒng)之中。
單片機(jī)是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的微型計算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域廣泛應(yīng)用。從上世紀(jì)80年代,由當(dāng)時的4位、8位單片機(jī),發(fā)展到現(xiàn)在的300M的高速單片機(jī)。
Arduino是單片機(jī)二次開發(fā)的產(chǎn)物。以做項目來說,普通單片機(jī)只是散件,硬件的設(shè)計和軟件設(shè)計都得你自己來。而且Arduino是半成品,你只要把相應(yīng)的模塊組合在一起,再寫一寫甚至直接復(fù)制別人程序就能行了。拿做電腦來比喻的話,你拿單片機(jī)做項目就像用電子元件先做出來顯示器、主板、內(nèi)存條、顯卡、硬盤等,再把它們組裝成一臺電腦。用Arduino做項目就像直接把別人做好的主板硬盤顯卡組裝成電腦。Arduino的好處就是開發(fā)簡單。但是也意味著很多地方都受到限制。
Arduino,是一塊基于開放bai源代碼的duUSB接口Simple i/o接口板(包括12通道zhi數(shù)字GPIO,4通道PWM輸出,6-8通道10bit ADC輸入通道)dao,并且具有專使用類似Java,C語言的IDE集成開發(fā)環(huán)境。
Arduino和51單片機(jī),基礎(chǔ)都是C言語,都需要懂得一些硬件知識,51單片機(jī)是單獨(dú)針對單片機(jī)的,arduino其實(shí)可以說包含單片機(jī)在內(nèi)及現(xiàn)在的物聯(lián)網(wǎng)通訊控制都可以做,像ESP8266wifi模塊,ESP32wifi藍(lán)牙模塊都直接可以用 arduino 來編寫。
51單片機(jī)和arduino兩者之間的區(qū)別:
1、Arduino用的是AVR單片機(jī),AVR單片機(jī)跟51單片機(jī)內(nèi)部結(jié)構(gòu)不同(寄存器多少和名稱都不一樣),編程工具燒寫bai軟件均不一樣。
2、Arduino編程將一些輸入輸出方法編成了子程序(庫函數(shù)),應(yīng)用更加方便。
3、Arduino在軟件開發(fā)反面考慮的更多的是功能的實(shí)現(xiàn),而單片機(jī)開發(fā)還需要考慮相應(yīng)的外圍電路,和底層軟件。
4、使用Arduino做項目,幾乎不用考慮硬件部分的設(shè)計,可以按需求選用Arduino的控制板、擴(kuò)展板等組成自己的需要的硬件系統(tǒng)。而使用單片機(jī)開發(fā)必須設(shè)計硬件,制作PCB板。
5、學(xué)習(xí)Arduino 單片機(jī)可以完全不需要了解其內(nèi)部硬件結(jié)構(gòu)和寄存器設(shè)置,僅僅知道它的端口作用即可;可以不懂硬件知識,只要會簡單的C語言,就可用Arduino 單片機(jī)編寫程序。使用單片機(jī)則需要了解單片機(jī)內(nèi)部硬件結(jié)構(gòu)和寄存器的設(shè)置,使用匯編語言或者C語言編寫底層硬件函數(shù)。
6、Arduino 的理念就是開源,軟硬件完全開放,技術(shù)上不做任何保留。針對周邊I/O設(shè)備的Arduino 編程,很多常用的I/O 設(shè)備都已經(jīng)帶有庫文件或者樣例程序,在此基礎(chǔ)上進(jìn)行簡單的修改,即可編寫出比較復(fù)雜的程序,完成功能多樣化的作品。而單片機(jī)的軟件開發(fā),需要軟件工程師編寫底層到應(yīng)用層的程序。沒有那么多現(xiàn)成的庫函數(shù)可以使用。
7、Arduino 由于開源,也就意味著從Arduino 相關(guān)網(wǎng)站、博客,論壇里得到大量的共享資源,在共享資訊的輔助下,通過資源整合,能夠加快您創(chuàng)作作品的速度及效率。
相對其他開發(fā)板,Arduino 及周邊產(chǎn)品相對質(zhì)廉價優(yōu),學(xué)習(xí)或創(chuàng)作成本低,重要一點(diǎn)是:燒錄代碼不需要燒錄器,直接用USB線就可以完成下載。跟多相關(guān)內(nèi)容請關(guān)注DF創(chuàng)客社區(qū)。
|
|