摘要:随着科技水平的日益提高,家电产品的智能化程度越来越高。智能家电系统一般是指以单片机等控制芯片为核心利用物联网技术将电视机、冰箱、灯等各种家电产品、报警装置、检测系统联结在一起的系统。本系统设计包括两个部分,一个是硬件,一个是软件。电视机等家电产品控制装置以及防火防盗报警装置由传感器,单片机控制器,LED指示灯和复杂的电路构成。
关键词:智能家居;防火防盗报警;单片机;GSM模块;软硬件设计
1 引言
随着现代科技的发展,智能信息技术的推广,智能家电已走进人们的视野,成为家居生活的一部分。本设计的主要任务是通过红外感应器来实现对人体红外信号的检测、处理、数据传送经过MCU功能,通过开关控制模块及声光报警模块以及GSM电话报警来实现提醒功能。处理器采用51系列单片机STC89C52,程序使用C语言编写。
2 主要研究内容
硬件设计和软件设计构成了整个设计,又可划分为数据采集模块、按键设定模块和报警模块等。本系统由开关控制继电器热、释电红外传感器、蜂鸣器、单片机控制电路、LED指示电路及软件组成。
3 系统总体方案
高可靠性这一特点需要在本设计中表现出来,高精度和低成本这两个特点也同样。高可靠性和高精度要求系统能够长时间稳定工作,能够有较小的测量误差,这不仅仅要求传感器的的精度要高,还要求单片机与传感器之间的通信系统必须稳定,整个系统不要太复杂,硬件上使用较少的外围电路是高可靠性的保证,软件上整理出明确的设计思路,因此,对于元器件的选型,需要实事求是,不可片面的追求技术的先进性和超前性,造成系统性能的过剩,同时也需要留出足够的可扩展空间,以方便后续的开发。
3.1系统整体方案确定
根据系统的设计需求,可将整个系统分成如图1所示的几个模块进行设计。包括单片机控制单元,按键模块,红外感应部分、STC89C52单片机、报警系统模块等,各个模块之间的关系也如图2.1所呈现。其中单片机控制单元是整个系统的控制核心,起到了读取红外感应传感器读数据,同时还可以控制声光提示电路和状态显示电路,同时为了保证单片机的正常运转,一般情况下,都需要具有供电电路,复位和时钟等单片机外围辅助电路。为了更加方便用户使用和实现功能的扩展,还设计按键调整的功能,因此有键盘模块来实现时间信息的输入操作。
图1 系统设计框图
3.2 单片机模块选型
单片机作为整个系统的控制核心,起到着读取红外传感器数据,并控制开关、显示和报警元件工作的功能。在进行单片机的选型时,除了要考虑起满足最基本的需求外,还需要考虑一定的拓展性需求,同时考虑到系统成本,也不宜选用的单片机性能过剩,因此本设计选择了功能足够设计本身的性价比最高的芯片STC89C52。
4 硬件设计
STC89C52单片机的最小系统主要包括供电,时钟和复位电路。虽然STC89C52单片机内部具有RC振荡器时钟源,但是考虑到本设计需要实用到串口通信,所以对于时钟精准度的要求比较高,不稳定的时钟频率会增大通讯的误码率,甚至无法使用通讯。所以本设计中使用外部晶振作为系统的时钟源,外接了一个11.0592MHz的晶振,C1和C2为辅助电容,用于产生精准时钟。晶振的两端接入单片机的X1和X2引脚。
STC89C52单片机的最小系统如图1所示
图1单片机最小系统电路图
5软件设计
5.1 软件设计方案
本设计中,软件分为发射端和接收端两部分,其中发射端主要完成的工作时检测按键输入的数据,然后通过串口发送。由于单片机均为单线程结构,并且在发射端的程序中,信号的发送是主动行为,虽然按键输入的检测是被动行为,但是由于本设计中按键值较多,所以不宜采用中断的方式,应该采用查询方式读取按键值。因此本设计中发射端程序均在主函数中运行。
由于在接收端的程序中,串口接收部分比较重要,因此使用串口中断的方式进行读取,整个程序分为主函数和中断函数两部分,中断函数所作的操作就是读取串口传输过来的值。
由于单片机使用的单总线结构,在同一时间内,单片机内只能进行一种操作,因此大部分的函数都运行在主函数中,除此之外,还有少量中断函数,可以打断主函数的功能直接跳入中断,如定时器中断,外部中断等,因此中断的优先级比较高,在本设计中,所有的函数均设计在主函数中,无中断函数,主函数的流程图如图所示。
单片机系统开机后从main进入主函数,在主函数中进行的操作主要包括初始化和循环操作,。当系统开机或者初始化后,首先进行的是各个模块的初始化工作,包括单片机自身的初始化,传感器的初始化等,之后是开机。
5.2 程序设计
部分程序如下
void hongwai_dis()
{if(flag_alarm == 1) //报警
{red = ~red; //红灯报警
beep = ~beep; //蜂鸣器报警
}if(flag_bufang_en == 1) //准备开始布防
{green = ~green; //绿灯闪
} if(flag_bufang == 1) //确认布防
{green = 0; //如果延时布防成功 绿灯长亮
if(hw == 1) //红外有输出
{flag_alarm = 1;
}
}
参考文献
[1]胡萍.串口通信的红外报警器的研制[J].计算机与现代化,2014(10):15-16.
[2]张学会, 曹之然, 尹品磊, et al. 基于单片机的防盗报警系统设计[J]. 信息技术, 2015(3):175-177.
[3]蒙朋超. 基于单片机的防盗报警系统设计分析[J]. 信息系统工程, 2015(6):31-32.
论文作者:王洪云
论文发表刊物:《电力设备》2019年第8期
论文发表时间:2019/9/19
标签:单片机论文; 函数论文; 系统论文; 模块论文; 电路论文; 时钟论文; 串口论文; 《电力设备》2019年第8期论文;