這是單片機初學者經常問的問題。對于這個問題,我想沒有人敢下定論。因為每一種單片機各有所長,都適用于其所能充分發(fā)揮作用的領域,不存在優(yōu)差之 分。學單片機應該先學51單片機,學會了51單片機再去學其他單片機,這是學習單片機過來人的同感,也是公認的學習方法。為什么要先學51單片機?因為 51單片發(fā)展最早,應用最廣泛,特別是I/O口的操作非常簡單,而且相關的學習資料最多、教材最成熟,學習起來得心應手,入門很快。有了這個基礎再去學習 其他單片機那就是小菜一碟了,只是對著芯片數據手冊設置寄存器罷了,快則一兩個星期,多則一個月就能掌握另一種單片機了。如果一開始就選擇非51單片機學 習,那將是“路漫漫其修遠兮,你將艱難而求索!”
那學51單片機用C語言還是匯編語言好?當然是C語言了。因為:1.C語言是高級語言,代碼移植性好,易于維護;2.編程靈活,隨心所欲;3.語言 層次分明,思路清晰,可讀性強。4. C語言是目前最流行的單片機編程語言,例程代碼多,便于參考,單片機技術發(fā)展之快,應用之廣,學習群體日益龐大,這和keil C51開發(fā)環(huán)境的問世是分不開的。5.C語言是大眾編程語言,是其他編程語言的基礎,學會了C語言,對于進一步深造的選擇就很自由了。匯編語言是早期單片 機學習使用的語言,優(yōu)點是執(zhí)行指令比C語言稍快外,其他方面筆者不敢恭維。
學會51單片機以后,就可以根據你從事的工作或者你的目標選擇以下一種或多種繼續(xù)深造。
1.AVR單片機-----速度快,一個時鐘周期執(zhí)行一條指令,而普通 的51單片機需要12個時鐘周期執(zhí)行一條指令。當然,Atmel公司出品的AT89LP系列單片機也是一個時鐘執(zhí)行一條指令,但目前還未普及。AVR單片 機比51單片機多了USB通信模塊、SPI通信模塊、I2C通信模塊、PWM模塊、AD轉換模塊等,但在C語言編程方面對I/O的操作比51麻煩得多。
2.PIC單片機------品種齊全,應用領域廣泛,片內資源也很豐 富,也是很受歡迎的單片機。比51單片機多SPI通信模塊、I2C通信模塊、PWM模塊、AD轉換模塊等片內資源。4個時鐘周期執(zhí)行一條指令,速度看似比 51單片機快,事實上并非如此,PIC單片機最高時鐘頻率一般為8MHZ,而51單片機最高時鐘頻率可達到33MHZ 。速度上PIC單片機并不占優(yōu)勢,而抗干擾能力則也比51單片機略強。C語言編程方面對I/O的操作要比51麻煩。
3.MSP430單片機-----16位單片機,速度快,一個時鐘周期執(zhí)行一條指令,超低電壓低功耗,適合用于電池供電設備。
4.Motorola單片機-----抗干擾能力極強,適用于惡劣環(huán)境,這是以降低速度為代價的。
5.DSP技術------用于音頻、視頻、通信等快速數字處理領域,速度超快,編程算法也比較復雜。
6.FPGA技術------難度和單片機差不多,應用領域逐漸廣泛。
7.嵌入式系統(tǒng)-----應用于非PC機控制以外的復雜的智能控制系統(tǒng),以及智能通信設備、掌上電腦、學習設備、娛樂設備等,應用領域也很廣泛。學習難度也較大,需要有操作系統(tǒng)、硬件、驅動原理等方面的知識。山寨版的手機、掌上電腦等滿街泛濫都是嵌入式系統(tǒng)發(fā)展惹的禍。
8.其他單片機,如德州儀器單片機,合泰單片機,NEC單片機等。
要說學哪一種單片機最有前途,筆者也不敢妄加斷言。不管選擇那一種,前途光明與否都由你的造詣深度來決定,精則興,不精則廢。