毕业设计(论文)-基于GSM网络的温度检测调节系统设计.docx_第1页
毕业设计(论文)-基于GSM网络的温度检测调节系统设计.docx_第2页
毕业设计(论文)-基于GSM网络的温度检测调节系统设计.docx_第3页
毕业设计(论文)-基于GSM网络的温度检测调节系统设计.docx_第4页
毕业设计(论文)-基于GSM网络的温度检测调节系统设计.docx_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

盐城工学院本科生毕业设计说明书(2016) 毕业设计说明书基于GSM网络的温度检测调节系统设计专业电子科学与技术学生姓名班级电科121学号指导教师完成日期2016年06月04日 基于GSM网络的温度检测调节系统设计摘 要:随着电子技术的飞速发展,报警系统已从原来的简单化、局部化向智能化、集成化发展。温度的测量对工农业生产有着重要的意义,基于单片机的温度测量技术越来越受到人们的欢迎。针对实际生活中对于温度远程监测控制的需要,利用GSM网络作为信息传输平台,利用数字温度传感器进行温度监测,以数据通信模块(无线芯片MG2639,通过标准AT指令控制)实现数据信息的无线通信,设计了一个通过短消息进行远程报警功能的系统,可以实现偏远地区或者工农业环境较为复杂的地区温度监测报警。借助最可靠、最成熟的GSM移动网络,以最直观的中文短消息式,直接把报警情况反映到屏幕上。 整个系统硬件电路简单,性能稳定,可以实现温度监测和报警,价格低廉,较为实用。借助Altium Designer软件绘制设计的硬件原理图和PCB图,通过IAR软件编写设计程序,利用下载器实现程序的下载与在线调试,最终完成了实物的制作与调试,实现了设计要求的相关功能。关键词:MSP430F149单片机;GSM ;温度Design of Temperature Measurement and Control System Based on GSM NetworkAbstract:With the rapid development of electronic technology, the alarm system has been from the original simple, localized to the intelligent, integrated development. Temperature measurement of industrial and agricultural production has a important significance, based on the single-chip temperature measurement technology has been more and more by people welcome.In view of the practical need for remote monitoring of temperature control using GSM network as a platform for information transmission, the use of digital temperature sensor to monitor the temperature of, data communication module, wireless chip mg2639, at commands through the standard control) realize the wireless communication of data information, design a system through short message remote alarm functions, can realize remote areas or industrial and agricultural environment more complex area temperature monitoring alarm. With the most reliable, the most mature GSM mobile network, to the most intuitive Chinese short messages directly to the alarm condition to reflect on screen.The system hardware circuit is simple, stable performance can achieve temperature monitoring and alarm, low price, more practical. Through Altium designer software rendering hardware principle diagram and PCB diagram of the design, through the IAR software to write program design, use download manager to achieve the program download and online debugging, the final completion of the physical production and debugging, to achieve the design requirements of related functions.Key words: MSP430F149 ; GSM; temperature目 录1 概述11.1 课题研究背景11.2 课题研究意义11.3 课题研究的主要内容22 总体总体方案设计22.1设计思路22.2系统总体方案23 硬件系统设计33.1 单片机最小系统硬件设计33.2 GSM模块应用43.2.1 GSM主模块外围电路设计43.2.2 GSM电源设计53.3 测温电路设计63.4 按键电路设计73.5 显示屏电路应用73.6 存储电路设计83.7 控制模块设计93.7.1 蜂鸣器电路设计93.7.2 继电器模块设计103.8 硬件原理图103.9 硬件电路焊接104 软件系统设计124.1 软件总流程图124.2 温度读取子程序134.3 存储子程序144.4 按键子程序184.5 GSM模块子程序195 硬件电路仿真与调试225.1 系统调试中的问题与解决方法225.2 实物展示226 结束语27致 谢28参考文献29附 录30 盐城工学院本科生毕业设计说明书(2016)基于GSM网络的温度检测调节系统设计1 概述1.1课题研究背景在工业生产中,对于异常温度的实时监控可以有效避免异常情况,及时发现并减少损失。在农业生产中,对于农作物的环境温度有效了解并进行控制,可以提高农作物的产量。 随着现代科技的不断进步,人们已经步入了智能化网络化的生活,移动网络通信已经普及到生产生活的各个领域。由于移动网络通信的不断优化,移动通信成本大幅度降低,由于GSM短消息业务已经成为人们关注的热点,这一技术不仅适用于野外或无人值守环境测量,在工业环境监测领域同样有着广泛的应用前景。由于我国近年来对GSM网络的不断投入,GSM网络已经覆盖了我国大部分地区,利用GSM短消息传输数据信息也是一个在远程控制领域受欢迎的方向。特别是在一些恶劣的环境情况下或者偏远地点无人值守的条件下,很难进行温度实时测量。但是,如果在这种情况下安装有GSM短消息的数据传输模块,它利用GSM公共网络传输系统的可靠性、抗干扰性、便于维护和方便的功能扩展优势,可以明显的降低操作成本和劳动强度。1.2 课题研究意义GSM网络是一种移动通信技术标准,属于第二代移动通信技术,目的是让用户在世界各个地方都可以使用一个手机进行通讯。GSM网络是目前世界上覆盖范围最大的通信网络,信号稳定,抗干扰性强,是目前世界上使用人数最多的网络。GSM系统主要由以下四个组成。a.移动台就是传统意义上的手机,一般有手机模块及SIM卡两个部分构成。手机部分完成语音录入、数据编码、加密数据发送与数据接收等工作。SIM卡就是普通手机卡,起到一个身份证的作用,能够存贮个人信息。b.无线基站子系统由基站和基站控制器组成。基站用来发射和接收无线电,基站控制器用来管理与控制通信端口配置。c.交换网络子系统主要用来管理和交换用户数据库,可以将用户的信息位置等信息存贮并在需要时候进行访问与交换的作用。d.操作维护子系统主要工作内容是移动通讯运营商对网络进行实时监控以及故障检查维护。使用MSP430单片机设计的基于GSM网络的温度报警,可以将430强大的性能结合GSM网络覆盖广的特点,实现温度的远程监控操作。配合一块液晶屏幕,可以将抽象的数据以波形图的方式显示,更加人性化、图像化。1.3 课题研究的主要内容A.该系统运行可靠,成本低。B.系统能对环境温度进行采集,并根据预设温度阀值进行自动调节,达到对温度自动控制的目的。C.环境温度显示,可通过按键进行查阅,查阅预存在系统中的环境信息。2 总体总体方案设计2.1设计思路要求使用液晶屏幕显示温度与GSM网络发送接收短信数据,所以采用功能更加强大、引脚功能多、外设丰富的MSP430F149做为本次设计的主控芯片。设计硬件电路结构简单,分为单片机控制模块、GSM网络模块、温度传感器模块、按键输入模块、液晶显示模块、继电器驱动模块、存储模块这几部分。显示模块采用ILI9320芯片驱动的TFT液晶显示屏,用于显示温度波形以及相应的文字信息,独立按键作为功能选择模式,用于对温度波形显示和存储信息显示两个功能的选择,温度传感器采用一体化的DS18B20,而继电器输出模块则是通过光耦芯片配合三极管实现继电器的开关的。2.2系统总体方案 本系统由单片机最小系统、温度模块、存储模块、蜂鸣器、控制电路五部分组成。系统框图如图2-1所示。MSP430F149 单片机复位晶振电源温度传感器存储芯片控制电路风扇电热丝蜂鸣器图2-1 系统框图3 硬件系统设计3.1 单片机最小系统硬件设计考虑到液晶显示屏的显示,以及IIC存储芯片、GSM串口数据操作,传统的51单片机由于12T的机器周期,在执行屏幕刷新、数据传输等方面具有处理慢的缺点,屏幕显示不清晰,所以并不适合做为本次系统的主控芯片。所以选择了MSP430F149单片机,做为一款16位的单片机,它的执行速度为传统51单片机的12倍以上,并且有2个uart接口,外设丰富,程序存储空间大,非常适合做为本次设计的主控芯片,能够满足对于屏幕实时性数据传输。 单片机芯片加上外围必要器件,一般包括电源电路、复位电路、晶振电路即可构成单片机最小系统。A.电源电路MSP430单片机的工作电压在3.3到3.6V之间,一般采用3.6v的线性直流电源做为单片机最小系统的电源输入。本系统使用3.6V的锂电池,最好选择输出电流大、电源纹波电压小的做为系统电源输入,防止GSM在大功耗的情况下掉电复位。B.复位电路系统在上电时候,RST的电平从0V往上升高,这个时候MCU一直处于RST状态,PC指针就没有跑起来,在电路图中,C=0.1uF,R=47K,根据公式,T=0.7*RC=3.2ms,即上电3.2ms后,RST被释放,PC指针才开始跑起来,程序才运行。加电容的目的是为了使RST缓慢爬上,也是为了起滤波效果,不至于上电电压波动过大。如下图3-1所示。图3-1 复位电路C.晶振电路MSP430包括数控振荡器、高速晶体振荡器、低速晶体振荡器三个时钟源组成。选择合适的时钟源可以在性能与功耗方面得到平衡。本系统设计采用高速晶体振荡器,外置8M赫兹。如下图3-2所示。 图3-2 晶振电路 3.2 GSM模块应用3.2.1GSM主模块外围电路设计图3-3 GSM模块原理图GSM的第四脚为RING脚,有短信或者通话时,该引脚为高低电平变化,接单片机的P2.1口,单片机通过检测这个引脚的高低电平情况来判断是否有短信或者来电。6脚是电源输入端,接开关电源输出端,为GSM模块提供稳定的电源输入。7脚是GSM模块指示灯接口,一般串联电阻和LED灯做为开机状态提示。找网状态:指示灯以3Hz 频率闪烁;空闲状态:指示灯以1Hz 频率闪烁;工作状态:指示灯以5Hz 频率闪烁。11、12、13、14引脚为SIM卡的接口引脚,用来接SIM卡座,为GSM模块提供信号。15脚为GSM的RXD,与单片机的串口0TXD相连,单片机通过串口发送数据给GSM模块。16脚为GSM的TXD,与单片机的串口0RXD相连,单片机通过串口接收GSM模块发送的数据。24脚为GSM的开关控制引脚,与单片机的P2.5引脚相连,单片机控制这个引脚25s以上低电平就会使GSM开关机。GSM模块有4个GND引脚,需要和PCB板的GND充分接触,保证GSM模块的稳定性。GSM模块对电源和地的要求非常严格,因为GSM模块在通话或收发短信时会产生瞬间大电流,通常会在1安培左右,所以选择合适的电源芯片尤为重要。一般情况下,电源芯片要做到输出电源的电压为4.2V,负载电流达到2A,纹波电压控制在50mV以内。需要特别注意的是,模块地管脚部分必须留有足够的焊盘面积,保证充分接地,防止GSM模块的灵敏度受到干扰,并且RF 邮票孔附近区域注意禁止敷铜或走线,防止在焊接GSM模块时候出现虚焊的情况。因为GSM模块的每个引脚都靠的非常近,所以在进行焊接后,需要用万用表对每个相邻的引脚进行测试,防止由于焊接问题导致模块短路,造成不可预知的后果。3.2.2 GSM电源设计方案一:LDO。做为一种低压差线性稳压器,输入电压要比输出电压高2V以上,线性度好,实际测试中纹波电压小,但是转换率太低,负载达不到设计要求。方案二:DC-DC。使用升压型DC/DC转换器,优点是转换效率高,负载大,缺点是纹波电压大,噪声较大。通过比较方案一和方案二,方案二虽然有着纹波电压大,噪声大的缺点,但是可以通过并联大电容的方式缓解这种情况,可以满足GSM模块的要求;方案一在GSM需要大电流时负载提供不足,容易造成GSM模块复位,模块稳定性不足,并且采用大电压供电,电路也需要一个降压3.6v芯片给单片机供电。所以最终选择方案二,使用3.6v电池供电,升压4.2v给GSM模块供电。图3-4 GSM电源原理图为了配合GSM模块的瞬时大电流,本系统采用APW7277开关电源芯片。如图3-4所示。APW7277是一个电感升压型电源芯片,开关频率典型值为1.2MHz,电流模式控制方案具有快速动态响应,并且提供精确的电压输出。在低功耗时,为了减少主要开关损耗,APW7277将自动进行脉冲频率调制。在进行脉冲频率调制期间,IC的功耗非常低,并且在整个负载范围内存在非常低的静态电流。APW7277限流以及温控,在温度过高时会自动切断,以防过载情况发生。在1.8v输入电压,1000mA输出电流是能源转换效率可达92%。在失能情况下具有极低的漏电电流。APW7277对于电容的要求很高,因为是大电流输出,需要一个非常大的电容做为储能作用,可以有效减少突发情况下的纹波电压大的情况。本系统采用了输入端接入一个470uf的电解电容,输出端接了一个47uf的钽电容。APW7277的3、4引脚接的是升压电感,用于产生高电压。11脚为使能引脚,当该引脚为高电平时,芯片开始工作。当该引脚为低电平时,芯片停止工作,具有非常低的漏电电流。1脚、15脚、16脚为芯片的电源输出引脚,用于输出4.2V电压,接到GSM模块的电源输入端。5、6、7、17脚为GND引脚,这几个引脚需要大面积敷铜,和电路板的GND充分性接触。FB为电源的输出反馈,根据公式VOUT=VIN*(R7+R12)/R7,所以为了输出4.2V精确的电压,选择R7为510k欧姆,R12为68.1k欧姆,经过电压表测试为4.2V,纹波电压小于100mv,能够实现GSM模块的供电。3.3测温电路设计方案一:采用热电阻温度传感器。热电阻型温度传感器的原理是利用电阻的阻值和温度有着线性的函数关系,利用单片机测量热电阻两端的电压,根据一定的换算关系,就可以间接测量环境温度,常见测温范围在零下50摄氏度到零上300摄氏度之间。方案二:采用数字温度传感器ds18b20。该数字温度传感器采用单总线模式,输出口与单片机通过时序进行通讯。单总线模式的优点在于只需要一根线,抗干扰能力强,特别适合于工业等环境复杂的现场实时温度环境测量。综合比较以上两方案,认为方案二更适合于本设计系统,采集温度方便快捷,误差小,成本较低。温度传感器原理图如图3-5所示。1脚为芯片的数字地,2脚为芯片数据双向I/O口,需要接一个上拉电阻,3脚为芯片的VCC引脚。选上拉电阻时:输出口驱动电流约IO最大电流就是520uA,即选大于5.7K时输出端能下拉至0.8V以下,此为最小阻值。当输出高电平时,忽略管子的漏电流,输入口电流大约100uA,100uA*12K=1.2V即上拉电阻压降为1.2V,输出口可达到2.4V,此阻值为最大阻值。综合考虑,选10K上拉电阻。图3-5 温度传感器原理图DS18B20 单线数字温度传感器做为单总线IC器件,具有许多优点:温度传感器与单片机仅有一根线相连,抗干扰能力强,特别适用于工业环境等条件较差的地方。测量范围较宽,在零下30摄氏度到零上85摄氏度之间,温度转换精度高,转换时间短。通过单片机控制,可以更改分辨率9到12位,可配置性高。掉电记忆功能,内部含有独立的EEPROM,掉电后可以将配置保存到EEPROM中,上电自动恢复之前的配置。DS18B20的温度输出引脚需要接上拉电阻,本系统设计的是接了一个R5为10k的上拉电阻到VCC。该引脚连接到了单片机的P2.7引脚,该引脚做为普通I/O口功能。单片机是通过I/O口来模拟单总线协议,从温度传感器的唯一的DATA线上写入和读取数据,DS18B20可以直接把温度转换为数字信号,单片机只需将其读出就可以了。用于读写和温度转换的电源可以直接从数据线获得。温度传感器内部有一个高速存储存储器,单片机通过读温度指令后,温度传感器将温度数据发送给单片机。 3.4按键电路设计图3-6 按键电路 单片机检测按键是否按下是通过检测IO口的高低电平。如图所示,KEY1是连接单片机的P5.5引脚,KEY2连接单片机的P5.4引脚,KEY3连接单片机的P5.3引脚。按键弹起时,由于上拉电阻的存在,KEY1为高电平。当S1按下时,由于按键两端的贴片相连,S1导通,此时KEY1与GND相连,单片机此时扫描IO口时为低。按键电路如图3-6所示。但是实际生活中,按键在按下或弹起的瞬间会有抖动,如果在编程时不考虑这种因素,就会产生意想不到的影响,所以需要进行按键消抖,本设计采用软件消抖方式。3.5 显示屏电路应用方案一:采用12864屏幕。12864屏幕具有128*64的分辨率,价格非常便宜,屏幕上最多可显示32个汉字。但是12864的缺点也显著,对波形特别是对画点画线的显示不好。方案二:采用TFT液晶显示屏。基于ILI9320芯片的TFT液晶显示屏的分辨率高,为全彩液晶屏幕,显示画面清晰,数据传输快。可以非常全面的进行显示各种信息,支持对波形图的显示。综合比较方案一和方案二,方案二成本偏高,但对本系统的温度时间波形图支持良好,非常适合于显示复杂的图像。方案一成本较低,但是只能显示较为简单的文字图像,对波形的编程较为困难,综合以上分析,本设计采用方案二。单片机IO口与显示屏模块依次相连,屏幕内置了降压芯片,3.3v供电。通过SPI模式可以控制ILI9320驱动芯片,从而对屏幕每个液晶进行编程。TFT液晶显示屏的优点是图像显示清晰,数据传输快,反应速度快。显示屏为16位数据传输,但是设计时候,由于屏幕有一个595锁存器,所以只需要8位数据,经过595锁存器后扩展成16位数据。屏幕采用的是3.3v供电,屏幕内置了一个3.3v的降压芯片,所以输入电压3.6v经过降压后3.3v给屏幕供电。屏幕的7到14引脚为8位数据口,依次与单片机的P4口相连。RS引脚为命令/数据控制位,与单片机的P3.1脚相连,单片机控制该引脚为高电平表示读写数据,控制该引脚为低电平表示读写命令。RW脚与单片机的P3.3引脚相连,单片机给该引脚一个上升沿时序,那么P4口数据相会写入LCD中。EC脚与单片机的P3.0引脚相连,单片机控制该引脚有一个上升沿的时序,就会将数据锁存到P4口数据线上。PSB脚与单片机的P5.0引脚相连,当需要片选LCD时候,单片机给该引脚一个低电平,表示该LCD被选中了,可以进行后续操作。TFT_RST引脚与单片机的P5.1引脚相连,为LCD的硬件复位,当单片机给该引脚一个低电平,那么LCD将会被复位初始化,一般情况下只需要选中LCD后复位一次就行,正常显示时候该引脚一直保持高电平。显示屏电路如图3-7所示。图3-7 显示屏电路3.6 存储电路设计存储芯片采用的是AT24C02,通常AT24CXX中的XX代表了这种存储芯片的大小,很明显这种EEPROM的存储空间为2KB,即可以存储2048个字节数据,满足本系统对于温度存储的要求。如下图3-8为AT24C02的连接图,图中VCC为芯片的电源输入,GND为芯片的数字地,在VCC与GND之间串联了一个0.1UF的去耦电容,这样可以有效抑制芯片电源输入的高频杂波,保证芯片的稳定运行。A0、A1、A2为芯片的器件地址,通过这三个引脚,一个系统中最多可以连接8个EEPROM,选择不同的器件地址可以选择不同的存储芯片,增加系统存储容量,减少单片机IO口使用。本系统为了方便设计,将器件地址设置为111。WP为芯片的写保护脚,如果WP为高电平,那么芯片将被写保护,此刻单片机无法对存储芯片进行读写操作。只有WP引脚为低电平时,写保护状态才被清除。芯片采用IIC通信协议,SCL是IIC的时钟信号线,SDA为IIC的双向IO口,默认状态下,两根线由于上拉电阻为高电平。IIC通信协议可以简要理解为:处理器与被控芯片之间有了约定的信号协议、双方满足一定的时序要求。IIC可以支持多个设备,每个设备里有个特定的地址。作为一种串行通信协议,IIC已经在许多领域获得了广泛的应用,并成为了国际标准。图3-8 存储电路原理图3.7 控制模块设计3.7.1 蜂鸣器电路设计 图3-9 蜂鸣器电路蜂鸣器模块电路如图3-9所示。蜂鸣器分为有源蜂鸣器和无源蜂鸣器。有源蜂鸣器就是内置振荡源,只要通电就会以固定的频率响,而无源蜂鸣器则需要通过开关方式产生振荡。考虑到系统的编程设计方便,减少定时器额外操作,本系统采用有源振荡器。BEEP引脚与单片机的P1.4脚相连,单片机通过控制该引脚的高低电平来控制蜂鸣器开关。蜂鸣器控制脚为高电平时,三极管导通,蜂鸣器响。蜂鸣器控制脚为低电平时,三极管截止,蜂鸣器不响。系统上电后,蜂鸣器提示音响一下,表示程序开始运行。当环境温度超过温度阀值时候,蜂鸣器响铃提示。3.7.2 继电器模块设计本装置为了实现温度的自动调节,采用风扇加电热丝的方式来实现自动控制。显然,风扇和电热丝是大电流器件,单片机是无法驱动的,所以采用单片机控制继电器的方式来控制风扇和电热丝。选择继电器时,一定要选择额定功率大于电热丝额定功率的继电器,防止用电装置在工作时候电流太大,导致继电器烧毁。由于继电器独特的特点,它的控制电路和用电电路是相互隔离的,在电力电子应用非常广泛,是常用的弱点控制强电的装置,使用方便安全。如图3-10所示。图3-10 继电器电路3.8硬件原理图根据以上各个子模块相互配合使用,具体原理图见附录1。3.9 硬件电路焊接首先对贴片元件进行焊接,先进行430单片机的焊接,需要注意每个引脚不要虚焊与短路,当焊接好单片机最小系统后,使用下载器下载一个示例程序,检测单片机是否正常下载。随后进行GSM模块焊接,焊接完后使用万用表测试是否短路。然后将其余的贴片电阻电容和芯片焊接完毕。每次焊接好一个模块测试是否可以正常工作后才进行下一个模块焊接。最后将插件器件焊接完毕,完成本次的焊接工作。本设计PCB电路第一次样板如下图3-11所示。图3-11 第一次样板本设计PCB电路第二次样板如图3-12所示。图3-12 第二次样板4 软件系统设计4.1软件总流程图接到短信? 屏幕显示数据 蜂鸣器响1s GSM开机配置看门狗 开始功能键按下? NN 显示存储温度信息提取温度信息发送报警短信温度异常?Y Y 配置温度报警阀值 N Y 打开电热丝温度显示 打开风扇图4-1 总流程图初始化程序,开机蜂鸣器响1s,GSM模块POWER_KEY引脚低电平300ms启动开机,初始化屏幕信息,显示报警温度阀值与实时温度,保存10秒前数值到EEPROM存储芯片中,温度数据每经过60ms读取一次,绘制成温度-时间的波形曲线图。当GSM模块找到网络后,开始等待接收信息。如果收到了修改温度阀值的短信,处理信息,提取温度阀值,显示到屏幕中。如果功能键按下,将在屏幕上显示已经存储在EEPROM中的历史温度信息,便于记录存储检查历史异常情况。如果温度异常,将触发自动报警功能,GSM模块将发送短信到指定手机上,提示异常信息,并打开风扇降温操作。4.2 温度读取子程序 对温度进行读取操作时,首先进行初始化和复位操作,即将数据线输出高电平500us,然后输出80us低电平,之后500us后对数据线进行采样,如果为高电平,则返回0x00,如果为低电平,则返回0x01。写操作周期在60us到120us之间。在初始化时序温度传感器产生应答后就可以进行写操作了。主机先将总线拉低1us,如果写0,就将总线拉低60us后释放;如果写1,就将总线立即释放。读操作分为读取0和读取1。主机将总线拉低1us后释放,DS18B20开始传输数据到单总线上。如果发0,则一直拉低总线;如果发1,则立即释放总线。主机在拉低总线1us后等待10us开始检测总线电压,从而判断数据传输为0还是1。开始读温度暂存值低8位温度转换完成?写指令启动温度 转换 跳过ROM复位DS18B20初始化N 完成数据读取读温度暂存值高8位Y 图4-2 温度读取流程图 发送温度转换命令的操作是:首先将DS18B20复位,然后发送命令字节0xcc忽略地址,然后发送命令字节0x44读取温度,最后接收9位数据信息。其中9位数据的低四位是小数值,高五位是整数值。因为选择的是9位转换精度,所以需要乘以0.0625,最后的结果就是真实的温度数据。为了便于数据处理操作,将数据乘以0.625,这样就可以获得一个整数。具体的温度读取流程图见上图4-2所示。发送数据程序示例: void ds1820_write_byte(unsigned char value) unsigned char i; /定义一个字节数据 for (i = 8; i != 0; i-) /循环8次 DQ_OUT; DQ_CLR; /数据线输出低电平 delay_us(4); /延时4uS if (value & 0x01) /最低位是否为1 DQ_SET; /为1则数据线置为高电平 delay_us(80); /延时80uS DQ_SET; /数据线置为高电平 value = 1; /数据左移一位,发送下一位数据 读取温度程序示例:unsigned int ds1820_read_temp(void) unsigned int i; unsigned char buf9; DS18B20_Reset(); /温度传感器复位 ds1820_write_byte(0xCC); /勿略地址 ds1820_write_byte(0xBE); /读取温度 for (i = 0; i 9; i+) /循环九次 bufi = ds1820_read_byte(); /读取第i位数据 i 4; /检测第六位数据 delay_us(5); SCL_0; delay_us(5); return(tmp);a.写数据操作对进行AT24C02写操作时,先对IIC进行初始化,将IIC总线电压拉高,随后发送器件地址,等到从机应答后,写入24C02的操作地址,然后将需要保存的数据写入相应的地址中,等待数据写入结束获得从机应答后即写入完成,如果数据写入结束没有在规定时间内收到从模块的应答码,则表明数据写入失败,需要重新进行操作,直到从模块收到应答位后才可以完成。发送数据程序示例: SDA_OUT; unsigned char i,temp; for(i=0; i8; i+) /循环八次 SDA_OUT; /数据线输出 temp = data&0x80; if(temp = 0x80) SDA_1; /判断发送位,送数据到数据线上 else SDA_0; delay_us(10); /延时10us SCL_1; /置时钟信号为高电平,使数据有效 delay_us(5); /延时5us SCL_0; /置时钟信号为低电平 delay_us(10); /延时10us data=data1; /数据左移一位 SDA_IN; /数据线输入模式 delay_us(5); /延时5us 开始检测应答?写24C02器件地址IIC起始地址IIC端口初始化N退出程序Y数据写完?向24C02地址中写入数据写入24C02操作地址NIIC停止Y图4-4 24c02写数据流程图b.读数据操作进行AT24C02读操作时,先对IIC进行初始化,将IIC总线电压拉高,随后发送器件地址,等到从模块的应答后启动IIC总线,写入需要读数据24C02的操作地址,检测到从模块的应答后开始读取数据,等待一字节数据读取完成,读取完成IIC检测回应,最后停止IIC总线,将两根线拉高。 unsigned char byte = 0; SDA_IN; /置数据为输入 for(i=0; i8; i+) /循环8次 SCL_1; /时钟线为输出高电平 delay_us(5); byte = byte1; /带发送数据左移一位 SDA_IN; /数据线置输入模式 tmp = SDA_BIT_DATA; /读取数据线电平高低 if(tmp = SDA_BIT) byte = (byte|0x01); /如果为高电平则数据写入1 delay_us(10); SCL_0; delay_us(10); return(byte); /返回一个字节数据检测应答?写器件地址IIC起始条件IIC端口初始化 开始 退出数据N检测应答?写字地址 Y退出数据N 读数据 Y IIC停止图4-5 24c02读数据流程4.4 按键子程序按键扫描程序在主循环里面执行,通过检测按键IO口电平高低来判断按键的弹起与按下。如果扫描到IO口为低电平,延时10ms消除抖动后再扫描该IO口是否仍为低电平,如果有,则表明有按键按下,否则表示按键弹起状态。延时程序采用IAR自带的延时函数,第一个为微秒级延时,第二个为毫秒级延时,用示波器检测发现延时非常精确。具体按键流程图如下图4-6 所示。_delay_cycles(long)(CPU_F*(double)x/1000000.0) _delay_cycles(long)(CPU_F*(double)x/1000.0) 按键按下?扫描按键 开始N执行按键操作按键按下?延时程序 YNY图4-6 按键操作流程图按键程序示例: static u8 key_up=1;/按键按松开标志 if(key_up&(!(KEY1)|(!(KEY2)|(!(KEY3) delay_ms(10);/去抖动 key_up=0;if(KEY1)=0) return 1;else if(KEY2)=0) return 2; else if(KEY3)=0) return 3; else if(P5IN&BIT3)=8)&(P5IN&BIT4)=16)&(P5IN&BIT5)=32) key_up=1; return 0;/ 无按键按下4.5 GSM模块子程序 MG2639模块采用AT 指令操作控制,AT指令以“AT”开头,以 结束。模块运行后,串口默认的设置为: 8 位数据位、 1 位停止位、无奇偶校验位、无硬件流控制,通信速率选9600bps。GSM模块的串口与单片机的串口0相连,即GSM的发送引脚与单片机的P3.5脚相连,GSM的接收引脚与单片机的P3.6脚相连。数据通过串口中断的方式发送。具体的操作是:配置串口为SMCLK时钟为8MHZ,9600波特率所需要一位时间为1/9600秒,配置波特率寄存器U0BR1=0X03,U0BR0=0X41,微调寄存器为0,发送使能打开,打开中断使能。为了实现温度报警功能,需要GSM模块向特定手机发送短信达到提示的目的。AT指令收发短信有两种工作模式:文本模式和PDU模式。使用文本模式收发短信代码编写非常简单,很容易实现,但缺点是不支持中文短信的发送,只支持ASCII码发送。而PDU模式可以发送中文

温馨提示

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

评论

0/150

提交评论