我要发布
仪器网/ 仪器社区/ 红外探测器/ 能识别运动方向的单片机红外线报警器 求C程序

能识别运动方向的单片机红外线报警器 求C程序

嗯昨天咯    2015-02-10    红外探测器    浏览 479 次

程序由脉冲信号发送与检测、逻辑判断、报警等模块组成。程序初始化时将定时器T0、T1设置为工作方式1,作计数器用。P1.0为脉冲信号输出端,P3.4、P3.5为计数器的输入端。在2ms的时间内P1.0发出10个脉冲信号 ,如果两路红外线均没有被挡住的话 ,则P3.4、P3.5两端均... 程序由脉冲信号发送与检测、逻辑判断、报警等模块组成。程序初始化时将定时器T0、T1设置为工作方式1,作计数器用。P1.0为脉冲信号输出端,P3.4、P3.5为计数器的输入端。在2ms的时间内P1.0发出10个脉冲信号 ,如果两路红外线均没有被挡住的话 ,则P3.4、P3.5两端均输入10个脉冲 ,T0、T1两个计数器的计值均为10,如果有那一路被挡住了,则对应的计数器的计数值为0或者小于10。接下来程序对T0、T1的计数值进行判断,从而得出两路红外线被挡住的情况 ,由于要检测两路红外线被挡住的次序,因此程序要不断返回到初始状态进行循环检测。如果经过若干轮的检测后发现先挡住红外线光束1,然后才挡住红外线光束2,则程序转向报警部分。对于其它情况 程序则回到初始状态进行下一轮的检测。单片机寄存器R1的值作两路红外线被挡住的次序的标志值 ,当红外线光束2被先挡住时R1被置1,当红外线光束2没有被先挡住时R1被置0。在程序的报警部分 ,T0被设置成0.25ms的定时器 ,控制P1.1端输出2kHz的脉冲信号,脉冲信号输出0.5秒、停止0.5秒 ,循环60次后程序又返回到初始状态,报警时间为1分钟。

精彩问答
楚路尼玛 发布日期:2016-07-26
红外线光束2被先挡住时R1被置1,

红外线光束2没有被先挡住时R1被置0。

--每一个脉冲信号,你都这么检测?
--那么,你还用计数器干什么?

--有一个脉冲,就可以判别出来运动方向。
--你用 10 个脉冲,计数,是干什么?

--------------

另外,即使你要计算输入脉冲的个数,也不应该用计数器。
应该用外部中断。
全部评论
creditbj2015 发布日期:2015-02-11
需要给你做一份吗
瓶子小姐19 发布日期:2015-02-18
这个很简单的
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控