第六章:51單片機實驗板原理與功能簡介
現在市面上單片機實驗板種類繁多,有的非常簡陋,有的相對高級,價格與外圍器件擴展的程度正相關。我設計的這一款實驗板個人認為不算簡陋但也稱不上高級,和網上的各種普及型實驗板都差不多,市售價格在100元左右,非常適合初學者使用。能夠把這款實驗板的所有功能都開發(fā)出來的話,你的單片機開發(fā)水平就相當可以了。由于電路原理非常簡單,電路原理圖與PCB圖我將免費公布,以利于廣大初學者自制,需要者請聯系向我索要。你也可以參考我板子的硬件結構,根據自己的要求自行設計。
請參照你手里的51教材中列出的單片機管腳,我將詳細說明本實驗板的硬件結構。
1、P0口通過74LS244(單方向8位總線驅動器)驅動8位LED發(fā)光二極管?梢詫崿F廣告燈、跑馬燈、交通燈等相關實驗。
2、P0同時通過74LS244驅動4位LED數碼管的段選,與8位LED切換通過一只開關完成。位選由P2口前4位通過4只NPN三極管驅動完成。可以實現時間顯示、秒表與計數顯示等與數碼管有關的實驗。
3、P1.5通過一只PNP三極管驅動一只自震蕩的蜂鳴器。自震
蕩的意思是加上一定直流電壓,蜂鳴器即可發(fā)出一定頻率的聲音。如果想改變頻率,可以使用PWM(脈寬調制,就是改變脈沖占空比)方式通過音頻調制驅動。如果想實現音樂編程,更換為一般的蜂鳴器(就是音樂賀卡里的壓電片)即可。可以完成與音樂發(fā)生有關的實驗,也可作為報警信號輸出。
4、P1.6與P1.7腳連接IIC器件,板載一只8腳DIP插座,可選AT24C02,它是一只256B的EEPROM(電可擦寫存儲器)?梢詫崿F電子密碼鎖等需要保存數據的實驗,通過實驗也可以對IIC技術有個基本的了解與掌握。
5、P3.2——P3.5是51的4個中斷的外部輸入端,這四個管腳連接4只按鍵開關到地,按下按鍵將該管腳接地。選擇P3工作于第一功能,則按鍵開關工作于查詢方式。如果選擇第二功能,就工作于中斷方式?梢酝瓿砂存I和中斷的相關實驗。此處解釋一下查詢與中斷,如果你在睡午覺,為了防止遲到,你每隔5分鐘就睜眼看一下鬧鐘(假設你能夠準時醒來),這就是查詢方式,使用鬧鐘叫你就是中斷方式了。它們的區(qū)別很顯然,選擇查詢方式CPU就不能干別的工作了(就像你無法連續(xù)的睡覺),選擇中斷的話CPU可以去做其他工作,直到中斷來臨,CPU再去做中斷要求的工作。
6、P3.0與P3.1是單片機的串口接收與發(fā)送數據線,它們通過MAX232轉換為RS-232(一種串口通訊協議)標準電平,以便與PC機的串口通訊。因為51單片機與PC機的串口電平標準不同,所以用MAX232進行一個電平轉換工作,僅此而已,你不需要準確的知道RS-232的協議標準。這就如同英制與公制的轉換,對于你來說1M的長度對一個英國人來說就是3.28英尺。這個串口可以實現單片機與PC或者其他具備RS-232接口的單片機的通訊實驗,更為重要的是,ISP編程就是通過這個串口將程序從PC機下載到單片機的ROM里面的。對于具有ISP功能的單片機,必須有這個電平轉換部分(最小系統(tǒng)組成部分之一),否則無法進行編程。
7、其他沒有使用的管腳可以作為系統(tǒng)擴展使用。P0口外接上拉電阻。同時引出全部IO口線、ALE口線以及5V電源線和地線,便于擴展。晶振使用12M,選擇12個時鐘周期方式,機器周期為1US,選擇6個時鐘周期方式,機器周期為0.5US,這是飛利浦單片機的特殊功能。在ZLGISP軟件編程時,點擊設置,在6CLOCK前打勾即可選擇6個時鐘周期方式。這個方式比12個時鐘周期方式速度提高不少,但是對于精確延時程序將有影響,而且大多51教材都是針對12個時鐘周期所寫,所以不推薦初學者使用。
8、單片機非常害怕電源極性顛倒,所以電源插口后邊安裝了一只全橋作為“防呆開關”(原理簡單而巧妙,請自行研究),無論電源極性如何都可以直接輸入,但是輸入電壓不得低于8.5V,也不可太高,否則穩(wěn)壓塊LM7805功耗過大容易發(fā)熱?梢允褂檬惺凼找魴C直流電源,推薦使用9V。至于復位開關,編程選擇開關,電源穩(wěn)壓部分就不再贅述了。
以上簡介了實驗板的硬件結構,實驗請參見下文設計。
第七章:51單片機常見問題解答
關于51單片機的硬件,你手里任何一本教材都寫得很清楚,我沒有必要重新COPY一份,但是我很少看到能夠不費力氣就看得懂的51教材。對于初學者來說,一堆術語加上一堆嚴密得讓人頭痛的邏輯推導不啻為一種災難,有時候明明很簡單的原理非要被描述得艱澀異常。科學的精神在于把復雜的東西表述得簡單,但是我們很多教材編寫者卻反其道而行之,完全違背了真正的科學精神,實在是面目可憎,行而不遠。這也是我花費時間撰寫本教材的原因之一。下面就針對幾個被教材解釋得一塌糊涂的常見問題做一下通俗的解釋。
1、處理能力的概念。51單片機屬于8位機,8位是個什么意思呢?就是CPU處理的數據是8位的。位數的高低體現了CPU處理能力的強弱。4位的處理器已經基本淘汰了,8位的處理器占據了低端單片機的大部分市場,32位處理器是現在興起的嵌入式系統(tǒng)的主流配置,我們常用的電腦大多都是32位,64位的處理器也有,但是市場份額比較少,價格也較高。所以我們學習的51單片機屬于比較低級的單片機,會逐漸被新興的嵌入式處理器所淘汰,但是51單片機成本低,學習資源最豐富,上手容易,對于初學者來說是很理想的用于學習的單片機。
2、存儲器問題。51單片機有兩類存儲器,一類是程序存儲器ROM,它斷電以后數據不丟失,但是必須用編程器擦除和寫入程序;另一類是數據存儲器RAM,它斷電以后數據會丟失,但是可以用程序改寫內容。以AT89C51為例,因為它有16條地址線(P0和P2),所以它可以訪問64K存儲器空間(2的16次方是65535),它的ROM和RAM都是分內外的,外部存儲器都需要擴展,擴展方法參見教材。但是ROM和RAM的內外執(zhí)行方式不同,ROM的內外切換要用EA腳(31腳)的電平選擇,而RAM的切換可以直接用不同指令MOV和MOVX分開同時訪問。例如AT89C51有4K內部ROM,64K外部ROM,如果EA=1,則從內部ROM開始執(zhí)行,當超出4K之后,跳轉到片外4K以上的空間運行;如果EA=0,則完全在外部ROM中運行,內部ROM不再起作用。什么意思呢?就是要么運行內部4KROM要么運行外部4KROM,內外ROM的前4K不能同時運行,必須用EA切換。所以一般在沒有外部ROM的情況下,EA必須接電源正極,否則程序不能運行。我曾經因為EA懸空造成程序無法運行,苦苦思索一周才找到原因,期間因為盲目測試導致3塊AT89C51損壞,教訓十分慘痛,望后來者吸取教訓。RAM就不同了,AT89C51有128B內部RAM,可以擴展64K外部RAM,這兩個部分的RAM可以同時被訪問,注意選擇不同指令即可,訪問內部用MOV,訪問外部用MOVX,外部RAM擴展方法參見教材。ROM的種類除了常見的PROM(可編程ROM),還有MASK ROM、FLASH ROM 和EEPROM等種類。MASK ROM是掩模存儲器,掩模的意思就是工廠把程序直接做在芯片上了,適于不需要反復修改的大批量產品生產,成本非常低,但是用戶不能更改程序,8051里就是這種ROM。我最初接觸單片機的時候,去電子市場買8051,結果商家真的賣給我了一塊,回家一看,里面全都是程序,根本無法修改,現在回想起來,自己簡直是個傻瓜,哪有買掩模ROM的單片機做學習和開發(fā)的?!商家也不告訴我已經燒好的程序可以干什么,害的我只能拿它當8031使了!這個教訓真是好笑,希望大家一定要搞明白ROM的種類區(qū)分。PROM有OTP(一次性編程)和允許反復擦寫(用紫外線照射擦除)兩種,87C51系列就是OTP的ROM;就現在的形勢看,ROM有普及FLASH之勢,那些用紫外線擦除的垃圾看來是要被淘汰了。FLASH ROM可以電擦寫,但必須整塊擦除,寫入速度快,擦寫次數在1000到10萬次之間(視不同類型芯片而定),事實上89C51系列的ROM就是FLASH ROM,U盤內的ROM也是,一種NAND FLASH現在廣泛用于嵌入式系統(tǒng)中,它的存儲容量大,成本低,可以實現固態(tài)硬盤的功能;EEPROM是電可擦寫存儲器,它是按位擦寫的,可以擦寫10萬次以上,但擦寫速度較FLASH ROM要慢,AT24C02就是EEPROM,我們用的很多智能IC卡也是。RAM的種類有靜態(tài)SRAM,動態(tài)DRAM和SDRAM之分。SRAM只要寫入一次,有電數據就可以保持,單片機里就是SRAM,但是它的缺點就是太貴,所以單片機里的RAM都很小。DRAM一次寫入數據之后只能保持一瞬間,必須不斷重寫,叫做刷新,這個過程還需要相應的邏輯電路支持,很麻煩但是很便宜。SDRAM叫做具有靜態(tài)特性的動態(tài)RAM,它把邏輯刷新電路和DRAM做到了一起,它的工作方式本質是動態(tài)的,但是從外部看相當于一個SRAM,這樣就不但具有靜態(tài)特性而且價格便宜,我們電腦里的內存條都是SDRAM。我自己的理解是這樣的,就像爬山比賽,能力強的人呢,爬上去就不會滑下來。但是能力不行的人站不住,只好滑下來再爬上去,反復這樣,頻率高了給人的感覺就好像他在山上一樣。呵呵,反正能力強的東西總是更貴一些的。
3、IO口問題。P0口是集電極開路,所以我的實驗板上給它加了上拉電阻。上拉電阻的作用就是在基本沒有電流輸出的情況下將管腳電位拉到5V,這樣對于外部來說是邏輯1,如果沒有這個電阻,管腳電位就是0。為什么?假如三極管關閉的情況下C-E間電阻為100M,如果上拉電阻為10K,則分壓的結果是幾乎接近5V,這就是上拉的原理。IO口的驅動能力有限,AT89C51也就不到20MA(8051連這些都沒有),可以直接驅動LED(電流流入方式),但是驅動別的大電流外部設備必須加驅動電路,否則會燒毀IO口,務必注意。迄今為止,我一共燒毀了7塊AT89C51,損失了一把銀子之后我終于找到了原因:一個是電源問題,電源電壓超過5V或者極性顛倒都會導致芯片燒毀;另一個問題就是我在單片機供電的情況下測量P0.0腳(39腳)電位時表筆不小心連通了電源正極(40腳),而此時剛好P0.0內部MOS管開通(也就是輸出0),結果直接燒毀了輸出MOS管。因為P0口是數據線,結果導致編程時數據無法寫入。這個教訓最慘痛了,務必牢記。單片機的一種絕對保密技術就是利用了這種方法,編程之后燒毀一只閑置的數據或地址管腳的輸出管,造成數據無法讀出,達到絕對保密的目的。還有一點需要注意,如果要讀入管腳的狀態(tài),必須先向該管腳寫1,然后再讀該管腳方能得到正確輸入。使用P3的第二功能之前,也要先向P3口寫1,目的都是讓IO口輸出管關閉。IO口詳細構造請閱讀51教材相關部分。
4、有關尋址方式。相關教材中的尋址部分純粹是找別扭,我都可以用51開發(fā)產品了,可是我現在重讀這部分教材依然一頭霧水,無法理解。不理解很好,說明你大腦正常,不用去管教材所說的尋址方式到底是什么意思,你學會如何使用就行了。其實就是對數字操作(所謂立即尋址)、對寄存器操作(所謂寄存器尋址)、對地址操作(所謂直接尋址)、對指針操作(有專用指針也有寄存器作為指針)和對位操作5種情況。尋址方式就是告訴你一個操作什么東西的問題,沒有什么高深的。如果還是不明白就不要看這部分內容了,直接學習指令進行編程,當你編程很熟練之后,你會發(fā)現,其實它那些怪里怪氣的尋址方式命名是很可笑的。
5、對中斷概念的理解。我最開始看了一個使用中斷的程序之后,想了好幾個晚上也沒有理解什么叫中斷。這個程序的注釋竟然說中斷服務程序是這個程序的核心部分,我當時就茫然了——那主函數是什么?垃圾嗎?在我的認識里,主函數才應該是一個程序的核心。忘了過了多少日子,我終于明白了中斷的含義。假如你設置一只鬧鐘6點叫你,如果你6點準時爬起來看鬧鐘是不是叫你的話,那就不叫鬧鐘了,你成了鬧鐘的鬧鐘了。初學者很容易不明白為什么主函數里并沒有跳轉到中斷服務函數的指令,怎么中斷服務程序就自己自動執(zhí)行了呢?沒錯,中斷不需要什么指令來啟動,它會自己啟動,就像定時炸彈到點就會自動爆炸一樣。什么時候啟動由定時器、計數器或者外部中斷決定,這是一個前臺運行過程(誰表演誰就是前臺嘛),你在后臺看不到,后臺是個設置中斷的過程,決定什么情況下中斷會叫你。比如你在車站等你女朋友,你無法準確知道她什么時候來,所以后臺函數是個循環(huán)——你來回踱步,焦急的等待。當你女朋友出現的時候,她要求你停止踱步,和她去商店買衣服——這是中斷服務函數。如果你女朋友還沒來,你就自己跑到商店里了,那就不叫中斷了。如果她來了你還在踱步——很不幸,系統(tǒng)不是跑飛就是崩潰了,呵呵。有關中斷的具體操作與設置方法,請仔細閱讀51教材相關部分。中斷是單片機一個的難點,也是一個有特色之處,沒有中斷的話單片機就失去了全部的靈活性與實時性,變成一塊用于順序控制的數字電路了。
6、編程語言問題。你可以用匯編編程,也可以用C51語言編程。它們各有各的強項和弱點,選擇哪種語言要根據你的基礎和具體任務確定。有個老兄這樣說:匯編挺好啊,不過你用著用著就想用C51了;C51嘛,也挺好啊,不過你用著用著就想用匯編了。呵呵,真的是這樣。我個人的理解是:匯編好寫不好看,C語言好看不好寫。去看別人一段沒有注釋的匯編語言是一件很困難的事情,看不懂并不說明你編程水平差。這種情況下先不要看別人的例程,根據你自己的思路編寫即可,到了關鍵部分或是遇到障礙再看看例程,效果很好。別人寫的C語言比較好理解,因為C語言本質上就是各種各樣的函數調來調去的過程,看懂了函數,程序基本就明白了。下面說說匯編和C各自的特點:匯編是個事必躬親的戰(zhàn)術語言,要干什么就直接干什么,什么事情都要直接操作硬件,所以累啊——系統(tǒng)倒不累,你累啊,呵呵,累死你換來的好處就是代碼比較小,而且工作準確,操作決不會馬馬虎虎。C語言就不同了,是個戰(zhàn)略語言,只抓大局,一堆基層工作全給INCLUDE了,夠狠,要干什么不好好干,非要拐彎抹角——比如重新運行不讓用跳轉(封殺GOTO語句),非要設計一個巧妙的循環(huán),匯編就沒這么不老實。這次你不累了,但是如果智商不夠就慘了,一句都寫不下去,不像匯編——就算我笨,能編多少時多少,編一點是一點。當甩手掌柜自然不錯,但是缺點也很明顯:一來代碼要大不少,系統(tǒng)資源一下就被搞緊張了;二來涉及到對硬件的具體操作就它就沒招了,還得求人家匯編,呵呵。所以匯編和C你都要掌握,大局由C定,幾處需要準確處理硬件的工作交給匯編,屬于瞎子背瘸子的組合,呵呵。兩手抓,兩手都要硬,互相滲透,結合使用,這就是學習單片機語言的基本原則。說了一頓,和具體編程一點關系都沒有,但是原則你要把握。匯編語言我就不說了,教材都會詳細說明指令的意義和使用方法,下面我說一下C51。C語言的具體結構和編寫方法你明白了嗎?沒明白趕緊看書。C51與通用C語言的區(qū)別我理解主要有兩點:一是中斷函數的聲明與使用,二是如何在單片機里進行位操作,我的理解就這一點點,當然這與我水平比較菜有很大關系。那么C語言如何能夠認識那些單片機的寄存器呢?難道每寫一個程序都先要鋪天蓋地的定義一番?!這個我們不怕也不用管,KEIL里有自帶的包含文件來解決這個問題。你在KEIL里寫C51程序的話,上來先寫一個#INCLUDE<AT89C51.H>,這一堆問題就解決了,下面你可以直接寫P0=0X00,或者SCON=0X00之類,反正C語言可以認識,還能正確編譯,怎么樣?戰(zhàn)略語言確實不得了,臟活全讓<AT89C51.H>這個文件做了。當然想舒服就得付出資源的代價,C代碼肯定比匯編大,不信你編寫一個同樣的匯編程序試試看。想學習C51的話,可以找一本教材,但是如果你基本明白C了,買教材就有點浪費了,因為大多數C51教材都花上很大篇幅講C的規(guī)則,什么數據類型,什么控制語句,簡直是浪費白紙,所以你借一本教材看看C51和通用C不同的地方就可以了,買一本實在不值得。借不到也可以到網絡上搜索一下,有更通俗的教材,這里推薦明浩寫的那個基于KEIL軟件的C51教材,雖然只有幾課內容,很簡單,但是非常容易理解,也很實用,同時還說明了KEIL的使用方法。
常見問題就談這么多,都是一些概括性的介紹,具體問題你要自己去解決。
第八章:實驗設計
你一定很著急知道學習多長時間才具有開發(fā)產品的能力,這個過程很快,一般連續(xù)學習半年以上(注意不是三天打魚兩天曬網)即可開發(fā)簡單的產品。你必須嚴格進行一系列實驗,通過實現單片機的所有功能達到提高開發(fā)能力的目的。下面列出我自己認為需要完成的實驗的名稱以及實驗項目的說明。
實驗1:跑馬燈左右循環(huán)移動的應用
實驗項目:
1、學習IO口的控制技巧,掌握各種數制的轉換方法。
2、第一次用取機器周期倍數的延時方法實現移動速度的設定。
3、第二次使用定時器中斷的方法實現移動速度的設定。
4、第三次使用DPTR取表的方式實現移動順序的設定。
實驗2:中斷的應用
實驗項目:
1、第一次用多種模式實現兩個定時器中斷的功能,可以用LED閃爍顯示,也可以讓蜂鳴器發(fā)聲。
2、第二次設定四個中斷同時存在,兩個外部中斷,兩個計數器中斷,由四個按鍵作為外部輸入。四個按鍵設定兩個優(yōu)先級,完成五種任務(包括后臺的任務和四個中斷服務程序的任務)。
實驗3:布爾代數(一位機)應用
實驗項目:
類似可編程邏輯控制器的使用,選擇多個復雜的邏輯關系,使用指令中的邏輯語句完成相關的邏輯功能,使單片機成為一塊可以完成復雜邏輯的數字電路。這個實驗主要用于工業(yè)配線以及順序生產過程。
實驗4:串口應用
實驗項目:
1、UART通過74LS164和74LS166實現串行擴展IO口輸入輸出功能。
2、兩個單片機做全雙工通訊實驗。
3、單片機與PC機之間進行全雙工通訊實驗。
4、一個單片機與兩個以上單片機做全雙工主機從機通訊實驗。
實驗5:單片機音樂編程應用
實驗項目:
1、該實驗可以用延時的方法也可以用定時器中斷的方法實現,主要學習了如何通過對頻率和節(jié)拍編碼表的讀取進行音樂編程。
2、在此基礎上,可以學習如何使用單片機產生雙音頻撥號音,完成單片機自動撥號實驗。
實驗6:直流電機與步進電機控制應用
實驗項目:
1、了解直流電機驅動部分硬件原理。掌握單片機控制直流電機正反轉的方法,能夠使用PWM(脈寬調制)方式改變直流電機轉速。
2、了解步進電機驅動部分硬件原理。掌握用脈沖分配的方法驅動步進電機正反轉,并且可以通過改變脈沖分配頻率來改變步進電機轉速。
實驗7:鍵盤與顯示器應用
實驗項目:
1、獨立按鍵識別操作方法,BCD碼轉盤的使用方法。
2、掃描式按鍵操作方法(結合中斷操作)。
3、串口擴展IO口的鍵盤操作方法。
4、靜態(tài)LED顯示操作方法。
5、動態(tài)掃描LED顯示操作方法。
6、結合時鐘芯片(需要擴展),設計一個電子表。
7、結合4*4鍵盤,設計一個計算器。
8、結合EEPROM,設計一個防掉電電子密碼鎖。
9、結合步進電機,設計一個可設定和顯示速度的步進電機控制板。
實驗8:其他顯示器件應用
實驗項目:
1、點矩陣LED顯示器應用。使用4塊8*8矩陣LED作為大屏幕,滾動顯示中文字幕。
2、使用LCD顯示字符與圖形,掌握LCD驅動方法。
實驗9:AD/DA轉換應用
實驗項目:
1、使用ADC0809和一種溫度探頭,結合LED顯示制作一只數字溫度計。如果溫度探頭成本過高,可以制作一只數字電壓表。
2、使用雙積分型A/D轉換電路ICL7135制作數字電壓表。
3、使用DAC0832制作一個多種波形的數控信號發(fā)生器。
4、使用ADC0809和DAC0832,外擴RAM(可使用32K的62256)制作簡易數字錄音機(錄音時間為數秒鐘)。
實驗10:外部傳感器輸入與數據采集應用
實驗項目:
1、利用光敏三極管采集光電信號。
2、利用紅外線對管構成主動式紅外線光電信號采集。
3、利用熱釋電紅外線傳感器,結合驅動電路,構成被動式紅外線光電信號采集。
4、利用駐極體話筒或壓電陶瓷片,結合音頻鎖相環(huán)技術(LM567),制作超聲波距離探測器,使用LED顯示距離。
5、利用霍爾元件,制作伺服電機轉速控制器,由鍵盤設定轉速,LED顯示。
6、利用壓力傳感器制作電子秤,鍵盤輸入,LED顯示。
實驗11:單片機外圍擴展IC應用
實驗項目:
1、8155原理與應用。
2、8255原理與應用。
3、8279原理與應用。
4、利用時鐘芯片DS12887制作智能電子表。
5、利用ISD1420或者APR9600制作公共汽車報站器、漢語報時鐘或會說話的萬用表。
實驗12:IIC技術應用
實驗項目:
1、電可擦寫存儲器AT24C02讀寫實驗。
2、PCF8583驅動實驗,可制作電子表。
3、8位并行輸入輸出芯片PCF8574實驗。
4、數模轉換芯片PCF8591實驗。
IIC技術可以節(jié)省單片機端口,有利于設計小型化和制作低成本化,但是實時性有所下降。以前的實驗均可由相關IIC器件完成。
實驗13:操作系統(tǒng)UCOS_II在單片機上的移植
實驗項目:
要求單片機ROM最少要8K,一般要14K以上,外部擴展RAM最少要4K。完成在單片機上運行多個任務的操作系統(tǒng)的移植
如果你已經成功做完以上所列的所有實驗,不要謙虛了,請刪除本教材,并收下我這個徒弟,可以說在51單片機開發(fā)方面你已經走在我們這些菜鳥前面了。對于初學者,當然不必因此而泄氣,能夠在每個方面都實現一個基本實驗就相當不錯了,就算自己無法編出程序,把網上編好的程序拿來跑一跑也很不錯,起碼說明我們具有“移植”的能力,呵呵。別小看這個能力,復雜產品的開發(fā)基本都是這樣,試問誰能為了一個產品自己開發(fā)操作系統(tǒng)?要是能編出來還賣產品干嗎?直接賣操作系統(tǒng)就發(fā)財了,呵呵!所以初學者要量力而行,上述所列只不過給大家指出個學習方向,基本就這么多了,從簡單的開始,一步一步做下去。當然還有一些比較高難的,比如單片機上網,單片機控制藍牙模塊、GSM模塊、GPRS模塊乃至GPS全球定位系統(tǒng)模塊等等,這些暫時不是我們的學習內容,等你成為高手以后再研究吧。
后記
單片機的入門教材暫且寫到這里,如果以后有新的體會再繼續(xù)補充。每一個初學硬件技術的人都要明白,世界上的器件是無窮無盡的,有數以萬計的技術可能你還沒來得及接觸就被淘汰掉了,所以不要揪住一堆知識不放,或者幻想掌握所有器件的使用方法。培養(yǎng)一種思維方式是最重要的——有方法沒有知識隨時可以學,有知識沒方法的話,知識最終也會被忘掉。我們現在學習51,如果我們在學習過程中培養(yǎng)出了解決方法的思維方式,一旦客觀需要我們使用AVR,很短的時間我們就可以搞定,哪怕我們對AVR一無所知。
沒有萬能的知識,只有萬能的思維與能力。但愿每一個立志投身硬件工作的年輕人都能夠擁有這種認識,為民族工業(yè)的發(fā)展與中華民族的偉大復興做出真正的貢獻!