回覆列表
-
1 # 長風凌空
-
2 # 深空深處
不一定呀。嚴格來說不同架構cpu其實區別還是蠻大的,那對於初學者來說,實際上不管是51還是其他的arm avr pic或者其他的什麼型別微控制器都是陌生的,所以學誰都得從0開始,那大家的區別也就沒那麼大了。理論上來說,從哪種微控制器入門其實沒有多大關係。
從另外一方面來說不同微控制器之間除了差異,還有共通的地方,這也導致不管初學者從哪種微控制器入門,只要是真正掌握了,再去學習其他的微控制器,都會快的多。
所以從哪種微控制器入門不是很重要。之所以提微控制器就提51,實際上是因為相對於其他的微控制器型別來說,經典51微控制器的結構更簡單一些,入門可能更容易一些,對於初學者更容易掌握,所以經常把51作為入門的工具,但是隻要數位電路,C語言的基礎好一些,接受能力不是很差,入門直接學習哪種cpu都沒問題的
-
3 # 物聯網小生
如果是幾年前可能覺得必要,現在來說已經沒必要了。
現在學51大都是為了學習微控制器的基礎知識,比如什麼是記憶體,什麼是暫存器等,產品上相對來說51的優勢已經不是很大了,32位微控制器的價效比優勢已經很大了,尤其是幾款中國產微控制器的入場。
市面上微控制器有幾款開發板的資料還是挺全的,比如野火、正點原子等,書、影片、開發板都有,可以直接去學習這些,基礎理論知識還是模電、數電、微控制器原理、微機原理這些可以補充些,實際應用直接就可以學stm32,學會一款,理解一款,這樣再學其他的微控制器就融會貫通了。
51微控制器是一款已經出現很久的微控制器,它的出現可以說是劃時代的。同時期出現的其它微控制器都已經逐漸退出歷史的舞臺,而它卻依舊出現在某些專業的教材上。從這點來看,它依舊有其學習的意義。下面說說初學微控制器從51入門的好處。
151微控制器的學習資源非常多無論是16位的微控制器還是32位的微控制器,其它無論哪一款微控制器的資料都沒有51微控制器多。畢竟很多大學的教材中使用的微控制器就是51微控制器。一方面這樣的資料比較可靠出現錯誤的可能性要小的多。作為教材即便評價不好,但是硬貨還是有一些的。這裡就相當於由教育部給我們做了一個篩選。不敢保證學了51能幹出什麼石破天驚的事,但絕對不會白費時間和精力。
另一方面經過以往的各種比賽,基於這款微控制器做出的應用成果也是非常多的。比如每年的大學生電子設計大賽,把獲獎的設計資料研究學習,必定事半功倍。
251微控制器程式設計的兩種方式在51微控制器的教程裡,如果翻開某些資料就會發現同樣一個功能有C語言的程式碼和彙編的程式碼。說到這裡可能有工程師就會說, 在前幾年使用匯編程式設計的人還是挺多的,現在使用匯編的人已經很少了。這裡暫且不談彙編的高效優勢,只問一個問題:微控制器上電就能不能立即執行C語言程式碼。
第一種方式:彙編
上面問題的答案毫無疑問是否定的,即便是現在高階的STM32微控制器,開啟工程中可以看到一個Start.s檔案。這個彙編檔案做了兩件重要的工作:對硬體進行初始化,設定堆疊。但是很遺憾很少有資料會講STM32微控制器的彙編程式設計。
所以,學習微控制器的彙編開發,51是最適合實踐的微控制器,沒有之一。
結合彙編弄清楚一款51微控制器的工作模式,那麼所有使用8051核心的微控制器都將不在話下。有了51的基礎,再去看STM32微控制器的彙編程式碼就會有跡可循、輕車熟路。
第二種方式:C語言
C語言的可移植性非常好,即便是不一祥的底層硬體,底層驅動修改之後上層程式碼就能複用。比如正點原子的STM32F103上就移植了nes的遊戲模擬器。對於初學者而言,可以在不懂硬體的情況下完成程式的設計,一個典型的例子就是arduino。
由於C語言的這個特性,完全可以讓不懂模電和數電的小白把51微控制器工作起來。這非常有利於學習的繼續。這裡的學習不僅僅是基於微控制器的C語言,而是擴充套件到整個專案中的外圍模電、數電模組。
3微控制器學習的擴充套件
透過前面的論述可以得出,我們完全可以透過彙編程式碼結合datasheet把51核心弄懂、嚼碎;透過51微控制器學會C語言下的微控制器程式設計,直至擴充套件到整個專案中的數電、模電外圍電路。
C語言、核心、彙編準備好之後,那就有了向嵌入式出發的門票。