发 帖  
原厂入驻New

求使用AVR外部中断INT1检测按键并使用LED作出简单指示的程序?

47 AVR 外部中断 LED
分享
使用AVR外部中断INT1检测按键并使用LED作出简单指示
0
2020-11-9 06:56:47   评论 分享淘帖 邀请回答

相关问题

1个回答
使用AVR的外部中断INT1检测PD3Key,如果有按键按下,则唤醒休眠的MCU,并使它的PB口的LED做加1指示。
----------------------------------------------------------------------
硬件连接:
将PB口的LED指示灯使能开关切换到"ON"状态。
----------------------------------------------------------------------
注意事项:
(1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘
(2)请详细阅读:光盘根目录下的“产品资料\开发板实验板\SMK系列\SMK1632\说明资料”  
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/
#include <iom16v.h>
#include &quot;D:\ICC_H\CmmICC.H&quot;
#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)
/*--------------------------------------------------------------------
程序名称:外部中断服务程序
程序功能:
注意事项:
提示说明:
输    入:
返    回:
--------------------------------------------------------------------*/
#pragma interrupt_handler int1_isr:3
void int1_isr(void)
{
GICR &= 0b01111111;  // disable int1 interrupt
DISP_PORT++;   // 显示口指示加1,指示被按次数
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(&quot;sleep&quot;);   // set mcu as sleep modle
while(1);
}
2020-11-9 14:05:42 评论

举报

只有小组成员才能发言,加入小组>>

326个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表