《基于STM32的红外报警系统的设计实现部分介绍.docx》由会员分享,可在线阅读,更多相关《基于STM32的红外报警系统的设计实现部分介绍.docx(15页珍藏版)》请在第壹文秘上搜索。
1、基于STM32的红外报警系统的设计实现部分介绍硬件设计3.1STM32单片机控制模块设计中主控芯片采用STM32F103C8T6单片机作为主控制。该型号单片机为LQFP44封装,内部资源足够用于本次设计。STM32F103系列芯片最高工作频率可达72MHZ,在存储器的Ol等等待周期仿真时可达到1.25MipMHZ(Dhrystone2.1)o内部128k字节的闪存程序存储器,也就是说代码量可以写到128k字节,本次设计足够,内部高达20K字节的SRAM。STM32F103C8T6芯片工作电压在2.0V-3.6V,最佳工作电压在3.3V。芯片具有上电/断电复位(PoR/PDR)、可编程电压检测器
2、。芯片可以外接416MHZ外部晶体振荡器,且可分频最高可达72MHZ。内部有经过出厂调校的40KHZRC晶体振荡器,可以产生CPU时钟的PLL;带有校准功能的32khz的RTC振荡器。具有低功耗模式,可在睡眠、停机和待机模式。STM32F103系列具有2个12位模数转换器,Ius转换时间,多达16个输入通道。转换范围0-3.6V,转换通道还包含一个内部温度传感器,可以用来测量STM32内部温度。其片上具有定时器、ADC、SPLIIC.USART功能。STM32F103C8T6具有37个I/O,所以的I/O都可以映射到16个外部中断;除了A/D引脚外,几乎所以的I/O都可以接受5V的信号。该芯片
3、的调试模式可用串行单片机调试(SWD)和JTAG接口。3个16位定时器,每个定时器有多达4个用于输入捕获/输出比较PWM或脉冲计数的通道和增量编码器输入。1个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器;2个看门狗定时器(独立的和窗口型的)。系统时间定时器:24位自减型计数器。如下图34TM32F103C8T6管脚图如图3.1所示。TH 一-FyH-s=-p=J-一 -PB0AN8TIME3.CH3 FBI AN9TIME3 CH4 PB2 BOOTi PB3JTDO PB4 JNTRST PBf PB6 IICLSCL TzELeHI PB? 1ICLSDA TiMEton
4、PB8 TIMEtCHJ PB9TIME4-CH4 PBlOIICLSeLTXJUlVBATPCBTIMrajtTCPCUOSC32.INPClSOSC32,OUTPDOOSCNPDlOSC.OUTNRSTPAoWKUPANQmILCHlPAIAbnTIMELCH2PA2AN2TX2Tt(E2.CHJPA3AN3RX2TiMELCH4PA4AN4SP11.NSSPBU11C.SDARX3PA6AN6SpilJvflSOTD4三3.CHlPB12SPnjJSSTIMEI/KINPAANSPll.MOSlTIME3.CH2PB”SPILseKnMELCHlNPBUSPDJdOSlTlME-C心PA
5、8TMELCHlPB15SM2.MOSITIME1_CH3NPA9TXlTIME1.CH2PA10JlXlTlMELCHaPAlITB(El.CH4CANRXUSBDMVDD.3PA12TlKCiTKCANTXUSBDPVDD.2PABJTMSSVVDIOVDDPAUJTCKSWCLKPAlSJTDlVSSJVWW,VDDAVSSJVSSABOOTOST!52FlO3C8T6图3.1STM32F1O3C8T6管脚图3.2 电源电路电源模块需要考虑在输入和输出端增加滤波电路设计,滤除不必要的干扰,使整个电源电路更加稳定可靠。为了节约成本,选择5VUSB电源供电,通过电源芯片转换3.3V电压输出,
6、给单片机、液晶显示模块、传感器等电路供电。电源电路如图3.2所示:电源接口电路图3.2电源电路3.3 指示灯和报警电路模块声音报警模块的主要工作目的是当数据达到设定的阈值进行用户提示工作,具体的模块通过蜂鸣器以及各种外围设备实现,当到达相关报警阶段,相关模块的数据会通过电平的高低数据来实现数据的传输,在单片机的I/O里会输出高低电平,在P20、P21和P22分别接上LED指示灯而P23接上蜂鸣器而蜂鸣器外接个8550的三极管起到开关作用,当三极管达到饱和状态下就驱动了蜂鸣器工作了。指示灯和报警电路如下图3.3所示。图3.3指示灯和报警电路3.4 按键控制电路本电路的设计就是为了控制电路中布防和
7、紧急状态下不同的工作形式,当按下布防按键后,30秒后进入监控状态,当有人靠近时,热释红外感应到信号,传回给单片机,单片机马上进行报警。当遇到特殊紧急情况时,可按下紧急报警键,蜂鸣器进行报警。如图3-4所示。图3.4按键部分第4章软件流程设计4.1 设计思路基于单片机的STM32的红外报警系统在进行整体设计和研究的过程当中,需要以多个模块作为基础来进行整体的传输和梳理工作,如果再进行整体的编码过程当中,能够实现编写,那么,在后期中就可能会出现很多问题,所以我们需要更多的人力和物力来作为基础进行发展并且找到对应的模块,进行数据化的处理工作,来将各个模块进行实现功能之后来进行相关模块的调运工作,这样
8、在后期的制作过程当中就会更加方便,能够更加简便,与软件流程方面的设计优化,设计过程中的思路能够体会编程的优势,其中,主要存在以下几个部分:(1)每一个模块进行设计的过程当中,数据都非常方便,能够进行获取,所以我们可以通过采用单独调用处理的工作来进行安排。(2)一旦出现相关数据问题时,我们可以找到对应的函数来进行解决,从而提高办公过程中的效率问题。(3)这个模块清数据处理时是非常方便的,所以对应的函数应该减少,在内存方面的应用,从而提高整体系统运行过程中的作用和功能。4.2 硬件编程工具KEIL介绍KEIL在为人公司当中所提出的一种专门用于对硬件进行编程和调试的工作,有间的过给开发工作人员一个统
9、一的开发平台,方便整体部门的调优工作,所以,在进行编程的过程当中我们往往会实现翻译成对应的开发文件,能够进行整体的跳跃工作的开发编码,过程当中能够更加快速的使用对应的文件来进行发展,最后,通过数据来进行整体的工作方。由于当代的计算机在进行操控过程当中仍然不够成熟,所以很多代码都只有用户进行任意的去选择,所以,对于一些主流或者是在当代快速发展的软件,往往还是应该根据平台的选择来进行发展,因此,在本平展的过程当中所存在的优点不是友好的界面,从而更加方便用户进行相关操作方面的工作,进行的过程当中也包括了多种编译器以及多种函数库方面的发展,能够更加快速的实现各项函数库的使用工作,能够将整体的软硬件流程
10、落实到工作过程当中,更加方便与软件的开发过程,能够提高在软件开发过程当中所体现的效率。4.3 工作流程设计在整个数据的处理过程中,首先通过单片机、温度传输模块以及烟雾传输模块进行初始化管脚信息,便于整个系统进行自检工作。因为系统不会告诉我们此时的系统运行到那个阶段了,但是通过我们的编程提示进行相应的人机交互,编译我们了解整个设备的运行情况,数据传输模块进行网络设置的时候通过发送相应的指令使得传输模块进行相应的初始化配置工作并且设置相应的声光报警模块报警峰值进行相应的后续气体数据以及报警峰值设置的选择。整个系统运行到这块的时候已经基本功能已经实现了。具体流程图如下图4.1所示。图4.1程序流程图
11、4.4 报警判断程序来的脉冲信号后,表示有人闯入监控区,从而经过单片机内部程序处理后,驱动声光报警电路开始报警,持续报警,然后程序开始循环工作。/*红夕卜报警处理*/voidhongwai_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;第5章系统调试5.1 硬件调试在整体进行硬件排查以及调试的过程中,首先就要
12、进行各个模块以及主要的处理,单片机之间的管脚引线是否安装合理,如果相对应的数据传输引脚没有完成合理的接通,那么在后期软件逻辑处理的时候不能得到关键的数据值,就会对于整个系统的软件错误排查起到抑制作用,就不能方便快速的找到对应的问题,在进行检查设备的规格和极性是否有错误的时候,如果电路板和电源之间存在短路,请使用万用表解决此问题。5.2 软件调试5.2.1 KeiI编译器软件简介Keil是美国KeiISOftWare公司出品的单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil软件提供丰富
13、的库函数和功能强大的集成开发调试工具,全WindOWS界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil开发系统各部分功能和使用。图5.1工具包整体结构图Keil单片机软件开发系统的整体结构工具包的整体结构,如图3.1所示,其中uVision与Ishell分别是forWindows和forDOS的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由及编译器编译
14、生成目标文件(.OBJ)o目标文件可由LIB51创建生成库文件,也可以与库文件一起经连接定位生成绝对目标文件(.ABS)。ABS文件由0H51转换成标准的Hex文件,以供调试器使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPRe)M中。5.2.2 使用Keil软件建立一个工程KeiI是目前进行51单片机开发最常用的编译软件。关于Keil的使用,有很多的资料介绍,这里只介绍其整个编译过程,在最短时间内开始使用开发板。对于KeiI更详细的介绍,可以参考一些专门书籍资料。在Keil里,每一个完整的程序,都是以一个工程的形式建立的。一个工程里可以有一个或多个*
15、.c文件和*.h文件,但只可以有一个main()函数。一般的做法是将包含main。函数的C文件加入到工程中,其他文件以#inckide头文件的形式加到这个C文件里。这样,在编译的时候,其他的文件会被自动的导入到工程里来。打开Keil软件后,出现(5-2)所示界面。当然,如果Keil在上次关闭时有打开的工程,再一次打开时它会自动加载上一次的工程文件。-lllEiIeKditYiSErQJeCtDebuCFIaShPQ口PhQrls。1$SVCSJLindovIIeIP倒60分尉迪晶I。Ul空举%1生笈raJFd后向IS3含PUM 3noILJjI Build 人 COmggd 入 Fnd in Fiks /图5.2Keil软件主界面首先点击Project-NewProject-(Project-OpenProjeCt为打开一个已经存在的工程),如图5-3所示。ln,JWBMFileEditView(JRrOjeetjQebUgFlashPeripheralsToolsSVCSWindowMelp国言。俱值I昌回JewProjectImport