51單片機自研發出來以后,受到了廣泛的應用,對于當今社會51單片機是屬于一個基礎型的入門單片機,也是應用范圍最廣的一類,它的優勢在于在一些低端的應用上面是完全可以勝任的,而價格底、操作簡單也是優勢所在,學習起來也是相對更簡單一些。
眾所周知,自從ARM出現以來,短短的幾年內便出現 了ARM7、ARM9、M3、M4、A8、A9、A10等等多個系列,其性能也得到了飛速發展,以其高性能,低價格,低功耗等優勢迅速占領了MCU的江 山,比起當年的51有過之而無不及。作為32位機,其性能是毋庸置疑的,即便是相同的時鐘速率,32位機的處理一些數據的速度也要快于8位機,如一個32 位的加法運算,8位機至少需要4個周期,而32位機只需要一個周期即可完成。ARM的優勢在于較高的處理速度,還有豐富的外設資源,還有就是較大的數據和 程序存儲空間。
相比之下,51單片機就沒有優勢了嗎?當然不是,51單片機的優勢在于小巧的內核,成熟的技術(其實現在ARM的技術也很成熟),還有就是 位操作。在相當多的應用場合,我們并不需要ARM如此強大的處理功能和速度,而是只需要簡單的控制,51單片機已經完全可以滿足實際的需求,這樣一 來,ARM的優勢便顯的不再重要,而51的位操作則是ARM達不到的,也許你會說ARM同樣可以實現位操作,但如果你了解的比較深的話會發現,ARM的位操作是通過移位,與或等操作之后實現的,而51單片機則又位尋址空間,是真正的位操作。再一個就是價格,在價格上最便宜的ARM好像已經降到了0.5美元 (可能是這個價格,記不清了),而最便宜的51可能是0.5RMB。但一些中檔的ARM則要比高端的51單片機便宜了。十幾或者幾十RMB的ARM的性能 是同價格的51單片機無法比擬的。
此外,由于51內核簡單,一些高端的51增加的功能使得他們的51單片機操作起來變得異常復雜,而且不同廠家的操作完全不同,這樣就增加是使用的難度。綜合看來,在高端或者中端應用方面,51單片機已經沒有了任何優勢,其市場主要是一些老產品或者不想學新東西的老工程師在 支撐,其消亡也是必然的。然而在低端應用方面,51仍然可以占有一席之地,除了操作和價格上的微弱優勢,其更大的優勢在于學習簡單。
前幾天在論壇里 看到有人呼吁,別學51了,改學ARM吧。我覺得這樣的人應該屬于二者都沒有學好的人,二者的區別和聯系肯定不清楚才這樣喊的,同時有過51和ARM學習 經驗的人應該知道,學精了51再學ARM所用的時間只不過是看一遍芯片手冊的時間(有些夸張),而直接以ARM作為MCU入門的話則要費很大的勁。對于一 個從來沒有接觸過單片機的人來說,面對復雜的ARM手冊往往會感到無從下手。可以這樣比喻一下,學ARM是一口氣登上一座高山,而學51相當于到了半山腰。在半山腰上的風景雖不及山頂,卻仍可有所作為。而再從半山腰的高度上山,難度自然減小了。至于有人抱怨說找工作的時候沒人要只會51的,我覺得應該這樣看這個問題,學51和學ARM并不存在沖突,了解了51之后當然可以再學ARM。