色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > atmege16外部中斷程序

          atmege16外部中斷程序

          作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏
          /******************************************
          功能:演示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ù)
          }
          }


          關鍵詞: atmege16外部中

          評論


          技術專區(qū)

          關閉