任何一款單片機(jī),其實(shí)學(xué)習(xí)步驟都是一樣的,不管是8位的入門芯片,還是32位的高速芯片。以下步驟是必須的,按部就班的學(xué)完了,你不成大神你來找我。
第一步:數(shù)字I/O的使用
使用按鍵輸入信號(hào),發(fā)光二極管顯示輸出電平,就可以學(xué)習(xí)引腳的數(shù)字I/O功能,在按下某個(gè)按鈕后,某發(fā)光二極管發(fā)亮,這就是數(shù)字電路中組合邏輯的功能,雖然很簡(jiǎn)單,但是可以學(xué)習(xí)一般的單片機(jī)編程思想,同時(shí)還學(xué)會(huì)了寄存器的操作方式。例如,必須設(shè)置很多寄存器對(duì)引腳進(jìn)行初始化處理,才能使引腳具備有數(shù)字輸入和輸出輸出功能。
每使用單片機(jī)的一個(gè)功能,就要對(duì)控制該功能的寄存器進(jìn)行設(shè)置,這就是單片機(jī)編程的特點(diǎn),千萬不要怕麻煩,所有的單片機(jī)都是這樣。要注意的是兩個(gè)功能使用同一組I/O口,比如LCD和LED數(shù)據(jù)端口在好多例程里都是共用一組端口,如果兩者結(jié)合,會(huì)有沖突,達(dá)不到預(yù)期的效果,或者在現(xiàn)在LCD的同時(shí)LED也在亂跳,這是目前大開發(fā)板采用的方式,建議不同的模塊使用不同的IO口。
第二步:定時(shí)器的使用
學(xué)會(huì)定時(shí)器的使用,就可以寫出更高效的程序,別人的程序跑完一遍需要100ms,加入定時(shí)器后,你的程序跑完一遍可能只要10ms,在工業(yè)、家用電氣設(shè)備的控制中也有很多應(yīng)用。真正會(huì)寫程序的人必然是用定時(shí)器的高手。例如,可以用單片機(jī)實(shí)現(xiàn)一個(gè)具有一個(gè)按鈕的樓道燈開關(guān),該開關(guān)在按鈕按下一次后,燈亮3分鐘后自動(dòng)滅,當(dāng)按鈕連續(xù)按下兩次后,燈常亮不滅,當(dāng)按鈕按下時(shí)間超過2s,則燈滅。
數(shù)字集成電路可以實(shí)現(xiàn)時(shí)序電路,可編程邏輯器件(PLD)可以實(shí)現(xiàn)時(shí)序電路,可編程控制器(PLC)也可以實(shí)現(xiàn)時(shí)序電路,但是只有單片機(jī)實(shí)現(xiàn)起來最簡(jiǎn)單,成本最低。定時(shí)器的使用是非常重要的,邏輯加時(shí)間控制是單片機(jī)使用的基礎(chǔ)。
第三步:中斷
單片機(jī)的特點(diǎn)是一段程序反復(fù)執(zhí)行,程序中的每個(gè)指令的執(zhí)行都需要一定的執(zhí)行時(shí)間,如果程序沒有執(zhí)行到某指令,則該指令的動(dòng)作就不會(huì)發(fā)生,這樣就會(huì)耽誤很多快速發(fā)生的事情,例如,按鈕按下時(shí)的下降沿。要使單片機(jī)在程序正常運(yùn)行過程中,對(duì)快速動(dòng)作做出反應(yīng),就必須使用單片機(jī)的中斷功能,該功能就是在快速動(dòng)作發(fā)生后,單片機(jī)中斷正常運(yùn)行的程序,處理快速發(fā)生的動(dòng)作,處理完成后,在返回執(zhí)行正常的程序。
中斷功能使用中的困難是需要精確地知道什么時(shí)候不允許中斷發(fā)生(屏蔽中斷)、什么時(shí)候允許中斷發(fā)生(開中斷),需要設(shè)置哪些寄存器才能使某種中斷起作用,中斷開始時(shí),程序應(yīng)該干什么,中斷完成后,程序應(yīng)該干什么等等。中斷學(xué)會(huì)后,就可以編制更復(fù)雜結(jié)構(gòu)的程序,這樣的程序可以干著一件事,監(jiān)視著N件事(多個(gè)中斷),一旦監(jiān)視的事情發(fā)生,就中斷正在干的事情,處理監(jiān)視的事情,形象的比喻,中斷功能使單片機(jī)具有吃著碗里的,看著鍋里的功能。舉個(gè)例子,中斷就是,你正在宿舍寫代碼,突然有人敲門,你停下寫代碼去開門,開完門后又回來接著寫你的代碼,這就是一個(gè)中斷的過程。以上三步學(xué)會(huì),就相當(dāng)于降龍十八掌武功,會(huì)了三掌了,可以勉強(qiáng)護(hù)身。但是離大神還有很長(zhǎng)一段距離。
第四步:串口的使用
單片機(jī)都有串口,比如國(guó)產(chǎn)芯片STC15系列的很多型號(hào),都具有兩個(gè)串口,更有一些型號(hào)有4個(gè)串口的。單片機(jī)串口接口不能直接與PC機(jī)的RS232接口連接,因?yàn)樗鼈冎g的邏輯電平不同,需要使用一個(gè)電平轉(zhuǎn)換芯片進(jìn)行電平轉(zhuǎn)換,最常用的轉(zhuǎn)換芯片是MAX232。
串口接口的使用是非常重要的,通過該接口,可以使單片機(jī)與PC機(jī)之間交換信息,雖然RS232通信并不先進(jìn),但是對(duì)于接口的學(xué)習(xí)是非常重要的。正確使用串口,需要學(xué)習(xí)通信協(xié)議,PC機(jī)的RS232接口編程等等知識(shí)。試想,單片機(jī)實(shí)驗(yàn)板上的數(shù)據(jù)顯示在PC機(jī)監(jiān)視器上,而PC機(jī)的鍵盤信號(hào)可以在單片機(jī)實(shí)驗(yàn)板上得到顯示,將是多么有意思的事情啊!
第五步:A/D轉(zhuǎn)換器
很多單片機(jī)帶有多通道A/D轉(zhuǎn)換器,轉(zhuǎn)精度有8位,10,12位或更高的不等。STC15系列的就有8通道的10位高速A/D轉(zhuǎn)換器。通過A/D轉(zhuǎn)換器可以使單片機(jī)操作模擬量,顯示和檢測(cè)電壓、電流等信號(hào)。學(xué)習(xí)時(shí)注意模擬地與數(shù)字地、參考電壓、采樣時(shí)間,轉(zhuǎn)換速率,轉(zhuǎn)換誤差等概念。使用A/D轉(zhuǎn)換功能的簡(jiǎn)單的例子是設(shè)計(jì)一個(gè)電壓表。
第六步:學(xué)會(huì)用擴(kuò)展接口
學(xué)會(huì)PCI、I2C接口和液晶顯示器接口,這些接口的使用可以使單片機(jī)更容易連接外部設(shè)備,在擴(kuò)展單片機(jī)功能方面非常重要。
第七步:檢測(cè)、控制電機(jī)
學(xué)會(huì)比較、捕捉、PWM功能,這些功能可以使單片機(jī)能夠控制電機(jī),檢測(cè)轉(zhuǎn)速信號(hào),實(shí)現(xiàn)電機(jī)調(diào)速器等控制功能。
第八步:學(xué)習(xí)產(chǎn)品開發(fā)方向相關(guān)
學(xué)習(xí)USB接口、TCP/IP接口、各種工業(yè)總線的硬件與軟件設(shè)計(jì)是非常重要的,因?yàn)檫@是當(dāng)前產(chǎn)品開發(fā)的發(fā)展方向。
學(xué)完了這些東西,你肯定會(huì)躍躍欲試的了,此時(shí),最好的就是自己做項(xiàng)目,項(xiàng)目不在乎大小,不在乎難易,先從簡(jiǎn)單的開始做起。這里說的做項(xiàng)目不是說在開發(fā)板上寫個(gè)程序調(diào)試下就完了,是自己動(dòng)硬件設(shè)計(jì),電路圖的繪制,電路制作,電路焊接,程序的編寫及調(diào)試,最后出來一個(gè)完整的成品。土豪可以繪制PCB板圖打樣(現(xiàn)在打樣50塊大洋起價(jià),很便宜了),窮鬼就直接老老實(shí)實(shí)的用洞洞板手動(dòng)焊接電路。這樣又能更好的鍛煉焊接技術(shù)。
-
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635235 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3248瀏覽量
114792 -
串口
+關(guān)注
關(guān)注
14文章
1554瀏覽量
76512
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論