51单片机中断IE问题,坐等!!!
那执行完中断程序以后,INTO的电平由高电平变为低电平吗?IEO置位是由INTO来决定的吗?...
那执行完中断程序以后,INTO的电平由高 电平变为低电平吗?IEO置位是由INTO来 决定的吗?
展开
3个回答
展开全部
不会,IE0的置位与否与IT0有关,当IT0=1时,下降沿触发也就是说当INT0由高到低时IE0将被硬件置1,执行完中断,遇到RETI自动清0,但不影响INT0的状态。当IT0=0时,当CPU检测到连续两个周期的INT0低电平时IE0置1,中断结束时遇到RETI自动将IE0清0,之后如果INT0仍然为低电平,且长度超过两个机器周期,那么将重新将IE0置1申请中断。
更多追问追答
追问
INTO的触发方式是由软件来控制的,那么触发INTO还需要外加的高低电平来触发它,软件中只是设定,这样子理解对吗?
追答
这样理解是对的,触发方式(IT0)和是否触发(EX0)是靠软件来设定,什么时候触发是由INT0的信号决定,呵呵跟钓鱼一样,鱼饵、鱼钩、鱼线、鱼竿当然得由钓鱼人准备了,鱼什么时候上钩呵呵,你决定不了的,得由鱼来决定。
展开全部
如果是边沿触发,那么当负跳变的时候,IE0置1,完成中断处理之后,不管引脚是高电平还是低电平,IE0自动清零,就不会再置1了,除非又来一个负跳变
如果你是用低电平方式,完成中断处理之后,虽然自动清0了IE0,但是如果低电平还没有变成高电平,立刻又会IE0置1,又中断.
所以,你的表达是错误的,IE0什么时候置位,是由INT0上的信号和你设定的状态(电平触发还是边沿触发)共同决定的.
如果你设定的是边沿触发,那么,如果INT0一直是低电平,也不会触发IE0,需要的是高电平到低电平的跳变过程才能触发.
反之,如果你设定的是低电平触发,那么,只要INT0是低电平,就一直触发IE0
所以是共同决定,而不是单单由INT0决定
如果你是用低电平方式,完成中断处理之后,虽然自动清0了IE0,但是如果低电平还没有变成高电平,立刻又会IE0置1,又中断.
所以,你的表达是错误的,IE0什么时候置位,是由INT0上的信号和你设定的状态(电平触发还是边沿触发)共同决定的.
如果你设定的是边沿触发,那么,如果INT0一直是低电平,也不会触发IE0,需要的是高电平到低电平的跳变过程才能触发.
反之,如果你设定的是低电平触发,那么,只要INT0是低电平,就一直触发IE0
所以是共同决定,而不是单单由INT0决定
更多追问追答
追问
INTO的触发方式是由软件来控制的,那么触发INTO还需要外加的高低电平来触发它,软件中只是设定,这样子理解对吗?
追答
你的理解是对的,普遍的来讲,外中断,就是对外中断引脚INT0的信号进行检测,这个信号可能是以下
几种:高电平,低电平,上升沿,下降沿.
而对于51单片机来讲,只能检测低电平或者下降沿,那么到底要检测什么?就有软件来设定,对51单片机来讲,就是设置 IT0,IT0 = 1,检测的是下降沿,IT0 = 0,则检测的是低电平.
当你的软件设置好到底要检测什么类型的信号之后,单片机就坐等相应类型信号的出现就行了,信号一出现,即引发中断.
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用中断来干什么?
大概给你说下:IE是中断允许寄存器,其值为83时,二进制为1000 0011,IE.7位为1表示CPU开放中断,IE.1位也为1,表示允许定时器T0溢出中断 IE.0位为1,表示允许外部中断0中断
大概给你说下:IE是中断允许寄存器,其值为83时,二进制为1000 0011,IE.7位为1表示CPU开放中断,IE.1位也为1,表示允许定时器T0溢出中断 IE.0位为1,表示允许外部中断0中断
更多追问追答
追问
我只是想知道INTO的高低电平是否决定了IEO的置位关系
追答
不是。。
重点是 IE是中断允许寄存器
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询