av无码国产在线看岛国_日韩精品无码专区国产av影院_在线主播精品国产99热_国模无码一区二区久久_97影院九七理论片男女高清_中文字幕一级毛片_亚洲国产av无码专区亚洲av_成人黄色小说在线观看_H动漫无遮挡在线看中文_国产午夜精品理论片免费视频播放

您好,歡迎訪問上?,F(xiàn)易電子元器件有限公司網(wǎng)站!

021-51870898
021-51870898   18019251567
4新聞資訊
您的位置: 首頁 ->  新聞資訊 -> 單片機(jī)

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

文章出處:單片機(jī) 責(zé)任編輯:上?,F(xiàn)易電子元器件有限公司 發(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);

}



上海現(xiàn)易電子元器件有限公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像

CopyRight 2020-2025 29711999.com.cn All rights reserved   滬ICP備2020031792號(hào)

電話

易經(jīng)理

18019251567

微信

易經(jīng)理

易經(jīng)理

頂部

咨詢