在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)按鍵控制花樣燈

            51單片機(jī)按鍵控制花樣燈

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

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

            本文引用地址:http://www.biyoush.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標(biāo)準(zhǔn)延時
            {
            while(ms--)
            {
            for(j=0;j110;j++); //還是無法設(shè)置比較標(biāo)準(zhǔn)的延時,如1S等;所以應(yīng)該用定時器延時才最準(zhǔn)確
            }
            }


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

            while(1)
            {

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

            P2=led;
            delayms(100);

            }
            while(!K1); //這里強(qiáng)調(diào)松開就沒再次執(zhí)行程序
            P2=led; //說明執(zhí)行完上面的程序的最后狀態(tài)
            } //P2=led; // 如果把本行放在這里,雖然在開頭中沒有說明程序燒寫好之后就先顯示一個燈,但由于本行在if外面,所有最后還是會顯示


            /***********************************************************
            *當(dāng)K2按下時,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); //跑回去怎么就那么快呀?
            } //此時led=0x7f

            }
            /*****************************************************
            *當(dāng)K3鍵按下時,LED燈從0xfe開始作流水燈形式運(yùn)行一次,然后再流回來。 *
            *************************************************/
            if(K3==0)
            delayms(10); //消除抖動
            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; //這里一定要有個break,跳出循環(huán),然后別忘了此時的狀態(tài)是00,而不是7f
            }
            while(!K1);

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

            P2=led;
            delayms(200);
            }

            }

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

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

            }
            }

            /**** */



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

            評論


            相關(guān)推薦

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

            關(guān)閉