當(dāng)前位置:首頁(yè) > 技術(shù)學(xué)院 > 技術(shù)前線
[導(dǎo)讀]初學(xué)者的態(tài)度很重要。哪一款單片機(jī)不重要,只要你精通擅長(zhǎng)一款,日后再用其他公司的那都是小菜一碟,進(jìn)而學(xué)習(xí)32位的處理器也是游刃有余,輕松自如,否則,每個(gè)單片機(jī)對(duì)你來(lái)說(shuō),都永遠(yuǎn)處于入門狀態(tài)。

很多電子愛好者都會(huì)學(xué)習(xí)單片機(jī),在學(xué)之前會(huì)感覺單片機(jī)好神秘的樣子,其實(shí)說(shuō)白了單片機(jī)就是可以去自動(dòng)的實(shí)現(xiàn)你的想法的一塊芯片,那在實(shí)現(xiàn)你想法的時(shí)候就需要外部的一些電路啊,機(jī)械結(jié)構(gòu)啊(統(tǒng)稱外設(shè))等等的作為輔助來(lái)完成。學(xué)單片機(jī)就是把你的想法告訴單片機(jī)芯片,怎么告訴它呢?

我們?nèi)祟惗氖侨祟惖恼Z(yǔ)言(漢字),單片機(jī)它懂的是機(jī)器語(yǔ)言。人通過(guò)學(xué)習(xí)可以懂英語(yǔ),德語(yǔ),還可以學(xué)懂C語(yǔ)言,匯編語(yǔ)言。怎么用這些人類學(xué)會(huì)的語(yǔ)言轉(zhuǎn)換為單片機(jī)懂的機(jī)器語(yǔ)言呢,這就是學(xué)習(xí)單片機(jī)的核心部分----編程。編程的工具就是開發(fā)環(huán)境,說(shuō)白了就是個(gè)寫代碼的軟件,由軟件來(lái)把我們?nèi)祟惖恼Z(yǔ)言翻譯為機(jī)器語(yǔ)言給單片機(jī)識(shí)別?,F(xiàn)在我們推薦大家還是學(xué)C語(yǔ)言,優(yōu)點(diǎn)就不說(shuō)了,百度可以找到一大堆。今天的主題就是我們?nèi)绾蝸?lái)學(xué)這個(gè)C語(yǔ)言,在此特指單片機(jī)的C語(yǔ)言啊,更準(zhǔn)確的說(shuō)是如何來(lái)學(xué)習(xí)單片機(jī)這門手藝?

回到主題,小代在此呢總結(jié)了學(xué)習(xí)單片機(jī)的六個(gè)步驟,這幾個(gè)步驟是小代自己覺得這樣說(shuō)比較好,可能也不全對(duì),大家看看就好。

在我的學(xué)生中,不少人覺得8位機(jī)太簡(jiǎn)單了,稍微入門就準(zhǔn)備要學(xué)嵌入式,搞ARM,玩Linux。在他們看來(lái),會(huì)單片機(jī)并不等于嵌入式。實(shí)際上這是兩個(gè)概念,而且你會(huì)用單片機(jī)就等于你能用單片機(jī)了嗎?不,還差很遠(yuǎn)。不管是8位機(jī)還是32位機(jī),它只是你解決問題的一個(gè)工具而已。很多人都會(huì)用C語(yǔ)言,但是有幾個(gè)人能用C語(yǔ)言寫出Linux和uCOS來(lái)呢?

所以,初學(xué)者的態(tài)度很重要。哪一款單片機(jī)不重要,只要你精通擅長(zhǎng)一款,日后再用其他公司的那都是小菜一碟,進(jìn)而學(xué)習(xí)32位的處理器也是游刃有余,輕松自如,否則,每個(gè)單片機(jī)對(duì)你來(lái)說(shuō),都永遠(yuǎn)處于入門狀態(tài)。

一頁(yè)紙講清單片機(jī)

也許有人問:有沒有那么簡(jiǎn)單呀?

當(dāng)然不會(huì)那么簡(jiǎn)單啦,首先你要把書讀薄,然后再把書讀后,最后把書放進(jìn)自己腦子里,形成自己的一套思路。

