⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 external_int.c

📁 AVR单片机ATMEGA128实习之—外部中断(附带Proteus仿真例子)
💻 C
字号:
#include <iom128.h>
#include <macros.h>


#define	  Red_LED_on		PORTB&~BIT(0)
#define	  Red_LED_off		PORTB|(1<<0)
#define	  Green_LED_on		PORTB&(~(1<<1))
#define	  Green_LED_off		PORTB|(1<<1)
#define	  Yellow_LED_on		PORTB&(~(1<<2))
#define	  Yellow_LED_off	PORTB|(1<<2)


unsigned char INT0_flag = 0;
unsigned char INT1_flag = 0;
unsigned char INT2_flag	= 0;

#pragma interrupt_handler External_INT_0:2   //外部中断0
#pragma interrupt_handler External_INT_1:3   //外部中断1
#pragma interrupt_handler External_INT_2:4   //外部中断2

void Port_initilaze(void);
void INT_initialize(void);

void main(void)
{
	Port_initialize(); 
	INT_initialize();

}
void Port_initialize(void)
{
	DDRB = 0xFF;
	DDRD = 0xf0;
	PORTB = 0xff;
}
void INT_initialize(void)
{
	EICRA = 0xaa;	//fall edge trigger
	EICRB = 0x00;	//no influence
	EIMSK = 0x0f;

	SEI();

}
void External_INT_0(void)
{
	PORTB = Green_LED_off;
	PORTB = Yellow_LED_off;
	PORTB = Red_LED_on;
}
void External_INT_1(void)
{
	
	PORTB = Green_LED_on;
	PORTB = Yellow_LED_off;
	PORTB = Red_LED_off;
}
void External_INT_2(void)
{

	PORTB = Green_LED_off;
	PORTB = Yellow_LED_on;
	PORTB = Red_LED_off;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -