基于STM32的红外报警系统的设计实现部分介绍.docx

上传人:李司机 文档编号:6815588 上传时间:2024-02-26 格式:DOCX 页数:15 大小:354.17KB
返回 下载 相关 举报
基于STM32的红外报警系统的设计实现部分介绍.docx_第1页
第1页 / 共15页
基于STM32的红外报警系统的设计实现部分介绍.docx_第2页
第2页 / 共15页
基于STM32的红外报警系统的设计实现部分介绍.docx_第3页
第3页 / 共15页
基于STM32的红外报警系统的设计实现部分介绍.docx_第4页
第4页 / 共15页
基于STM32的红外报警系统的设计实现部分介绍.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《基于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

16、Fiks /图5.2Keil软件主界面首先点击Project-NewProject-(Project-OpenProjeCt为打开一个已经存在的工程),如图5-3所示。ln,JWBMFileEditView(JRrOjeetjQebUgFlashPeripheralsToolsSVCSWindowMelp国言。俱值I昌回JewProjectImportPVisionlProject.二掾置圜码ICloseProject图5.3Keil软件打开新工程界面点开后,在出现的对话框中选择工程存在路径,单击“保存”后,出现(如图5-4所示)界面。在此界面上选择电路板上所用的单片机型号:图5.4选择电路板

17、上所用的单片机型号设置完成后,软件会提示“是否将8051上电初始化程序添加入工程?”如图5-5所示,这个一般选择“否(关于STARTUP.A51的相关内容可查阅相应资料)图5.5是否将上电初始化程序添加入工程这样,就建立了一个空的工程。接下来的事,就是在这个工程里面加入自己的程序代码。点击窗,或者File-New,便建立了一个空的文本框。现在,就可以开始在里面输入你的代码了。保存时注意:如果是用C语言写的程序,则将文本保存成*.c,如果是用汇编写的程序,则将文本存成*.asm0到目前为步,我们已经建立了一个工程,也写了一个程序代码。但现在还不能开始编译。因为还没有将程序代码添加到工程里面去。下

18、一步就是将写完的程序添加到工程里面,如图5-6所示,在左边ProjeCtWorkspace里的SourceGroup1上右击,选择AddFilestoGroup,SourceGroup1。在打开的对话框中,选择刚存的文件路径和对应的扩展名。这样,程序就添加进了这个工程。-ll l-IffI lI魅QrMt-三i2-建:猫开发板,第一个工程12.”三FileEditXieVProjectDebuFlashPeripheralsToolsSVCSIindtwKelplL:8 C lKlM : RZW /,圜邈西贸然IT13窗修0明区电电Iqal军事4%*为喻 阿昌厄国I白趣阳物三(H9ro图5.6

19、添加文件到工程中下一步,就开始编译刚输入进去的代码。点击工具栏中的圜按钮。接着,Keil会打出下面的提示:BuildtargetTargetassemblingled.asm.linking.ProgramSize:data=8.0xdata=0code=100first-0Error(s),0Warning(s).其中“first”-OError(三),0Waming(三).”说明现在的工程编译通过,0个错误和0个警告。建立工程的时候,默认是不生成HEX文件的,得在编译做如下设置:单击盘,或者在ProjectWorkspace里Target1上右击,选择OptionsforTargetTar

20、get1,出现如图5-7所示对话框,选择“Output”按图示,将箭头所指的多选框勾上,点“确定”。现在再点击断重新编译,系统提示:“creatinghexfilefromfirst.。便会在工程所在文件夹里生成HEX文件。图5.7生成HEX文件5.2.3 使用Debug进行调试Keil有很强大的调试功能,可以显示C程序的反汇编代码、可以计算代码运行的时间、可以显示程序中某一变量的值能用好这个调试工具对编写单片机程序会有很大的帮助。同样的,在这里,只对DebUg进行简单应用介绍,更详细的使用方法可以参看相关书籍资料。图5.8调试前设置窗口首先,单击木,弹出如图5-8所示对话框,在Target页面上设置对应的晶振频率。其他不用作修改。设置完成后,单击进入调试界面(如图5-9所示)。图5.9Keil调试界面点击籥Sl叫出叫中对应的工具按钮则可以开始调试。另外,“View”下的三个工具在调试中会经常用到如.图5-10所示,“DisassemblyWindoW”显示C文件的反汇编程序;“Watch&CallStackWindow可以显示程序中某一变量的值;“MemoryWindow”可以显示内存中某一地址的值。DisassemblyWindowWatch&CallStackWindowOMemoryWindoW图5.10三个常用的调试工具

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号