菜鳥零基礎(chǔ)學(xué)電子之從屌絲向高富帥的第一步
51單片機(jī)是每位電子工程師,最先接觸到的單片機(jī)(至少我認(rèn)識的都是,也不排除有高人),很多大神認(rèn)為51即將完成它的歷史使命,但是個人覺得,它簡單的操作,是新童鞋用來入門的不二之選。它的價格低廉,一碗刀削面的價格,再加上它的資料非常多,最為代表性的是郭天祥老師的教程《教你十天學(xué)會單片機(jī)》 。童鞋們要意識到51單片機(jī)是作為步入電子世界的第一個臺階。
如果你現(xiàn)在還在熱衷于用51單片機(jī)做小車、驅(qū)動LED、做電源,那么你已經(jīng)OUT了,如果你堅持要把51用到資源耗盡再轉(zhuǎn)型,那屌絲之路還有很長一段要走。你要果斷放棄使用51單片機(jī)向高富帥邁出第一步,MSP430單片機(jī),個人認(rèn)為是學(xué)單片機(jī)的第二個臺階,現(xiàn)在我就來告訴你為什么。
1. MSP430F149單片機(jī)VS STC89C52
看看下表,MSP430F149和STC89C52的區(qū)別,簡直是萬惡的美帝國主義和墨西哥階級弟兄的區(qū)別??纯碦OM和RAM,一個是上汽通用五菱微型面包車,一個是擎天柱大哥,要知道ROM越大所能裝載的程序就越大,RAM越大臨時存儲的數(shù)據(jù)越多;看看片上集成的外設(shè),一個是武裝到牙齒的美式裝備,一個是小米加步槍,是小米+步槍,不是小米加牌步槍;再看看功耗模式和電源要求,真男人,不解釋。
有人會吐槽價格,看看片上外設(shè)吧,你要是使用STC89C52+ASIC的組合,估計價格遠(yuǎn)遠(yuǎn)超過10元了;有人會吐槽封裝,沒記錯的話,MSP430也有DIP封裝喲。
msp430在運算速度上,是51單片機(jī)無法比擬的。再加上MSP430內(nèi)部集成了硬件乘法器,大大提高了運算速率。Msp430是低功耗單片機(jī),特別適用于采用電池供電設(shè)備。如果你將來往低功耗發(fā)展,那么msp430和PIC個很好選擇。
51單片機(jī)是最容易學(xué)的單片機(jī),但是它的各方面的性能也是很低的,在實際應(yīng)用中很少有人去用51來開發(fā)產(chǎn)。那么要向更高端的單片機(jī)發(fā)展,msp430是比較好的選擇,一方面它讓你涉及低功耗的應(yīng)用,另一方面它的功能和性能已經(jīng)接近ARM處理器了,學(xué)好MSP430是為將來學(xué)習(xí)ARM做鋪墊。
如何很快入門MSP430單片機(jī)
學(xué)習(xí)單片機(jī)最快速最有效的方法是用開發(fā)板來學(xué)習(xí)。當(dāng)你購買了開發(fā)板的時候,賣家會給你配送相關(guān)的教程,只要稍加練習(xí)我想很快就能入門。
本人在學(xué)習(xí)MSP430的時候也是這樣過來的,現(xiàn)在將我的經(jīng)驗與您分享希望對您有幫助,從51單片機(jī)跨越到msp430單片機(jī)要多長的時間,我說只需要一天,即使學(xué)習(xí)能力不強(qiáng)的童鞋慢慢琢磨最多一個星期的時間就可以入門。現(xiàn)在我想教會大家?guī)渍?,幫助你快速入門MSP430單片機(jī)。
第一招:吸星大法
吸星大法,一門可以吸走他人內(nèi)功,占為己用的武功,此武功曾稱霸武林,威震四海。單片機(jī)的種類用手指和腳趾是數(shù)不過來的,用頭發(fā)來數(shù)還有些勉強(qiáng)。若是要每一種單片機(jī)都去學(xué)它的內(nèi)部結(jié)構(gòu),再來編程和應(yīng)用開發(fā),那簡直是蠟筆小新才能做的事。所有任幫主就研發(fā)了吸星大法,以吸取他人經(jīng)驗為手段,再加上自身修煉,很快就能擁有一門新的武功。
在學(xué)習(xí)MSP430單片機(jī)中我們怎么應(yīng)用吸星大法呢?
打開你的IE瀏覽器,進(jìn)入淘寶主頁,搜索MSP430單片機(jī)開發(fā)板,出來的寶貝令郎滿目,而且絕大部分都是帶有視頻教程和數(shù)據(jù)手冊的。這些視頻教程就是可以讓你少走很多彎路,首先你要學(xué)會怎么安裝IAR軟件,然后怎么設(shè)置軟件,創(chuàng)建一個新的工程。這是最基本的技能,一步一步的跟著他學(xué),你會發(fā)現(xiàn)用msp430和51單片機(jī)是差不多一樣,有它的共性,也有它的不同。
學(xué)習(xí)單片機(jī),就要盡可能的減少花費在尋址資料和閱讀大量數(shù)據(jù)手冊上的時間,應(yīng)該把時間花在對程序的分析,和對寄存器設(shè)置的記憶上。在你買你的開發(fā)板時,你的賣家已經(jīng)幫你把資料整理,把教程和例子都給你,那么就等你把它一一吸入你的大腦轉(zhuǎn)變成為你的知識。
吸星大法——學(xué)會利用開發(fā)板及視頻教程,盡可能的減少彎路,將更多時間用于實際的操作和開發(fā)中。
第二招:移花接木
移花接木,是一門與吸星大法相似的武功,但是移花接木的不同之處是利用自己以前用過的武功,轉(zhuǎn)接到新的武功中去,瞬間爆發(fā)出巨大的威力。
就51單片機(jī)和MSP430單片機(jī)來說,兩種單片機(jī)的編程上有它的相同的地方,也有它不同的地方,我們可以利用51單片機(jī)的程序只需要修改幾個字母,那么它的程序就能當(dāng)做MSP430的程序,這種方法叫程序移植。C語言有很強(qiáng)的移植性,無論是什么單片機(jī),只要是用C語言編程的,大多都可以相互移植,但是移植程序需要將程序模塊化,否則移植會變得更加困難。
51 程序模塊化移植msp430舉例說明
分別用51單片機(jī)和MSP430控制兩個燈,一個紅燈一個綠燈,兩個燈交替亮滅,時間間隔0.5秒。 要求:程序要用模塊化設(shè)計,并且可輕易移植
51單片機(jī)硬件電路:
紅燈陽極接上拉電阻,陰極接單片機(jī)P1.0引腳。
綠燈陽極接上拉電阻,陰極接單片機(jī)P1.1引腳
Msp430單片機(jī)硬件電路:
紅燈陽極接上拉電阻,陰極接單片機(jī)P2.0引腳。
綠燈陽極接上拉電阻,陰極接單片機(jī)P2.1引腳。
紅色字體就是51單片機(jī)與MSP430單片機(jī)在編程上的不同點。 51單片機(jī)需要用IO口時需要位聲明,例如 sbit P10 = P1^0; 而MSP430單片機(jī)不需要位定義,但是要設(shè)置設(shè)置IO的方向,例如 P2DIR|= BIT0; 把P20 IO引腳配置成輸出模式。
MSP430默認(rèn)打開看門狗,所有在程序開始時要關(guān)掉。
藍(lán)色字體為延遲函數(shù),每一種單片機(jī)的延遲函數(shù)都是不相同的,這取決于單片機(jī)單個機(jī)器周期所用的時間,所有在移植程序的時候不能移植延遲函數(shù)。但是為了其他程序移植方便,需要將兩種不同單片機(jī)的延遲函數(shù)的函數(shù)名取相同。
51單片機(jī)的延遲函數(shù)一般采用程序延遲,這種延遲方法不精確。
在本文中,MSP430的延遲方式采用MSP430函數(shù)庫中的延遲函數(shù),__delay_cycles((long)(CPU_F*(double)x/1000.0))來做精確延遲,只需要用戶設(shè)置好晶振頻率即可。
黑色加粗字體,就是我們應(yīng)用函數(shù),這個應(yīng)用函數(shù)就是一個可移植的模塊,這個模塊的程序無論移植到哪里都不需要修改直接就可以用。這就是程序模塊化移植思想。這個程序不僅僅能應(yīng)用與MSP430,還能應(yīng)用其他的單片機(jī),比如STM32。
模塊化的程序有以下特點:
1. 在應(yīng)用函數(shù)內(nèi)不能出現(xiàn) P10 = 1; 或者 P1OUT &=BIT0; 這些IO口配置的代碼 ,必須使用其他名詞來代替,比如#define Red_ON P10 = 0,我們就把P10口打開狀態(tài)用Red_ON來取代。
2. 模塊化的程序一般用英文來描述,比如說 Red_ON 意思紅燈開,意思表述很明確,所有模塊化程序的優(yōu)點之一是方便閱讀和理解。
3.一般的IO配置,常用#define 來定義。并存放在頭文件內(nèi)或者程序的開頭。