如何學(xué)好單片機(jī)
單片機(jī)越來越多的受到電子產(chǎn)品研發(fā)人員和我國高等技術(shù)類學(xué)校的應(yīng)用與重視。本文在多年實(shí)際經(jīng)驗(yàn)的基礎(chǔ)上,從單片機(jī)結(jié)構(gòu)、邏輯思維、和微觀理念方面著手,詳細(xì)介紹了如何學(xué)好單片機(jī)這門應(yīng)用技術(shù)的幾點(diǎn)經(jīng)驗(yàn)之談。
關(guān)鍵詞:單片機(jī)學(xué)習(xí);經(jīng)驗(yàn)介紹
引言
單片機(jī)誕生于20世紀(jì)70年代。所謂單片機(jī)是利用大規(guī)模集成電路技術(shù)把中央處理單元(CenterProcessingUnit,也即常稱的CPU)和數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM)及其他I/O通信口集成在一塊芯片上, 構(gòu)成一個最小的計算機(jī)系統(tǒng),再加上了中斷單元,定時單元及A/D轉(zhuǎn)換等更復(fù)雜、更完善的電路,使得單片機(jī)的功能越來越強(qiáng)大,應(yīng)用更廣泛[1]?,F(xiàn)在更多單 片機(jī)的發(fā)展已經(jīng)進(jìn)入了嵌入式系統(tǒng)時代,由于制造工藝的進(jìn)步,有如VHDL、RTOS、CPLD、FPGA、DSP、ARM等這一系列可編程器件的體積越來 越小、成本越來越低,而功能是越來越能滿足人們的需要。自上世紀(jì)80年代以來,單片機(jī)技術(shù)在我國各個控制領(lǐng)域得到了廣泛應(yīng)用,各個世界半導(dǎo)體公 司都非??春弥袊@個龐大的市場而紛紛到中國來投資建廠,如在蘇州就有日本的瑞薩、松下、美國的快捷等半導(dǎo)體公司在中的生產(chǎn)廠地。同時面對這一技術(shù)的不斷 發(fā)展,我國大部分高校都已經(jīng)把單片機(jī)方面的課程作為學(xué)生的必修課,這為我國近些年來的科技、工業(yè)控制等方面的發(fā)展培養(yǎng)了大量人才,而且社會對此方面的人才 需求還在不斷的增加。面對如此情況,作為在校學(xué)生,又該從何學(xué)起?如何學(xué)好這門課程呢?又怎樣才能不讓自己學(xué)了等于沒學(xué)呢?本文在多年實(shí)踐的基礎(chǔ)上,介紹 自已的一些感受和經(jīng)驗(yàn)。
1 理解單片機(jī)的結(jié)構(gòu)
對于一個初學(xué)者,最迷糊的就是對單片機(jī)芯片里面的結(jié)構(gòu)的理解,小小的一個芯片為何能完成如此神奇的功能。
第一次從事電子方面的工作,也總對那黑黑的芯片里面感到不可思意的神奇。直到有一天,在檢修一臺日本二手電子市場里買來的程控交換機(jī)時,發(fā)現(xiàn)里面有一塊黑東西上的黑膠已經(jīng)裂開,把它撬開一看,里面就是一塊電路板, 上面焊滿了密密麻麻的電子零件。終于有點(diǎn)明白,原來芯片也可以這樣做成。當(dāng)然當(dāng)時所見的那塊電路板是不能被稱之為芯片的,那只是日本的電子制造公司為了防 止別人抄襲而把整個電路板密封起來或其它原因,只引出幾個的引腳與其它電路連接。不過它可以讓人聯(lián)想到芯片的基本結(jié)構(gòu)與此相類似,如果把那些內(nèi)眼看得見的 電子零件再縮小一千倍或更小以至于能把所有電子零件做在一個硅片上,那也就成了名副其實(shí)的芯片了。我們不防以圖1所示的電路及電路板來做一個生動形象的介 紹。該圖是一個直流馬達(dá)可以正反兩個方向轉(zhuǎn)動的電路,做成電路板并焊好電子元件后,經(jīng)測試沒有問題就可以用黑膠(通常采用酚醛樹脂等材料)把所有電子元件封起來,只留六個引腳來與外部電路連接,這樣看起來就好像是一個芯片。
知道了一般芯片的原理,同樣可以更進(jìn)一步想象單片機(jī)為什么會執(zhí)行邏輯運(yùn)算等功能,這就牽涉到數(shù)字電路和模擬電路的知識。其實(shí)不管一個單片機(jī)的功能是如何的強(qiáng)大,其只不過是把許多以微米,甚至是納米為單位級的數(shù)字的和模擬電子器件組成。為了形象的來說明單片機(jī)內(nèi)部的結(jié)構(gòu)原理,這里不訪舉如圖2所示的跑馬燈電路來闡述。圖中電路表明的最終目的是讓LED依 次輪流被點(diǎn)亮。首先是通過計數(shù)器對輸入脈沖計數(shù),從0到15共16個脈沖為一個輪回,也即計數(shù)器的輸出依次為二進(jìn)制的0000B到1111B,再由四-十 六譯碼器把計數(shù)器的結(jié)果解碼輸出,即依次置Y0到Y(jié)15由高電平變?yōu)楦唠娖?。?dāng)某一輸出為高電平時,經(jīng)過反向器后,與此線路相連接的LED的陰極被拉為低 電平從而點(diǎn)亮該發(fā)光二極管。 這樣一來,計數(shù)器和譯碼器就相當(dāng)于單片機(jī)里的處理器與PC地址寄存器了,與譯碼器輸出腳相連的線就相當(dāng)于地址線,與LED負(fù)極相連的輸出線就相當(dāng)于數(shù)據(jù) 線,每一條“地址線”都與8根“數(shù)據(jù)線”有一個交叉,每一個交叉就相當(dāng)于存儲單元的每一個位。在這些交叉處是否要連通就相當(dāng)于把程式燒錄到存儲器 (ROM)里。最后總體來看就相當(dāng)于一個只有16個地址的8位單片機(jī)。如果把LED換成圖中數(shù)碼管,改變圖中的二極管連接,在“單片機(jī)”通電和輸入時鐘脈 沖后,就可以不停的來顯示數(shù)字了。
另外,要做到對單片機(jī)內(nèi)部結(jié)果真正的了解,還必須得先要有很扎實(shí)的電路基礎(chǔ)、模擬電路、數(shù)字電路等方面的知識,否則可能就是空中樓閣。