<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          MEGA8做的呼吸燈

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

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

          本文引用地址:http://www.ex-cimer.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)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();