51單片機按鍵控制花樣燈

51單片機按鍵控制花樣燈

ID:37707469

大?。?2.50 KB

頁數(shù):14頁

時間:2019-05-29

51單片機按鍵控制花樣燈_第1頁
51單片機按鍵控制花樣燈_第2頁
51單片機按鍵控制花樣燈_第3頁
51單片機按鍵控制花樣燈_第4頁
51單片機按鍵控制花樣燈_第5頁
資源描述:

《51單片機按鍵控制花樣燈》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。

1、51單片機按鍵控制花樣燈時間:2012-09-1013:50:11來源:51hei作者:/*****************************************************本程序?qū)崿F(xiàn)用按鍵控制花樣燈。**當K1按下時,燈從0xfe向左跑一遍;**當K2按下時,LED燈從0x7f向右跑一遍到了0xfe右跑回到起始位置;**當K3鍵按下時,LED燈從0xfe開始作流水燈形式運行一次,然后再流回來。**當K4鍵按下時,LED燈先亮前四個,接著再轉(zhuǎn)向亮后四個。**當K5鍵按下時,結

2、束任意正在進行的程序,使LED燈全部熄滅。*******************************************************/*************************************************連接方法:P0接獨立按鍵JP5;P2接LED燈接口JP1************************************************************/#include//頭文件,函數(shù)聲明#include<

3、intrins.h>//定義按鍵所在位sbitK1=P0^0;sbitK2=P0^1;sbitK3=P0^2;sbitK4=P0^3;sbitK5=P0^4;unsignedcharled;unsignedcharj;voiddelayms(unsignedcharms)//1ms標準延時{while(ms--){for(j=0;j<110;j++);//還是無法設置比較標準的延時,如1S等;所以應該用定時器延時才最準確}}voidmain(){//P2=led;unsignedinti;whil

4、e(1){/**********************************************當K1按下時,燈從0xfe向左跑一遍;**********************************************/if(K1==0)delayms(10);//消除鍵盤抖動if(K1==0){led=0xfe;for(i=0;i<7;i++)//i可以去8的倍數(shù),表示本電路執(zhí)行多少次{//led=0x7f;//P端口的初定義要在循環(huán)外面,不然會使效果錯亂P2=led;//由于這

5、里已經(jīng)初設一個燈,所以for里面要加上這一個delayms(100);//起初這里設置500MS,使按鍵每按一下燈彩走一個,不能達到要求。led=_crol_(led,1);P2=led;delayms(100);}while(!K1);//這里強調(diào)松開就沒再次執(zhí)行程序P2=led;//說明執(zhí)行完上面的程序的最后狀態(tài)}//P2=led;//如果把本行放在這里,雖然在開頭中沒有說明程序燒寫好之后就先顯示一個燈,但由于本行在if外面,所有最后還是會顯示/************************

6、************************************當K2按下時,LED燈從0x7f向右跑一遍到了0xfe右跑回到起始位置************************************************************/if(K2==0)delayms(10);if(K2==0){led=0x7f;for(i=0;i<7;i++){P2=led;delayms(100);led=_cror_(led,1);P2=led;delayms(100);}whi

7、le(!K1);P2=led;delayms(100);for(i=0;i<7;i++){led=_crol_(led,1);P2=led;delayms(100);//跑回去怎么就那么快呀?}//此時led=0x7f}/******************************************************當K3鍵按下時,LED燈從0xfe開始作流水燈形式運行一次,然后再流回來。*************************************************

8、*/if(K3==0)delayms(10);//消除抖動if(K3==0){led=0xfe;delayms(200);for(i=0;i<7;i++){P2=led;delayms(200);led=led<<1;//備注led=_crol_(led,1)等于led<<1

9、

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

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。