新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)學(xué)習(xí)之1-鎖存器驅(qū)動(dòng)led燈

51單片機(jī)學(xué)習(xí)之1-鎖存器驅(qū)動(dòng)led燈

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

真值表



這表格分成兩個(gè)部分:INPUTS(輸入)、OUTPUT(輸出)。
L:表示低電平 在INPUTS表示輸入低電平 在OUTPUT表示輸出低電平。
H:表示高電平 在INPUTS表示輸入高電平在OUTPUT表示輸出高電平。
X:表示無(wú)所謂是高電平還是低電平。
Q0:表示維持原來(lái)的狀態(tài)不變。
Z:高阻態(tài) (接的是高電平則是高電平,接的是低電平則是低電平)當(dāng)輸出高阻態(tài)時(shí),說(shuō)明芯片沒(méi)有工作。

INPUTS(輸入):
OE:OE上面有一條橫杠代表低電平有效。
LE:鎖存控制。
D:輸入端 即 D0 — D7

OUTPUT(輸出):
Q:輸出端 即 Q0 — Q7

真值表解釋:
第三行:OE=LLE=H D=H Q=H
表示OE為低電平時(shí),LE為高電平即不鎖存,那么D是高電平則Q也是高電平。
第四行:OE=LLE=H D=L Q=L
表示OE為低電平時(shí),LE為高電平即不鎖存,那么D是低電平則Q也是低電平。
第五行:OE=L LE=L D=X Q=Q0
表示OE為低電平時(shí),LE為低電平即鎖存,那么無(wú)論D是什么狀態(tài),Q仍保持上一次的狀態(tài)。
第六行:OE=H LE=X D=X Q=Z
表示OE為高電平即停用芯片,LE無(wú)論是什么狀態(tài),D無(wú)論是什么狀態(tài),Q保持高阻態(tài)即不起作用。

本文引用地址:http://m.butianyuan.cn/article/201611/323865.htm


二、電路圖



單片機(jī)的一組P0口要控制8個(gè)Led燈,首先需要將LE引腳置1,讓74HC573的Q輸出端與D輸入端關(guān)聯(lián)起來(lái)。這樣P0口的電平狀態(tài)會(huì)傳遞給D輸入端進(jìn)而改變Q的電平狀態(tài)。

8個(gè)Led的正極接在1k的排阻。相當(dāng)于每個(gè)Led串入一個(gè)1k的電阻。這里的電阻起限流作用,硅發(fā)光二極管的發(fā)光壓降是0.7V;其發(fā)光的電流一般為3—10mA,而單片機(jī)(控制芯片)的I/O口有一個(gè)灌入電流一般為20mA左右(超過(guò)這個(gè)電流時(shí),單片機(jī)內(nèi)部PN節(jié)會(huì)被擊穿)。所以加一個(gè)1k電阻限流,避免流過(guò)Led的電流過(guò)大而燒毀Led。

(單片機(jī)(控制芯片)的I/O口有一個(gè)灌入電流一般為20mA左右;超過(guò)這個(gè)電流時(shí),單片機(jī)內(nèi)部PN節(jié)會(huì)被擊穿。一般的繼電器驅(qū)動(dòng)電流在40、50—120mA;一般常用9012的PNP(9013、NPN)三極管作為開(kāi)關(guān)三極管,該三極管的驅(qū)動(dòng)電流可以達(dá)到200mA左右,可以用來(lái)驅(qū)動(dòng)繼電器。達(dá)林頓反向驅(qū)動(dòng)器:ULN2001A—ULN2002A(ST)驅(qū)動(dòng)電流500mA;(給低電平輸出高電平,給高電平輸出低電平))

電阻的取值:

當(dāng)Led點(diǎn)亮后,Led會(huì)有一個(gè)電壓。一般情況下紅色直插LED應(yīng)該是1.7V,剩下3.3V的電壓會(huì)加在電阻上。Led需要的電流是3.3ma(0.0033A)電壓除于電流3.3V/0.0033A=1000歐=1K。(不同的廠家生產(chǎn)的LED的電壓和電流可能略有差別)

我們要讓Led亮,那么首先要明確的是,單片機(jī)是TTL電平,高電平為+5V低電平為0V,單片機(jī)供電也是5V,所以電源正極VCC應(yīng)該為+5V負(fù)極為0V。Led的正極通過(guò)電阻接在VCC,Led的負(fù)極接在74HC573的Q輸出端。當(dāng)單片機(jī)的IO口給低電平時(shí)即0V,并且74HC573LE為高電平,那么電流會(huì)從VCC→1K電阻→Led→74HC573Q→74HC573D→單片機(jī)的IO口,此時(shí)Led燈亮。

按照上面的電路圖,程序代碼應(yīng)為:

#include

sbitLed=P0^0;

sbitLE=P1^6;//由于51單片機(jī)上電,IO口默認(rèn)為高電平所以這句可省略。

voidmain()

{

LE=1; //由于51單片機(jī)上電,IO口默認(rèn)為高電平所以這句可省略。

Led=0;//直接操作P0的0端口讓第一個(gè)Led燈亮

//P0=0xFE;//操作P0一組IO口,0xFE==11111110,P0的0端口置0其余置1 效果和 Led=0 一樣。不同的是前者操作了一組端口后者只操作了一個(gè)端口
P0=0x00; //P1端口全部置0即讓所有的LED燈亮。

while(1); // 程序運(yùn)行到這里的時(shí)候 一直無(wú)限循環(huán)。因?yàn)镵eil 編譯后期產(chǎn)生的匯編代碼中,結(jié)尾有一條 LJMP main,就是不同的執(zhí)行main函數(shù)。加上這一條就可以阻止它重復(fù)執(zhí)行上面的代碼。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 51單片機(jī)鎖存器led

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