标题: 51单片机中断连接红外传感器检测物体如何实现? [打印本页]

作者: wqqdwdd    时间: 2018-8-10 15:21
标题: 51单片机中断连接红外传感器检测物体如何实现?
我现在想达到的目的是,利用红外传感器(检测到物体为低电平,未检测到则为高电平)未检测到物体时执行中断,这该如何实现。
51单片机的中断条件不是有低电平和下降沿两种方式么?

作者: wqqdwdd    时间: 2018-8-10 15:32
也就是想问有什么方式使它高电平中断
作者: weiwei850113    时间: 2018-8-10 15:36
是监测到物体中断吧
作者: wqqdwdd    时间: 2018-8-10 15:37
也就是如何实现高电平触发中断
作者: jefelee    时间: 2018-8-10 15:50
51单片机有两个外部中断申请输入端:INT0 和 INT1。 51单片机的外部中断,分为低电平触发和下降沿触发。在单片机内部,分别由控制位 IT0 和 IT1 来控制。 复位时,IT0/1 都为 0,即默认为低电平触发。  一般来说,外设第一次向单片机申请外部中断时,单片机使用那种触发方式,并无什么差别。 但是,返回主程序后,如果外部申请信号仍然是低电平,就有区别了。  在采用低电平触发时,单片机执行了一条主程序的指令后,就会又重新进入中断程序。  而采用下降沿触发时,即使 INT0/1 引脚仍然是低电平,单片机也不会重新进入中断程序。 如果外设想要申请第二次中断,必须是先恢复高电平,重新再送来一次下降沿才行。  那么,为了避免仅仅来了一次申请,就产生多次中断的现象,还是应该采用下降沿触发中断的方式。  如果非要使用低电平触发呢,那必须在退出前,反复的检测中断输入端的电平。 只有当外设撤消了中断申请之后,再退出中断程序,这才能避免多次的重新中断。  到底应该采用那种触发方式,这个确实是应该根据外设的特点来选取。 但是在多数场合,采用下降沿触发方式,还是比较适用的。 即在复位后,应该先执行:    SETB  IT0   SETB  IT1
作者: jefelee    时间: 2018-8-10 16:06
如果你是单纯的检测物体是否存在,非常简单。只需要在单片机的某个IO端口接红外二极管,然后在另外一个端口接红外接收管,利用单片机的定时器和中断功能检测物体。如果你是检测物体的轮廓,或者温度等,复杂的多。简单检测有无物体存在,可以让红外二极管经过限流电阻接入+5V,红外二极管的阴极接单片机IO口。当单片机这个IO口输出低电平的时候,红外二极管被点亮。此时,与红外发光二极管相对的接收二极管可以接受到信号并被单片机检测到(中断或者查询方式实现)。电路连接的时候需要注意红外接收二极管的极性。
作者: leoyks    时间: 2018-8-10 16:55
修改电路,改比较器
作者: hudcm    时间: 2018-8-10 17:13
另外还取决于你用什么样的红外传感器,如果是发射式,那么有物体的时候光耦接收管导通;如果是遮挡式,那么有物体的时候则是光耦接收管不导通。你可以用中断模式来实现也可以用查询模式,如果用中断模式那么响应速度会比较快,但是有可能会有干扰的问题(尤其是下降沿触发方式),如果物体移动速度飞快,则建议用这种模式;用查询模式则可以检测物体移动不那么快的物体,代码相对简单,还有充裕的时间进行抗干扰处理(延时再检测或多次检测确认)。
作者: wqqdwdd    时间: 2018-8-10 18:24
jefelee 发表于 2018-8-10 16:06
如果你是单纯的检测物体是否存在,非常简单。只需要在单片机的某个IO端口接红外二极管,然后在另外一个端口 ...

额。。我想问的是有没有办法使它上升沿触发中断 我用的传感器是e18 d80nk
作者: wqqdwdd    时间: 2018-8-12 11:45
weiwei850113 发表于 2018-8-10 15:36
是监测到物体中断吧

不是 是未检测到物体中断




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1