家庭智能紧急呼救系统的设计_第1页
家庭智能紧急呼救系统的设计_第2页
家庭智能紧急呼救系统的设计_第3页
家庭智能紧急呼救系统的设计_第4页
家庭智能紧急呼救系统的设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编号: 毕业设计说明书毕业设计说明书题 目: 家庭智能紧急呼救系统设计 学 院: 信息与通信学院 专 业: 电子信息工程 学生姓名: 学 号: 指导教师: 职 称: 题目类型:题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发2013 年 6 月 5 日摘 要本设计介绍了家庭智能紧急呼救系统的设计以及工作原理。随着信息技术的飞速发展和人民生活水平大幅提高,人们对家居安全的重视程度不断提高。如今很多老人或儿童尤其是残疾人或有突发性疾病的患者等,在遇到突发事件时,如盗贼入室、火灾、燃气泄露、疾病求助等由于自身行动不方便或者过度惊慌没能发出报警的信息。最基本的 求助已不能保证他们的居家

2、安全,必须建立一个稳定、可靠、易操作的急救报警系统。为了解决以上问题,本毕业设计通过 GSM 模块、煤气检测传感器、烟雾传感器、红外传感器与单片机的联接,实现对家庭的安全进行实时监测,当发生异常现象时发出报警的声音,通过 GSM 模块发出求救信息;同时设计无线求救模块,当有紧急情况时,可以通过无线求救模块发出求救信息。本设计也可以通过 发送信息对系统进行复位以及获取当前每个传感器的实时信息如温度、气体浓度、红外传感器的状态,从而实现防火、防燃气泄漏、防盗的作用。在这个系统当中,GSM 模块与单片机之间的通信进行信息的双向传输是最关键的,因为如果不能确保它们之间的正常通信,就算是检测到了突发事件

3、的发生,不能把求救信息发送出去,那么设计就失去了意义。关键词关键词:单片机;GSM; ;传感器;无线模块ABSTRACTThis design introduces a family of Intelligent emergency call system design and working principle. With the rapid development of information technology and a substantial increase in peoples living standards, people are attaching increasing

4、importance of home safety. Today, many elderly people or children, especially disabled or sudden illness of patients, when faced with an emergency, such as thieves burglary, fire, gas leaks, disease help. Inconvenient due to their own actions or excessive panic did not alarm information can be issue

5、d, the most basic telephone help can not guarantee the security of their home, you must create a stable, reliable, easy to operate the emergency alarm system.In order to solve the above problems, the graduation project by GSM module, gas detection sensors, smoke sensors, infrared sensor and microcon

6、troller connection to achieve real-time monitoring of the safety of the family, issued the alarm sound when an abnormal phenomenon, through the GSM module send out a distressinformation; designed wireless distress module, when there is an emergency situation, by wireless distress module sent out dis

7、tress. The design can also send a message through the mobile phone to reset the system and access to real-time information for each sensor such as temperature, gas concentration, infrared sensor status, in order to achieve fire prevention, gas leakage, the role of security.In this system, two-way tr

8、ansmission of information communication between the GSM module and the monolithic integrated circuit is the key, because if you cant ensure the normal communication between them, even if it is to detect the occurrence of unexpected events, cant help information is sent out, then the design will lose

9、 its significance.KEY WORDS: MCU; GSM; mobile phones; sensor; wireless modul目 录引言.1第 1 章 系统原理及方案论证.11.1 方案设计以及原理框图.11.2 方案论证.2第 2 章 单片机.32.1 STC12C5A60S2 单片机介绍.3第 3 章 GSM 模块.53.1 GTM900C 介绍.63.2 GTM900C 的主要特性.63.3 GTM900C 的硬件接口.73.3.1 GTM900C 的接口特性及技术特点.73.3.2 GTM900C 管脚分配.83.4 GTM900C 与 MCU 之间短信的发送

10、和接收.93.4.1 短信的发送.93.4.2 短信的接收.153.4.3 MCU 与 GSM 之间短息接收并返回相关信息.16第 4 章 315M 无线模块.224.1 315M 无线模块的介绍.224.2 315M 无线模块对 MCU 的控制思路.24第 5 章 传感器模块.255.1 数字温度传感器 DS18B20.255.2 烟雾气体传感器.305.3 红外传感器.31第 6 章 显示模块.336.1 NOKIA5110 显示器介绍.336.1 NOKIA5110 显示器的使用.34第 7 章 键盘模块.387.1 44 键盘的设计.38第 8 章 硬件和软件的调试.418.1 硬件的

