‘壹’ 能识别运动方向的单片机红外线报警器 求C程序
红外线光束2被先挡住时R1被置1,
红外线光束2没有被先挡住时R1被置0。
--每一个脉冲信号,你都这么检测?
--那么,你还用计数器干什么?
--有一个脉冲,就可以判别出来运动方向。
--你用 10 个脉冲,计数,是干什么?
--------------
另外,即使你要计算输入脉冲的个数,也不应该用计数器。
应该用外部中断。
‘贰’ 这是我设计基于AT单片机的红外对射报警探测器电路图感觉还有点问题求高手指点
看了你的电路,觉得确实有问题。
第一,89C51芯片的驱动能力有限,不能用来直接驱动发光二极管,长期工作有问题,建议换成驱动能力较强的单片机芯片,如STC89C52之类,单口灌电流可到20mA,若坚持使用AT89C51,则发光二极管应通过三极管驱动。
第二,为了避免自然光的干扰,一般会让发光二极管发出一定频率的光,这样光接收电路也要做一定的调整。要采用软件判别采集到的频率。所以建议光接收电路接到int0或者int1或者T0、T1端口上,当然也可以采用红外专用接收管。
‘叁’ 基于单片机的热释红外报警器的设计中,要求按下开关K,控制器开始工作,再按一下开关K ,控制器停止工作
K就要接在一个IO端口上啦,可以这样做:
sbit k=P....//随意确定端口,根首拿冲据你的硬件电路来。
bit key;//声明一者歼敏旁个位变量,作为红外报警工作的开关。
if(k==0)//判断按键有没有按下
delayms(10);如果按下,延时10毫秒消抖。
if(k==0)//确定按键按下
key=!key;//将这个变量取反。
下面就可以用这个变量来控制红外报警了,比如:
if(key)
{
//这里让报警工作
}
else
{
//这里让报警停止工作
}
‘肆’ 急需一个红外线单片机报警器,用汇编语言编写
你说的太笼统,但是这种程序网上可以搜一堆,你没有必要在这里问!
看你的提问就知道你是一个初学者,这里告诉你几个关键的问题:
在程序中编写按键扫描程序,当检测到p1.5端口为低电平时,采用延时或中断方式令p2.5和p2.7交替输出高低电平,就可以实现你需要的效果;至于蜂鸣器程序,你可以从网上借鉴。
‘伍’ 基于单片机的红外报警器
一般红外探头能输出开关信号。单片机对其计数即可,配合按键程序可实现。