基于单片机的红外报警系统设计

该设计任务详述了一个使用单片机的红外报警系统,要求能通过红外传感器检测入侵并区分人和动物,通过声光报警进行反馈。设计中强调了软件优先于硬件的策略,以及电路的简洁性和可靠性。系统硬件包括单片机最小系统和接口,软件部分涉及流程图绘制和程序编写。文中给出了部分程序代码,并提供了Proteus仿真链接用于电路验证。
摘要由CSDN通过智能技术生成

1、设计任务

基于单片机的红外报警系统设计

基本要求:通过红外传感器探测可疑入侵,通过声光报警。

创新:能够区分人和动物 。

任务区分:A——通过播放蜂鸣声音报警。

B——通过灯光闪烁报警。

2. 设计要求

2.1系统方案论证

根据设计任务,分析设计系统的组成,给出实现设计任务的几种方案,分析比较几种设计方案的优略,本着尽量以软件代替硬件,同时力求电路简单,工作可靠的原则,确定总体设计方案。

2.2系统硬件电路设计

根据系统设计方案进行软、硬件的分配,软、硬件设计分别进行。硬件设计包括单片机最小系统和扩展接口及配置,硬件结构在设计时要选择合适的元器件,硬件电路要简洁、工作可靠,需用Proteus绘制整个系统的电路仿真原理图。

2.3软件设计

根据该系统要求的功能进行软件设计,简述软件的功能,并根据每个模块的功能绘制软件流程图,根据流程图编写程序并汇编调试通过;列出软件清单,软件清单要求加以注释。

主程序:


#include <reg52.h>
#define uchar unsigned char 
#define uint  unsigned int 

uchar Mode=1,Mode1=0;


sbit s1=P1^0;
sbit s2=P1^2;
sbit s3=P1^1;

bit alarm=1,kai=1;

sbit LR=P2^0;//ºìµÆ±¨¾¯µÆ
sbit LY=P2^2;//²¼·ÀµÆ
sbit LG=P2^1;//ºìÍâÐźżì²âµÆ

sbit Feng=P1^3;//·äÃùÆ÷±¨¾¯
sbit HR=P0^3;//ºìÍâÄ£¿é½ÓÈë¶Ë¿Ú

void delay(uint x) //ºÁÃ뼶ÑÓʱº¯Êý
{
  uint i,j;
  for(i=x;i>0;i--)
     for(j=110;j>0;j--);
}

void di()
{
	LR=0;//·äÃùÆ÷±¨¾¯£¬ºìµÆ¸úËæÉÁ˸
	Feng=0;
	delay(80);
	LR=1;
	Feng=1;
	delay(200);	
}
void main()
{
	LR=1;//³õʼ»¯Èý¸öµÆ¶¼ÊÇÃð
	LG=1;
	LY=1;
	delay(5);
	while(1)
	{
		if(s1==0)				//½ô¼±ÊÖ¶¯±¨¾¯
		{
				delay(5);	   //ÑÓʱÏû¶¶
				if(s1==0)	
				{
					delay(5);
					while(!s1);
					kai=0;
					LY=1;	    
					LG=1;
					alarm=0; //½øÈ뱨¾¯×´Ì¬
					Mode1=1; //Mode1ÖÃ1£º½ô¼±±¨¾¯¹ý³ÌÖÐÒÔ·À°´Á˲¼·À¼üÈ¡Ïû½ô¼±±¨¾¯
					delay(5);
				}			 

		}
		if(s3==0)			//È¡Ïû±¨¾¯
		{
								
				delay(5);
				if(s3==0)				
				{
					delay(5);
					while(!s3);
					LR=1;
					LY=1;
					Mode=1;
					Mode1=0;
					alarm=1;
					delay(5);
				}
		}
		if(s2==0)			//²¼·À
		{
			if(Mode1==1) //ÅжÏMode1µÄ״̬£¬Èç¹ûÊǽô¼±±¨¾¯×´Ì¬¾Í±£³Ö£¬·ñÔò½øÈë²¼·ÀÉèÖÃ
			{
				alarm=0;
			}
			else
			{
				for(t=0;t<200;t++)
				{
				  LY=~LY;
				  delay(200);
				}
				LR=1;
				LY=0;
				Mode=0;	//²¼·À״̬±êʶ
				kai=1;
				delay(5);
			}
				
		} 		
		if(alarm==0)
		{
			di();
			delay(100);
			di();
			delay(100);
		}
		if(HR==1&&Mode==0)
		{
			alarm=0;//¿ªÊ¼½øÈ뱨¾¯
		}
		else
		{
			if(kai)
			{
				alarm=1;
				LR=1;
			}
		}
		if(HR==1)  //¼ì²âºìÍâÄ£¿éÓÐÐźţ¬Â̵ÆÁÁ,·ñÔòÃð
		{	   
			LG=0;
			delay(200);
		}
		else
		{
			LG=1;
		}			 
	}
}

Proteus仿真:

完整代码点开链接私信  免费  获取。

【iBot机器人工作室的个人空间-哔哩哔哩】 https://b23.tv/ryUWVKa

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K11mvp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值