理解任何一個(gè)事物,最好把握它的本質(zhì)。對(duì)于各個(gè)各樣的嵌入式微處理器產(chǎn)品,實(shí)際上用一頁(yè)紙就可以把本質(zhì)的脈絡(luò)說(shuō)清楚。有這么神奇,嗯...我也是自己總結(jié)的,大家可以看看,加以斧正。

8位和32位機(jī)都可以看成是“內(nèi)核+外設(shè)”的結(jié)構(gòu),外設(shè)多,單片機(jī)就復(fù)雜些,總線位數(shù)高,運(yùn)行就快一些。本質(zhì)上還逃不出這個(gè)架構(gòu)。對(duì)于設(shè)計(jì)人員編程來(lái)說(shuō),操作外設(shè)實(shí)際上就是讀寫各種特殊功能寄存器,傳輸數(shù)據(jù)就是讀寫總線,相應(yīng)外設(shè)就是處理中斷。除了這三大操作,好像沒有其他了。當(dāng)然對(duì)于不同的外設(shè),其特殊功能寄存器的定義不同,中斷向量不同,操作流程不同,但本質(zhì)上還是在操作寄存器、總線和中斷。

有人不服說(shuō),不會(huì)吧,一定還有別的。當(dāng)然有了,但對(duì)于初學(xué)者來(lái)說(shuō),不要鉆牛角尖,把常見的、大多數(shù)的東西把握了,慢慢再去研究小眾技能吧。上面講了這么多,實(shí)際上就想告訴初學(xué)者:嵌入式或者單片機(jī)的入門真的不難,但也不容易,需要你拿出態(tài)度來(lái)。我經(jīng)常對(duì)我的學(xué)生說(shuō):“單片機(jī)或者嵌入式這東西是入門難,到經(jīng)驗(yàn)積累到一定程度就比較容易了?!?

一些不是建議的經(jīng)驗(yàn)

1、從8位單片機(jī)入門比較好一點(diǎn),選好一個(gè)型號(hào),認(rèn)真學(xué)習(xí),直到精通。

2、多練習(xí),多寫代碼,多上網(wǎng)看看博客,當(dāng)然自己要有一塊學(xué)習(xí)板了。

3、掌握簡(jiǎn)單常用的模擬電路和數(shù)字電路,比如:電阻限流、電容濾波、運(yùn)放放大等等,將來(lái)你在設(shè)計(jì)電路和調(diào)試程序的時(shí)候都會(huì)用到。

4、精通C語(yǔ)言,特別是指針和數(shù)組,最好把預(yù)處理和編譯過(guò)程了解一下。

5、掌握一個(gè)電路設(shè)計(jì)軟件,對(duì)于單片機(jī),其實(shí)會(huì)Protell99都可以了。

6、會(huì)使用萬(wàn)用表,最好有示波器啦,而且要掌握一些常用的測(cè)試手段。

7、在自己學(xué)習(xí)過(guò)程中,整理并形成自己的元器件庫(kù)和常用程序庫(kù),這是你進(jìn)階下一階段成為高手的關(guān)鍵。

8、多看看各種單片機(jī)案例,掌握各種常用芯片的使用,嵌入式就是一個(gè)逐漸積累的過(guò)程。你的嵌入式技術(shù)有多高,就看你心里的案例與資源有多少?,F(xiàn)在各種功能都有模塊或?qū)S眯酒€都提供UR、SPI、IIC等接口。

表面上你用單片機(jī)在實(shí)現(xiàn)藍(lán)牙,實(shí)際上你只是在使用單片機(jī)的串口讀寫數(shù)據(jù)。如果說(shuō)元器件電路模塊是硬件資源的積累,那么,常用接口模塊驅(qū)動(dòng)程序則是軟件資源的積累。 將來(lái)在你的產(chǎn)品設(shè)計(jì)中,可能用到很多新的模塊和元件,只要它的接口是SPI接口、IIC接口、UR串口等你熟悉的接口,那么對(duì)于你來(lái)說(shuō),它就是一個(gè)舊模塊和元件。因?yàn)閱纹瑱C(jī)實(shí)際上面對(duì)的不是模塊和元件,而是你熟悉的常用接口。

9、最好有做筆記的習(xí)慣,你也可以寫寫博客,這個(gè)到后面會(huì)有意想不到的作用。

經(jīng)典51內(nèi)核資源全覽濃縮圖