11、调试.418.2 软件的调试.42第 9 章 结论.42谢 辞.43参考文献.44附 录.46引言随着科学技术的发展,安全人类社会稳定飞速发展的基础保障。一个社会的人身安全,以及信息安全得不到保障就没有科学技术的高速发展。本设计主要围绕人身安全而设计的一款智能家庭紧急呼救系统。系统通过 和 GSM 以及单片机系统组成的外围检测电路组成,GSM 和 之间的通信是无线传输,不像和固定 通信那样需要 线。固定 拨号容易被盗贼在入室抢劫前切断 线或恶意占线,从而使其失去通信的能力。另一方面就是固定 不方便携带。而 现在非常普及,又方便携带, 与GSM 之间是无线的信息传输,不存在 线的连接,所以十分安

12、全。还可以通过 在何时何地只要有信号的情况下都可以通过 获取当前系统的相关信息,十分的方便。而以以太网组成的系统虽然控制也很方便,但是目前来说同样面临着线路被切断的隐患,因为现在以太网还是要网线相连接的,而无线网的范围小且不易普及。集群系统功耗很大,网络架设和维护费用很高,而且需要 购买固定的频点,很不适用。所以本设计通过 和 GSM 之间的通信有着它的优势,它不存在 线以及地点的控制的限制。它不依赖有线 进行报警,而是借助可靠、成熟的 GSM 移动网络,以最直观的短信或者 形式把系统检测到的信息情况反馈到你 上,方便你做出选择,从而使安全得到保障。第 1 章 系统原理及方案论证一个系统的功能

13、实现有多种的设计方法,每种方法都有自身的优点及缺点对于怎样的设计方案才是最符合的,则要看设计的成本以及应用的工作环境还有其它的特殊要求等。1.1 方案设计以及原理框图本文介绍了基于 GSM 短信模块的家庭智能紧急呼救系统工作原理,系统主要由 GSM模块、煤气检测传感器模块、温度传感器模块、红外传感器模块以及 315M 无线模块组成。如下图把它们的各个分立部分实现的功能组合起来就能实现对危情的检测。图 1-1 家庭智能紧急呼救系统原理框图主控制系统流程图如下:开始系统初始化GSM 初始化成功?是否温度高发短信提示温度过高气体浓度高发短信提示气体浓度过高有人靠近发短信提示有人靠近接收到新消息?短信

14、内容为 4系统复位并返回OK返回热释电工作状态短信内容为 3返回当前气体浓度短信内容为 2返回当前温度短信内容为 1否是是否MCU 检测到异常?图 1-2 主控制流程图1.2 方案论证依据系统功能原理的分析,本紧急呼救系统主要是通过一个微控制器把采集到的一些信息通过 GSM 模块反馈出去。则主要的选择是选择怎样的一个微控制器去控制系统的运行,以下是具体提出的方案。方案一:采用 51 系列的单片机作为本设计的微控制器。方案二:采用 PIC 单片机作为本设计的微控制器。方案三:采用 ARM 系列的单片机作为本设计的微控制器。上述硬件设计方案都是可以的,51 系列的单片机是接触最多的比较了解其性能以

15、及有关控制指令的编写,价格也不贵。PIC 单片机指令很少,写控制指令可能相对困难。而 ARM 单片机功能虽然很强大,但是有很多它提供的功能在本设计中都用不到,而且价格也相对比较贵。所以在兼顾到性价比的前提下采用方案一更符合本设计。第 2 章 单片机单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU 随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。由于考虑到本设计

16、的程序的大小,还可能用到多个中断以及 A/D 转换、程序响应时间、抗干扰能力等问题,普通的 8051 单片机满足不了设计的需求。所以本设计选用了新一代的单片机 STC12C5A60S2。2.1 STC12C5A60S2 单片机介绍一、的功能特性STC12C5A60S2/AD/PWM 系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机, 是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12 倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25万次/秒),针对电机控制,强干扰场合。1、增强型 8051

