新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何實現鍵盤自由控制二極管流水燈

        如何實現鍵盤自由控制二極管流水燈

        作者: 時間:2016-11-18 來源:網絡 收藏
        #include
        //流水燈 從上到下點亮 然后熄滅; 再從下到上點亮 然后熄滅
        sbit Key1=P2^7; //啟動 停止 定時器T0
        sbit Key2=P2^6; //停止 定時器T0, 通過鍵盤實現 流水燈 從上到下點亮 然后熄滅
        sbit Key3=P2^5; //停止 定時器T0, 通過鍵盤實現 流水燈 從下到上點亮 然后熄滅
        unsigned char t=0;
        unsigned char i=0;
        void Delay(unsigned int i) //延時
        {
        unsigned char j;
        for( ; i>0; i--)
        for(j=110; j>0; j--);
        }
        void LED_UP() // 二極管向上 逐漸點亮
        {
        unsigned char n;
        P0=0xff;
        for(n=1; n<=8; n++)
        {
        P0=P0>>1;
        Delay(1000);
        }
        P0=0xff;
        }
        void LED_Down()// 二極管向下 逐漸點亮
        {
        unsigned char n;
        P0=0xff;
        for(n=1; n<=8; n++)
        {
        P0=P0<<1;
        Delay(1000);
        }
        P0=0xff;
        }
        void Keycan() // 檢測鍵盤是否被按下
        {
        if(Key1==0) //啟動 停止 定時器T0
        {
        Delay(10);
        if(Key1==0)
        {
        TR0=~TR0;
        }
        while(!Key1);
        }
        if(TR0==0) //定時器T0 停止, Key2, Key3 鍵 被按下才有作用
        {
        if(Key2==0) //
        {
        Delay(10);
        if(Key2==0)
        {
        LED_UP(); // 二極管向上 逐漸點亮
        }
        while(!Key2);
        }
        if(Key3==0) //
        {
        Delay(10);
        if(Key3==0)
        {
        LED_Down(); // 二極管向下 逐漸點亮
        }
        while(!Key3);
        }
        } //end if(TR0==0)
        }
        void main()
        {
        TMOD=0x01; //
        EA=1; //
        ET0=1;
        TR0=1;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        while(1)
        {
        Keycan();
        if(t==20)
        {
        t=0;
        LED_UP();
        LED_Down();
        }
        }
        }
        void TimerLED() interrupt 1 using 1
        {
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        t++;
        }


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 西林县| 黑龙江省| 勐海县| 新丰县| 淮滨县| 兴宁市| 响水县| 宁蒗| 蓬溪县| 兰坪| 神池县| 甘南县| 桃源县| 三台县| 丰原市| 临夏县| 城市| 蒲江县| 东城区| 合山市| 东明县| 准格尔旗| 九江县| 云林县| 电白县| 冀州市| 湾仔区| 开封市| 元江| 南靖县| 沙湾县| 莲花县| 田东县| 历史| 海门市| 当涂县| 兴宁市| 平遥县| 大关县| 东乡族自治县| 从化市|