我們以大家最熟悉的 51 單片機(jī)為例子,講解之前我們所有講到的點(diǎn)。然后以 51 拓展到其他方方面面的單片機(jī)。要做到,一片在手說(shuō)走就走!
首先,先回憶一下,我們想要控制單片機(jī)需要什么(不就是 C 語(yǔ)言嗎?),是的,我們靠 C 語(yǔ)言來(lái)控制單片機(jī),但是有了 C 語(yǔ)言就夠了嗎?當(dāng)然不夠,我們還需要開(kāi)發(fā)工具等等一系列的亂七八糟的東西,但是本章我們只講解開(kāi)發(fā)過(guò)程,不涉及實(shí)際項(xiàng)目和正確的工程,我只是想說(shuō)明一個(gè)大概的思路,畢竟有了思路,才知道自己缺少了什么。
芯片簡(jiǎn)介
實(shí)物圖
這樣就是我們所謂的 51 單片機(jī)實(shí)物圖。也就是它把你搞得欲仙欲死,現(xiàn)在就跟我說(shuō)來(lái)把它的衣服一層一層的剝開(kāi)。實(shí)物圖雖然具體但是你暫時(shí)沒(méi)法分辨那門多針腳是用來(lái)干什么的。以下我?guī)?lái)原理圖給大家介紹一下引腳功能。
這是張將包含了單片機(jī)的最小系統(tǒng),也就是說(shuō),只要你能保證電阻,電容,晶振等等(你問(wèn)我啥叫晶振,啥叫電阻?不好意思,我就不告訴你。)和圖上的連接方式保持一致,那么,你只要提供 VCC 和 GND 的外部供電,整個(gè)單片機(jī)就會(huì)活過(guò)來(lái)了,它就會(huì)一步一步的執(zhí)行你寫的代碼了。
看到上面的 P1.0-P1.7 P2.0-P2.7 P3.0-P3.7 P0.0-P0.7 這些引腳就是我們可以控制的 IO 口了(什么叫 IO 口,請(qǐng)回看之前章節(jié))。
控制心法
好了,我記得之前有說(shuō)過(guò) IO 口是可以控制的,而 51 單片機(jī)也有這么多 IO 口。我們又知道了需要使用 C 語(yǔ)言來(lái)控制單片機(jī)。那么,我現(xiàn)在到底需要怎么做?我真的好煩。
先看圖,給大家依次講解:
- #include“XXX” 是 C 語(yǔ)言的標(biāo)準(zhǔn)寫法,而后面跟著的 reg52.h 是 52 芯片的一個(gè)編號(hào)文件,還記得我們說(shuō)的,我們和單片機(jī)交流,需要告訴它一個(gè)編號(hào)。這樣我們就能使用像下面的 P2 這種符號(hào)了。如果你不 #include “reg52.h”的話,后面的 P2 你是不能用的,因?yàn)閱纹瑱C(jī)再想,這是個(gè)啥玩意。
- 第二行是一個(gè)標(biāo)準(zhǔn)的 C 語(yǔ)言寫法,也就是說(shuō),你不管在寫什么單片機(jī)程序,你都需要提供一個(gè)main函數(shù)(至于什么叫函數(shù),自行惡補(bǔ)C語(yǔ)言知識(shí),或者下面專門一章講解一下)。
- 第三行,我們實(shí)現(xiàn)了讓整個(gè) P2 端口(P2.0-P2.7)為 1。這是什么意思呢?且聽(tīng)我娓娓道來(lái),這就是咱們功法的最高技巧!一定要注意。我們先將P2.7 P2.6 … P2.0 依次排列下來(lái)。如下圖
這樣你就可以通過(guò) P2 這個(gè)符號(hào)來(lái)控制 P2 端口上的任意一個(gè)引腳(P2.7 ~ P2.0)的輸出電平了。如上圖的話我們可以簡(jiǎn)單的用二進(jìn)制表示為 :0b10101100,注意這是二進(jìn)制,換成你看懂的樣子也就是十進(jìn)制:172,換算成16進(jìn)制就是 0xAC。也就是說(shuō) 0b10101100 = 172 = 0xAC,大家習(xí)慣使用 16 進(jìn)制的 0x 表示。
這時(shí)候我們想讓單片機(jī)的 P2.6 輸出高電平怎么處理呢?(不就是 P2 = 0b11101100嘛)。對(duì)樓,就是這么簡(jiǎn)單。這樣,你就會(huì)了如何控制一個(gè)單片機(jī)的引腳了。