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

该博客分享了一项基于51单片机的多路热释电红外报警器的设计,包括使用Proteus和Altium Designer的仿真与实物设计。设计要求以51单片机为核心,能通过按键控制报警,并显示报警路径。提供的资料包含源代码、原理图、PCB设计和视频讲解,详细阐述了系统的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、压缩包资料内容

  • (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++)
	{
		 	 
	}
} */

### 热释电红外传感器 Proteus 仿真使用教程 #### 1. 系统概述 热释电红外传感器是一种能够感知人体或其他物体发出的红外辐射并将其转换为电信号的设备。在Proteus中模拟该类传感器的工作过程,通常需要结合单片机和其他外围电完成整个系统的功能验证。 基于提供的参考资料[^1]、[^2] 和 [^3],以下是关于如何在Proteus中实现热释电红外传感器仿真的具体方法: --- #### 2. 主要硬件构成 - **STC89C52 单片机**: 负责接收来自热释电红外传感器的数据信号,并控制其他外设工作。 - **热释电红外传感器模块 (PIR)**: 检测人体活动产生的红外线变化。 - **继电器/指示灯电**: 可用于触发灯光或报警装置。 - **电源管理电**: 提供稳定的电压供应给各个组件。 这些元件共同构成了一个完整的检测控制系统,在实际应用中有广泛用途,比如自动开关灯或者入侵警报等功能^,^. --- #### 3. PIR 传感器配置连接方式 在 Proteus 中设置 PIR 的参数时需注意以下几点: - 将 PIR 输出端口接入 MCU 输入引脚(Pin),以便读取状态改变信息; - 设置延时时间以适应不同场景需求(一般默认值即可满足多数情况下的灵敏度要求); - 如果涉及多区域监控,则可能还需要额外增加地址编码逻辑来区分各输入源。 对于具体的连线操作如下所示: ```plaintext +-------------------+ | | | STC89C52 |----> PIR Output -> GPIO Pin of Microcontroller | | +-------------------+ ^ | Power Supply ``` 上述结构展示了基本框架下两者之间的电气联系形式[^3]. --- #### 4. 编程部分说明 为了使系统正常运行还需编写相应的软件代码加载至目标开发板上执行相应动作序列。这里给出一段简单的伪代码作为参考实例展示如何处理来自 PIR 设备传来的数据流: ```c #include <reg52.h> sbit PIR_Input = P3^0; // Define the input pin connected to PIR sensor. void main(){ while(1){ if(PIR_Input == 0){ // When motion detected. LED_ON(); // Turn on an indicator or trigger other actions here. }else{ LED_OFF(); // Otherwise turn off any active outputs when no movement present. } } } ``` 此片段仅提供了一个基础思示意并非最终版本可根据实际情况调整优化后再部署实施^,^. --- #### 5. 测试调试技巧 当构建好虚拟环境之后就可以开始检验成果了。如果发现某些环节存在问题可以通过逐步排查法定位错误所在位置直至完全修复为止。例如观察波形图确认信号传输是否准确无误;检查定时器设定数值范围是否合理等等都是常用手段之一. ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

B站小邓子分享官

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

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

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

打赏作者

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

抵扣说明:

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

余额充值