版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 PAGE41 / NUMPAGES46 题目基于GPRS的温度实时监测系统设计学生德林学号 1113014003 所在学院物理与电信工程学院专业班级电子1101班指导教师贾建科完成地点物电学院实验室2015 年 6 月 10 基于GPRS的温度实时监测系统设计德林(理工学院物理与电信工程学院电子信息工程专业电子1101班 723003)指导教师:贾建科摘要近年来,随着通信事业的不断发展,移动终端的设计也逐渐倍受关注。随着无线网络的覆盖围的扩大和完善,基于远程的温度采集控制系统在各行各业量使用。该系统主要由DS18B20单总线温度传感器、GPRS传输模块SIM900A和AT89C52微控制器组
2、成,具有无线传输网络的特征。可方便实现对各种现场温度进行远程监控和管理。具有传输速度快、可靠性高、适应性强等特点。关键字GPRS,无线,数据采集,系统Design of GPRS temperature monitoring system for real timeLi Delin(Grade 11,Class 01,Major electronics and information engineering,School of Physics and Telecommunication Engineering.,Shaanxi University of Technology,Hanzhong
3、 Shaanxi,723003)Tutor: Jia Jianke Abstract:In recent years, with the continuous development of communication enterprises, the design of mobile terminal also gradually attention. With the enlargement of the wireless network coverage and improvement of temperature acquisition based on the remote contr
4、ol system used in all walks of life. The system is mainly composed of DS18B20 single bus temperature sensor, GPRS transmission module of SIM900A and microcontroller AT89C52, has the characteristics of wireless transmission network. Easy to realize remote monitoring and management for all kinds of fi
5、eld temperature. With transmission speed, high reliability, strong adaptability, etc. Keyword:GPRS,Wireless, Data acquisition,System目录TOC o 1-3 h u HYPERLINK l _Toc30544 1绪论1 HYPERLINK l _Toc3647 1.1 课题的研究背景与意义1 HYPERLINK l _Toc17660 1.2 发展历程与国外研究现状1 HYPERLINK l _Toc25426 1.3 系统组成1 HYPERLINK l _Toc2
6、4857 2 系统硬件设计3 HYPERLINK l _Toc15390 2.1 监测端3 HYPERLINK l _Toc20982 2.1.1 AT89C52模块3 HYPERLINK l _Toc28648 2.1.2 DS18B20模块4 HYPERLINK l _Toc15123 2.1.3 LED模块4 HYPERLINK l _Toc24636 2.2 发射端7 HYPERLINK l _Toc15280 2.2.1 SIM900A模块7 HYPERLINK l _Toc27575 3 软件设计8 HYPERLINK l _Toc27371 3.1 DS18B20测温流程8 HY
7、PERLINK l _Toc31784 3.1.1 初始化9 HYPERLINK l _Toc9683 3.2 涉与SIM900A的串口初始化与GPRS协议转换9 HYPERLINK l _Toc13019 3.2.1 单片机程序中涉与SIM900A串口初始化9 HYPERLINK l _Toc18202 3.2.2 GPRS应用系统中的协议转换 PAGEREF _Toc18202 10 HYPERLINK l _Toc3074 3.3简介KeilUvision PAGEREF _Toc3074 11 HYPERLINK l _Toc23884 3.4上位机程序与仿真界面 PAGEREF _T
8、oc23884 12 HYPERLINK l _Toc23191 3.4.1 Visual Basic简介 PAGEREF _Toc23191 12 HYPERLINK l _Toc23471 3.4.2 Visual Basic编译注意事项 PAGEREF _Toc23471 12 HYPERLINK l _Toc18481 4.总结 PAGEREF _Toc18481 14 HYPERLINK l _Toc25403 致 PAGEREF _Toc25403 15 HYPERLINK l _Toc8353 参考文献 PAGEREF _Toc8353 16 HYPERLINK l _Toc27
9、727 附录A 程序代码 PAGEREF _Toc27727 17 HYPERLINK l _Toc12115 附录B:温度采集仿真 PAGEREF _Toc12115 31 HYPERLINK l _Toc7948 附录C外文翻译 PAGEREF _Toc7948 321绪论1.1 课题的研究背景与意义近年来随着科学技术的进步,温度测量的需求也越来越高,在测量机构的工业发达国家,相关的温度测量技术是一个重要研究课题。温度是一个非常重要的参数,用于工业和农业,医学,科研,国防工业,航天工业等。温度测量点一般约占一半的生产过程,一般情况国外的一些机构会注意温度测量技术的过程。温度测量技术的发展趋
10、势是提高结构构件的检测。另一方面是完善二手仪器,特别是检测元件的小型化,提高动态特性,提高二仪器的灵敏度和可靠性和测量数字的值。GPRS是通用分组无线业务4(General Packet Radio Service)的英文简称,是在现有的GSM系统开发了一种新的分组数据承载业务。此功能适用于大多数的移动互联网应用。采用该方法会大大节省人力和财力,减少工作人员在野外操作的困难,也可以替人类到环境比较恶劣的条件下进行正常作业,而且采集数据精确,速度快。监测人员操作方便,为人们带来很大的方便。采用有线温度采集,不但在组建采集系统时布线比较麻烦,而且数据传输距离比较近,组建系统的成本相对较高。而无线温
11、度采集系统的组建省去了数据传输时的布线,而且数据传输距离可以很远,可靠性高。所以无线温度采集系统与有线温度采集系统相比,具有很大的优势。采用该方法会大大节省人力和财力,减少工作人员在野外操作的困难,也可以替人类到环境比较恶劣的条件下进行正常作业,而且采集数据精确,速度快。监测人员操作方便,为人们带来很大的方便。1.2 发展历程与国外研究现状在应用在GPRS / GSM方面1,事实上,我们是在我们离不开手机应用最广泛。现在移动互联网在3G业务的另一个常见的事情发展迅速。但仅仅在商业上的应用是不能够展现他的优势的。在工业上随着工业技术的不断发展在GPRS/GSM的技术可靠性得到了不断的提升。这为远
12、程控制的可靠性提供了保证。目前从GSM到GPRS技术发展最好的国外公司是西门子公司的产品。此外国的华为公司的一些产品比如EM310模块、EM770W模块、EM200、GTM900-C等销量也比较的大。由于大多数的GPRS/GSM产品都支持AT标准指令,所以大多产品都可以很好的兼容。但由于生产技术的不同,各厂家的产品的性能各不一样,且GSM网络是一种电路交换系统,而GPRS网络是一种分组交换系统。因此,GPRS特别适用于间断的、突发性的或频繁的数据传输。介于以上理由与系统的可靠性,本设计主要使用GPRS网络来实现远程无线温度的采集和对其控制。1.3 系统组成本设计的整个系统通过数字温度传感器采集
13、工作现场温度,将数字信号传给单片机,并由LED现场显示温度,单片机将处理过的数据信息通过GPRS模块操作,连接到GPRS网络,将数据由GPRS网络上传到Internet网络2,在服务器端由VB编写的上位机程序通过使用Run-Time Engine控件来对数据进行处理显示。其系统框图如图1.1所示。图1.1系统组成框图2 HYPERLINK C:Documents and SettingsAdministrator桌面2008022688647420080226886474.doc l _Toc137365789#_Toc137365789 系统硬件设计硬件组成:检测端和发射端两部分组成。温度实
14、时检测端是通过DS18B20从现场采集温度信息,AT89C52对获取的数据信息进行汇总并加工处理,按照上位机要求上传网络。发射端是TCP/IP协议GPRS模块通过SIM900A来完成,来完成温度数据的监测。在此说明,最初我选用的单片机是STC89C52,因为STC89C52相对AT89C52功能更齐全一些,STC89C52有512字节的数据存储空间,而AT89C52只有256字节数据存储空间;另外STC89C52单片机部有2K字节的EEPROM存储空间,AT89C52却没有。但实际操作中没有烧录的设备,所以就选则AT89C52单片机。2.1 监测端监测端主要包括:AT89C52,DS18B20
15、,LED数码管。第一部分:温度信息获取,DS18B20传感器从现场采集温度信息,第二部分为:对传递进来的数据进行处理,AT89C52单片机将DS18B20传递进来的数字信号进行处理,将实时温度传递给LED和SIM900A(GPRS模块);第三部分为LED八段数码显示管,它将AT89C52处理的实时温度数据显示出来,以便于读数。本次毕设中在实际操做中采用12M的晶振来完成,电源采用的是五伏直流电源的蓄电池。实现步骤主要分为:第一,根据需要设计电路;第二,根据设计电路进行温度实时监测的仿真;第三,在仿真通过时,进行电路优化;第四,进行实体电路的焊接并进行温度实时监测。2.1.1 AT89C52模块
16、(1)AT89C52的功能特性描述作为普通51单片机已与广泛应用于各种产品中,其接口简单,方便使用,且功能强大,因此本系统采用AT89C52单片机作为主控制芯片。AT89C52单片机功能使用有以下标准:8字节的FLASH闪存,256字的竹部RAM,3个16位定时器/计数器,32个I / O端口线,一个两级6向量中断结构、全双工串行通信端口,芯片上的时钟振荡器电路。AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。空闲方式停止CPU 的工作,但允许RAM,定时计数器串行通信口与中断系统继续工作。振荡器停止工作和其他工作,直到下一个硬件复位所有部分.(2)涉与到AT89C
17、52电路简图本系统设计所涉与到的AT89C52最小系统8,仅有芯片,晶振,和复位键组成。外接5V的电源电路。如图2.1所示。图2.1AT89C52最小系统2.1.2 DS18B20模块(1) DS18B20一般说明与特点概述DS18B20温度芯片是一种集成芯片,能够有效的减小外界的干扰,提高测量的精度,简化电路的结构。使用集成芯片,已经慢慢的成为设计电路的一种趋势。本系统设计使用温度芯片DS18B20,也正是顺应了这一趋势。DS18B20是DALLAS公司生产的一线式数字温度传感器,其测温分辨率可达0.0625C,其提供9位温度读数,指示器件的温度。(2)DSl8B20的外部管脚与特点DS18
18、B20有三个管脚。GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,围3.0V5.5V。本文使用外部电源供电。引脚排列如图所示。图2.1.2 DS18B20引脚排列图(3) DS18B20的部结构本系统所用的DS18B20主要由四个部分组成:温度传感器, 64位光刻R0M, 配置寄存器,非易失性的温度报警触发TH和TL。R0M交货前64位序列号被光刻技术,它可以被认为是DSISB20地址码序列,每个DSI8B20 64序列号是不一样的。表2.3.2 DS18B20精度位数对应表R1R0精度位数最大转换时间R1
19、R0=009位精度93.75 msR1R0=0110位精度187.5 msR1R0=1011位精度375 msR1R0=1112位精度750 ms注:编程时默认是12精度。本系统采用的也是12位的精度。2.1.3 LED模块(1) LED数码管简介LED数码管其实是由七个发光管组成8字形构成的,再加上小数点为8个发光管。这些部由字母a,b,c,d,e,f,g,dp分别来标识;如图2.1.3所示。(2)LED管脚数码管加上特定电压后会发光, 让我们的眼睛看到两个8数码管字11。如:显示一个“0”字,所以应该是a b c d e f亮,g和dp并不明亮。通常为明亮,非常明亮,也有不同的尺寸0.5寸
20、,1寸等。一般来说,一个发光二极管的管压降约为1.8 V,电流不得超过30 mA。当阳极接在一块并且连接在电源正极的发光二极管是共阳数码管,当阴极接在一块并且连接在电源负极的发光二极管是共阳数码管。LED数码管显示数字和字符常用的是0,1,2,3,4,5,6,7,8,9,A,B, C,D,E,F。图2.1.3 DS18B20引脚排列图2.2 发射端发射端主要包括:SIM900A GPRS模块,它的主要功能是将监测端采集的温度数字信号同过SIM900A的GPRS业务发送给远程检测端(上位机)。GPRS不局限GSM网络只能提供思维的电路交换模式,只通过增加相应的功能实体和对现有的基站系统进行一部分
21、改造和分组交换,这种投资的转变是比较小的,但得到用户数据速率是相当快的。此外,由于它不再需要现有的无线应用需要调解器,因此连接将更加方便和更容易运输。2.2.1 SIM900A模块(1)SIM900AGSM通信模块是数据传输的通信核心。SIM900A可以快速安全可靠地实现系统方案中的数据、语音传输、短消息服务(Short Message Service)和 。图2.2.1 SIM900A实物图(2)SIM900A 功能图下图展示了SIM900A的功能框图,并说明了主要的功能部分:GSM基带、存储器、 GSM射频、天线接口、其他接口图2.2.2 SIM900A功能图(3)GPRS模块接口设计通信
22、控制模块SIM900A可以通过软件来实现3,用软件控制使用灵活的特点,同时也很好的避免过多的硬件信号的检测。SIM900A模块的设计和电源引脚在一起,因为SIM900A是一个全功能的模块,所以没有必要做任何的信号处理和射频处理。此外SIM900A模块还需要连接的SIM卡,从而达到的GPRS终端的完整的独立。在串行设计中,虽然SIM900A模块串口操作电平是CMOS电平,工作电平单片机串口引脚为TTL电平,但由于微控制器的高和低逻辑电平可达到SIM900A引脚的连接,因此TC35模块串口直接与电缆单片机的串行电缆连接。以下为SIM900A模块的接口设计。图2.2.3 SIM900A模块接口3 软
23、件设计本系统软件设计主流程图如下所示。图2.3.3 系统软件流程图3.1 DS18B20测温流程DS18B20监测实时温度时,首先要进行初始化,单总线上的所有处理均从初始化开始,初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲;其次进行ROM操作指令,跳过ROM,跳过64位ROM地址,直接向DS18B20发送温度转换命;然后AT89C52发送温度转换命令,经过单线接口访问DS18B20的协议处理顺序,如图5.2所示。图3.1 处理顺序图3.1.1 初始化单总线上的所有处理均从初始化开始。初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。unsigned char
24、 ow_reset(void) unsigned char presence;DQ = 0; / 将 DQ 线拉低delay(36); / 保持DQ = 1; / DQ返回高电平delay(5); / 等待存在脉冲presence = DQ; / 获得存在信号delay(30); / 等待时间隙结束return(presence); / 返回存在信号,0 = 器件存在, 1 = 无器件3.2 涉与SIM900A的串口初始化与GPRS协议转换3.2.1 单片机程序中涉与SIM900A串口初始化/* ! 串口0初始化函数, 此串口用作接收终端控制命令 ! 晶振频率:11.0592MHz ! 串口0
25、波特率:9600*/void Uart0_Init(void) /9600bps11.0592MHz SCON = 0 x50; /8位数据,可变波特率 AUXR |= 0 x40; /定时器1时钟为Fosc,即1T AUXR &= 0 xfe; /串口1选择定时器1为波特率发生器 TMOD &= 0 x0f; /清除定时器1模式位 TMOD |= 0 x20; /设定定时器1为8位自动重装方式 TL1 = 0 xfd; /设定定时初值 TH1 = 0 xfd; /设定定时器重装值 ET1 = 0; /禁止定时器1中断 TR1 = 1; /启动定时器1 ES = 1; EA = 1; void
26、 Uart0_PutChar(char ch) ES = 0 ; SBUF = ch ; while(!TI); TI = 0 ; ES = 1 ;/*/! 串口1初始化函数, 此串口用作控制GSM模块/! 晶振频率:11.0592MHz/! 串口1波特率:9600*/void Uart1_Init(void) /9600bps11.0592MHzS2CON = 0 x50; /方式1,八位数据,可变波特率AUXR1 = 0 x00; /1T工作方式 IP2 = 0 x00; /优先级默认 BRT = 0 xDC; /设置波特率 DC 9600 E8 14400/ 256 - (FOSC/32
27、/BAUD) AUXR = 0 x14;/独立波特率发生器时钟为Fosc,即1TIE2 |= 0 x01; /开串口2中断 EA = 1;3.2.2 GPRS应用系统中的协议转换将用户数据转换为TCP / IP数据包,通过GPRS网络能够发送。首先,在系统初始化的过程中,拨号互联网接入GPRS模块。在GPRS模块连接到互联网,也得到了一个动态的IP地址,数据传输的过程开始了。在GPRS网络,数据传输IP数据报通信过程,该模块PPP数据包的发往送网关将传送到相应的地址在互联网网络;并从互联网上得到响应的框架也可以根据IP地址的GPRS模块6。从而实现数据透明传输和互联网通过GPRS模块。从外部经
28、历三个阶段:数据加载TCP数据包,加载IP数据包,加载PPP框架。后三个过程已经成为一个标准的包,可以在网络中传输。数据传输过程可分为以下几个过程,如图3.2.1所示。图3.2.1 GPRS通信程序结构图3.3简介KeilUvisionKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编程序相比,C语言在功能、结构上有一个明显的优势,可读性,可维护性,从而易于使用。使用汇编语言,然后用C开发,更深刻的体验。KeilC使用过程:(1)先建立一个工程。(2)点击ProjectNew uVision Project点击保存,新建一个工程,然后存入文件
29、夹(3)选择器件(4)选择Silicon Laboratories,Inc.AT89C52点击OK(5)新建一个*.c文件并保存点击FileNew新建一个Text编程序 ,编好程序 ,保存为.c文件。(6)编译并生成HEX文件(7)通过编译后点击Target1,右击Source Group1,点击Add Files to Group Source Group点击.c文件,然后点击Add,关闭窗口. 重新编译一下,点击Target Options 在弹出的窗口点击Output栏,在Create HEX File前打勾,点击OK .最后再点击编译就能生成.hex文件了。3.4上位机程序与仿真界面3
30、.4.1 Visual Basic简介Visual Basic是一个由微软开发的协助开发环境的事件驱动编程语言。VB语言世界上最多的人,不仅是赞扬VB开发人员VB抱怨开发商的数量。它来源于基本的编程语言。VB图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以很容易地使用刀,RDO、ADO连接数据库,或轻松创建ActiveX控件。程序员可以很容易地使用VB组件快速构建应用程序。本上位机软件部分用VB编写而成,其语言图形化G语言形式。该程序由实时时钟程序模块,温度采集显示程序模块,图形显示程序等模块组成。3.4.2 Visual Basic编译注意事项在初始化程序时主要完成对串口的设置,
31、其中包括串口的选择、波特率的设置、数据格式的设置与串口的打开等。其中应该注意的是在程序开始以前,切记需要清空发送和接收缓冲区,避免出现异常或者错误。在刚开始我打算将控制面板分成几个模块,最后连接起来。因为每个模块中的变量设置的不一样,后来组合在一起不能运行,花了大量的时间将其改过来。在编译时主要是将该系统与数据库连接起来,因为刚开始将各个模块分开来编译,并将其分别和数据库进行连接。最后合在一起时,数据库连接不成功,最后逐个修改程序中连接数据库的目录,花了很长的时间。由于本人知识不够全面,技术也不够熟练,最终也没有将采集的数据进行图像处理。导致本次毕设没有实现全部功能,在此,我深深地感到自己的不
32、足。我会在以后的学习中继续完善自己这方面的知识。图3.4.1为前面板显示界面图3.4.1 前面板显示界面4.总结由于本人原因,本次毕设实体部分没有全部实现,只将采集模块和客户端做出来了,没能实现客户端检测的功能。在导师贾建科的指导下和自己不断在图书馆电子阅览室查资料,克服自身知识缺陷,将温度采集模块和客户端接收模块做出来。通过本次课题“基于GPRS的温度实时监测系统设计”的实战操作,让我深深意识到知道和能做出来之间有很大一段距离,同时意识到自身知识的匮乏。本次操作主要困难是将程序放在单片机。由于器材限制,由原本设定的STC89C52单片机在中途换成AT89C52,焊接技术不够熟练,将万能板焊接
33、的不成样子,将几个电阻焊接坏,以至于借了个开发板,将温度采集实体做好。在温度仿真部分,由于个人心粗忘记在显示管接接电阻,导致没数字显示。致本论文的选题是在贾老师的全面指导下完成的。贾老师不仅为本论文的研究指出了方向,而且提出了宝贵的意见,使我受益匪浅。在论文完成之际,谨向尊敬的贾老师致以深深的意。在本次设计中,主要通过GPRS无线传输技术,实现对远程无线温度的采集,交互通信,实时控制。给出了系统硬件软件的设计方法,具体方案,电路图和程序代码;通过VB制作了一个显示控制界面。但由于时间原因过于紧凑,未能完成实物的焊接制作。通过这次设计,使我较充分地掌握了电子设计的基础知识,培养了自身的系统设计思
34、维,开拓了设计视野,能够做到理论联系实践,为以后进一步深入学习和深造奠定了基础。感物电学院全体老师四年来的辛勤培养和教诲。参考文献1 史素美,战明.嵌入式远程测控系统在 GSM/GPRS网络基础上的研究D. 理工大学,2006.2 冰, 芬华. GPRS 技术在数据采集与监控系统中的应用J.电子技术, 2003, 29(8): 3吕捷.GPRS技术R.:邮电大学,2003。4 R.J.(Bud)Bates 著朱洪波,越泓,蔡跃明,程崇虎等译通用分组无线业务(GPRS)技术与应用:人民邮电2004。6袁红涛,GPRS技术应用的软硬件开发环境J.:现代电子技术,2004,27(16):9799。7
35、 康华光.电子技术基础M.:高等教育,2000。8 大茂,智能仪器(单片机应用系统设计)J.:机械工业,1998。9金伟正.单线数字温度传感器的原理与应用.:电子技术应用,2000。10自美.电子线路设汁实验测试(第三版).:华中科技大学,2006。11 阎石.数字电子技术基础.:高等教育,2006.12 沙占有,王彦朋,家怡.智能传感器系统设计与应用M:电子工业,2004 348353。13 DALLAS Semiconductor.DS18B20 Data Sheet Z.2002:1-26.14 Lin Chine E,Wu Chih-Chen.A real time GPRS surv
36、eillance system using the embedded system J.IEEE Telecomunicatio Conference,2002,(v2):1678-1682.15 A.Neto,H.Fernandes,A.Duarte, Firesignal-Data acquisition and control system software.FusionEngineering and Design 82(2007)1359-1364.附录A 程序代码/*SMS*/unsigned char AT_CMGF = AT+CMGF=1;unsigned char AT_CSC
37、S = AT+CSCS=GSM;unsigned char AT_CMGS = AT+CMGS=+86;/*TEL*/unsigned char AT_ATD = ATD;unsigned char AT_ATH = ATH;/*GPRS*/unsigned char AT_CIPMUX = AT+CIPMUX=0;unsigned char AT_CIPMODE = AT+CIPMODE=0;unsigned char AT_CGATT = AT+CGATT=1;unsigned char AT_CSTT = AT+CSTT=UNINET;unsigned char AT_CIICR = A
38、T+CIICR;unsigned char AT_CIFSR = AT+CIFSR;unsigned char AT_CIPSTART = AT+CIPSTART=TCP,75,8088;unsigned char AT_CIPSEND = AT+CIPSEND;unsigned char AT_CIPSHUT = AT+CIPSHUT;/*CONTEL*/unsigned char AT_END2 = 0 x0d , 0 x0a;unsigned char AT_SMS_TEXT_END = 0 x1A;unsigned char AT_TEL_END = ;stat
39、ic void delay(unsigned int t)unsigned int i,j;for( i=0; i t; i+)for( j=0; j 250; j+);static void m_long_delay(unsigned int z)unsigned int i = 0;for(i = 0;i z;i+ )delay(100);void sim900a_send_message(char * msg,int len,char * tel) if(len = 0)return ; UART_SEND_STR(AT_CMGF,strlen(AT_CMGF); UART_SEND_S
40、TR(AT_END,2); delay(1000); UART_SEND_STR(AT_CSCS,strlen(AT_CSCS); UART_SEND_STR(AT_END,2); delay(1000); UART_SEND_STR(AT_CMGS,strlen(AT_CMGS); UART_SEND_STR(tel,strlen(tel);UART_SEND_CHAR();UART_SEND_STR(AT_END,2); delay(2000); UART_SEND_STR(msg,strlen(msg);delay(1000); UART_SEND_CHAR(AT_SMS_TEXT_EN
41、D);void sim900a_call(char * tel) UART_SEND_STR(AT_ATD,strlen(AT_ATD); UART_SEND_STR(tel,strlen(tel); UART_SEND_CHAR(AT_TEL_END); UART_SEND_STR(AT_END,2);delay(1000);void sim900a_ring_off(void) UART_SEND_STR(AT_ATH,strlen(AT_ATH); UART_SEND_STR(AT_END,2); delay(1000);void GPRS_INIT() /*STEP 1 单点连接*/
42、UART_SEND_STR(AT_CIPMUX,strlen(AT_CIPMUX); UART_SEND_STR(AT_END,2); m_long_delay(60); /*STEP 2 非透明传输*/ UART_SEND_STR(AT_CIPMODE,strlen(AT_CIPMODE); UART_SEND_STR(AT_END,2); m_long_delay(60); /*STEP 3 附着和分离GPRS业务*/ UART_SEND_STR(AT_CGATT,strlen(AT_CGATT); UART_SEND_STR(AT_END,2); m_long_delay(60); /*
43、STEP 4 设置接入点*/ UART_SEND_STR(AT_CSTT,strlen(AT_CSTT); UART_SEND_STR(AT_END,2); m_long_delay(60); /*STEP 5 启动连接*/ UART_SEND_STR(AT_CIICR,strlen(AT_CIICR); UART_SEND_STR(AT_END,2); m_long_delay(120); /*STEP 6 获取本机地址*/ UART_SEND_STR(AT_CIFSR,strlen(AT_CIFSR); UART_SEND_STR(AT_END,2);m_long_delay(60);vo
44、id GPRS_TCP_LINK()UART_SEND_STR(AT_CIPSTART,strlen(AT_CIPSTART);UART_SEND_STR(AT_END,2);m_long_delay(80);void GPRS_TCP_SEND_INIT() UART_SEND_STR(AT_CIPSEND,strlen(AT_CIPSEND); UART_SEND_STR(AT_END,2);m_long_delay(80);void GPRS_TCP_SEND_DATA(char * msg,unsigned int len)UART_SEND_STR(msg,len);UART_SEN
45、D_CHAR(0 x1A);UART_SEND_CHAR(0 x0D);m_long_delay(50);void GPRS_CLOSE()UART_SEND_STR(AT_CIPSHUT,strlen(AT_CIPSHUT);UART_SEND_STR(AT_END,2);m_long_delay(50);void GPRS_RESET()GPRS_CLOSE();GPRS_INIT();/bit busy;static void DelayXus(unsigned char n) while (n-) _nop_(); _nop_();_nop_(); _nop_(); /* ! 串口0初
46、始化函数, 此串口用作接收终端控制命令 ! 晶振频率:11.0592MHz ! 串口0波特率:9600*/void Uart0_Init(void) /9600bps11.0592MHz SCON = 0 x50; /8位数据,可变波特率 AUXR |= 0 x40; /定时器1时钟为Fosc,即1T AUXR &= 0 xfe; /串口1选择定时器1为波特率发生器 TMOD &= 0 x0f; /清除定时器1模式位 TMOD |= 0 x20; /设定定时器1为8位自动重装方式 TL1 = 0 xfd; /设定定时初值 TH1 = 0 xfd; /设定定时器重装值 ET1 = 0; /禁止定
47、时器1中断 TR1 = 1; /启动定时器1 ES = 1; EA = 1;void Uart0_PutChar(char ch) ES = 0 ; SBUF = ch ; while(!TI); TI = 0 ; ES = 1 ;/* !串口0字符串输出函数 !参数说明:pString为字符串缓冲区首地址*/void Uart0_PutString(char * pString,unsigned int len) unsigned short i = 0; for (i = 0;i len;i+ ) Uart0_PutChar(pStringi); /*/! 串口1初始化函数, 此串口用作控
48、制GSM模块/! 晶振频率:11.0592MHz/! 串口1波特率:9600*/void Uart1_Init(void) /9600bps11.0592MHzS2CON = 0 x50; /方式1,八位数据,可变波特率AUXR1 = 0 x00; /1T工作方式IP2 = 0 x00; /优先级默认BRT = 0 xDC; /设置波特率 DC 9600 E8 14400/ 256 - (FOSC/32/BAUD)AUXR = 0 x14;/独立波特率发生器时钟为Fosc,即1TIE2 |= 0 x01; /开串口2中断 EA = 1;/*/! 串口1字符串输出函数/! 参数说明:pStrin
49、g为字符串缓冲区首地址/! 备注:此函数一方面向串口1发送数据,/! 另一方面也向串口0发送数据,/! 目的是为了方便调试*/void Uart1_PutChar(char ch)IE2 &= 0 x01; S2BUF = ch ; while(!(S2CON & S2TI); S2CON &= S2TI; IE2 |= 0 x01;void Uart1_PutString(char * pString,unsigned int len) unsigned char i = 0; for (i = 0;i 0) i-; count-; void delay_18B20(unsigned int
50、 i)while(i-);void Init_DS18B20(void)unsigned char x=0;DQ = 1; /DQ复位delay_18B20(80); /稍做延时DQ = 0; /单片机将DQ拉低delay_18B20(800); /精确延时大于 480usDQ = 1; /拉高总线delay_18B20(140);x=DQ; delay_18B20(200); unsigned char ReadOneChar(void)uchar i=0;uchar dat = 0;for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号
51、 if(DQ) dat|=0 x80; delay_18B20(40); /40 return(dat);void WriteOneChar(uchar dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0 x01; delay_18B20(50); /50 DQ = 1; dat=1;unsigned int ReadTemp(void)unsigned char a=0;unsigned char b=0;unsigned int temp_value=0, tt;Init_DS18B20();WriteOneChar(0
52、 xCC); WriteOneChar(0 x44); delay_18B20(1000); Init_DS18B20();WriteOneChar(0 xCC); WriteOneChar(0 xBE); delay_18B20(1000);a=ReadOneChar(); /读取温度值低位b=ReadOneChar(); /读取温度值高位temp_value = b8;temp_value |= a;tt=temp_value*0.0625; /得到真实十进制温度值,因为DS18B20/可以精确到0.0625度,所以读回数据的最低位代表的是/0.0625度。temp_value=tt; /
53、放大十倍,这样做的目的将小数点后第一位return temp_value;void display(uint temp)/显示程序 uchar A1,A2,A2t,A3,ser; ser=temp/10; /分离出三位要显示的数字 SBUF=ser; A1=temp/100;A2t=temp%100; A2=A2t/10; A3=A2t%10; dula=0; P0=tableA1;/显示百位 dula=1; dula=0; wela=0; P0=0 x20; wela=1; wela=0; delay1(1); dula=0; P0=table1A2;/显示十位带小数点的dula=1; du
54、la=0; wela=0; P0=0 x40; wela=1; wela=0; delay1(1); P0=tableA3;/显示个位 dula=1; dula=0; P0=0 x80; wela=1; wela=0; delay1(1);static void delay ( unsigned char t )unsigned char i = 0,j = 0;for( i=0; it; i+)for( j=0; j250; j+);/*长延时函数*/static void delay1S ( unsigned int z ) unsigned int x = 0; for(x = 0;x
55、z;x+ ) delay( 160 ); void LED_ON(unsigned int n)switch(n)case 1:LED1 = 0;break;case 2:LED2 = 0;break;case 3:LED3 = 0;break;case 4:LED4 = 0;break;default:break;void LED_OFF(unsigned int n)switch(n)case 1:LED1 = 1;break;case 2:LED2 = 1;break;case 3:LED3 = 1;break;case 4:LED4 = 1;break;default:break;un
56、signed char get_key()unsigned char tmp = 0;unsigned char res = 0;tmp = P1;tmp = tmp & 0 xC0;if(tmp = 0X80)res = 1;if(tmp = 0 x40)res = 2;if (tmp = 0 xc0)res = 3;return res;void sim900a_start(void) /P1M1 &= 0 x40; /P1M0 &= 0 x40; /先置高 /SIM900A_START_KEY = 1; /delay1S(20); /再拉低 SIM900A_START_KEY = 0;
57、delay1S(100);/大于1S /再置高 SIM900A_START_KEY = 1; delay1S(300);/大于1S / /P1M1 |= 0 x40; /P1M0 &= 0 x40;void board_init(void)P1 = 0 x0;P2 = 0 x0;P3 = 0 x0;P4 = 0 x0;unsigned char start_str = Temperature Monitoring System;unsigned char tmp_end = 0 x0d,0 x0a;unsigned char user_tel = ;unsigned char temperat
58、ure4;sfr WAKE_CLKO = 0X8F;sfr P4SW = 0XBB;sbit ELVD = IE6;static void delay(unsigned int t)unsigned int i,j;for( i=0; i t; i+)for( j=0; j 250; j+);void delay_long_1S(unsigned int z) unsigned int x = 0,j = 0; for (x = 0;x z;x+ )for (j = 0;j 0;a-) display(tmpt); /显示十次int2asc(tmpt);/sim900a_call(user_t
59、el);/sim900a_send_message(temperature,strlen(temperature),user_tel);#if 1/*GPRS*/GPRS_INIT();GPRS_TCP_LINK();GPRS_TCP_SEND_INIT();GPRS_TCP_SEND_DATA(temperature,strlen(temperature);GPRS_TCP_SEND_INIT();GPRS_TCP_SEND_DATA(temperature,strlen(temperature);GPRS_TCP_SEND_INIT();GPRS_TCP_SEND_DATA(tempera
60、ture,strlen(temperature);GPRS_TCP_SEND_INIT();GPRS_TCP_SEND_DATA(temperature,strlen(temperature);GPRS_TCP_SEND_INIT();GPRS_TCP_SEND_DATA(temperature,strlen(temperature);/GPRS_CLOSE();#endif/delay_long_1S(2);/while(1); 附录B:温度采集仿真附录C外文翻译Single ConnectionCommand AT+CIPMUX= is used for selecting TCPIP c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国酒类电子商务行业市场深度分析及发展前景预测报告
- 2025-2031年中国新型泛娱乐视频行业市场全景分析及投资战略规划报告
- 2024-2025年中国防静电包装材料行业市场调查研究及投资战略咨询报告
- 2025年秋衣裤项目可行性研究报告
- 中国风电海缆行业市场深度分析及投资潜力预测报告
- 2025年火锅底料项目申请报告模范
- 水务管理系统开发合同
- 2025年直流电弧炉项目提案报告模板
- 中国床垫机械行业市场深度分析及投资战略规划报告
- 2024年大数据分析服务采购合同
- 人教版五年级上册数学简便计算大全500题及答案
- 创新创业教育课程体系
- 包装品质彩盒外箱知识课件
- 神经外科课件:神经外科急重症
- 颈复康腰痛宁产品知识课件
- 2024年低压电工证理论考试题库及答案
- 微电网市场调查研究报告
- 《民航服务沟通技巧》教案第14课民航服务人员上行沟通的技巧
- MT/T 538-1996煤钻杆
- 小学六年级语文阅读理解100篇(及答案)
- CB/T 467-1995法兰青铜闸阀
评论
0/150
提交评论