51单片机外部中断嵌套的问题
程序代码如下:#include<stc89.h>//包含51单片机寄存器定义的头文件sbiten0=P0^0;sbitcw0=P0^1;voidinit(void){EX...
程序代码如下:
#include<stc89.h> // 包含51单片机寄存器定义的头文件
sbit en0=P0^0;
sbit cw0=P0^1;
void init(void)
{
EX0=1; //INT0开
EX1=1; //INT1开
IT0=1; //负跳变触发
IT1=1; //负跳变触发
EA=1; //总中断开
PX1=1;
}
/******************************************************************
函数功能:主函数
********************************************************************/
void main(void)
{
en0=1;
cw0=0;
init();
while(1);
}
void js_int1(void) interrupt 2
{
cw0=0;
}
void xw_int0(void) interrupt 0
{
cw0=1;
}
外部中断1是一个脉冲信号,希望来一个脉冲触发一次中断。
外部中断0是一个按键,希望按一次触发一次。
现在的现象是按键一次之后,外部中断0可以触发,但是外部中断1不能触发。
求助 展开
#include<stc89.h> // 包含51单片机寄存器定义的头文件
sbit en0=P0^0;
sbit cw0=P0^1;
void init(void)
{
EX0=1; //INT0开
EX1=1; //INT1开
IT0=1; //负跳变触发
IT1=1; //负跳变触发
EA=1; //总中断开
PX1=1;
}
/******************************************************************
函数功能:主函数
********************************************************************/
void main(void)
{
en0=1;
cw0=0;
init();
while(1);
}
void js_int1(void) interrupt 2
{
cw0=0;
}
void xw_int0(void) interrupt 0
{
cw0=1;
}
外部中断1是一个脉冲信号,希望来一个脉冲触发一次中断。
外部中断0是一个按键,希望按一次触发一次。
现在的现象是按键一次之后,外部中断0可以触发,但是外部中断1不能触发。
求助 展开
6个回答
展开全部
中断1不应该不触发,你仔细观察P0_1引脚的颜色,外部时钟脉冲到了后会变成蓝色,表示低电平,按键触发中断0又会把它变成灰色高阻态。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、只使用外部中断1能触发吗?会不会硬件有问题?
2、将两个中断程序移到main上面试试
2、将两个中断程序移到main上面试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从你的程序上看,没问题。
你现在用两种方式试试。
(1)将外部中断1和外部中断0的功能调换一下,或者都用按键,或者都用脉冲;
(2)将 PX1=1;这句删除。
你现在用两种方式试试。
(1)将外部中断1和外部中断0的功能调换一下,或者都用按键,或者都用脉冲;
(2)将 PX1=1;这句删除。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
优先级为最高系外部中断0的,他进去了跳不出来, 你应该进一次INTO关闭一次IT0=0,防止死等在内INT1也加上 ,第二明白一下是用下降沿,还是高电平
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这里是因为两个方面的原因使你外部中断1不能触发
1.IP优先级中默认的顺序是外部中断0优先级大于外部中断1的优先级,你给的中断0设置是默认的电平触发方式,所以你必须保证中断0中断完毕后,同优先级的中断1才能被中断
2.脉冲方式在main()下定义必须在有
TR1=1; //下降沿触发,这样就可以满足你的要求了
1.IP优先级中默认的顺序是外部中断0优先级大于外部中断1的优先级,你给的中断0设置是默认的电平触发方式,所以你必须保证中断0中断完毕后,同优先级的中断1才能被中断
2.脉冲方式在main()下定义必须在有
TR1=1; //下降沿触发,这样就可以满足你的要求了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询