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