我說的51單片機已經(jīng)淘汰、速度慢、抗干擾差,是很多年使用51單片機得出來的經(jīng)驗,你用51單片機有多少年?我用51單片機20多年了,直到現(xiàn)在還在用。記得第一臺51仿真器是愛思G6D,DOS編程界面,那年頭用的電腦是486,第二臺51仿真器是臺灣中晶的Easypake,電腦用的是奔2,操作系統(tǒng)記得好像是win32。愛思G6D早就送人了,Easypake壞了。
這是我的第三臺51仿真器,金德通仿真器,直接可以在keil4里使用,非常方便,可惜keil5就不能用這個仿真器,但是keil4足夠我用了,這個仿真器是串口,只有買個串口板,筆記本才可以用這個仿真器,我最大的擔心就是這個仿真器萬一壞了,哪里去找這么好用的仿真器?這個仿真器用了十幾年了
這是我自制的AVR JTAG仿真器和ISP下載器,JTAG仿真器肯定沒有金德通好用,但是,總比沒有要好,可以單步執(zhí)行、斷點執(zhí)行、全速執(zhí)行程序,對程序查錯還是很有用處,AVR單片機的運行軟件我用的是AVR Studio 4,編程軟件用的是AVR Studio 5,AVR Studio 5不能用自制的JTAG仿真器,但是,編程環(huán)境非常好,可以無極縮放編程字體,可以折疊程序,可以加載我認為最好用的編程字體:YaHei.Consolas,keil4也有這些功能,我在AVR Studio 5編好程序,整個的復制到AVR Studio 4里運行,自我感覺很方便。總之,我編程對仿真器要求很高,對編程環(huán)境要求也很高,沒有仿真器或者編程環(huán)境太差,我寧愿不編程序,我遇到一些號稱連仿真器都不用就可以編程的人,我只能呵呵。
51單片機,對于我來說,實在是太熟了,匯編語言都用了五、六年,幾乎對每個寄存器、每種尋址方式,每一條匯編指令、每個中斷入口,清清楚楚,那時候我用匯編語言編程基本上都不用翻書。我這個不算牛,我的朋友看著51單片機的HEX文件,就能把匯編語言寫出來,據(jù)說有一次他在賣單片機的朋友店里玩,有個顧客帶著他的HEX文件軟盤,要求寫入單片機,我的朋友幫寫,打開HEX文件一看,發(fā)現(xiàn)程序不難,就看著HEX文件把匯編語言寫在紙上,遞給顧客看,這是不是你編的程序?那個顧客嚇的夠嗆。我現(xiàn)在用51單片機,就是先用51單片機把程序一個模塊一個模塊的用仿真器測試成功,然后移植到AVR單片機,再用JTAG仿真器仿真,我認為我這種方法效率很高,移植程序總比編程要簡單,也加快了我學AVR單片機的速度。
51單片機最大的軟肋就是復位電路,阻容式的復位電路抗干擾能力實在太差,我用IMP810L專用復位電路,基本解決了51單片機抗干擾,但是,仍然不行,AVR單片機ATMEGA8驅動一個30安培的繼電器,我用了一個功率很小的變壓器,繼電器吸合的時候,電壓從5V掉到3點幾伏,繼電器斷開電源恢復到5V,一秒鐘吸合斷開一次,幾個小時都沒有死機,這種情況下,51單片機早就死翹翹了,51單片機的第二個軟肋是IO口只有高低兩種電平,這對電路設計十分不利,比如驅動繼電器,只能用PNP三極管,而AVR單片機的IO端口有高阻態(tài),復位期間也是高阻態(tài),這對于驅動任何元器件都是非常方便,AVR單片機內部有RC振蕩器,對時間要求不高的場合可以不用晶體,內部還有復位電路、EEPROM、看門狗、AD轉換等等,51單片機12個晶振周期執(zhí)行一條指令,AVR一個晶振周期執(zhí)行一條指令,理論上AVR單片機比51單片機快10倍以上,AVR單片機沒有端口立即尋址指令,拖慢了端口速度,實際上AVR單片機比51單片機在使用相同晶體的情況下,至少快5倍以上,相同的電路,AVR單片機比51單片機外圍元件更少,成本也更低,AVR單片機完勝51單片機。實際情況是,我的很多朋友,自從用了AVR單片機就基本上不用51單片機了,用了STM32,AVR單片機也用的很少了。
51單片機是上個世紀80年代的產(chǎn)品了,最大優(yōu)點是寄存器簡單、規(guī)范、學習資料多,學起來比較容易,先把51單片機學會,再學其它單片機就容易很多,按照我的經(jīng)驗,不管花費多長時間,只要學會一種單片機,學第二種單片機半個月入門、一個月可以編程,學第三種單片機一個星期入門、半個月可以編程,學第四種、第五種、第n種單片機,三天入門、一個星期就可以編程了,達不到這個速度,說明你的單片機學的根本不精,說白了,任何一種單片機,只要把自己需要的寄存器搞懂,會操作這些寄存器,立馬就會編程,之后就是慢慢提高而已。任何一種單片機都有各自的特點,不同電路選擇不同的單片機,只會一種單片機的確是不行。
51單片機的缺點,上面也說過了,現(xiàn)在還用51單片機做產(chǎn)品,我也就只能呵呵了。我相信一些改進型的51單片機性能肯定會提高,但是,我已經(jīng)學會AVR單片機,不想學改進型的51單片機了,倒是有一個非常現(xiàn)實的問題,萬一哪天我的金德通仿真器壞了,我會用STC單片機做個51仿真器,看看在keil下是否好用,不好用還是要買一個好用點的51仿真器。