日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 基礎(chǔ)知識科普站
[導(dǎo)讀]簡介:51單片機(jī)閃爍燈制作:在單片機(jī)P1.0端口上接一個發(fā)光二極管L1,使L1在不停地一亮一滅形成閃爍燈狀態(tài),一亮一滅的時間間隔為0.2秒。

簡介:51單片機(jī)閃爍燈制作:在單片機(jī)P1.0端口上接一個發(fā)光二極管L1,使L1在不停地一亮一滅形成閃爍燈狀態(tài),一亮一滅的時間間隔為0.2秒。

1.電路原理圖

51單片機(jī)閃爍燈制作

圖4.1.1

2.系統(tǒng)板上硬件連線

把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0端口用導(dǎo)線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的L1端口上。

3.程序設(shè)計(jì)內(nèi)容

(1). 延時程序的設(shè)計(jì)方法

作為單片機(jī)的指令的執(zhí)行的時間是很短,數(shù)量大微秒級,因此,我們要求的閃爍時間間隔為0.2秒,相對于微秒來說,相差太大,所以我們在執(zhí)行某一指令時,插入延時程序,來達(dá)到我們的要求,但這樣的延時程序是如何設(shè)計(jì)呢?下面具體介紹其原理:

如圖4.1.1所示的石英晶體為12MHz,因此,1個機(jī)器周期為1微

MOV R6,#20 2個 2

D1: MOV R7,#248 2個 22+2×248=49820×DJNZ R7,$ 2個 2×248 (498

DJNZ R6,D1 2個2×20=4010002

因此,上面的延時程序時間為10.002ms。

由以上可知,當(dāng)R6=10、R7=248時,延時5ms,R6=20、R7=248時,延時10ms,以此為基本的計(jì)時單位。如本實(shí)驗(yàn)要求0.2秒=200ms,10ms×R5=200ms,則R5=20,延時子程序如下:

DELAY: MOV R5,#20

D1: MOV R6,#20

D2: MOV R7,#248

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RET

(2). 輸出控制

如圖1所示,當(dāng)P1.0端口輸出高電平,即P1.0=1時,根據(jù)發(fā)光二極管的單向?qū)щ娦钥芍?,這時發(fā)光二極管L1熄滅;當(dāng)P1.0端口輸出低電平,即P1.0=0時,發(fā)光二極管L1亮;我們可以使用SETBP1.0指令使P1.0端口輸出高電平,使用CLRP1.0指令使P1.0端口輸出低電平。

51單片機(jī)閃爍燈制作

4. 程序框圖

5. 匯編源程序

ORG 0

START: CLR P1.0

LCALL DELAY

SETB P1.0

LCALL DELAY

LJMP START

DELAY: MOV R5,#20 ;延時子程序,延時0.2秒

D1: MOV R6,#20

D2: MOV R7,#248

DJNZ R7,$

DJNZ R6,D2

DJNZ R5,D1

RET

END

6. C語言源程序

#include

sbit L1=P1^0;

void delay02s(void) //延時0.2秒子程序

{

unsigned char i,j,k;

for(i=20;i>0;i--)

for(j=20;j>0;j--)

for(k=248;k>0;k--);

}

void main(void)

{

while(1)

{

L1=0;

delay02s();

L1=1;

delay02s();

}

}

完畢!您現(xiàn)在會不會制作自己的閃爍燈了呢?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