17、CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051.2、工作电压:STC12C5A60S2 系列工作电压:(5V单片机)。3、工作频率范围:035MHz,相当于普通8051的 0420MHz。4、用户应用程序空间 8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字节。5、片上集成1280字节 RAM 。6、通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口)。可设置成四种模式:准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻,开漏 每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过12

18、0mA 。7、ISP(在系统可编程)/ IAP(在应用可编程),无需专用编程器,无需专用仿真器。可通过串口()直接下载用户程序,数秒即可完成一片。8、有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM) 。9、看门狗。10、内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)。11、外部掉电检测电路: 在口有一个低压门槛比较器5V单片机为,误差为5%,3.3V 单片机为,误差为3%。12、时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为5% 到10% 以内)。用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/ 时钟。

19、常温下内部R/C振荡器频率为:5。0V 单片机为: 11MHz 17MHz。3.3V 单片机为: 8MHz 12MHz。精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准13、共4个16位定时器。两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立 波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器。14、3个时钟输出口,可由T0的溢出在输出时钟,可由T1的溢出在输出时钟,独立波特率发生器可以在口输出时钟。15、外部中断 I/O 口 7 路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的 PCA

20、 模块,Power Down 模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4, T1/P3.5, RxD/P3.0, CCP0/P1.3(也可通过寄存器设置到 P4.2), CCP1/P1.4(也可通过寄存器设置到 P4.3)。16、PWM(2路)/ PCA(可编程计数器阵列,2路)。 - 也可用来当2路D/A使用。- 也可用来再实现2个定时器。- 也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)。17、A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)。18、通用全双工异步串行口(UART),由于STC12系

21、列是高速的8051,可再用定时器或PCA软件 实现多串口。19、STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,(可通过寄存器设 置到),(可通过寄存器设置到)。20、工作温度范围:-40 +85(工业级) / 0 75(商业级)。21、封装:LQFP-48, LQFP-44, PDIP-40, PLCC-44, QFN-40 ,I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口, 还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。二、STC12C5A60S2 单片机的内部结构STC12C5A60S2

22、 系列单片机的内部结构框图如下图所示。STC12C5A60S2 单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、UART 串口、串口 2、I/O 接口、高速 A/D 转换、SPI 接口、PCA、看门狗及片内 R/C 振荡器和外部晶体振荡电路等模块。STC12C5A60S2 系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。图 2-1 单片机内部结构框图三、STC12C5A60S2 单片机的管脚图:图 2-2 STC12C5A60S2 单片机的管脚图第 3 章 GSM 模块GSM 模块,是将 GSM 射频芯片、基带处理

23、芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM 射频处理、基带处理并提供标准接口的功能模块。因此,GSM 模块具有发送 SMS 短信,语音通话,GPRS 数据传输等基于 GSM 网络进行通信的所有基本功能。简单来讲,GSM 模块加上键盘、显示屏和电池,就是一部 。 GTM900C 介绍华为 GTM900C 是一款双频 900/1800MHZ 高度集成的 GSM/GPRS 模块,是 GTM900B 的升级模块。内嵌 TCP/IP 协议模块,使用简单,易于集成,它支持标准的 AT 命令及增强 AT 命令,提供丰富的语音和数据业务等功能,是高速数据传输等各种应用的理想解决方案

24、。 。在远程监控和无线公话以及无线 POS 终端等领域您都能看到 GTM900C 无线模块在发挥作用,GTM900C 软件、硬件兼容 GTM900B、TC35i、MC39i,使用 TC35i 或MC39i 的用户不用作任何更改就可以使用,以降低产品成本。 GTM900C 的主要特性GTM900-C的产品特性如下表所示:表3-1:产品特性产品特性 描述 工作频段 EGSM900/GSM1800双频 EGSM900 Class4(2W) 最大发射功率 GSM1800 Class1(1W) 接收灵敏度 回复收到后才可以输入内容“hello”再点“手动发送”。最后一步,是最关键的就是短信内容的结束,在

