单片机的外部中断可不可以设置是上升沿触发或下降沿触发
我这个程序现在是一按下按钮就疯狂扫描有什么办法可以按下按钮进入中断后就执行一次中断里的程序后,等到松开按钮后再扫描一次?以前记得可以设置外部中断的触发方式的,不知道怎么设...
我这个程序现在是一按下按钮就疯狂扫描
有什么办法可以按下按钮进入中断后就执行一次中断里的程序后,等到松开按钮后再扫描一次?
以前记得可以设置外部中断的触发方式的,不知道怎么设置!
#ifndef _KEYS_H_
#define _KEYS_H_
/*key=0-9代表数字0-9
key=11 代表 上
key=12 代表 左
key=13 代表 右
key=14 代表 下
key=15 代表 删除/退出
key=16 代表 确定
*/
uint8 key=10;
void exint0(void) interrupt 0 using 1
{
P2=~0x10;
if(P2&0x0f==~0x01){key=11;}
if(P2&0x0f==~0x02){key=12;}
if(P2&0x0f==~0x04){key=13;}
if(P2&0x0f==~0x08){key=14;}
P2=~0x20;
if(P2&0x0f==~0x01){key=7;}
if(P2&0x0f==~0x02){key=4;}
if(P2&0x0f==~0x04){key=1;}
if(P2&0x0f==~0x08){key=15;}
P2=~0x40;
if(P2&0x0f==~0x01){key=8;}
if(P2&0x0f==~0x02){key=5;}
if(P2&0x0f==~0x04){key=2;}
if(P2&0x0f==~0x08){key=0;}
P2=~0x80;
if(P2&0x0f==~0x01){key=9;}
if(P2&0x0f==~0x02){key=6;}
if(P2&0x0f==~0x04){key=3;}
if(P2&0x0f==~0x08){key=16;}
if(~((key>=0)&&(key<=16)))
{P2=~0xf0;}
}
#endif 展开
有什么办法可以按下按钮进入中断后就执行一次中断里的程序后,等到松开按钮后再扫描一次?
以前记得可以设置外部中断的触发方式的,不知道怎么设置!
#ifndef _KEYS_H_
#define _KEYS_H_
/*key=0-9代表数字0-9
key=11 代表 上
key=12 代表 左
key=13 代表 右
key=14 代表 下
key=15 代表 删除/退出
key=16 代表 确定
*/
uint8 key=10;
void exint0(void) interrupt 0 using 1
{
P2=~0x10;
if(P2&0x0f==~0x01){key=11;}
if(P2&0x0f==~0x02){key=12;}
if(P2&0x0f==~0x04){key=13;}
if(P2&0x0f==~0x08){key=14;}
P2=~0x20;
if(P2&0x0f==~0x01){key=7;}
if(P2&0x0f==~0x02){key=4;}
if(P2&0x0f==~0x04){key=1;}
if(P2&0x0f==~0x08){key=15;}
P2=~0x40;
if(P2&0x0f==~0x01){key=8;}
if(P2&0x0f==~0x02){key=5;}
if(P2&0x0f==~0x04){key=2;}
if(P2&0x0f==~0x08){key=0;}
P2=~0x80;
if(P2&0x0f==~0x01){key=9;}
if(P2&0x0f==~0x02){key=6;}
if(P2&0x0f==~0x04){key=3;}
if(P2&0x0f==~0x08){key=16;}
if(~((key>=0)&&(key<=16)))
{P2=~0xf0;}
}
#endif 展开
1个回答
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机原理由运算器、控制器、存储器、输入输出设备构成,单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程;单片机的应用:节能控制;智能语音设备;报警控制;医疗设备。
单片机原理及应用 本书详细地介绍了MC...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询