number007cool 发表于 2010-6-30 16:31:31

关于51单片机的外部中断电平触发方式的几点疑问

51单片机的外部中断的电平触发方式是采用的低电平触发,现在假如程序如下
void main()
{
EA=1;//开总中断
EX0=1;//允许外部中断0
IT0=0;//电平触发方式,低电平有效
while(1)
{
指令3;
}
}
void int0()   interrupt 0
{
指令1;
指令2;
}
问题1:
假如给IN0一个低电平(将该脚接一下地后又与地断开,处悬空状态)后,程序时如何运行的?
问题2:
假如给INT0一个低电平后保持不变(始终为低),程序如何执行?

bxzyf 发表于 2010-6-30 20:19:27

1.假如给IN0一个低电平,单片机检测到后,执行中断程序。中断程序执行完毕退出后有两种可能:如果INT0恢复高电平,则返回主循环;如果INT0没有来得及恢复高电平,则会再一次执行INT0中断程序。
2.将反复执行中断处理程序。

number007cool 发表于 2010-6-30 23:19:04

回复【1楼】 bxzyf
1.假如给IN0一个低电平,单片机检测到后,执行中断程序。中断程序执行完毕退出后有两种可能:如果INT0恢复高电平,则返回主循环;如果INT0没有来得及恢复高电平,则会再一次执行INT0中断程序。
---------------------------------------------------------------------------------------
INT0默认的情况下悬空,给INT0一个低电平后,将INT0管脚继续悬空(既没有接低也没有接高).因而没有恢复高电平一说.

number007cool 发表于 2010-7-1 15:45:02

还有没有其他回答,谢谢!

rainyss 发表于 2010-7-1 18:30:28

楼主你问的是两个问题:
1.中断线一直保持有效时,51 CPU如何运行
2.引脚悬空时,中断线的状态到底是什么

回答:
1.51单片机处理中断并返回后至少执行一条指令才能再次进入中断,这是51的特性,早年单板开发机上就拿这个特性来完成单步调试功能.
2.引脚悬空时为弱上拉高电平,也就是说一般情况下是高电平,但有强干扰时可能产生低电平.注意,这是针对标准51,很多单片机修改了硬件,引脚可以设置为高阻态,那么电平就可能是随机的了.

zpyws 发表于 2010-7-1 20:15:38

1楼的回答已经很到位了,楼主要字字斟酌

loggerjy 发表于 2010-7-2 16:54:25

回复【4楼】rainyss
楼主你问的是两个问题:
1.中断线一直保持有效时,51 cpu如何运行
2.引脚悬空时,中断线的状态到底是什么
回答:
1.51单片机处理中断并返回后至少执行一条指令才能再次进入中断,这是51的特性,早年单板开发机上就拿这个特性来完成单步调试功能.
2.引脚悬空时为弱上拉高电平,也就是说一般情况下是高电平,但有强干扰时可能产生低电平.注意,这是针对标准51,很多单片机修改了硬件,引脚可以设置为高阻态,那么电平就可能是随机的了.
-----------------------------------------------------------------------

同意

86793 发表于 2012-7-19 23:33:44

是的,1楼已经回答非常好了
页: [1]
查看完整版本: 关于51单片机的外部中断电平触发方式的几点疑问