新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于51單片機的各種花樣的流水燈c51程序

        基于51單片機的各種花樣的流水燈c51程序

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

        /*-----------------------------------------------
        功能:燈對稱移動閃爍(雙閃爍)

        本文引用地址:http://www.104case.com/article/170895.htm

        ------------------------------------------------*/

        #includeREG52.H>
        #define uint unsigned int
        void delay(uint);
        main()
        {
        uint comp1=0xfe;
        uint comp2=0x80;
        P1=0x7e;
        delay(30000);
        while(1)
        {
        P1=0xff;
        comp1=1;
        comp1|=0x01;
        comp2>>=1;
        P1=comp1;
        P1^=comp2;
        delay(30000);
        if(P1==0xe7)
        {
        comp1=1;
        comp1|=0x01;
        comp2>>=1;
        }

        if(comp1==0x7f)
        {
        comp1=0xfe;
        comp2=0x80;
        }
        }
        }
        void delay(uint cnt)
        {
        while(cnt--);
        }


        /*-----------------------------------------------------------------

        只循環(huán)一次,而沒有一直循環(huán)下去,出錯地方在:

        通過添加一條測試語句:

        if(comp1==0x7f)
        {
        comp1=0xfe; comp2=0x80;
        P1=0x00; delay(30000);

        }

        發(fā)現(xiàn)if語句沒有被執(zhí)行,自然繼續(xù)左右移動:

        1111 11111111 1111^0000 0000==11111 1111

        所以看起來是執(zhí)行了一次while中的代碼。

        具體為什么不行,還不清楚……

        更正下列代碼后,能夠?qū)崿F(xiàn)功能。

        if(P1==0x7e)
        {
        comp1=0xfe;
        comp2=0x80;
        }

        或者:

        if(comp2==0x01)
        {
        comp1=0xfe;
        comp2=0x80;
        }

        --------------------------------------------------------------*/


        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 司法| 芷江| 崇文区| 上杭县| 虞城县| 北辰区| 息烽县| 兰西县| 莱阳市| 前郭尔| 衡水市| 长兴县| 长乐市| 德格县| 和硕县| 八宿县| 陕西省| 大新县| 郧西县| 建德市| 奉贤区| 喀喇沁旗| 四平市| 北辰区| 米易县| 靖江市| 延川县| 宜章县| 栾城县| 宜良县| 蛟河市| 永平县| 泊头市| 荔浦县| 曲周县| 林甸县| 京山县| 雷波县| 崇明县| 荣成市| 江川县|