标题:
基于STC15w104单片机的人体红外报警,分享一下
[打印本页]
作者:
laopihappy123
时间:
2019-11-30 23:03
标题:
基于STC15w104单片机的人体红外报警,分享一下
本帖最后由 laopihappy123 于 2019-12-29 22:34 编辑
没什么复杂的功能,分享给大家哈,注意 用的是STC的15w104(8脚的) 用了它的IO高阻和推挽功能
偶是初学者 功能正常的,已经调试成功了
是我们传感器的课设,明天早上报告才交给我们老师(余老师)哈哈哈,纯手写,先分享出来,但是为了防止老师认为我是抄的,特添加此段
单片机源程序如下:
#include <stc15f2k60s2.h>
#include <intrins.h>
sbit bfcf=P3^4;
sbit gbbj=P3^5;
sbit beep=P3^3;
sbit signal=P3^1;
sbit led=P3^0;
sbit emergency=P3^2;
bit Arming;
void Delay1ms();
void delayms(unsigned int ms);
void init();
void Keys();
void main()
{
init();
while(1)
{
Keys();
if(Arming==1&&signal==1)
{
delayms(2000);
if(Arming==1&&signal==1)
{
while(gbbj)
{
beep=1;
}
beep=0;
}
}
if(emergency==1)
{
while(gbbj)
{
beep=1;
}
beep=0;
emergency=0;
}
}
}
void Delay1ms() //@11.0592MHZ
{
unsigned char i, j;
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
void delayms(unsigned int ms)
{
unsigned int times;
for(times=0;times<ms;times++)
{
Delay1ms();
}
}
void init(void)
{
Arming=0;
led=0;
beep=0;
emergency=0;
P3M1=0x32;
P3M0=0x09;
delayms(5000);
}
void Keys(void)
{
if(bfcf==0)
{
delayms(20);
if(bfcf==0)
{
delayms(300);
{
if(bfcf==0)
{
Arming=0;
led=0;
delayms(1000);
}
else
{
Arming=1;
led=1;
delayms(1000);
}
}
}
}
}
复制代码
以上程序51hei提供下载:
红外报警器.7z
(638 Bytes, 下载次数: 57)
2019-11-30 23:02 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
laopihappy123
时间:
2019-12-1 23:36
本帖最后由 laopihappy123 于 2019-12-2 01:45 编辑
高阻输入真的很好用,不过大家要记得拉上/下拉电阻哦 不然电平会不确定的~~
作者:
Viaa
时间:
2019-12-26 14:37
试试看咋样
作者:
Huidier
时间:
2019-12-26 15:26
可以分享一下文件吗
作者:
zyyy55959
时间:
2020-3-10 06:55
试试看咋样
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1