專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

圖文并茂單片機(jī)

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年06月09日   【字體:

看到不少人對(duì)單片機(jī)感興趣,但是不知道怎么玩。近日閑來無事,翻出之前自己當(dāng)初學(xué)習(xí)單片機(jī)的時(shí)候DIY的板子,今天我就按照我以前的學(xué)習(xí)單片機(jī)經(jīng)歷談?wù)剢纹瑱C(jī),圖文并茂、力求用通俗的說法,讓大家了解的更透徹!

先看單片機(jī),上圖:

(AT89S52單片機(jī))

單片機(jī)就是一個(gè)大的集成電路;通常是DIP—40腳封裝的。

講的通俗些,就是:?jiǎn)纹瑱C(jī)就是用程序控制周邊電路工作的一顆IC集成電路;通過向這顆IC寫入不同的程序,來實(shí)現(xiàn)不同的控制功能。這與我們常見的數(shù)字模擬電路不一樣,傳統(tǒng)的電路一旦硬件確定了,你的電路各個(gè)運(yùn)行參數(shù)的輸入、輸出也就是不變的了(比如大家做揚(yáng)聲器繼電保護(hù)電路,一旦充放電電容電阻確定了,延時(shí)時(shí)間就定了,除非換硬件,才可改變開關(guān)切換時(shí)間)。但是有了單片機(jī)的參與卻可以在硬件不變的情況下,通過更新軟件來得到更多的功能(好比一臺(tái)電腦CPU、主板、內(nèi)存、硬盤等硬件是確定的,但是可以通過編寫不同的軟件,得到更多的實(shí)用功能)。

模擬單片機(jī)的閃爍程序流程

舉個(gè)簡(jiǎn)單的例子,看看單片機(jī)的實(shí)際用途

看下圖,通過向單片機(jī)寫不同程序完成不同功能(這是一個(gè)單片機(jī)的最小化工作板+外圍電路)。下圖是單片機(jī)控制單片機(jī)顯示圖片,當(dāng)然你可以通過單片機(jī)在LCD上面顯示任何畫面漢字,是不是很有趣!

1、單片機(jī)小實(shí)驗(yàn)板+LCD12864點(diǎn)陣液晶

上面是單片機(jī)控制常用的點(diǎn)陣液晶顯示器,可以顯示圖片LOGO或者文字,總之你所以想到的,單片機(jī)基本都可以顯示出來。

2、單片機(jī)小實(shí)驗(yàn)板+數(shù)碼管+紅外接收頭

上面是單片機(jī)控制數(shù)碼管顯示數(shù)字;還可以外接紅外接收頭,接受遙控器發(fā)來的按鍵顯示相應(yīng)的數(shù)字字母。

當(dāng)然還可以做很多有趣的有用的試驗(yàn),大家繼續(xù)往下看,你就會(huì)體會(huì)到單片機(jī)的神奇之處!

言歸正傳,繼續(xù)漫談單片機(jī):

通常,也有人常把單片機(jī)比作微電腦/微處理單元(MCU----micro computer unit)。說白了,就是用個(gè)單片機(jī)寫幾個(gè)小程序,然后配合一些電路模塊產(chǎn)生特定頻率的脈沖嘛......

其實(shí),單片機(jī)在我們現(xiàn)實(shí)生活中用的很多,比如說馬路邊的10秒自動(dòng)翻轉(zhuǎn)一次的滾動(dòng)廣告牌、車站銀行的大屏幕信息顯示牌、全自動(dòng)洗衣機(jī)控制核心、做飯用的電磁爐控制核心、坐公交車使用的公交IC卡讀卡器等等。

簡(jiǎn)單的說一下,單片機(jī)在音響DIY上可以用來做開機(jī)延時(shí)保護(hù)、遙控音量控制、音源選擇、液晶/數(shù)碼管顯示、自動(dòng)開關(guān)機(jī)、設(shè)置參數(shù)記憶等等。所有你可以想到的功能(然而實(shí)現(xiàn)這全部功能只需要一片單片機(jī)、幾個(gè)三極管、繼電器、數(shù)碼管、遙控器,就可以全部搞定) !