25、“十六进制发送”地方点一下,如下图。在指令区输入1A (表示确认发送),再点“手动发送”之后就可以等待发送成功如图3-5所示收到+CMGS: 172 表示发送成功。图 3-5 3、使用 MCU 控制 GSM 发送英文短信。首先进行 MCU 与 GSM 之间的通信初始化,在程序里面定义两个数据传输函数:一个传输字符串的函数 UART_send_string() ;另一个传输字节的函数UART_send_byte() 。这样就可以通过 MCU 与 GSM 之间进行数据的传输了。同样以短息内容为“hello”发送到 10086 为例解说利用 MCU 进行英文短信的发送。程序如下:UART_send_

26、string(AT);/ 握手 UART_send_byte(0 x0D); /回车符 0DUART_send_byte(0 x0A);/换行符 0Adelay_1ms(100);UART_send_string(ATE1); /开回显UART_send_byte(0 x0D);UART_send_byte(0 x0A);delay_1ms(100);UART_send_string(AT+CMGF=1); /指定信息的输入输出格式为文本UART_send_byte(0 x0D);UART_send_byte(0 x0A);delay_1ms(100); /桂林短信中心号码UART_send_

27、byte(0 x0D);UART_send_byte(0 x0A);delay_1ms(100);UART_send_string(AT+CMGS=); /发送短消息UART_send_string(10086);UART_send_string();UART_send_byte(0 x0D);UART_send_byte(0 x0A);delay_1ms(100);UART_send_string(hello); /短信内容UART_send_byte(0 x0D);UART_send_byte(0 x0A);delay_1ms(100);UART_send_byte(0 x1A);/确认发

28、送短信delay_1ms(100);4、中文短信的发送发送格式为 :0011000D9168 3118180295F2 0008A0 04 67094EBA固定 号码 固定 短信长度/2(16 进制) 短信内容中文短信比英文复杂点,要先把号码进行 16 进制编,在 ASCII 码下的 16 进制编码对方 号码为进行转换在号码最后加上 F 补成偶数即 F,然后将奇数位和偶数位交换得到 3118180295F2。 “测试”的 16 进制编码为“53D1”。(1)先输入 AT+CMGF=0 再按 ENTER 键后点“手动发送”,指令功能为中文方式发送状态有 OK 回复。(2)把PDU格式进入编码,

29、号码是11位再加上国标接入码86长度是13位所在长度是0D,91 表示使用接入码 86(中国地区) ,如果是 PDU 使用 08 编码表,及短信在服务器存放时间,这里用 A0加上内容“发”的编码53D1的长度为2位16进制码及内容。最后一步,是最关键的就是短信内容的结束,在“十六进制发送”地方点一下,如下图。在指令区输入1A (表示确认发送),再点“手动发送”之后就可以等待发送成功。如图3-6所示收到+CMGS: 169 表示发送成功。图 3-6程序如下:UART_send_string(AT);/ 握手 UART_send_byte(0 x0D); /回车符 0DUART_send_byte

30、(0 x0A);/换行符 0Adelay_1ms(100);UART_send_string(ATE1); /开回显 UART_send_byte(0 x0D);UART_send_byte(0 x0A);delay_1ms(100);UART_send_string(AT+CMGF=0); /指定信息的输入输出格式为中文UART_send_byte(0 x0D);UART_send_byte(0 x0A);delay_1ms(100);/桂林短信中心号码UART_send_byte(0 x0D);UART_send_byte(0 x0A);delay_1ms(100);UART_send_s

31、tring(AT+CMGS=17); /短息长度 UART_send_byte(0 x0D);UART_send_byte(0 x0A);delay_1ms(100);UART_send_string(0011000D9168);UART_send_string(); UART_send_string(0008A0);UART_send_byte(0 x0D);UART_send_byte(0 x0A);delay_1ms(100);UART_send_byte(0 x1A);/确认发送短信则中文短信的发送主要是通过设置中心号码,确定短信长度,以及 PDU 的编码。3.4.2 短信的接收1、英

32、文短信的接收:(1)设置短信提示功能输入AT+CNMI=2,1 再按 ENTER键后点“手动发送”指令功能短信提示,状态有 OK 回复再输入AT+CMGF=1再按ENTER键后点“手动发送”指令功能为英文方式发送,状态有 OK 回复,如图3-7。图 3-7之后向 SIM 卡发送一条英文短信如图 3-8。图 3-8收到 +CMTI:SM,4 表示有短信到达,短信存在 SIM 卡的第 4 个位置。(2)进行短信读取输入AT+CMGR=4再按ENTER键后点“手动发送”。指令功能读取指定“4”里的内容,回复短信报文,如下图。图 3-9其中REC UNREAD表示短信没有被读“OK”为短信内容。如果再

