教学内容与重难点
【内容01】外部中断初始化函数的设计。
【内容02】外部中断服务函数的逻辑处理。
【内容03】完成实训项目:外部中断控制灯光开关。
——–学生实践实操,老师讲解演示。
【内容04】专创融合专题。
【重点】实训项目:外部中断控制灯光开关。
【难点】外部中断服务函数的逻辑处理。
教学单元核心内容与学习资源
实训案例:外部中断控制灯光开关
新建工程,编写代码,在XMF09B/XMF09C开发套件上,完成以下任务:
1-设计端口初始化函数,配置4个LED灯。
2-初始化SW2按键,即P0_1引脚为外部中断,下降沿触发。
3-设计中断服务函数,外部中断响应后,将D5灯的开关状态翻转。
4-在主函数中,D4灯循环闪烁,其他三个LED灯熄灭。

/*=======================外部中断初始化函数====================*/
void Init_INTP0()
{
//1-使能P0端口组的外部中断
P0IE = 1;
//2-使能P0_1引脚的外部中断
P0IEN |= 0x02;
//3-设置外部中断信号为下降沿触发
PICTL |= 0x01;
//4-打开总中断
EA = 1;
}
/*=======================外部中断服务函数======================*/
#pragma vector = P0INT_VECTOR
__interrupt void Service_INTP0()
{
//判断P0端口组中断触发信号的具体引脚
if((P0IFG & 0x02) == 0x02)
{
D5 = ~D5; //切换D5灯的开关状态
}
P0IFG = 0; //先清除引脚的中断标志
P0IF = 0; //再清除端口组的中断标志
}
