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

          新聞中心

          atmege16外部中斷程序

          作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
          /******************************************
          功能:演示ATMEGA16的3個外部中斷程序
          編輯環(huán)境:ICCAVR
          ******************************************/
          #include
          #include
          #define uint unsigned int
          #define uchar unsigned char
          #define beep_0 (PORTD&=~(1<
          #define beep_1 (PORTD|=(1<
          //蜂鳴器響
          uint count;
          /*******************************************
          三個外部中斷聲明,注意中斷向量號
          *******************************/
          #pragma interrupt_handler Exint0:2
          #pragma interrupt_handler Exint1:3
          #pragma interrupt_handler Exint2:19
          /*************************************
          系統(tǒng)延時函數(shù)
          ************************************/
          void delay(uint ms)
          {
          uint i,j;
          for(i=0;i
          {
          for(j=0;j<1140;j++);
          }
          }
          /**************************************
          端口初始化每個外部中斷端口是固定的
          ****************************************/
          void port_init()
          {
          DDRA=0XFF;
          PORTA=0XFF;
          DDRB&=(0<
          PORTB|=(1<
          DDRD&=(0<
          PORTD|=(1<
          DDRD&=(0<
          PORTD|=(1<
          }
          /***********************************
          外部中斷初始化
          *******************************/
          void INT_init()
          {
          SREG=0X80;//打開全局中斷
          GICR|=(1<
          MCUCR=(1<
          MCUCSR=(0<
          }
          /*****************************************
          流水燈函數(shù)
          ****************************************/
          void LED_1()
          {
          uchar i;
          for(i=0;i<8;i++)
          {
          PORTA=~BIT(i);
          delay(200);
          }
          }
          /***********************************
          LED_2函數(shù)
          **********************************/
          void LED_2()
          {
          PORTA=0X0F;
          delay(500);
          PORTA=0XF0;
          delay(500);
          }
          /********************************
          LED_3函數(shù)
          ************************************/
          void LED_3()
          {
          PORTA=0X81;
          delay(500);
          PORTA=0X7E;
          delay(500);
          }
          /************************************
          外中斷0函數(shù)
          **********************************/
          void Exint0()
          {
          LED_2();
          }
          /**********************************
          外中斷1函數(shù)
          ***********************************/
          void Exint1()
          {
          LED_3();
          }
          /************************
          外中斷2函數(shù)
          ***********************/
          void Exint2()
          {
          DDRD=(1<
          for(count=0;count<4;count++)
          {
          beep_0;delay(200);
          beep_1;delay(200);
          }
          }
          /*********************************
          主函數(shù)
          *********************************/
          void main()
          {
          port_init();//端口初始化
          INT_init();//中斷初始化
          while(1)// 當非0值時執(zhí)行下面函數(shù)
          {
          LED_1();//流水燈函數(shù)
          }
          }


          關(guān)鍵詞: atmege16外部中

          評論


          技術(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); })();