33、读一次就会有点区别如下图:图 3-10“REC READ”就成已读短信了。2、中文短信的接收:(1)设置短信提示功能输入AT+CNMI=2,1 再按 ENTER键后点“手动发送”指令功能短信提示,状态有 OK 回复再输入AT+CMGF=0再按ENTER键后点“手动发送”指令功能为中文方式发送,状态有 OK 回复,如下图。图 3-11之后向 SIM 卡发送一条中文短信,短信内容为“你好”如下图。图 3-12收到 +CMTI:SM,5 表示有短信到达,短信存在 SIM 卡的第 5 个位置。(2)进行短信读取:输入AT+CMGR=5再按ENTER键后点“手动发送”。指令功能读取指定“5”里的内容,回

34、复短信报文,如下图。图 3-13“0”:短信未读,“1”:已读短信中心号码;0B:短息号码长度;5105877351F1:对方号码;:时间日期13/05/12,21:59:12+32;04:短信长度;4F60597D:信息内容“你好”。3.4.3 MCU 与 GSM 之间短息接收并返回相关信息MCU 与 GSM 之间的短信接收和返回相关信息是本设计的一个难点,首先要设置好信息的存储位置,然后在接收到有新信息提示时再去提前信息,通过信息内容的比较,信息号码的提取再把相关的信息反馈出去。信息反馈原理框图:短信内容为 1返回当前温度短信内容为 2返回当前气体浓度短信内容为 3返回热释电工作状态短信内

35、容为 4系统复位并返回OK接收到新消息?GSM 初始化成功?系统初始化开始否否是是图 3-14 信息反馈原理框图首先进行系统初始化以及 GSM 初始化,初始化成功后就可以检查是否有新信息到来。在初始化之前在程序里面定义好相关的接收寄存器,以及相关的信息标志位。定义如下:#define RxIN (200) /接收数组长度#define READY (1) /接收数组接收完成#define UNREADY (0)/接收数组接收未完成extern UINT8 data Rx;extern UINT8 xdata g_flag;extern UINT8 data UART_buffer_statu;

36、 /接收寄存器状态extern UINT8 data V_buffer17;extern UINT8 xdata UART_bufferRxIN; /保存 GSM 发来的数据extern UINT8 xdata msg_statu; /接收信息状态extern UINT8 unread_msg_num; /未读消息编号(=0 表示无未读消息)extern UINT8 msg_COM; /表示收到短信的命令(=0 表示没有收到短信命令)static UINT8 code com_str = 0 x0D, 0 x0A, 0 x4F, 0 x4B, 0 x0D, 0 x0A; /0 x4F, 0 x

37、4B, 为 OK 的国标码。static UINT8 code msg_1 = 0 x0D, 0 x0A, 0 x31, 0 x0D, 0 x0A, 0 x0D, 0 x0A, 0 x4F, 0 x4B, 0 x0D, 0 x0A; /1 的国标码 31。static UINT8 code msg_2 = 0 x0D, 0 x0A, 0 x32, 0 x0D, 0 x0A, 0 x0D, 0 x0A, 0 x4F, 0 x4B, 0 x0D, 0 x0A; /2 的国标码 32static UINT8 code msg_3 = 0 x0D, 0 x0A, 0 x33, 0 x0D, 0 x0A

38、, 0 x0D, 0 x0A, 0 x4F, 0 x4B, 0 x0D, 0 x0A; /3 的国标码 33static UINT8 code msg_4 = 0 x0D, 0 x0A, 0 x34, 0 x0D, 0 x0A, 0 x0D, 0 x0A, 0 x4F, 0 x4B, 0 x0D, 0 x0A; /4 的国标码 34static UINT8 idata read_msg_com = AT+CMGR=100;/ 读取 SM 中的短信定义好了以后接上串口调试软件,发送指令初始化 GSM 模块:ATOKATE1OKATV1OKAT+CNMI=2,1OKAT+CMGF=1OK说明初始化

