1
獻給初學單片機的話
學習單片機---- 我們該做什么?
我們?yōu)槭裁匆獙W單片機?
單片機是大專學校電類專業(yè)的一門普通課,有些學校甚至把它列為選修課,在眾多課程中,沒有顯出它有
多么重要。為什么要學習它呢?電類專業(yè)有很多專業(yè)課,這些專業(yè)課非常重要,是各個專業(yè)存在的必需課
程,學完這些課程可以使學習者成為大學者的繼承人,市場對學者繼承人的需求太少,大量需要的是產品
的研發(fā)者,研發(fā)產品是需要干實際事情的,需要研發(fā)工具,而單片機課程就是學習研發(fā)工具使用的課程。
學習單片機課程與理論課程不一樣,不能只做作業(yè),而是要實際使用單片機,下面就如何準備學習單片機
的條件和學習步驟簡述一些不成熟的想法。
1. 硬件
(1 )編程硬件
所謂編程就是把單片機運行的程序燒寫到單片機的存儲器中,目前大部分單片機都是使用FLASH存
儲器,這些存儲器的寫入次數一般是 1000 次左右,也有 1 萬次或是10 萬次的。編程也叫程序下載或是燒
寫。
(2 )實時仿真硬件
實時仿真是使用PC機,用軟件監(jiān)視在單片機中實際運行的程序,也就是當程序下載到單片機中后,實
時運行程序,在程序中設置斷點,通過仿真接口,監(jiān)視和控制程序的運行。這個過程其實就是調試程序(實
際驗證程序的正確性)。
編程器和仿真器可以是一個裝置,也可以是各自獨立的裝置。
2. 軟件
單片機開發(fā)需要單片機開發(fā)軟件的支持,軟件分為:
(1 )編程軟件
該軟件支持編程器工作,幫助編程器把程序寫入單片機。
(2 )實時仿真軟件
該軟件可以在仿真接口的支持下,調試單片機程序。
(3 )虛擬仿真
該類軟件支持在沒有單片機硬件情況下的單片機程序調試。
(4 )支持C 語言
所有的單片機開發(fā)軟件都支持匯編語言編程,但是目前人們更喜歡C 語言編程,主要是C 語言功能強大,可
以縮短開發(fā)時間。
目前就有支持上述功能的軟件,例如51系列的Keil 51、PIC 系列的MPLAB,MSP430系列的IAR 等。
3. 學習單片機的手段
按照經濟實力,學習單片機的手段分為如下幾種:
2
(1)買本單片機書,仔細研究。
(2)網上下載一個具有仿真功能的單片機開發(fā)軟件(最好支持C語言),在計算機上對單片機虛擬仿真。
(3 )購編程器(支持編程器的下載軟件有編程器商提供)和實驗板(又稱為演示板或是目標板),網上
下載開發(fā)軟件。在開發(fā)軟件的支持下對單片機虛擬仿真,確認單片機程序正確后,用編程器將程序下載到
單片機中,觀察程序的實際運行。
(4)購仿真接口和實驗板,在網上下載單片機開發(fā)軟件(支持編程、虛擬仿真、實時仿真和C語言),在
虛擬仿真完成后,將程序下載到單片機中實時仿真。
對于個人學習單片機,具有上述(4)的條件已經是很好了。
4. 學習單片機過程中的困擾
單片機種類很多,各個公司提供的單片機、開發(fā)硬件和軟件功能、價格都不一樣,對于初學單片機有很多
困惑。
(1)單片機問題
目前單片機很多,學哪一個,其實學哪一個都可以,單片機雖然型號不同,但是芯片內部的資源種類
都差不多,而且這些資源的使用方法也大同小異,可以說學會一種,其他種將融會貫通。究竟學哪一種,
主要看具備的條件。
51系列是老型號,書多、資料多、軟件開放和硬件支持還可以,特別是Atmel 公司的產品AT89 系列
,很多人就是學習這款單片機發(fā)家致富的。
AVR90 系列,該系列也是Atmel 公司的產品,指令少,學起來容易,芯片種類多,適合各種場合和
需要,根據有關資料顯示,目前該單片機芯片的使用數量很大,大有超過51系列芯片數量的趨勢。
PIC 系列,該系列是Microchip公司的產品,種類多,芯片抗干擾能力強,使用的人很多,特別是PIC
16F877 芯片,由于適合學校使用,在該公司大學計劃的支持下,免費贈送開發(fā)器和實驗板,因而使用該
芯片的人群大增,也是可以和51系列單片機抗衡的單片機。
MSP430系列,是TI公司的產品,最近幾年才被杭州利爾達公司引進,是16位、超低功耗單片機,
特別適合手持設備等低功耗設備的開發(fā),實際上,由于該系列引腳多,內部資源多(具有硬件乘法器),
所以在很多產品開發(fā)上都有用武之地,據有關人士預測,該系列是最具前途的單片機。
還有很多單片機型號,由于不太了解,不敢妄加評論,但可以想象,一定是不錯的單片機,否則就不
會在競爭激烈的市場中存在。
(2)開發(fā)軟件問題
不同種類的單片機都配套有相應的開發(fā)軟件,這些軟件很多都是專業(yè)軟件公司開發(fā)的。
51 系列,目前開發(fā)軟件是Keil 51,該軟件支持C語言,但是在網上下載的版本,只支持2K程序。
PIC 系列的開發(fā)軟件是MPLAB,在HI-TECH公司C 語言支持軟件PICC的支持下,該軟件很好用,但
是PICC是需要激活密碼才能運行的。
MSP430系列的開發(fā)軟件是IAR ,該軟件有開放1 個月的全功能限期版本和C語言4k支持版本,可
見該系列的軟件開放是最好的。
哪種單片機的開發(fā)軟件開放的好,就會引起人們對該單片機的興趣,單片機提供商也深諳此道,所以
網上經??梢哉业礁_放版本的軟件。
(3)仿真接口
仿真接口,又稱為仿真器,老式單片機由于沒有FLASH存儲器,所以仿真編程難度很大,新型號的單
片機,幾乎都有FLASH存儲器的芯片,這樣的芯片都支持在電路編程(在系統(tǒng)編程),所謂在電路編程,
就是用3~5根線就可以將程序寫入單片機,并能夠將單片機內的程序運行情況、寄存器內容等信息傳輸
到PC機上。 這種編程方法需要在單片機與PC機之間安裝一個仿真接口,該接口一般需要購買。
AT89S51、PIC16F877 就是具有這種能力的單片機,但是,對于初學者來說,支持該單片機編程和
3
仿真的接口需要購買,而且簡單接口在仿真時會占用芯片資源,給單片機系統(tǒng)開發(fā)帶來不便。
MSP430系列單片機也是具有這種能力的單片機,但是該單片機采用標準JTAG 接口,JTAG 是一種標
準(IEEE 1149.1),是為測試芯片而制定的,目的是用TCK 、TDI 、TDO和TMS四個信號來測試芯片的
內部狀態(tài),為什么測試芯片還需要專門制定標準呢?這是因為復雜芯片引腳太多,特別是還有些芯片一旦
安裝到多層電路板上就無法看到引腳,更不要說測量了,這時就可以在計算機軟件的支持下通過JTAG 接
口,對芯片進行測量,如果各個公司的芯片都符合該標準,就可以將各個芯片的JTAG 口串聯(lián)起來(外國
人稱為菊花鏈),無論在電路板上有多少芯片,只需4 個引腳,就可以測量電路板上的所有芯片。既然可
以測量芯片,當然可以將數據寫入芯片,在可編程邏輯器件的數據下載中也使用JTAG 接口,出現(xiàn)了在系
統(tǒng)編程(ISP )的概念,也就是,即使可編程邏輯器件安裝到了系統(tǒng)中,也可以對其內部電路進行修改,JTAG
技術和EDA軟件的進步,使可編程邏輯器件的開發(fā)與使用得到快速發(fā)展。單片機也是在向這個方向努力,
前幾年出現(xiàn)在市場上的C8051 單片機就是使用JTAG 接口的單片機,不幸的是該單片機JTAG 接口裝置和
開發(fā)軟件很貴,阻礙人們使用該單片機。
使用JTAG 口,必須在計算機與芯片JTAG 接口之間連接一個接口裝置,該裝置隨芯片而異,實際上
JTAG 接口裝置都是很簡單的(就是一個緩沖器),但是由于各個公司的早期產品不完全支持JTAG 接口,
而JTAG 接口裝置又必須兼容這些早期產品,就使得JTAG 接口裝置變的復雜了。
目前,TI公司的MSP430系列芯片就是支持JTAG 接口的單片機,該公司稱該JTAG 接口裝置為FET ,
通過FET 就可以對該系列單片機編程與仿真。特別是該接口非常簡單,適合自制,網上很多該單片機愛好
者就是使用自制的FET 開發(fā)該系列的單片機,非常成功。
(4)實驗板
實驗板是學習單片機所必須的,實驗板又稱為演示板、目標板,其實就是具有單片機的電路板,實驗板可
以購買,各個單片機的供應商都提供多種多樣的實驗板。實驗板也可以根據需要自制,自制實驗板是具有
挑戰(zhàn)的,需要學會畫電路板圖。
(5)選擇單片機類型
軟件:支持C語言,免費下載。
仿真器:用于仿真編程的JTAG 接口裝置可以自制(很重要,可以節(jié)省開支)。
單片機:型號多、功能強、資源多、功耗低,程序存儲器容量大。
資料:書多、資料多,特別是網上資料多。
滿足上述條件的單片機只有MSP430系列。
5. 如何學習單片機
學習就是迎接挑戰(zhàn)、解決困難的過程,沒有挑戰(zhàn),就沒有人生的樂趣。下面以MSP430系列單片機為
例,解釋一下學習單片機的過程。
(1)獲取資料
購買有關書籍,并到杭州利爾達公司網站和TI網站獲取資料,例如,在網上可以找到FET 使用指導、
MSP430 F1xx系列、F4xx系列的使用說明和具體單片機芯片的數據說明,可以找到仿真器FET 的電路圖、
實驗板電路圖、芯片封裝知識等大量的實際應用參考電路,當然有些資料是英文的,看懂英文資料是個挑
戰(zhàn),學會4、6 級英語就是為看資料的。英語難學,但是看資料容易,只要下決心,看完一本資料,就可
以看懂所有的相關資料。
(2)購買仿真器FET 和實驗電路板
如果經濟條件不錯,可以直接購買。
(3)自制仿真器FET 和實驗電路板
自制仿真器FET ,首先要到網上找到FET 電路圖,然后就可以使用畫電路板軟件畫電路圖和電路板圖,
這又是個挑戰(zhàn)。FET 電路非常簡單,但要把它制作出來還是需要下一番工夫的,找一本有關書,然后練習
4
畫原理圖,畫完原理圖后,就學習認識元件封裝,再購買元件,這時就可以畫電路板圖了,一旦畫好,將
形成的PCB 文件交給電路板制作公司,10 天后,就可以得到電路板,焊上元件和電纜,等實驗電路板做
好后,就可以與實驗電路板一起調試了。
自制實驗電路板,需要單片機芯片內部工作原理的知識、封裝知識,清楚的知道每一個引腳的功能,
還需要數碼管、按鈕、排電阻、三端穩(wěn)壓器、二極管、散熱器、電解電容、普通電容、電阻、鈕子開關等
元件的知識,對于初學者,可以做一個只有3 個數碼管、8 個按鈕、8 個發(fā)光二極管的簡單實驗板,這樣
的實驗板,雖然簡單,但足可以幫助初學者入門單片機。自制實驗電路板與自制FET 一樣,首先畫電路圖,
然后買元件,再畫電路板。由于MSP430系列芯片是扁平封裝,焊接起來有一定難度,這好象是個挑戰(zhàn),
但實際上很簡單,方法如下:首先在焊盤上涂上松香水,在松香水未干的情況下,將芯片放在焊盤上,注
意芯片第一引腳的位置,并使引腳與焊盤對齊,將擦干凈的電烙鐵(不能有任何焊錫)接觸引腳,引腳只
要一熱,焊盤上的焊錫就自動將引腳焊住了,千萬注意電烙鐵上不能有焊錫,焊接時最好配備一個放大鏡。
焊接電路板時,每一個元件都要核對參數,可以用萬用表測量的元件一定要測量。
(4)從網上獲得IAR 軟件
到利爾達公司或TI公司的網站下載IAR 軟件,并安裝到計算機上。
(5)調試FET 和實驗板
將FET 的一端與PC機的并行口相連,另一端連接實驗板的JTAG 接口,上電后,檢查FET 芯片、實驗
板上的單片機芯片是否發(fā)熱(用手模),PC機是否工作正常后,運行IAR 軟件,找個C語言或匯編語言的
例子,編譯成功后下載到單片機中,如果能夠下載,說明一切成功。否則還需要仔細研究,一般情況下,
只要電路板上的電路正確,元件參數準確,沒有不成功的。
(6)分步驟學習單片機
學習使用單片機就是理解單片機硬件結構,在匯編或C 語言中學會各種功能的初始化設置,以及實現(xiàn)
各種功能的程序編制。
第一步:數字I/O的使用
使用按鈕輸入信號,發(fā)光二極管顯示輸出電平,就可以學習引腳的數字I/O 功能,在按下某個按鈕后,
某發(fā)光二極管發(fā)亮,這就是數字電路中組合邏輯的功能,雖然很簡單,但是可以學習一般的單片機編程思
想,例如,必須設置很多寄存器對引腳進行初始化處理,才能使引腳具備有數字輸入和輸出輸出功能。每
使用單片機的一個功能,就要對控制該功能的寄存器進行設置,這就是單片機編程的特點,千萬不要怕麻
煩,所有的單片機都是這樣。
第二步:定時器的使用
學會定時器的使用,就可以用單片機實現(xiàn)時序電路,時序電路的功能是強大的,在工業(yè)、家用電氣設
備的控制中有很多應用,例如,可以用單片機實現(xiàn)一個具有一個按鈕的樓道燈開關,該開關在按鈕按下一
次后,燈亮3 分鐘后自動滅,當按鈕連續(xù)按下兩次后,燈常亮不滅,當按鈕按下時間超過2s,則燈滅。
數字集成電路可以實現(xiàn)時序電路,可編程邏輯器件(PLD )可以實現(xiàn)時序電路,可編程控制器(PLC )也
可以實現(xiàn)時序電路,但是只有單片機實現(xiàn)起來最簡單,成本最低。
定時器的使用是非常重要的,邏輯加時間控制是單片機使用的基礎。
第三步:中斷 pGQW33_yNx
單片機的特點是一段程序反復執(zhí)行,程序中的每個指令的執(zhí)行都需要一定的執(zhí)行時間,如果程序沒有執(zhí)行
到某指令,則該指令的動作就不會發(fā)生,這樣就會耽誤很多快速發(fā)生的事情,例如,按鈕按下時的下降沿。
要使單片機在程序正常運行過程中,對快速動作做出反應,就必須使用單片機的中斷功能,該功能就是在
快速動作發(fā)生后,單片機中斷正常運行的程序,處理快速發(fā)生的動作,處理完成后,在返回執(zhí)行正常的程
序。中斷功能使用中的困難是需要精確地知道什么時候不允許中斷發(fā)生(屏蔽中斷)、什么時候允許中斷
發(fā)生(開中斷),需要設置哪些寄存器才能使某種中斷起作用,中斷開始時,程序應該干什么,中斷完成
后,程序應該干什么等等 。
中斷學會后,就可以編制更復雜結構的程序,這樣的程序可以干著一件事,監(jiān)視著一件事,一旦監(jiān)視
的事情發(fā)生,就中斷正在干的事情,處理監(jiān)視的事情,當然也可以監(jiān)視多個事情,形象的比喻,中斷功能
使單片機具有吃著碗里的,看著鍋里的功能。
5
以上三步學會,就相當于降龍十八掌武功,會了三掌了,可以勉強護身。
第四步:與PC機進行RS232 通信
單片機都有USART接口,特別是MSP430系列中很多型號,都具有兩個USART接口。USART接口
不能直接與PC機的RS232接口連接,它們之間的邏輯電平不同,需要使用一個MAX3232 芯片進行電平
轉換。
USART接口的使用是非常重要的,通過該接口,可以使單片機與PC機之間交換信息,雖然RS232通
信并不先進,但是對于接口的學習是非常重要的。正確使用USART接口,需要學習通信協(xié)議,PC機的
RS232接口編程等等知識。試想,單片機實驗板上的數據顯示在PC機監(jiān)視器上,而PC機的鍵盤信號可以
在單片機實驗板上得到顯示,將是多么有意思的事情啊!
第五步:學會A/D轉換
MAP430單片機帶有多通道12位A/D 轉換器,通過這些A/D 轉換器可以使單片機操作模擬量,顯示
和檢測電壓、電流等信號。學習時注意模擬地與數字地、參考電壓、采樣時間,轉換速率,轉換誤差等概
念。
使用A/D 轉換功能的簡單的例子是設計一個電壓表。
第六步:學會PCI、I2C 接口和液晶顯示器接口
這些接口的使用可以使單片機更容易連接外部設備,在擴展單片機功能方面非常重要。
第七步:學會比較、捕捉、PWM 功能
這些功能可以使單片機能夠控制電機,檢測轉速信號,實現(xiàn)電機調速器等控制起功能。
如果以上七步都學會,就可以設計一般的應用系統(tǒng),相當于學會十招降龍十八掌,可以出手攻擊了。
第八步:學習USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設計
學習USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設計是非常重要的,因為這是當前產品開
發(fā)的發(fā)展方向。
到此為止,相當于學會15招降龍十八掌,但還不到打遍天下無敵手的境界。即使如此,也算是單片
機大蝦了。順便說一句,MSP430單片機的技術支持是非常好的,負責任的工程師大蝦會在關鍵時候,挺
身而出,使你化險為夷。
6. 達到理想境界
達到理想境界是困難的,在知識爆炸的年代里,即使天天學習,也很難跟上科學技術的發(fā)展,更何況
每天還要為找工作、提職稱、寫論文、搞科研經費、政治學習、買房、購車、柴、米、油、鹽、醬、醋、
茶等忙活,那么,還需要學習嗎?回答是肯定的,人就是為興趣而活,愛好單片機才能學會單片機,不為
什么目的,只為學習的樂趣,當然要是興趣也能賺錢,則是一舉兩得。
學會使用單片機其實是學會了使用工具,充其量是個補鍋、鋦碗的匠人。如果再要進步,就需要在信
號識別、控制理論、數字信號處理理論、通信理論等方面下工夫,只有這樣,才能開發(fā)出高水平、高附加
值、具有知識產權的產品,達到熟練運用降龍十八掌,打遍天下無敵手的至高境界。
單片機是DSP、嵌入式操作系統(tǒng)等高級硬件產品開發(fā)的基礎。如果想要進一步的發(fā)展,必須學會單片
機的開發(fā)。
如果在學會單片機的基礎之上,學會CPLD和FPGA 的開發(fā)以及硬件描述語言,就可以在高速產品的開
發(fā)方面獲得一杯羹。