你不要當(dāng)51單片機(jī)是高科技產(chǎn)品,請(qǐng)把它看作一款玩具。你不是在學(xué)習(xí)開發(fā),你是在玩“極品飛車”。學(xué)習(xí)會(huì)讓懶人痛苦,而玩耍會(huì)給懶人快樂,沒有愉悅的心情,還談什么學(xué)好學(xué)精?

經(jīng)典款51單片機(jī)都有什么東西?一張圖就可以告訴你...


一文總結(jié)單片機(jī)初學(xué)者如何快速成為大神

<1> 四組8位并行I/O端口:

P0端口:PC門,集電極開路輸出,必須接上拉電阻才能輸出高電平。

P1端口:無(wú)特殊之處。

P2端口:訪問外部存儲(chǔ)器時(shí),作高8位地址用。

P3端口:功能復(fù)用端口,詳情看表。

<2> 三大外設(shè):外部中斷、定時(shí)/計(jì)數(shù)、串行通信

<3> 五個(gè)中斷源:2個(gè)外部中斷、2個(gè)定時(shí)/計(jì)數(shù)中斷、1個(gè)串行通信中斷

注意:要記住中斷號(hào)與中斷源的對(duì)應(yīng)關(guān)系...編程時(shí)會(huì)用到!

<4> 三大特殊功能寄存器:TCON、SCON、TMOD

經(jīng)典型51單片機(jī)的重要外設(shè)歸納

不管簡(jiǎn)單還是復(fù)雜的微處理器,其基本架構(gòu)都是“內(nèi)核+外設(shè)”,而控制外設(shè)的重要途徑就是特殊功能寄存器。作為一個(gè)嵌入式設(shè)計(jì)師,如果做底層的程序開發(fā),絕大部分的工作都在跟各種特殊功能寄存器打交道。

51單片機(jī)的外設(shè)不多,可以分成三大塊:中斷系統(tǒng)、定時(shí)/計(jì)數(shù)器和串行接口。

要想把這些外設(shè)應(yīng)用好,首先得把控制這些外設(shè)的特殊功能寄存器弄明白,其實(shí)也不多,就下面幾個(gè):

IE寄存器:中斷控制寄存器。

IP寄存器:中斷優(yōu)先級(jí)寄存器。

TCON寄存器:中斷狀態(tài)標(biāo)志寄存器。

TMOD寄存器:定時(shí)/技術(shù)模式控制寄存器。

THx和TLx寄存器:定時(shí)/計(jì)數(shù)器的技術(shù)初值寄存器。

SCON寄存器:串口控制寄存器。

SBUF寄存器:串行接口收據(jù)發(fā)送和接收緩沖器。

<1> IE寄存器與IP寄存器(IP用的不多)

一文總結(jié)單片機(jī)初學(xué)者如何快速成為大神

<2> TCON寄存器

<3> TMOD寄存器

<4> SCON寄存器

程序設(shè)計(jì)要點(diǎn)

<1> 引入頭文件

在單片機(jī)的程序設(shè)計(jì)中,很多時(shí)候需要操作特殊功能寄存器,而這些寄存器實(shí)際上就是芯片中的一個(gè)內(nèi)存地址。我們要記住這些地址很難,而且代碼編寫也比較復(fù)雜。為了方便記憶和使用,我們給每一個(gè)特殊功能寄存器都起了一個(gè)名字。如果在程序設(shè)計(jì)中你想直接使用這些名字,那么你就需要引入對(duì)應(yīng)當(dāng)芯片頭文件,例如51單片機(jī),你需要引入“reg52.h”文件。

特殊功能寄存器P0的地址為80H,引入這個(gè)頭文件之后,你就可以使用P0這個(gè)名字了

P0 = 0x02;

<2> 中斷服務(wù)函數(shù)的格式

在51單片機(jī)中有5個(gè)中斷源,每個(gè)中斷源都有固定的入口地址(也就是中斷向量)和中斷號(hào)。我們?cè)诔绦蛟O(shè)計(jì)的過(guò)程中,不需要記住中斷向量地址,但需要知道每個(gè)中斷源對(duì)應(yīng)的中斷號(hào)(參考【經(jīng)典51懶人5步速成法-01】)

