文章目录
前言
💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗
👇🏻 精彩专栏 推荐订阅👇🏻
单片机设计精品实战案例✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
资料获取
文章底部名片,详细资料联系我。
设计介绍
基于单片机无线智能报警系统是一种结合了单片机控制技术、无线通信技术以及智能报警策略的安全防护系统。以下是该系统设计的详细介绍:
一、系统概述
基于单片机无线智能报警系统通过无线传感器节点实时监测周围环境,一旦检测到异常入侵或危险情况,即通过无线传输方式将报警信号发送给单片机控制器。单片机控制器对接收到的信号进行处理和逻辑判断,进而触发报警装置,并通过无线通信模块将报警信息发送给远程监控中心或用户手机APP,实现实时报警和远程监控。
二、系统组成
整个系统主要由以下几个部分组成:
传感器模块:包括红外传感器、烟雾传感器、温度传感器、湿度传感器等,用于实时监测入侵者的红外辐射、环境中的烟雾浓度、温度和湿度等参数。这些传感器节点应具备灵敏度高、抗干扰能力强等特点。
单片机模块:选用性能稳定、功能强大的单片机作为系统的控制核心,设计相应的外围电路,包括电源电路、复位电路、时钟电路等。单片机负责接收传感器模块传输的数据,根据预设的报警逻辑判断是否需要发出报警信号,并控制报警模块进行声光报警或其他形式的报警。
报警模块:设计合适的报警装置,如声光报警器、振动马达等,用于在检测到异常事件时发出警报信号。报警模块的设计需要考虑到报警方式的多样性、报警声音的响度与辨识度以及报警灯光的亮度与闪烁频率等。
无线通信模块:选择适当的无线传输模块,如WiFi模块、蓝牙模块或LoRa模块等,用于实现单片机控制器与无线传感器节点以及远程监控中心之间的通信。无线通信模块的设计需要考虑到通信距离的远近、通信速率的快慢以及通信协议的兼容性等。
功能介绍
通过多机通信模拟远程无线报警传输,可以传输多种报警信息,多种报警信息采用不同的二进制组合或者数字进行表示。
设计程序
#include <reg51.h> /* 库函数调用 */
#include <intrins.h> /* 库函数调用 */
#define uchar unsigned char /* 宏定义 */
#define uint unsigned int /* 宏定义 */
sbit K0 = P1 ^ 0; /*按键定义引脚 */
sbit K1 = P1 ^ 1; /*按键定义引脚 */
sbit K2 = P1 ^ 2; /*按键定义引脚 */
sbit K3 = P1 ^ 3; /*按键定义引脚 */
sbit K4 = P1 ^ 4; /*按键定义引脚 */
sbit K5 = P1 ^ 5; /*按键定义引脚 */
sbit K6 = P1 ^ 6; /*按键定义引脚 */
sbit K7 = P1 ^ 7; /*按键定义引脚 */
uchar i;
/* 数码管显示字符 */
uchar code tab[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66,
0x6d, 0x7d, 0x07, 0x7f, 0x6f,
0x77, 0x7c, 0x39, 0x5e, 0x79,0x71 };
/***************************延时函数************************/
void delay( uint z )
{
uint x, y;
for ( x = z; x > 0; x-- )
for ( y = 110; y < 0; y-- )
;
}
/***************************信息发送函数************************/
void send( uchar c ) /* 向串口发送字符 */
{
SBUF = c;
while ( TI == 0 )
;
TI = 0;
}
/***************************主函数************************/
void main()
{
P2 = 0x00;
SCON = 0x50; /* 串口模式1 */
TMOD = 0x20; /* T1工作模式2 */
PCON = 0x00; /* 波特率不倍增 */
TH1 = 0xfd; /* 波特率设定6900 */
TL1 = 0xfd;
TI = RI = 0;
TR1 = 1; /* 启动定时器T1 */
IE = 0x90; /* 允许串口中断 */
while ( 1 )
{
if ( K0 == 0 )
send( '0' );
else send( 'A' ); /* 发送数据 */
if ( K1 == 0 )
send( '1' );
else send( 'B' ); /* 发送数据 */
if ( K2 == 0 )
send( '2' );
else send( 'C' ); /* 发送数据 */
if ( K3 == 0 )
send( '3' );
else send( 'D' ); /* 发送数据 */
if ( K4 == 0 )
send( '4' );
else send( 'E' ); /* 发送数据 */
if ( K5 == 0 )
send( '5' );
else send( 'F' ); /* 发送数据 */
if ( K6 == 0 )
send( '6' );
else send( 'G' ); /* 发送数据 */
if ( K7 == 0 )
send( '7' );
else send( 'H' ); /* 发送数据 */
}
}
/**************************串口中断***********************/
void serial_int() interrupt 4 /* 甲机串口接收中断函数 */
{
if ( RI )
{
RI = 0; /* 标志位置零 */
if ( SBUF >= 0 && SBUF <= 15 )
P2 = tab[SBUF]; /* 接收的信息置位 */
else
P2 = 0x00; /* 没有信息则处理此方法 */
if ( SBUF == 'x' ) /* buf中为x则调用 */
if ( i >= 0 && i < 9 )
{
i = i + 1;
P2 = tab[i];
}
if ( i == 9 )
i = 0;
if ( SBUF == 'y' )
{
P2 = 0x00;
i = 0;
}
}
}
具体实现截图
设计获取
文章下方名片联系我即可~
精彩专栏推荐订阅:在下方专栏👇🏻
收藏关注不迷路!!
🌟文末获取设计🌟