39、成功,接下来用联通卡 向 GSM 模块里面的 卡发一条短信,短信内容为“1” ,则收到+CMTI: SM,3 表示模块收到了新的信息存在 SM 卡的第三个位置,之后再用串口发送指令 AT+CMGR=3,表示读取第三个位置的信息,之后再收到1OK其中 REC UNREAD“1”AT+CMGR=3 则返回+1OK如果是用移动 卡向 GSM 发送信息则收到的信息又有一点区别,下面用移动 卡向 GSM 发送一条内容为“2”的信息并进行提取则如下:+CMTI: SM,42OK2OK通过对比发现用移动 卡发的信息在发送信息 号码的前面多了 86 两个字母,而用联通 发的前面没有 86,直接就是发送信息的

40、号码。在进行了以上的测试后就可以使用 MCU 编写程序来控制 GSM 来进行信息的反馈了。首先定义串口中断 1void UARTInterrupt(void) interrupt 4 来接收和比较 GSM 反馈回来的信息。相关程序如下:void UARTInterrupt(void) interrupt 4 UINT8 i = 0;if(RI) if(Rx = 13) & str_compare(+CMTI: SM, UART_buffer, Rx - 14, Rx - 3) /检测是否有新消息if (UART_bufferRx = 0) & (UART_bufferRx =

41、0) & (UART_bufferRx - 1 = 0) & (UART_bufferRx - 2 = 11) & str_compare(msg_1, UART_buffer, Rx - 10, Rx) /检测收到信息是否为 1msg_COM = 1;if (Rx = 11) & str_compare(msg_2, UART_buffer, Rx - 10, Rx) /检测收到信息是否为 2msg_COM = 2;if (Rx = 11) & str_compare(msg_3, UART_buffer, Rx - 10, Rx) msg_COM =

42、 3;if (Rx = 11) & str_compare(msg_4, UART_buffer, Rx - 10, Rx) msg_COM = 4;if (Rx = 32) & str_compare(+CMGR: REC UNREAD, UART_buffer, Rx - 33, Rx - 13)/提取接收到的消息的发件人号码如长度为 93;则 93-33=60;93-13=80;80-(60+1)=19 即(+CMGR: REC UNREAD,)的长度 if (UART_bufferRx + i - 12 = 1) /提取号码 for (i=0; i11; i+) rea

43、d_phone_num1i = UART_bufferRx + i - 12;for (i=0; i11; i += 2)read_phone_numi = read_phone_num1i + 1;ead_phone_numi+1 = read_phone_num1i; /号码输入并转置read_phone_num10 = F; / 号码的第 11 位都为 Felse if (UART_bufferRx + i - 12 = 8) /移动的号码前面 86 开头,号码的第一位为 8for (i=0; i11; i+) read_phone_num1i = UART_bufferRx + i -

44、 10;for (i=0; i= 6) & str_compare(com_str, UART_buffer, Rx - 5, Rx) /检测 GSM 模块返回的“OK”Rx = 0;UART_buffer_statu = READY; /接收寄存器接收完成P1 |= 0 x10;clear_buffer(UART_buffer);elseUART_buffer_statu = UNREADY; /接收寄存器接收未完成P1 &= 0 x10;Rx+;elseRx = 0; RI = 0; elseTI = 0; 用 if (Rx = 13) & str_compare(

45、+CMTI: SM, UART_buffer, Rx - 14, Rx - 3) 检测是否有新消息到来,如果有信息到来则 unread_msg_num 标志不为 0,则触发定时器 0 中断服务程序在执行现在中断程序后再执行定时器 0 中断服务程序。if (tem_msg_flag = 1) | (rsd_msg_flag = 1) | (mq_msg_flag = 1) | (unread_msg_num != 0) | (msg_COM != 0) & (msg_COM != 4);有未读信息或有收到消息并且收到消息不等于 4(复位)时TR0 = 1;;再读取信息的位置,把信息位置的

