您的位置 首页 ADAS

凌阳16位单片机之外部中止

实现功能:利用外部中断来控制8个发光二极管的点亮与熄灭,利用键盘产生外部中断触发信号。实验现象:当按S20键时,D8~D11四个发光二极管点…

完成功用:使用外部中止来操控8个发光二极管的点亮与平息,使用键盘发生外部中止触发信号。

试验现象:当按S20键时,D8~D11四个发光二极管点亮,当按S21键时,D4~D7四个发光二极管点亮。

#include “SPCE061A.H”
unsigned int output=0;
void IRQ3(void)__attribute__((ISR));
void IRQ3()
{
unsigned int delay;
*P_IOA_Data = 0x00ff;
if(*P_INT_Ctrl & C_IRQ3_EXT1)
{
*P_IOA_Data = 0x000f;
delay = 0x7fff;
while(delay–);
*P_INT_Clear = C_IRQ3_EXT1;
}
else if(*P_INT_Ctrl & C_IRQ3_EXT2)
{
*P_IOA_Data = 0x00f0;
delay = 0x7fff;
while(delay–);
*P_INT_Clear = C_IRQ3_EXT2;
}
else
{
*P_INT_Clear = C_IRQ3_KEY;
}
}
int main()
{
asm(“INT OFF”);
*P_IOA_Dir = 0x00ff;
*P_IOA_Attrib = 0x00ff;
*P_IOA_Data = 0x0000;

*P_IOB_Dir = 0x0000;
*P_IOB_Attrib = 0x0000;
*P_IOB_Data = 0x0008+0x0004;

*P_INT_Ctrl = C_IRQ3_EXT1 + C_IRQ3_EXT2;
asm(“INT IRQ”);
while(1)
{
*P_Watchdog_Clear = 0x0001;
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/263958.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部