【005】基于51单片机的多路热释电红外报警器proteus仿真与实物设计

一、压缩包资料内容

  • (1)、基于51单片机的电子万年历多路热释电红外报警器proteus仿真设计一份;
  • (2)、基于51单片机的多路热释电红外报警器proteus仿真设计keli源代码一份;
  • (3)、基于51单片机的多路热释电红外报警器Altium designer 的原理图一份;
  • (4)、基于51单片机的多路热释电红外报警器Altium designer 的PCB一份;
  • (5)、基于51单片机的多路热释电红外报警器元器件清单一份;
  • (6)、基于51单片机的多路热释电红外报警器proteus仿真与实物设计视频讲解一份;

二、设计要求

  • (1)、本次设计要求以51系列单片机为核心,设计一多路红外热释电报警装置;
  • (2)、可通过按键打开并且关闭报警装置;
  • (3)、系统实现数码管显示哪一路红外热释电报警;

三、相关资料截图

 

图一、基于51单片机的多路热释电红外报警器proteus仿真界面截图

 

图二、基于51单片机的多路热释电红外报警器Keil源程序界面截图

 

图三、基于51单片机的多路热释电红外报警器Altium designer 原理图界面截图

 

图四、基于51单片机的多路热释电红外报警器Altium designer PCB界面截图

图五、基于51单片机的多路热释电红外报警器实物设计照片

四、视频讲解

私信获取全部内容 

部分源代码

#include<AT89X51.H>
#define uint unsigned int
#define uchar unsigned char

uchar code table[]={0x41,0x7B,0x46,0x52,0x78,0xD0,0xC0,0x5B,
                          0x40,0x50,0x48,0xE0,0xC5,0x62,0xC4,0xCC};
uchar a[6];
uchar b[6];
sbit kai=P1^0;
sbit guan=P1^1;

sbit reshi1=P1^2;	 //5个热释红外信号检测输入
sbit reshi2=P1^3;
sbit reshi3=P1^4;
sbit reshi4=P1^5;
sbit reshi5=P1^6;

sbit beel=P1^7;		 //蜂鸣器报警输出
uchar moshi=0;		 //工作模式
uchar rs1=0,rs2=0,rs3=0,rs4=0,rs5=0,flag=0,out=0;
void fenli();  //信号分离
void delay(uint xms)  //延时
{
	int i,j;
	for(i=xms;i>0;i--) 	for(j=110;j>0;j--);
}
void keyscan()	   //按键扫描
{
	if(kai==0)	   //开始键按下
	{
		delay(3);  //延时
		if(kai==0) //再判
		{
			while(!kai); //等待释放
			moshi=0;	 //模式等于0
			beel=0;		 //关蜂鸣器
			delay(500);	 //延时
			beel=1;		 //开蜂鸣器
		}
	}

	if(guan==0)	  //关键按下
	{
		delay(3);
		if(guan==0)
		{
			while(!guan);
			moshi=1;  //模式等于1
			beel=0;		 //关蜂鸣器
			delay(500);	 //延时
			beel=1;		 //开蜂鸣器
		}
	}
}
void checkreshi()	//检测热释红外信号
{
	 if(reshi1==0) {   	 rs1=1;	 a[1]=1;   	 }
	 else  	 {		  	rs1=0;a[1]=0; 	 }

	 if(reshi2==0)	 {	  	 rs2=1;a[2]=2;	 }
	 else  	 {		  	rs2=0;a[2]=0;  }

	 if(reshi3==0) 	 {	    rs3=1;a[3]=3;	 }
	 else  	 	 {	   	rs3=0;a[3]=0;		 }

	 if(reshi4==0) 	 {	   	 rs4=1;a[4]=4;	 }
	 else  	 {	 	rs4=0;a[4]=0;		 }

	 if(reshi5==0)	 {		 rs5=1;a[5]=5; 	 }
	 else  	 {	   	rs5=0; a[5]=0;		 }
	 flag=rs1+rs2+rs3+rs4+rs5; //热释红外信号进行或操作
	 fenli();				   //热释红外位置分离
}
void fenli()
{
	uchar l;
	out=0;
	for(l=6;l>0;l--)
	{
		if(a[l]!=0)
		{
			//b[out]=a[l];
			//out++;
			P3=table[a[l]];	 //显示热释红外信号编号
		 	delay(400);
			keyscan();
		}
		else
		{
			P3=0x41;	   //显示-
			keyscan();
		}
	}	
}
/*
void display()
{

	uint k;
	for(k=0;k<flag+1;k++)
	{
		 	 
	}
} */

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JunDunJunDun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值