46、信息存放在 read_msg_com中,再通过指令 UART_send_string(read_msg_com);来读取信息。把读到的信息内容分别与 msg_1、msg_2、msg_3、msg_4 中的内容相比较。如果与 msg_1 中的内容相同则标志 msg_COM = 1,如果与 msg_2 中的内容相同则标志msg_COM = 2,依次类推。之后再提取发信人的号码并对提取到的号码进行处理并保存在数组 read_phone_num中。再去响应定时器中断 0 服务程序处理相关标志位对应的短信发送。从而实现 MCU 对 GSM 模块的双向数据传输,这样可以通过 实时了解系统的相关信息并可以通过

47、 对系统的控制操作。第 4 章 315M 无线模块为了防止危情发生而传感器检测不到,或者传感器已经损坏的时候,报警信号无法通过传感器触发 MCU 进行报警。这个时候只要通过按手持遥控器上的对应的按键而发出对应的报警信息。十分的实用和方便,所以在设计中添加无线模块进行报警时十分必要的。无线模块已经很成熟,市场上有各种各样的无线模块比如+NRF24L01 无线模块、NRF905、RF1101SE 以及本设计使用的 315M 无线模块,其中+NRF24L01、NRF905、RF1101SE 无线模块都可以进行数据的双向传输,而且传输的距离也比较远,一般都有 200 米以上。但是这些模块不方便携带,还

48、要另加 MCU 和按键进行对系统进行控制,十分不方便,而且调试也麻烦,价格也比较贵。虽然它们的功能是比较强,单在本设计中它们强大的功能也用不到,所以不适合用在本设计中。而 315M 无线模块价格便宜、携带方便、美观、编程简单,模块不用再通过改装直接可以用。接收模块可以直接连接到 MCU 上面,然后通过按发射模块的按键,在接收模块相应的引脚就会有高电平输出,十分方便,对 MCU 的控制编程也很简单。所以本设计选择 315M 无线模块,其实物图如下:图 4-1 315 无线模块实物图4.1 315M 无线模块的介绍一、技术参数工作电压(V):DC5V静态电流(mA):调制方式:调幅(OOK)工作温

49、度:-10+70接收灵敏度(dBm):-105DB工作频率(MHz):315、(266-433MHZ 频率段可任选)编码方式:焊盘编码(固定码)工作方式:M4(点动:按住不松手就输出,一松手就停止输出)、L4(互锁:四路同时只能有一路输出)、T4(自锁:四路相互独立输出、互不影响,按一下输出再按一下停止输出)尺寸(LWH):41*23*7mm 二、各管脚及说明表 4-1:管脚说明表管脚名称功能说明1VT输出状态指示2D3数据输出3D2数据输出4D1数据输出5D0数据输出65V电源正极7GND电源负极8ANT接天线端接收模块一共有八个外部接口,上面有英文表示。“5V”表示接电源正极,“ D0、D

50、1、D2、D3 表示输出,“GND”表示接电源负极,“ANT”表示接天线端。使用前要接上 50 欧姆 1/4 波长的天线,并且天线应该是直的,以达到最佳的接收效果,波长=光速/频率。使用时接收频率、解码方式应与发射匹配。三、特点1、该接收模块性能优良,采用了数字程序技术,具有抗干扰性强,性能稳定,高可靠性,无方向性,使用寿命长,采用了日本原状进口芯片,高稳定性,功耗低,同类遥控器不会有任何干扰乱码现象,无线接收发射信号,遥控距离远,可穿墙,无方向性。可和市场上固定码、学习码的同频率遥控器任意配套使用,可配套本店所有无线遥控器。2、超再生接收模块采用 LC 振荡电路,内含放大整形,输出的数据信号

51、为解码后的高电平信号,使用极为方便,并且价格低廉,所以被广泛使用。带四路解码输出(同时也可改为六路点动或互锁输出),使用方便;频点调试容易。接收模块有较宽的接收带宽,一般为10MHz,出厂时一般调在 315MHz 或433.92MHZ(如有特殊要求可调整频率,频率的调整范围为 266MHz433MHz。)。接收模块一般采用 DC5V 供电,如有特殊要求可调整电压范围。四、用途可广泛应用于遥控开关、遥控器、遥控插座、遥控 LED、遥控音响、遥控电动门、遥控车库门、遥控伸缩门、遥控卷闸门、遥控窗帘、报警主机、报警器、遥控摩托车、遥控电动车、遥控 MP3、遥控灯、遥控车、安防等民用及工业配套遥控领域

