<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單片機按鍵控制花樣燈

51單片機按鍵控制花樣燈

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

/****************************************************
* 本程序實(shí)現用燈。 *
* 當K1按下時(shí),燈從0xfe向左跑一遍; *
* 當K2按下時(shí),LED燈從0x7f向右跑一遍到了0xfe右跑回到起始位置; *
* 當K3鍵按下時(shí),LED燈從0xfe開(kāi)始作流水燈形式運行一次,然后再流回來(lái)。 *
* 當K4鍵按下時(shí),LED燈先亮前四個(gè),接著(zhù)再轉向亮后四個(gè)。 *
* 當K5鍵按下時(shí),結束任意正在進(jìn)行的程序,使LED燈全部熄滅。 *
******************************************************/
*************************************************
連接方法:P0接獨立JP5;P2接LED燈接口JP1 *
***********************************************************/
#include reg52.h> //頭文件,函數聲明
#include intrins.h>

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

//定義所在位
sbit K1=P0^0;
sbit K2=P0^1;
sbit K3=P0^2;
sbit K4=P0^3;
sbit K5=P0^4;
unsigned char led;
unsigned char j;

void delayms(unsigned char ms) // 1ms標準延時(shí)
{
while(ms--)
{
for(j=0;j110;j++); //還是無(wú)法設置比較標準的延時(shí),如1S等;所以應該用定時(shí)器延時(shí)才最準確
}
}


void main()
{ //P2=led;
unsigned int i;

while(1)
{

/*********************************************
* 當K1按下時(shí),燈從0xfe向左跑一遍; *
*********************************************/
if(K1==0)
delayms(10); //消除鍵盤(pán)抖動(dòng)
if(K1==0)
{
led=0xfe;
for(i=0;i7;i++) //i可以去8的倍數,表示本電路執行多少次
{
//led=0x7f; // P端口的初定義要在循環(huán)外面,不然會(huì )使效果錯亂
P2=led; //由于這里已經(jīng)初設一個(gè)燈,所以for里面要加上這一個(gè)
delayms(100); //起初這里設置500MS,使按鍵每按一下燈彩走一個(gè),不能達到要求。
led=_crol_(led,1);

P2=led;
delayms(100);

}
while(!K1); //這里強調松開(kāi)就沒(méi)再次執行程序
P2=led; //說(shuō)明執行完上面的程序的最后狀態(tài)
} //P2=led; // 如果把本行放在這里,雖然在開(kāi)頭中沒(méi)有說(shuō)明程序燒寫(xiě)好之后就先顯示一個(gè)燈,但由于本行在if外面,所有最后還是會(huì )顯示


/***********************************************************
*當K2按下時(shí),LED燈從0x7f向右跑一遍到了0xfe右跑回到起始位置 *
***********************************************************/

if(K2==0)
delayms(10);
if(K2==0)
{
led=0x7f;
for(i=0;i7;i++)
{
P2=led;
delayms(100);
led=_cror_(led,1);

P2=led;
delayms(100);


}
while(!K1);
P2=led;
delayms(100);
for(i=0;i7;i++)
{
led=_crol_(led,1);

P2=led;
delayms(100); //跑回去怎么就那么快呀?
} //此時(shí)led=0x7f

}
/*****************************************************
*當K3鍵按下時(shí),LED燈從0xfe開(kāi)始作流水燈形式運行一次,然后再流回來(lái)。 *
*************************************************/
if(K3==0)
delayms(10); //消除抖動(dòng)
if(K3==0)
{
led=0xfe;
delayms(200);
for(i=0;i7;i++)
{
P2=led;
delayms(200);
led=led1; // 備注led=_crol_(led,1)等于led1||led>>7;

P2=led;
delayms(200);

if(led==0x00)
break; //這里一定要有個(gè)break,跳出循環(huán),然后別忘了此時(shí)的狀態(tài)是00,而不是7f
}
while(!K1);

led=0x7f;
P2=led;
delayms(200 );
for(i=0;i7;i++)
{
led=led>>1;

P2=led;
delayms(200);
}

}

/****************************************************
*當K4鍵按下時(shí),LED燈先亮前四個(gè),接著(zhù)再轉向亮后四個(gè)。*
****************************************************/
if(K4==0)
delayms(10); //消除抖動(dòng)
if(K4==0)
{
for(i=0;i4;i++) //執行四次
{ led=0xf0;
P2=led;
delayms(500);
led=0x0f;
P2=led;
delayms(500);
}
}

/********************************************************
*當K5鍵按下時(shí),結束任意正在進(jìn)行的程序,使LED燈全部熄滅。*
********************************************************/
if(K5==0)
delayms(10);
if(K5==0)
P2=0xff;

}
}

/**** */



關(guān)鍵詞: 花樣 控制 按鍵 單片機

評論


相關(guān)推薦

技術(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>