<dl id="b4zrn"><label id="b4zrn"></label></dl><thead id="b4zrn"></thead>

    <blockquote id="b4zrn"></blockquote>

      <strike id="b4zrn"></strike>
        1. <div id="b4zrn"><label id="b4zrn"></label></div>
          您好,歡迎訪問上海意泓電子科技有限責(zé)任公司網(wǎng)站!
          4新聞資訊
          您的位置: 首頁 ->  新聞資訊 -> 單片機(jī)

          ?AVR外部中斷INT1檢測按鍵,使用LED作指示

          文章出處:單片機(jī) 責(zé)任編輯:上海意泓電子科技有限責(zé)任公司 發(fā)表時(shí)間:
          2020
          11-10

          實(shí)驗(yàn)內(nèi)容: 
          使用AVR的外部中斷INT1檢測PD3Key,如果有按鍵按下,則喚醒休眠的MCU,并使它的PB口的LED做加1指示。

          #include


          #define DISP_DDR DDRB

          #define DISP_PORT   PORTB

          #define IN_PD3  cbi(DDRD,3)  //PD3

          #define SET_PD3  sbi(PORTD,3)

          #define GET_PD3  gbi(PIND,3)

          //PORTA|=BIT(5);    就是把把第6位置1;

          //PORTA=~BIT(5);   就是把第6位置零

          //DDRB |=  0x80;  //等于“sbi(DDRB,7);” 置1位

          //DDRB &= ~0x80;  //等于“cbi(DDRB,7);”清零


          /*--------------------------------------------------------

          程序名稱:外部中斷服務(wù)程序

          -------------------------------------------------------*/

          #pragma interrupt_handler int1_isr:3

          //是一個(gè)編譯器的關(guān)鍵字聲明,聲明這個(gè)函數(shù)是一個(gè)中斷服務(wù)函數(shù),后面跟的數(shù)字是中斷向量號(hào)。

          void int1_isr(void)

          {

           GICR &= 0b01111111;  // disable int1 interrupt   通用中斷控制寄存器 GICR

           DISP_PORT++;   // 顯示口指示加1,指示被按次數(shù)

           delay50ms(4);

           GICR |= 0b10000000;   // enable int1 interrupt

          }

          /*--------------------------------------------------------

          程序名稱:外部中斷初始化程序

          --------------------------------------------------------*/

          void int1_init()

          {

           IN_PD3;    // set PD3/INT1 as input

           SET_PD3;   // set PD3/INT1 as output,high level,avoid triggering

           MCUCR |= 0b11110011;  // set PD3/INT1 as low level active

           GICR  |= 0b10000000;  // enable global interrupt

           SEI();       // enable external interrupt

          }

          void main(void)

          {

           DISP_DDR  = 0xFF;

           DISP_PORT = 0x00;

           int1_init();

           asm("sleep");   // set mcu as sleep modle

           //開機(jī)后MCU處于SLEEP狀態(tài),之后按按鍵,LED作出了簡單指示。


           while(1);

          }



          上海意泓電子科技有限責(zé)任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

          CopyRight 2020-2025 m.frontgate.com.cn All rights reserved   滬ICP備2021005866號(hào)

          久艹视频在线观看这里只有精品,国语自产拍在线视频普通话94,久久婷婷综合缴情亚洲狠狠,亚洲不卡永远在线精品无码
          <dl id="b4zrn"><label id="b4zrn"></label></dl><thead id="b4zrn"></thead>

            <blockquote id="b4zrn"></blockquote>

              <strike id="b4zrn"></strike>
                1. <div id="b4zrn"><label id="b4zrn"></label></div>