52、,以及遥控控制电机正反转等工业遥控领域,具有安装方便、使用简单、安全可靠等优点。4.2 315M 无线模块对 MCU 的控制思路首先定义管脚的分配sbit KEY_A = P35; /按键 A(无线)sbit KEY_B = P37; /按键 B(无线)sbit KEY_C = P34; /按键 C(无线)sbit KEY_D = P36; /按键 D(无线)sbit KEY_VT = P33; /按键 VT(无线)再写中断服务程序,选择外部中断 1 中断void INT1_init(void)EA = 1;EX1 = 1; /开外部中断 1IT1 = 1; /设外部中断 1 触发方式为下降沿

53、触发设置中断入口void INT1(void)interrupt 2if (KEY_A = 1)temp_key_wx = A;if (KEY_B = 1)temp_key_wx = B;if (KEY_C = 1)temp_key_wx = C;if (KEY_D = 1)temp_key_wx = D;当有按键按下来的时候就启动中断程序来检测是哪个键被按下,从而再进行赋值,跳出中断去执行下一步的无线按键检测中断标志程序。if (temp_key_wx = A)TR0 = 1;tem_flag = 1;tem_msg_flag = 1; FQ = 1;LED = 1; lcd5110_pri

54、ntf_word(1, 1, 温度高!);if (temp_key_wx = B)mq_flag = 1;mq_msg_flag = 1;FQ = 1;LED = 1; lcd5110_printf_word(1, 1, 漏气体!);if (temp_key_wx = C) rsd_flag = 1;rsd_msg_flag = 1;FQ = 1;LED = 1; lcd5110_printf_word(1, 1, 有盗贼!);if (temp_key_wx = D)LCD_clear();temp_key_wx = N;不同的按键值显示不同的信息到显示屏上,并置位相关的标志为,启动定时器 0

55、,为不同的标志位发送标志位所对应的短信消息进行报警。第 5 章 传感器模块定义传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节。5.1 数字温度传感器 DS18B201、DS18B20 的主要特性(1)适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数 据线供电(2)独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双

56、向通讯(3) DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点测温(4)DS18B20 在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内(5)温范围55+125,在-10+85时精度为0.5(6)可编程 的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、0.125和 0.0625,可实现高精度测温(7)在 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多在 750ms 内把温度值转换为数字,速度更快(8)测量结果直接输出数字温度信号,以一 线总线串行传送给 CPU,同时

57、可传送 CRC 校验码,具有极强的抗干扰纠错能力(9)负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。2、DS18B20的外形和内部结构DS18B20 采用 3 脚 PR35 封装或 8 脚 SOIC 封装,其管脚排列如下图所示。图 5-1 DS18B20 封装DS18B20引脚定义: (1)DQ 为数字信号输入/输出端; (2)GND 为电源地; (3)VDD 为外接供电电源输入端(在寄生电源接线方式时接地) 。 DS18B20 内部结构主要由四部分组成:64 位光刻 ROM 、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。 VDD2I/0 CGNDVDD

58、VD1内部VDD电源检测8 位 CRC 寄存器温度传感器64位ROM和单线接口存储器与控制逻辑高温触发器 TH高温触发器 TL配置寄存器高速缓存图 5-2 DS18B20 内部结构图3、DS18B20 的测温原理DS18B20的测温原理如图5-3所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-

59、55所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。这就是 DS18B20的测温原理。另外,由于 DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对 DS18B20的各种操作必须按协议进行。操作协议为:初始化D

60、S18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。各种操作的时序图与 DS1820相同。预置斜率累加器计数比较器减法计数器 1低温度系数振荡器预置减到 0温度寄存器高温度系数振荡器减法计数器 2减到 0增加停止图 5-3 DS18B20 的内部测温电路框图DS18B20有4个主要的数据部件: (1)光刻 ROM 中的64位序列号是出厂前被光刻好的,它可以看作是该 DS18B20的地址序列码。64位光刻 ROM 的排列是:开始8位 (28H)是产品类型标号,接着的48位是该 DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1) 。光刻 ROM 的作用 是使每一个 DS18B20都各不相同,这样就可以实现一根总线上挂接多个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论