在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            MEGA8做的呼吸燈

            作者: 時(shí)間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
            利用mega8的PWM做了一款簡(jiǎn)單的雙色呼吸燈,呼吸頻率可以調(diào)節(jié)。由于程序中還有其他功能,只將呼吸燈部分程序整理如下。

            /******************************************************************************
            * 頭文件設(shè)定
            ******************************************************************************/
            #include
            #include
            #include "ADC.c"

            本文引用地址:http://www.biyoush.com/article/201611/316312.htm

            #define ledkey (PIND & 0x08)


            unsigned char KEY_Flag;
            unsigned int i;


            /******************************************************************************
            * 函 數(shù) 名: Delay_nus(unsigned int n)
            * 功能描述: 延時(shí)函數(shù)
            * 參 數(shù): 延時(shí)參數(shù):unsigned int n;
            * 返 回 值: 無
            * 備 注: ...
            ******************************************************************************/
            void Delay_nus(unsigned int n)
            {
            unsigned int a,b;

            for (a = 0; afor (b = 0; b<8; b++);
            }

            /******************************************************************************
            * 函 數(shù) 名: Delay_nms(unsigned int n)
            * 功能描述: 延時(shí)函數(shù)
            * 參 數(shù): 延時(shí)參數(shù):unsigned int n;
            * 返 回 值: 無
            * 備 注: ...
            ******************************************************************************/
            void Delay_nms(unsigned int n)
            {
            unsigned int a,b;

            for (a = 0; a{
            Delay_nus(1000);
            }
            }

            /******************************************************************************
            * 函 數(shù) 名: KEY()
            * 功能描述: 按鍵函數(shù)
            * 參 數(shù): 無
            * 返 回 值: 無
            * 備 注: ...
            ******************************************************************************/
            void KEY(void)
            {
            if(ledkey == 0)//按鍵長(zhǎng)按2s后啟動(dòng)
            Delay_nus(5); //延時(shí)等待按鍵2S
            if(ledkey == 0)//如果按鍵依然按下,執(zhí)行相應(yīng)動(dòng)作
            {
            KEY_Flag++;//按鍵標(biāo)志位加1
            if(KEY_Flag>3)//按鍵標(biāo)志位只能為1或0
            {
            KEY_Flag=0;
            }
            while(ledkey == 0);//軟件消抖
            }
            }


            /******************************************************************************
            * 函 數(shù) 名: delay()
            * 功能描述: 延時(shí)函數(shù)
            * 參 數(shù): 無
            * 返 回 值: 無
            * 備 注: ...
            ******************************************************************************/
            void delay(void)
            {
            unsigned char i,j;
            for(i=5000;i--;i>1)
            for(j=500;j--;j>1);
            }


            /******************************************************************************
            * 函 數(shù) 名: main()
            * 功能描述: 主函數(shù)
            * 參 數(shù): 無
            * 返 回 值: 無
            * 備 注: ...
            ******************************************************************************/
            void main()
            {
            unsigned char a;
            PORTB = 0XFF;
            DDRD = 0XF0;
            delay();

            TCCR1A=0Xa2;
            TCCR1B=0X1B;

            ICR1 = 124;

            OCR1B=1;
            OCR1A=1;
            while(1)
            {
            KEY();
            a++;
            OCR1A=a;
            OCR1B=a;
            delay();
            if(a>122)
            {
            while(1)
            {
            KEY();
            if(KEY_Flag == 0)
            {
            DDRB &=0XF2;
            }
            if(KEY_Flag == 1)
            {
            DDRB &=0XF4;
            }
            if(KEY_Flag == 2)
            {
            PORTD =0X10;
            }
            if(KEY_Flag == 3)
            {
            PORTD =0X00;
            }
            a--;
            OCR1B=a;
            OCR1A=a;
            delay();
            if(a==1)//最小值
            {
            break;//跳出while
            }
            }
            }
            }
            }



            關(guān)鍵詞: MEGA8呼吸

            評(píng)論


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

            關(guān)閉