可能會(huì)有人會(huì)忽然想到,既然單片機(jī)要運(yùn)行程序才能工作,那單片機(jī)是不是也得有存儲(chǔ)程序的地方,要不然程序放到哪里?既然有了程序單片機(jī)要跑程序是不是要有速度和頻率的?

聯(lián)想到我們現(xiàn)在上網(wǎng)的電腦,我們知道我們的主機(jī)電腦配置有:
1.CPU(速度:PIII800MHZ,32 位處理器)
2.硬盤:外置160G
3.內(nèi)存:外置512M
4.主板:XX主板(外部接口:打印機(jī)口、串口、鼠標(biāo)接口、USB接口、網(wǎng)口、鍵盤口等)
5.電源:ATX電源(+-12V、+-5V、3.3V)

有了這樣的配置,電腦就可以啟動(dòng)工作了!

那么單片機(jī)呢?我們也可以和PC機(jī)對(duì)比一下(拿單片機(jī)AT89S52來說):
1.CPU(速度:24MHZ,8位處理器)
2.硬盤 :IC內(nèi)置8K
3.內(nèi)存: IC內(nèi)置512字節(jié)
4.主板: IC內(nèi)置(外部接口:串口,8位數(shù)據(jù)口線P0、P1、P2、P3)
5.電源:5V直流電源

有了這樣的配置,單片機(jī)就可以工作了!

有一點(diǎn)要特別說明,AT89S52這顆IC里面已經(jīng)集成包含了前四項(xiàng)項(xiàng),因此,我們只需要加上電源和一些附加原件就可以讓它工作了!

也許大家通過對(duì)比之后會(huì)覺得單片機(jī)太落后!速度慢不說,而且資源都比不上PC電腦。我可以先說明一下:AT89S52可不是用來運(yùn)行WINDOS-XP和游戲的,它的長(zhǎng)處在于控制!家電需要的是小而精巧夠用,當(dāng)然價(jià)格也很重要!

好了,現(xiàn)在我們就自己動(dòng)手組裝一臺(tái)單片機(jī)電腦玩玩吧!

首先,這個(gè)圖是完整的單片機(jī)最小圖,就像電腦主機(jī)一樣,你需要額外的附加功能,只需要外接其他板卡連接主板就可以了!

根據(jù)上面的電路圖,我們需要準(zhǔn)備的配件:AT89S52單片機(jī)*1;11.0592MHZ晶振一只+30P電容兩只;IC座一只;10K電阻一只,10K排阻一只;10UF電容一只;電源開關(guān)一只;小按鍵一只;470R電阻+LED發(fā)光管幾只。

我們把原件按上面的電路,在萬用板上面搭建起來。

再來分析一下上面的原理圖:

上面的電路是單片機(jī)AT89S52的最工作基本電路。就是說,只要有單片機(jī)都必須有這些外圍器件才可以工作,下面分析一下電路:

1.晶振+18P電容*2

11.0592MHZ晶振是為單片機(jī)提供頻率的(好比我們的電腦CPU主頻是2.4G),當(dāng)然這個(gè)頻率是可以改變的,你也可以換成24MHZ、36MHZ的晶振,頻率越高,單片機(jī)工作速度越快。電容是起補(bǔ)償作用的,我們不用理會(huì);

2.復(fù)位電路

在單片機(jī)的第9腳RST腳有一個(gè)10K電阻和10UF電容,組成上電復(fù)位電路,只要按下按鍵,就會(huì)產(chǎn)生高低電平從而導(dǎo)致單片機(jī)重啟。(和電腦主機(jī)上面的熱啟動(dòng)效果是一樣)

3.工作電壓5V

AT89S52要工作在5V電壓下。

4.10K排阻

因?yàn)槲覀円褂肞0口做控制試驗(yàn),這個(gè)10K的電阻接在5V電源起上拉作用是不能少的。(具體原因大家可以查AT89S52單片機(jī)的相關(guān)資料)

5.雙排10芯插座(也可用雙排排陣代替)

