<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機學(xué)習之2-流水燈

51單片機學(xué)習之2-流水燈

作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò ) 收藏
第五集

講解了74HC573使用方法,我在《51單片機復習筆記1(更新)》有記錄。這里略。

本文引用地址:http://dyxdggzs.com/article/201611/323852.htm

講解了Keil的仿真方法。比較有用的內容是可以用它來(lái)測試一段代碼所使用的時(shí)間,例如延時(shí)函數,在需要精確延時(shí)又不想使用定時(shí)器的時(shí)候可以使用該方法。至于其他的,個(gè)人認為還是直接下載到單片機中觀(guān)察實(shí)際情況會(huì )比較直觀(guān)。

第六集

51最小系統


復位原理:

51單片機是高電平脈沖復位,在RST引腳。復位脈沖的高電平寬度必須大于2個(gè)機器周期。為了方便計算,我們假設晶振頻率為12M,那么它的時(shí)鐘周期為1/12us(微秒)。它的一個(gè)機器周期是12*(1/12)=1us(微秒)。復位脈沖高電平寬度必須大于2個(gè)機器周期即2us,那么就要保證RST引腳高電平的時(shí)間大于2us單片機即可自動(dòng)復位。

上電復位:

當通電時(shí),開(kāi)關(guān)是斷開(kāi)的,那么電流從VCC→電容→RST、R32→GND。剛上電的時(shí)候,電容開(kāi)始充電,充滿(mǎn)電后相當于斷路,在電容充電到充滿(mǎn)的過(guò)程中電壓逐漸從高到低(從5V到0V)。也就是說(shuō)一上電,RST端得到就是高電平,當這個(gè)時(shí)間超過(guò)2us時(shí)單片機復位,電容快充滿(mǎn)到充滿(mǎn)后RST得到是低電平,電源不斷那么RST就一直是低電平而不會(huì )一直復位。RST高電平持續的時(shí)間取決于電容充電時(shí)間.。(這個(gè)電容要取多大?怎么計算的?)

手動(dòng)復位:

通電之后,RST會(huì )自動(dòng)復位一次,當單片機在運行的過(guò)程中我們需要它復位時(shí)可以斷電使之上電復位?;蛘甙聪耂W0開(kāi)關(guān)也能實(shí)現復位。當SW0開(kāi)關(guān)按下時(shí)電流從VCC→R33→RST、R32→GND形成回路。為方便計算R33假設為300歐即0.3K,我們可以先計算R33得到的電壓是5V*(0.3k/(4.7k+0.3k))=0.3VR32得到的電壓為5V*(4.7k/(4.7k+0.3k))=4.7VRST端的電壓也為4.7V,那么4.7對于單片機來(lái)說(shuō)也算高電平,當按下手動(dòng)按下SW按鈕到松開(kāi)肯定超過(guò)2us,所以單片機自動(dòng)復位。

晶振電路:

兩個(gè)電容一定要相等,取值范圍為20-50pf越大啟動(dòng)越慢。

自己搭建最小系統要注意的地方:

EA引腳一定要接高電平即VCC,這是最容易忽略的。這個(gè)引腳是用來(lái)選擇是用片內存儲器還是用片外存儲器。51內部存儲器一般都夠我們使用。在以前的單片機需要外擴存儲器。我們燒錄的程序就是存在片內存儲器。

要將P0組引腳當普通IO用時(shí),需要接10K的上拉電阻。P1-P3里面都有上啦電阻。

1做地址/數據總線(xiàn)時(shí)和做輸入I/O口時(shí),p0口不用接上拉電阻。
2但當做輸出I/O口時(shí),p0口必須要接上拉電阻才可以。

P0口是集電極開(kāi)路輸出,也就是OC門(mén),這種結構沒(méi)有輸出高電平的能力就相當于一個(gè)一端接地的開(kāi)關(guān),按下去就輸出低電平0V,斷開(kāi)就沒(méi)有電壓,是懸空狀態(tài)。
至于用不用上拉電阻,取決于外部電路,如果要輸出高電平控制一個(gè)器件,而這個(gè)器件本身又沒(méi)有內置上拉,就必須自己接一個(gè)上拉電阻,如果要用低電平控制一個(gè)器件,則可以不用加上拉。

第七集

一、流水燈的設計

流水燈就是讓八個(gè)小Led的依次亮滅。先看看流水燈的電路圖。



這是我的實(shí)驗板的流水燈電路圖。其中74HC573的D輸入引腳DB1—DB8接在單片機的P1組引腳。74HC573的LE接在P2.5引腳。

程序設計思路:

我實(shí)驗板上有8個(gè)Led燈,正極接在VCC,負極接在單片機的P1引腳(這里不使用74HC573鎖存功能所以L(fǎng)E一直保存高電平,相當于Led直接接在單片機的IO口)。要讓Led燈亮只需要把對應的端口設為低電平,那么Led燈亮。依次讓P1的八個(gè)引腳給高低電平那么Led燈也會(huì )跟著(zhù)暗亮。由于51單片機執行的速度很快,所以L(fǎng)ed燈的閃爍速度也會(huì )很快,我們肉眼無(wú)法看到,所以要在電平切換時(shí)適當的延時(shí)一下。

流水燈的程序設計有很多種方法,如按位置位、數組、函數_cror_()_crol()等,我本來(lái)我是比較喜歡用函數的方法,但后來(lái)看了一下AVR的,貌似用的最多的是與、或、非、異或這些運算符來(lái)操控IO口,所以我就用這種方式吧,練熟一些方便以后學(xué)習。

#include"reg52.h"

#defineucharunsignedchar

#defineuintunsignedint

//用來(lái)延時(shí)

voiddelay(ucharx)

{

uinty;

for(;x>0;x--)

for(y=500;y>0;y--);

}

voidmain()

{

ucharTmp;

uchari;

while(1)

{

Tmp=0xFE;//在流之前先讓第一個(gè)燈亮11111110

for(i=0;i<8;i++)

{

P1=Tmp;

Tmp=Tmp<<1;//左移動(dòng)一位0xFE=11111110<<1=11111100

Tmp=Tmp|0x01;//將最后一位置111111100|00000001=11111101

delay(100); //讓燈亮一段時(shí)間

}

}
}



關(guān)鍵詞: 51單片機流水

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>