找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4435|回复: 4
收起左侧

如何用C51单片机人体红外传感器控制一个简单的led灯

[复制链接]
ID:318976 发表于 2018-4-29 19:58 | 显示全部楼层 |阅读模式
如何用C51人体红外传感器控制一个简单的led灯
回复

使用道具 举报

ID:339212 发表于 2018-5-27 17:54 | 显示全部楼层
思路应该是这样的,首先你要清楚红外传感器的接法,这个的话你买的时候可以跟商家要资料,有详细讲解接法的。任何的传感器,检测到变化之后都会输出一个变化的电平,当红外传感器检测到人体发出来的红外线后吗,就会通过输出管脚输出一个电平,只要检测到这个电平后,产生外部中断,中断服务函数设置为LED闪烁即可

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:157976 发表于 2018-4-30 09:58 | 显示全部楼层
利用红外模块,检测输出电平即可
回复

使用道具 举报

ID:238191 发表于 2018-5-27 14:22 | 显示全部楼层
#include<reg52.h> #include<intrins.h> #define uint unsigned int #define uchar unsigned char  sbit IR=P1^0;           //人体红外信号输入 sbit LAMP=P2^0;     //照明灯控制接口  bit fIR=0;            //人体红外信号标志位  unsigned int times=0; unsigned char SetSecond=10; unsigned int SetTime=0;  void delayms(uint ms)        //延时xx毫秒 {     uchar i;     while(ms--)     {         for(i=0;i<123;i++);     } }  void Timer0() interrupt 1   //定时器0中断,开启定时器中断后,每50ms中断1次。 {     TH0  = (65535-50000)/256;     TL0  =(65535-50000)%256;   //定时器重新加载初始值     if(fIR==0)  //人体红外信号标志位为0,人体已经离开房间     {         if(++times==SetTime)    //倒计时时间累计,每次中断50ms,20次为1秒,200次为10秒         {                times = 0;  ////倒计时时间累计清0             TR0=0;      //停止计时             LAMP=1;     //照明灯熄灭         }     } }    void main(void) //主程序 {     P2=0xff;P3=0xff;P1=0xff;     SetTime=SetSecond*20;   //计算倒计时时间,每次中断50ms,20次为1秒,200次为10秒     TMOD = 0x01;    //设置定时器0模式     TH0  =(65535-50000)/256;     TL0  =(65535-50000)%256; //定时器加载初始值     EA=1;   //允许中断触发     ET0=1;  //允许定时器0中断     TR0=0;  //停止定时器0计时     while(1)     {         if(IR==0)   //有人体信号         {             delayms(20);    //延时,防止误触发             if(IR==0)   //有人体信号             {                 fIR=1;TR0=1;    //启动定时器0,设置人体红外信号标志位为1                 LAMP=0;     //照明灯点亮             }         }         else fIR=0; //没有人体红外信号,设置人体红外信号标志位为0     } }
回复

使用道具 举报

ID:488382 发表于 2019-3-11 18:13 来自手机 | 显示全部楼层
梦想天空 发表于 2018-5-27 14:22
#include #include #define uint unsigned int #define uchar unsigned char  sbit IR=P1^0;           // ...

可以将灯泡换成小风扇吗?有啥注意事项吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表