獻給初學單片機的你的一些話
1
獻給初學單片機的話
學習單片機---- 我們該做什么?
我們?yōu)槭裁匆獙W單片機?
單片機是大專學校電類專業(yè)的一門普通課,有些學校甚至把它列為選修課,在眾多課程中,沒有顯出它有
多么重要。為什么要學習它呢?電類專業(yè)有很多專業(yè)課,這些專業(yè)課非常重要,是各個專業(yè)存在的必需課
程,學完這些課程可以使學習者成為大學者的繼承人,市場對學者繼承人的需求太少,大量需要的是產品
的研發(fā)者,研發(fā)產品是需要干實際事情的,需要研發(fā)工具,而單片機課程就是學習研發(fā)工具使用的課程。
學習單片機課程與理論課程不一樣,不能只做作業(yè),而是要實際使用單片機,下面就如何準備學習單片機
的條件和學習步驟簡述一些不成熟的想法。
1. 硬件
(1 )編程硬件
所謂編程就是把單片機運行的程序燒寫到單片機的存儲器中,目前大部分單片機都是使用FLASH存
儲器,這些存儲器的寫入次數(shù)一般是 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 公司的產品,指令少,學起來容易,芯片種類多,適合各種場合和
需要,根據有關資料顯示,目前該單片機芯片的使用數(shù)量很大,大有超過51系列芯片數(shù)量的趨勢。
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 個引腳,就可以測量電路板上的所有芯片。既然可
以測量芯片,當然可以將數(shù)據寫入芯片,在可編程邏輯器件的數(shù)據下載中也使用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系列的使用說明和具體單片機芯片的數(shù)據說明,可以找到仿真器FET 的電路圖、
實驗板電路圖、芯片封裝知識等大量的實際應用參考電路,當然有些資料是英文的,看懂英文資料是個挑
戰(zhàn),學會4、6 級英語就是為看資料的。英語難學,但是看資料容易,只要下決心,看完一本資料,就可
以看懂所有的相關資料。
(2)購買仿真器FET 和實驗電路板
如果經濟條件不錯,可以直接購買。
(3)自制仿真器FET 和實驗電路板
自制仿真器FET ,首先要到網上找到FET 電路圖,然后就可以使用畫電路板軟件畫電路圖和電路板圖,
這又是個挑戰(zhàn)。FET 電路非常簡單,但要把它制作出來還是需要下一番工夫的,找一本有關書,然后練習
4
畫原理圖,畫完原理圖后,就學習認識元件封裝,再購買元件,這時就可以畫電路板圖了,一旦畫好,將
形成的PCB 文件交給電路板制作公司,10 天后,就可以得到電路板,焊上元件和電纜,等實驗電路板做
好后,就可以與實驗電路板一起調試了。
自制實驗電路板,需要單片機芯片內部工作原理的知識、封裝知識,清楚的知道每一個引腳的功能,
還需要數(shù)碼管、按鈕、排電阻、三端穩(wěn)壓器、二極管、散熱器、電解電容、普通電容、電阻、鈕子開關等
元件的知識,對于初學者,可以做一個只有3 個數(shù)碼管、8 個按鈕、8 個發(fā)光二極管的簡單實驗板,這樣
的實驗板,雖然簡單,但足可以幫助初學者入門單片機。自制實驗電路板與自制FET 一樣,首先畫電路圖,
然后買元件,再畫電路板。由于MSP430系列芯片是扁平封裝,焊接起來有一定難度,這好象是個挑戰(zhàn),
但實際上很簡單,方法如下:首先在焊盤上涂上松香水,在松香水未干的情況下,將芯片放在焊盤上,注
意芯片第一引腳的位置,并使引腳與焊盤對齊,將擦干凈的電烙鐵(不能有任何焊錫)接觸引腳,引腳只
要一熱,焊盤上的焊錫就自動將引腳焊住了,千萬注意電烙鐵上不能有焊錫,焊接時最好配備一個放大鏡。
焊接電路板時,每一個元件都要核對參數(shù),可以用萬用表測量的元件一定要測量。
(4)從網上獲得IAR 軟件
到利爾達公司或TI公司的網站下載IAR 軟件,并安裝到計算機上。
(5)調試FET 和實驗板
將FET 的一端與PC機的并行口相連,另一端連接實驗板的JTAG 接口,上電后,檢查FET 芯片、實驗
板上的單片機芯片是否發(fā)熱(用手模),PC機是否工作正常后,運行IAR 軟件,找個C語言或匯編語言的
例子,編譯成功后下載到單片機中,如果能夠下載,說明一切成功。否則還需要仔細研究,一般情況下,
只要電路板上的電路正確,元件參數(shù)準確,沒有不成功的。
(6)分步驟學習單片機
學習使用單片機就是理解單片機硬件結構,在匯編或C 語言中學會各種功能的初始化設置,以及實現(xiàn)
各種功能的程序編制。
第一步:數(shù)字I/O的使用
使用按鈕輸入信號,發(fā)光二極管顯示輸出電平,就可以學習引腳的數(shù)字I/O 功能,在按下某個按鈕后,
某發(fā)光二極管發(fā)亮,這就是數(shù)字電路中組合邏輯的功能,雖然很簡單,但是可以學習一般的單片機編程思
想,例如,必須設置很多寄存器對引腳進行初始化處理,才能使引腳具備有數(shù)字輸入和輸出輸出功能。每
使用單片機的一個功能,就要對控制該功能的寄存器進行設置,這就是單片機編程的特點,千萬不要怕麻
煩,所有的單片機都是這樣。
第二步:定時器的使用
學會定時器的使用,就可以用單片機實現(xiàn)時序電路,時序電路的功能是強大的,在工業(yè)、家用電氣設
備的控制中有很多應用,例如,可以用單片機實現(xiàn)一個具有一個按鈕的樓道燈開關,該開關在按鈕按下一
次后,燈亮3 分鐘后自動滅,當按鈕連續(xù)按下兩次后,燈常亮不滅,當按鈕按下時間超過2s,則燈滅。
數(shù)字集成電路可以實現(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接口編程等等知識。試想,單片機實驗板上的數(shù)據顯示在PC機監(jiān)視器上,而PC機的鍵盤信號可以
在單片機實驗板上得到顯示,將是多么有意思的事情啊!
第五步:學會A/D轉換
MAP430單片機帶有多通道12位A/D 轉換器,通過這些A/D 轉換器可以使單片機操作模擬量,顯示
和檢測電壓、電流等信號。學習時注意模擬地與數(shù)字地、參考電壓、采樣時間,轉換速率,轉換誤差等概
念。
使用A/D 轉換功能的簡單的例子是設計一個電壓表。
第六步:學會PCI、I2C 接口和液晶顯示器接口
這些接口的使用可以使單片機更容易連接外部設備,在擴展單片機功能方面非常重要。
第七步:學會比較、捕捉、PWM 功能
這些功能可以使單片機能夠控制電機,檢測轉速信號,實現(xiàn)電機調速器等控制起功能。
如果以上七步都學會,就可以設計一般的應用系統(tǒng),相當于學會十招降龍十八掌,可以出手攻擊了。
第八步:學習USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設計
學習USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設計是非常重要的,因為這是當前產品開
發(fā)的發(fā)展方向。
到此為止,相當于學會15招降龍十八掌,但還不到打遍天下無敵手的境界。即使如此,也算是單片
機大蝦了。順便說一句,MSP430單片機的技術支持是非常好的,負責任的工程師大蝦會在關鍵時候,挺
身而出,使你化險為夷。
6. 達到理想境界
達到理想境界是困難的,在知識爆炸的年代里,即使天天學習,也很難跟上科學技術的發(fā)展,更何況
每天還要為找工作、提職稱、寫論文、搞科研經費、政治學習、買房、購車、柴、米、油、鹽、醬、醋、
茶等忙活,那么,還需要學習嗎?回答是肯定的,人就是為興趣而活,愛好單片機才能學會單片機,不為
什么目的,只為學習的樂趣,當然要是興趣也能賺錢,則是一舉兩得。
學會使用單片機其實是學會了使用工具,充其量是個補鍋、鋦碗的匠人。如果再要進步,就需要在信
號識別、控制理論、數(shù)字信號處理理論、通信理論等方面下工夫,只有這樣,才能開發(fā)出高水平、高附加
值、具有知識產權的產品,達到熟練運用降龍十八掌,打遍天下無敵手的至高境界。
單片機是DSP、嵌入式操作系統(tǒng)等高級硬件產品開發(fā)的基礎。如果想要進一步的發(fā)展,必須學會單片
機的開發(fā)。
如果在學會單片機的基礎之上,學會CPLD和FPGA 的開發(fā)以及硬件描述語言,就可以在高速產品的開
發(fā)方面獲得一杯羹。
編輯:admin 最后修改時間:2018-05-18