這個(gè)是和“ISP編程器”連接的接口,我們到時(shí)候向單片機(jī)里面燒寫程序的時(shí)候,通過這個(gè)座子連接電腦,向單片機(jī)里面寫程序(就像MP3通過USB線連接電腦,向MP3里面拷貝歌曲一樣)

6.電源開關(guān)

這個(gè)簡(jiǎn)單,就不說了。

最終焊接好的電路如下:(為了做實(shí)驗(yàn)方便,額外添加了其他電路,暫且不管)

下面,我們就來按照上面的原理圖,做一個(gè)最基本的亮燈實(shí)驗(yàn):這個(gè)實(shí)驗(yàn)是單片機(jī)上電后,接在P0.0的小燈不斷的以1S的間隔閃爍(大家可以想一想,如果要用純粹硬件,該怎么實(shí)現(xiàn))!

程序?qū)崿F(xiàn)思路:

上電后,單片機(jī)運(yùn)行程序,我們讓P0.0輸出高電平1(在程序里面高電平是1,低電平是0;對(duì)應(yīng)的端口輸出電平是1----->5V,0----GND),燈就不會(huì)亮;如果輸出低電平0(相當(dāng)與P00接地),燈就會(huì)亮,我們?cè)趦蓽缰g插入延時(shí),OK!

對(duì)應(yīng)程序:(假如還沒有學(xué)過C語言的話,先做個(gè)最簡(jiǎn)單的)
Loop:
P00=1;    //P00口輸出5V,此時(shí)燈滅
Delay(1S);  //延時(shí)1S,讓燈亮1S
P00=0;       //P00口輸出0V,相當(dāng)于接GND,此時(shí)燈亮 
Delay(1S);  //再延時(shí)1S,讓燈滅1S
goto Loop; //在跑到剛才的程序起始開頭Loop:的地方不斷循環(huán)

只需要上面幾句話,就可以完成那個(gè)燈閃爍功能了。ㄊ遣皇呛芎(jiǎn)單)

下面這段程序是標(biāo)準(zhǔn)的C語言,在上面的代碼上添加了編譯器的語法,因此可以直接在KEIL C51編譯器下面運(yùn)行。看代碼,其實(shí)很簡(jiǎn)單:

#include "reg52.h"
sbit led = P0^0;    //管腳定義 類似于起名字用led 來代替P00 管腳,程序可讀性強(qiáng)
 //使用者一看就知道P00管腳接的是LED       
// 函數(shù)聲明                               
void delay (unsigned int d_time); //作用:燈亮和滅必須持續(xù)一定時(shí)間,人眼才能分辨出來
// *******************************************************
// 主函數(shù)
//通常主函數(shù)都是一個(gè)無限循環(huán),在循環(huán)里面不斷處理任務(wù)。
void main (void)
{
while (TRUE)                        //死循環(huán)        
{led = 1;                     //點(diǎn)亮 小燈
  delay (50000);                //延時(shí)時(shí)間長(zhǎng)度
  led = 0;                        //熄滅 小燈
   delay (50000);                //延時(shí)時(shí)間長(zhǎng)度}
}
// 延時(shí)子函數(shù)
// 參數(shù)范圍 0-65536
void delay (unsigned int d_time)  
{for(; d_time>0; d_time--);}

然后,通過KEIL軟件,可以編譯生成往單片機(jī)里面燒寫的軟件。(具體可以去網(wǎng)上搜索)通過KEIL編譯生成LED.HEX文件,我們就可以把這個(gè)文件燒寫進(jìn)單片機(jī)了。實(shí)際運(yùn)行結(jié)果如下圖:

可以看到,接在單片機(jī)P00口線上面的紅色LED小燈在不斷的以1S的周期閃爍(當(dāng)然,時(shí)間是可以變的),你只要改變1S的延時(shí)就可以了,改一下程序,僅此而已!  

說到這里,還有一個(gè)很重要的中間步驟:就是如何向單片機(jī)里面下載程序!其實(shí),在早些時(shí)候向單片機(jī)寫程序就像刻錄光盤一樣有專門的工具,這種工具就是編程器。(一般編程器很貴,我們DIYER都用不起)很多單片機(jī)大都需要12V的編程電壓才可燒寫進(jìn)去程序,學(xué)習(xí)試驗(yàn),來回插拔IC也不方便。

如果你去升級(jí)電腦BIOS失敗,去修過電腦,一般修電腦的商家都有燒寫B(tài)IOS的工具,那就是編程器。一般這種編程器支持?jǐn)?shù)百個(gè)廠家的單片機(jī)品牌,使用范圍很廣。