一般情況下,中斷的處理函數(shù)有兩個(gè),其一為中斷初始化函數(shù),其二為中斷服務(wù)函數(shù)。初始化函數(shù)就是一個(gè)普通的函數(shù),而中斷服務(wù)函數(shù)卻有特殊的格式要求:

A. 中斷函數(shù)沒有返回值,也不能帶參數(shù)。

B. 函數(shù)名后面要跟一個(gè)關(guān)鍵字interrupt,說(shuō)明這是一個(gè)中斷服務(wù)函數(shù)。

C. 在關(guān)鍵字interrupt后面要跟上中斷號(hào),說(shuō)明這個(gè)中斷服務(wù)函數(shù)是為那個(gè)中斷服務(wù)的。

中斷服務(wù)函數(shù)的格式為:

void 函數(shù)名() interrupt 中斷號(hào)

{ ----函數(shù)體---- }

例如,定時(shí)器0的中斷服務(wù)函數(shù),我們C語(yǔ)言可以這樣寫:

三大外設(shè)的開發(fā)與可重用代碼

在51內(nèi)核的單片機(jī)中,主要有外部中斷、定時(shí)計(jì)數(shù)和串行通信三大外設(shè)。在其他的嵌入式芯片中,這三個(gè)外設(shè)也是必不可少的。三大外設(shè)的程序設(shè)計(jì)實(shí)際上就成了51單片機(jī)最基礎(chǔ)核心,掌握著三個(gè)部分的設(shè)計(jì)思路是學(xué)習(xí)單片機(jī)開發(fā)的必經(jīng)之路。

編寫三大外設(shè)的程序?qū)嶋H上有很多類似的地方。它們都需要進(jìn)行初始的寄存器配置,也就是初始化,它們都和中斷有關(guān),都需要編寫中斷服務(wù)函數(shù)。因此,對(duì)于每一個(gè)外設(shè),我們都需要編寫一個(gè)初始化函數(shù)和中斷服務(wù)函數(shù)。這些函數(shù)在不同的應(yīng)用工程中實(shí)際上都差不多,也就是說(shuō)代碼的重用性很高。

1、外部中斷模塊

在51單片機(jī)中有INT0和INT1兩個(gè)中斷模塊,外部的觸發(fā)信號(hào)可以是電平,也可以是邊沿,由寄存器TCON的IT0和IT1位來(lái)決定。


一文總結(jié)單片機(jī)初學(xué)者如何快速成為大神

2、定時(shí)/計(jì)數(shù)模塊

在51單片機(jī)中有T0和T1兩個(gè)定時(shí)器,對(duì)內(nèi)部可以定時(shí),對(duì)外部可以計(jì)數(shù)。在初始化的時(shí)候,需要確定該模塊是定時(shí)功能還是技術(shù)功能,工作模式是什么,最大計(jì)數(shù)值是多少。


一文總結(jié)單片機(jī)初學(xué)者如何快速成為大神

3、串行接口模塊

在51單片機(jī)的串行接口中,產(chǎn)生波特率需要占用定時(shí)器T1,發(fā)送數(shù)據(jù)時(shí),將內(nèi)容放到SBUF中,數(shù)據(jù)發(fā)送完畢,TI會(huì)置1。當(dāng)完整接收到一個(gè)數(shù)據(jù)后,RI會(huì)置1,這時(shí)從SBUF中將內(nèi)容讀出即可。不管是TI還是RI標(biāo)志位,都需要人工清0。

一般情況下,發(fā)送數(shù)據(jù)采用查詢方式,接收數(shù)據(jù)采用中斷方式。


結(jié)束語(yǔ)

嵌入式應(yīng)用開發(fā)涉及的知識(shí)點(diǎn)很多,初次接觸往往感到無(wú)從下手。沒錯(cuò),與一些高級(jí)編程語(yǔ)言“易懂難精”的情況相比,嵌入式應(yīng)用開發(fā)的入門是比較難的,但是,隨著知識(shí)的積累和經(jīng)驗(yàn)的豐富,后面的路會(huì)越走越寬,越走越順。廣大的嵌入式應(yīng)用開發(fā)入門者應(yīng)該充滿信心。我一直都認(rèn)為嵌入式應(yīng)用開發(fā)就像一場(chǎng)馬拉松,必須一步一個(gè)腳印,積蓄能量,逐步進(jìn)階,才能越走越遠(yuǎn)的。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