Proteus仿真:51单片机声光控节能灯设计详解

文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者

  • 一、功能简介

    本项目使用Proteus8仿真51单片机控制器,使用人体红外传感器、声音传感器、光线传感器模块,PCF8591 ADC模块、LED灯等。

    系统运行后,声/光/红外同时控制灯亮灭,
    光敏控制灯在白天不亮,只在晚上
    声控检测到声音或红外检测到人
    靠近时灯亮,声音消失或人离开后
    延时5秒灯熄灭。


    二、软件设计

    /*
    作者:嗨小易(QQ:3443792007)
    */
    
    //系统参数初始化
    void sys_parm_init(void)
    {
    	sys_ctrl.light=0;
    	sys_ctrl.flag=0;
    	sys_ctrl.sec=0;
    	sys_ctrl.led_flag=0;
    	LED=1;IREN=1;SOUND=1;
    }
    
    //系统数据获取
    void sys_data_get(void)
    {
    	while(1)
    	{
    		//读取光线值
    		sys_ctrl.light=pcf8591_read_adcvalue(0);
    		sys_ctrl.light=cal_map(sys_ctrl.light,0,255,0,100);
    
    		break;
    	}
    }
    
    //系统功能控制
    void sys_fun_ctrl(void)
    {
    	static u8 sta=0;
    
    	//如果是白天,无论有人与否,LED关闭
    	if(sys_ctrl.light>=70)
    	{
    		LED=1;
    		sys_ctrl.flag=1;//标记白天
    		TR1=0;//关闭定时器
    		sys_ctrl.sec=0;
    	}
    	else
    	{
    		sys_ctrl.flag=0;//标记晚上	
    	}
    	//只有晚上时,灯才受光线、声音、人体红外控制
    	if(sys_ctrl.flag==0)
    	{
    		//如果有人或者有声音,灯亮
    		if(IREN==0 || SOUND==0)
    		{
    			LED=0;
    			TR1=0;//关闭定时器
    			sys_ctrl.sec=0;
    			sys_ctrl.led_flag=1;
    		}
    		//如果没有人并且没有声音,灯亮一段时间熄灭
    		if(IREN==1 && SOUND==1 && sys_ctrl.led_flag==1)
    		{
    			TR1=1;//打开定时器	
    		}
    	}	
    } 
    
    //应用控制系统
    void appdemo_show(void)
    {
    	sys_parm_init();//系统参数初始化
    	time1_init();//定时器1初始化,10ms
    
    	while(1)
    	{
    		sys_data_get();//系统数据获取
    		sys_fun_ctrl();//系统功能控制		
    	}
    }
    
    //定时器1中断函数
    void time1() interrupt 3
    {	
    	static u8 i=0;
    	
    	TH1=0xDC;
    	TL1=0x00; 
    	i++;
    	if(i>=100)//1S到
    	{
    		i=0;
    		sys_ctrl.sec++;
    		if(sys_ctrl.sec>=LED_COLSE_TIME)//时间到达,自动关闭LED
    		{
    			LED=1;
    			TR1=0;//关闭定时器
    			sys_ctrl.sec=0;
    			sys_ctrl.led_flag=0;
    		}
    	}
    }
    
    

    三、实验现象

    演示视频:https://space.bilibili.com/444388619




    联系作者

    专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

    物联沃分享整理
    物联沃-IOTWORD物联网 » Proteus仿真:51单片机声光控节能灯设计详解

    发表评论