隨著科技的發(fā)展,有些廠家推出了FLASH型的單片機(jī),比如AT89S52,支持5V編程操作,就像使用U盤一樣,可以很容易的反復(fù)地COPY寫入程序文件上萬次都不會(huì)損壞。且不需要專用的編程器,這對(duì)于我們DIY可真是福音。∥揖虳IY了一個(gè)下載線,非常好用,花費(fèi)才不到二十元!

言歸正傳,我們這里就需要另外一個(gè)東西,類似于USB線的一個(gè)ISP下載線編程工具

大家可以看到:連接單片機(jī)實(shí)驗(yàn)板和計(jì)算機(jī)的就是一個(gè)叫ISP的下載線,我們繼續(xù)發(fā)揚(yáng)DIY精神,DIY這個(gè)ISP下載線:

我們?nèi)ベI一個(gè)DB—25的并口座(見下圖),連接計(jì)算機(jī)的打印口,還有一片74HC244、若干電阻等,按照上圖DIY。

上圖就是ISP下載線,用以連接電腦并口和單片機(jī)實(shí)驗(yàn)板之間的下載程序工具。

簡(jiǎn)單介紹單片機(jī)ISP下載線:

ISP是在系統(tǒng)編程的英文縮寫(In-System Programming)。簡(jiǎn)單的說,就是不用插拔芯片,也不需要專用編程器,就可以在你的單片機(jī)試驗(yàn)板上直接對(duì)單片機(jī)編程(也就是直接向單片機(jī)里面擦除和寫入新程序),使用非常方便。

舉個(gè)列子,我們把單片機(jī)實(shí)驗(yàn)板比作MP3,你如果想要往MP3里面COPY音樂,就必須通過一條USB數(shù)據(jù)線連接MP3和電腦,然后就可以寫入音樂。

單片機(jī)ISP下載線的作用也如此,通過DIY的單片機(jī)下載i線可以連接計(jì)算機(jī)和單片機(jī);由于單片機(jī)本身沒有USB通訊接口,因此就不能使用USB數(shù)據(jù)線,就要是用上面DIY的并口下載線。

假如說我們已經(jīng)按照上面的電路圖做好下載線,接下來:下載線做好了那么怎么使用呢?

我們看到上圖有個(gè)Header5X2的插頭,插頭對(duì)應(yīng)的就是AT89S52的對(duì)應(yīng)口線,找到AT89S52的datasheet數(shù)據(jù)手冊(cè),我們看到在AT89S52的文檔中詳細(xì)列舉出了各管腳使用說明,因此我們把對(duì)應(yīng)的下載線接口一一對(duì)應(yīng)到單片機(jī)實(shí)驗(yàn)板的口線上面,就可對(duì)其進(jìn)行編程操作,在學(xué)習(xí)板的那副小圖片上面也有10芯插座是對(duì)應(yīng)這個(gè)下載線的:MOSI—-MOSI;MISO---MISO;RST----RST;SCK---- SCK;VCC---VCC;GND----GND

對(duì)應(yīng)連接之后就可以了,然后一邊連接計(jì)算機(jī)并口:

看到了吧:計(jì)算機(jī)主板后面的那個(gè)紅色的插座就是并口插座(也叫打印機(jī)插座,25針)!

OK!這個(gè)下載線的并口座子正好可以插到主板上面!

然后,下載線另外一邊通過10芯扁平線纜,連接單片機(jī)實(shí)驗(yàn)板,檢查無誤!我們接下來就是下載程序了,

要下載程序還要專用的SLISP下載軟件,我們可以到這里下載:

安裝打開:1.安裝完畢之后運(yùn)行軟件;

2.雙擊SLISP圖標(biāo);

