我覺得51比較好。因為51是比較標(biāo)準(zhǔn)的復(fù)雜指令單片機,通過學(xué)習(xí)51可以比較全面掌握單片機和通用CPU知識,達到觸類旁通的目的(Z80也不錯,可惜有些過時了,開發(fā)工具也很落后)。而PIC是一種精簡指令系統(tǒng),雖然機器碼好懂,但是局限性較大,就是說會過分偏重理解MicroChip的設(shè)計思想。其實全面掌握單片機技術(shù)較用精某一種芯片來得劃算(不要被某一個公司捆住思想)。
類似PIC的芯片很多,比如AVR、MSP430、Z8等,掌握51的結(jié)構(gòu)和指令系統(tǒng)之后理解這些單片機的原理就很容易。而反過來也許就要各個擊破。
還有一些理由:
就芯片而言:51單片機有非常低廉的價格和數(shù)不勝數(shù)的衍生芯片系列,這些產(chǎn)品從低速(1MPS)到高速(30MPS)幾乎涵蓋整個自控領(lǐng)域。新芯片價格從5元到數(shù)百元都有,當(dāng)然還有大量拆機片供應(yīng),很方便自學(xué)和自助實驗。
就開發(fā)工具而言:51有完全免費的C語言編譯器和實時任務(wù)系統(tǒng),當(dāng)然還有隨手可得的大量評估版(包括D版)世界頂級開發(fā)工具,比如:KEIL / Tasking / HITech / Resonance / Franklin(Resonance前身)。當(dāng)然在非盈利前提下領(lǐng)略這些大氣的開發(fā)環(huán)境無疑對培養(yǎng)系統(tǒng)化的思維方式和細(xì)致入微的洞察能力有較大的幫助。
就調(diào)試工具而言:51系列的仿真器是最便宜的,也是種類最多的。
就PIC系列而言:
單一芯片的用途比較有限,受機器自身容量限制較大,即通用性稍差。這也是MicroChip的產(chǎn)品線非常長的原因。當(dāng)然MicroChip的這一思想對商業(yè)運作十分有利,在成本/性能和量產(chǎn)方面與用戶的結(jié)合點很好。
還有PIC的指令系統(tǒng)有一定的缺陷,常用戶最有感覺,使人不得不陷入MicroChip的芯片選型迷宮,經(jīng)常在小問題上猶豫不決。
在國內(nèi):PIC的價格也是阻礙其大量應(yīng)用的致命原因,供貨種類不夠充足。
所以我覺得:
先學(xué)習(xí)通用單片機,就是51系列,然后結(jié)合具體應(yīng)用需求選擇學(xué)習(xí)其他常用單片機。做到靈活思考,靈活選擇。比如當(dāng)需要少量開關(guān)量資源時使用89C2051,需要簡單A/D資源時選擇PIC16F873,需要大量I/O時考慮89C52;需要低速時盡量考慮51系列,需要中速時考慮PIC系列,需要高速時考慮90S AVR系列,需要甚高速時返回來考慮51兼容的SOC系列。而需要低功耗時考慮MSP430系列。
順便說一句,大家常說的PIC16F74/84完全可以用89C2051替代,因為一般的設(shè)計方案中都留有速度余量,且這幾種芯片都沒有A/D,其基本結(jié)構(gòu)類似。而為了使用PIC就不得不使用純匯編(編譯器難尋),而用51系列就可以從容使用C代碼,還有RTOS的支持。
最后建議一下:就速度而言,PIC不是最好的,AVR系列做到了類單周期指令和流水線操作,在同一功耗下AVR比PIC快得多,而價格便宜得多(當(dāng)然比低檔51系列稍貴),AVR是一種值得注意的新機型。
盡管做項目時應(yīng)盡量使用C,但是為了用好C就必須先學(xué)習(xí)匯編,學(xué)完51系列規(guī)整的匯編體系后再領(lǐng)略各個小廠家自己的匯編環(huán)境真有游刃有余的感覺。我不得不佩服Intel在CPU技術(shù)方面的學(xué)識和規(guī)劃能力,不愧是計算機界的巨人