3.接著,顯示如下圖操作界面:

(注意:在設(shè)置下載速率里面有相關(guān)5選項(xiàng)——TURBO 極速;FAST 快速;NORMAL 正常;SLOW 慢速;TURBO SLOW 緩慢),每臺(tái)計(jì)算機(jī)性能不一樣,可以先從高到低,找一個(gè)適合自己PC性能的速度,分別嘗試幾次;

4.點(diǎn)擊編程,等待進(jìn)度條提示下載程序完成。如下:可以看到下載線正在下載程序:

5.下載程序完成:擦除完成,寫入FLASH完成,校驗(yàn)完成!

(程序已經(jīng)寫進(jìn)單片機(jī)里面,如果修改單片機(jī)的程序,請(qǐng)重復(fù)以上步驟)

注意:如果有時(shí)候出現(xiàn)了下載失敗,那么需要檢查一下硬件:

1.檢查并口下載線和單片機(jī)對(duì)應(yīng)管腳連接是否正確,要保證做到對(duì)應(yīng):MOSI—-MOSI;MISO---MISO;RST----RST;SCK----SCK;VCC---VCC;GND----GND

2.單片機(jī)實(shí)驗(yàn)板+5V電源是不是已經(jīng)打開;

3.最小化實(shí)驗(yàn)板,就是第一張電路圖的硬件是不是百分百連接正確。

只要保證上面的全部OK,如果電腦打印機(jī)口好的話,肯定是百分百可以隨意擦除下載了!

通過上面的講述,我們知道了如何向單片機(jī)寫入程序!

單片機(jī)遙控套件分析

如果大家看到HIFIDIY主頁上面的DIY商城里面有一個(gè)遙控套件的話,一定會(huì)注意到套件上面有兩個(gè)數(shù)碼管,看下圖:

上面的兩個(gè)8字的就是數(shù)碼管,我們仔細(xì)看一下它的用法以及結(jié)構(gòu):

上面的是數(shù)碼管的正面圖和反面圖。注意到上面有10個(gè)引腳,其中有兩個(gè)是公共的陽極,就是接電源(+5V)的管腳,剩余8個(gè)管腳一次對(duì)應(yīng)數(shù)碼管的8.字上面的八個(gè)筆畫,具體見下圖:

一般單片機(jī)用共陽的比較多,就是上圖的第二個(gè)數(shù)碼管。

怎么和單片機(jī)接?

由于單片機(jī)有40個(gè)腳,除去電源地和其他的腳,還剩下4*8=32個(gè)引腳(P0*8,P1*8,P2*8,P3*),我們?nèi)0的8條口線接數(shù)碼管的a、b、c、d、e、f、g、dp,就可以控制每個(gè)數(shù)碼管的比劃兩滅,就像上面講的閃爍燈一樣方便。

換句話說,同時(shí)控制口線輸出高低就可控制數(shù)碼管顯示"0,1,2,3...........",這就是程序的妙處。

下面做一個(gè)試驗(yàn):實(shí)驗(yàn)?zāi)康?mdash;—數(shù)碼管接在單片機(jī)的P0口,每隔1S鐘,數(shù)碼一次從0 , 1  ,2 ....8 , 9 之間變化。

按照下圖先做一個(gè)紅外遙控?cái)?shù)碼管試驗(yàn),可以為今后做遙控功放做下鋪墊,有興趣的朋友可以照?qǐng)D自己試試玩玩!

先找個(gè)遙控器,這個(gè)遙控器是很常見的,在電腦城里面很多車載MP3都是用的這個(gè)遙控器。

全家福:

開始做實(shí)驗(yàn):

程序的作用是檢測(cè)紅外接手頭又沒有接收到紅外信號(hào),如果接收到判斷是哪一個(gè)遙控按鍵按下,然后在數(shù)碼管上面顯示相應(yīng)的數(shù)字。

由于感覺隨時(shí)用萬用面包板搭電路做實(shí)驗(yàn)有些費(fèi)事!干脆畫PCB做了些單片機(jī)試驗(yàn)板,專門給大家講解,大家也好理解一些!

關(guān)閉窗口

相關(guān)文章