《基于短信回传的温度监测节点设备设计_毕业论文(35页).doc》由会员分享,可在线阅读,更多相关《基于短信回传的温度监测节点设备设计_毕业论文(35页).doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于短信回传的温度监测节点设备设计_毕业论文-第 6 页基于短信回传的温度监测节点设备设计专业:XX 学生:XX 指导老师:XX摘 要GSM模块,是一个类似于手机通讯模块。集成了手机若干功能于一块电路板上,它可以实现收发短消息,通话等功能。拥有它就相当于拥有了手机的核心部分。在很多领域都有应用。本项目是基于TC35的GSM模块远端监测监控节点温度。其设备有单线温度传感器DS18B20、试验用单片机、GSM模块TC35等构成。首先单片机要实现温度监测的功能,通过单片机上的温度传感器采集到周围温度并显示在显示器上。其次实现单片机与GSM模块的通信,手机发送短信给GSM模块的SIM卡,GSM模块收
2、到单片机上当时温度,将其上传至电脑或者网络,做数据分析和备份。GSM模块是通过AT指令控制的。本文主要是从GSM模块TC35模块的使用着手研究。首先要清楚该模块的功能。再了解该模块的使用方法。该模块通过AT指令来收发短信,从而达到远程控制和测试的作用。其次,了解单片机的使用方法和作用。并自主编程,从而达到预期要求。最后了解整个设计流程的大体框架。做出电路图和原理图。关键词: GSM模块 TC35 单线温度传感器 DS18B20 电脑 试验用单片机 HD44780型Return SMS-based temperature monitoring node device designMajor: X
3、XStudent: XX Supervisor: XXAbstractThe GSM module is similar to the mobile communication module. Integration of several functions of the phone, he can receive and send calls and other functions in a circuit board. Has it the equivalent of a core part of the mobile phone. Has applications in many fie
4、lds. This project is based on remote monitoring of the TC35 GSM module to monitor the junction temperature. Their equipment has single-wire temperature sensor DS18B20 test of microcontroller, GSM module TC35. First single-chip temperature monitoring function, the acquisition by the temperature senso
5、r on a single chip to ambient temperature and displayed on the monitor. Followed by communication between SCM and GSM modules, mobile phones to send text messages to the SIM card of the GSM module, GSM module receives the SCM temperature, and upload it to your computer or network, doing data analysi
6、s and backup. The GSM module is controlled via AT commands.Keyword: GSM module TC35 Single-wire temperature sensor DS18B20 Computer Experiment with single-chip HD44780 目 录1 绪论12 系统组成和工作原理12.1 实现过程22.2 软件流程图23 硬件介绍23.1 GSM模块模块介绍23.1.1 TC35引脚介绍33.1.2 TC35通信43.2 单线数字温度传感器DS18B2043.3 单片机介绍53.3.1 STC89C5
7、1RC单片机53.3.2 STC89C51RC芯片引脚介绍64 软件部分74.1 DS18B20与单片机的通信74.2 TC35iGSM模块与PC机的串行通信74.3 短信编码74.4 AT指令96 STC芯片烧写软件127 结论13附 录14参考文献28致 谢291 绪论随着国民经济的发展,人身安全显得越来越重要。无线短信测试设计作为一种现代新型多功能测试模块已成为了主流趋势。该设计的完成主要由两个因素驱动,其一,满足消费需求和领先性;其二,科学发展的趋势。该设计主要有以下几个特点:1,由于其设计的原件成本很低,方便很多领域使用。2,该设计硬件体积较小,可针对各种环境作出改变,适用于不同地域
8、。通过GSM模块工作人员为记录温度无需到指定位置操作。只要通过短信激活设备,就能得到测试点的温度。3,该设计无需人员监督,只要做定期维护,适用方便,具有很强的时域实用性。工作人员可根据要求,在不同时间给模块信息,激活该设备,设备将会根据当时网络情况,用很快很短的时间回复工作人员测试地点的温度。在实际生活操作中,面对一些严峻的工作环境,人们更多利用机器或者各方面传感器通过远程控制的方式来达到预期的目的。这样既节省了人力(更科学、效率的完成工作),又保障了人员的自身安全,同时也降低了工作成本。GSM在中国的发展:我国自从1992年在嘉兴建立和开通第一个GSM演示系统,并于1993年9月正式开放业务
9、以来,全国各地的移动通信系统中大多采用GSM系统,使得GSM系统成为目前我国最成熟和市场占有量最大得一种数字蜂窝系统。此前一直是采用蜂窝模拟移动技术,即第一代GSM技术。作为传统的温度测控,温度计在各方面的运用占用主体地位。随着社会发展,传感器的出现,给温度测控带来了很大的便利。本文采用单线数字温度传感器DS18B20。目前国内对节点温度的数据采样,主要有:第一,多数测控系统必须有工作人员到现场进行操作,因此工作效率低。且不便于管理。第二,采用接入Internet或Intranet的方式实现远程监控。这些方式已经应用在数据采集、视频会议、远程加工或者远程诊断等领域。但是接入Internet按时
10、间计费或租用专线,Intranet需要铺设专用电缆,成本太高。鉴于这种本文设计一种了基于西门子GSM模块TC35i的远程温度监测系统,通过现有的GSM成熟网络实现对现场的远程测控。系统具有结构简单、可靠性高、成本低等特点,在温度要求高、比较分散、偏远地区具有很高的使用价值。可节约大量人力、财力、时间。而且安全隐患底。可避免不必要的灾难。2 系统组成和工作原理温度传感器显示模块单片机数据存储器RS232接口MAX232TC35 GSM模块GPRS网络 图1:系统组成和工作原理图2.1 实现过程该系统分为两部分:第一部分主要是单片机实现温度采集、显示、存储。主要由单线温度传感器DS18B20、ST
11、C89C51RC单片机实现。第二部分主要包括TC35GSM模块对收集数据进行传送、处理。总体思路。对单片机初始化,将STC89C51RC单片机测试温度以串口短信发送方式给GSM模块。由此了解此时此地温度状况。2.2 软件流程图温度采集 STC89C51单片机GSM通信模块监测中心 PC机或手机 GSM网络图2:系统结构总体框图3 硬件介绍3.1 GSM模块模块介绍TC35是Siemens公司推出的通信GSM模块,它设计小巧、功耗很低、主要由GSM基带处理器、GSM射频部分、电源、闪存(Flash)4部分组成,可以快速安全可靠的实现数据、语音传输。模块工作电压为3.35.5V,可以工作在900M
12、HZ和1800MHZ两个频段,所在频段功耗分别为2W和1W。GSM模块是继GSM手机外又一种非常重要的GSM移动通信系统的终端设备,即通常所说的GSM Modem,它以GSM网络作为无线传输网络,不受地域、线路等影响,且运行成本低。GSM基带处理器是整个模块的核心,它控制模块内各种信号的传输、转换、放大的处理过程。GSM射频部分是一个单片收发器,它完成对射频信号的收发等处理。GSM模块电源是把外部输入电源电压进行稳压处理后供GSM基带处理器和射频部分使用。Flash用来存储一些用户配置信息、电话本和其他信息。TC35的数据输入/输出接口实际上是一个串行异步收发器、符合RS232接口标准,有固定
13、参数:8位数据位和1位停止位,无校验位,波特率在300bps115bps之间可选,硬件握手信号用RTS0/CTS0,软件流量控制用XON/XOFF,CMOS电平,支持标准AT命令集。通过这一接口可以用AT命令切换操作模式,使它处于语音、数据、短消息或传真模式。3.1.1 TC35引脚介绍TC35i模块有40个引脚,通过一个ZIF(Zero Insertion Force,零阻力插座)连接器引出。这40个引脚可以划分为5类,即电源、数据输入/输出、SIM卡、音频接口和控制。TC35i的第15引脚是正电源输入脚通常推荐值4.2V,第610引脚是电源地。11、12为充电引脚,可以外接锂电池,13为对
14、外输出电压(共外电路使用),14为ACCU-TEMP接负温度系数的热敏电阻,用于锂电池充电保护控制。15脚是启动脚IGT,系统加电后为使TC35i进入工作状态,必须给IGT加一个大于100ms的低脉冲,电平下降持续时间不可超过1ms。1623为数据输入/输出,分别为DSR0、RING0、RxD0、TxD0、CTS0、RTS0、DTR0 和DCD0。tc35i模块的数据输入/输出接口实际上是一个串行异步收发器,符合ITU-T RS232接口标准。它有固定的参数:8位数据位和1位停止位,无校验位,波特率在300bps115kbps之间可选,默认9600。硬件握手信号用RTS0/CTS0,软件流量控
15、制用XON/XOFF,CMOS电平,支持标准的AT命令集。其中18脚RxD0、19脚TxD0为TTL的串口通讯脚,需要和单片机或者PC通讯。TC35i使用外接式SIM卡, 2429为SIM卡引脚,SIM卡同TC35i是这样连接的:SIM上的CCRST、CCIO、CCCL、CCVCC和CCGND通过SIM卡阅读器与TC35i的同名端直接相连,ZIF连接座的CCIN引脚用来检测SIM卡是否插好,如果连接正确,则CCIN引脚输出高电平,否则为低电平。TC35i的第32脚SYNC引脚有两种工作模式,一种是指示发射状态时的功率增长情况,另一种是指示TC35i的工作状态,可用AT命令AT+SYNC进行切换
16、,本模块使用的是后一种。当LED熄灭时,表明TC35i处于关闭或睡眠状态;当LED为600 ms亮/600ms熄时,表明SIM卡没有插入或TC35i正在进行网络登录;当LED为75 ms亮/3s熄时,表明TC35i已登录进网络,处于待机状态。30、31、32脚为控制脚,其中30为RTC backup,31为Power down,32 为SYNC。3538为语音接口,35、36接扬声器放音。37、38可以直接接驻极体话筒来采集声音(37是话筒正端,39是话筒负端)3.1.2 TC35通信TC35的数据通信电路以MAX232为核心实现电平转换及串口通信。MAX232的作用是实现TTL电平转换。该器
17、件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-VTTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。其功能主要是实现串口通讯功能驱动与串口数据接收,MAX232CPE芯片必须+5V电源才会工作。它是116针SMD封装IC,用于完成计算机232端口数据电平转换。它的内部电源才会工作。它是16针SMD封装IC,用于完成计算机232端口电平转换。它的内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2、3、4、5、6、脚和4只
18、电容构成。功能是产生+12V和12V两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。游7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(RIIN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。第三部分是供电,15脚
19、GND、16脚VCC(+5V)。图3:MAX232引脚图3.2 单线数字温度传感器DS18B20DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测试范围为-55+125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出;其工作电源即可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联3或者2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。图4:DS18B20引脚图表1:引脚描述引脚符号说 明1GND地2DQ单线
20、运用的数据输入/输出引脚3VDD可选VDD引脚3.3 单片机介绍3.3.1 STC89C51RC单片机STC89Cxx,最高频率可达90MHz,片内4K以上FLASH程序存储器,8K左右的片内EEROM ,512B-1208B片内RAM,36个IO口。STC89C51单片机具有增强型12时钟/机器周期、6时钟机器/周期任意选择,工作电压为5.5V-3.4V(5V单片机)/3.8V-2.0V(5V单片机);工作频率范围:0-40MHZ,相当于普通8051的0-80MHZ。实际频率可达48MHZ。用户应用程序空间为4K/8K/13K/16K/20K/32K/64K字节 ;片上集成1280字节/51
21、2字节RAM;有32/36个通用I/O口,P1/P2/P3/P4是准双向口;集成ISP(在系统可编程)/IPA(在应用可编程),无需专用的编程器/仿真器,可通过串行口(P3.0/P3.1)直接下载用户程序,8K程序3秒就可以完成一片,具备EEPROM功能,共有3个16位定时器/计数器,其中定时器T0还可以当成2个8位定时器使用。部分外围电路如图所示:图5:部分外围电路图3.3.2 STC89C51RC芯片引脚介绍(1)I/O端口线输入输出引脚(引脚图见附录B)P0.0-P0.7(39-32):P0口是一个漏极开路型准双向I/O口。P1.0-P1.7(1-8):P1口是带内部上拉电阻的8位双向I
22、/O口。在EPROM编程和程序验证时接收8位地址。P2.0-P2.7(21-28):P2口是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时送出高8位地址。P3.0-P3.7(10-17):P3口是一个带内部上拉电阻的8位双向I/O口。(2)控制线控制引脚ALE(30):地址锁存控制信号。用于控制P0口输出的低8位地址锁存起来,实现低位地址和数据的隔离。PSEN(30):外部程序存储器。在读外部ROM时,低电平有效,以实现外部ROM单元的读操作。EA(31):访问程序存储控制信号。低电平时,对ROM的读操作限定在外部程序存储器;高电平时,对ROM的读操作是从内部程序存储器开始,并可延至
23、外部程序存储器。RST/Vpp(9):复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。(3)外部晶体线XTAL1(19)和XTAL(18):外部晶体引线端。(4)主电源引脚VCC(40):+5V电源。VSS(20):地线GND。4 软件部分4.1 DS18B20与单片机的通信根据DS18B20的初始化时序,写时序和读时序,分别编写了3个子程序:INIT为初始化子程序,WRITE为写子程序,READ为读数据子程序,所有的数据读写均由最低位开始。主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动D
24、S18B20开始转换,再读出温度等转换值。4.2 TC35iGSM模块与PC机的串行通信上位机(PC机)与TC35i GSM模块的通信采用RS232总线格式图6:PC机与TC35i GSM模块的通信原理图要使用TC35模块实现短信收发,就必须理解串口通信、AT指令和短信的编码、解码。4.3 短信编码对于短信的收发控制模式,按时间先后,共有三种模式:Bloke Mode、基于AT指令的Text Mode、基于AT指令的PDU mode(Protocol Data Unit)。使用Block模式需要生产厂家提供驱动支持。Text模式收发短信代码简单,但只能发送简单英文短信(纯文本格式)。而PDU模
25、式可以实现中文、英文、声音和图像等的收发。我们这里介绍的就是利用AT指令在PDU模式下通过TC35模块收发短消息。在PDU模式中,可以采用三种编码方式来编码内容,分别是7bit编码、8bit编码、16bit编码。7bit编码用于发送普通Ascill字符,如英文和数字,8bit编码通常用于发送数据信息,如图片和铃声,而16bit编码用于发送Unicode字符,如中文和英文。三种编码可以发送长度分别为160,14,和70.发送中文短信具体步骤如下: 1GB2312编码到Unicode编码转换 2Unicode编码到16bit编码转换注意 这个转换过程中Unicode编码最开始的0xffff标记要去
26、掉,在0xffff之后内容才是真正的Unicode字符。Unicode是双字节。如果系统是小端字节序,则存储时,先存地位再高位。如果是大端节序,就不需要转换了。而且,请注意在PDU格式中,TYPE、TP-MR、TP-PID、TP-VP分别设置为11、00、00、08、01(以上均为16进制数)。形成标准的发送包发送短信编码格式为:服务中心地址、PDU类型、接收方地址、协议识别码、数据译码方案、有效周期、用户数据长度、用户数据。接收短信编码格式为:服务中心地址、PDU类型、发送方地址、协议识别码、数据译码方案、服务中心收到消息时间、用户数据长度、用户数据。系统加电后,为使TC35进入工作状态,必
27、须给IGT加以延时大于100MS的低脉冲,电平下降持续时间不可超过1MS。启动后,IGT应保持高电平(3V)否者TC35不会正常工作。IGT电平控制是通过单片机I/O控制的。PC系列微机串行口RS232为标准接口,这与TC35末班接口不一致,他们之间转换采用MAX232接口芯片来完成。要发送“你好”到手机15828591132,通过串口调试助手发送过程如下:1,AT+CMCS=019 019为数据内容的字节数 2,等待返回的ASCII字符:“” 3,输入数据00 11 00 0D 91 68 3187173910F1 00 08 A7 04 4F60597D 表2:数据说明数据含义及其说明00
28、SMSC长度,00代表使用SIM卡中存入的号码11文件的头字节,默认为1100信息类型,默认为0000号码长度(号码为15828591132)91号码类型68中国国际区号3187173910F1号码编辑,经过位移处理00协议标识08Unicode编码模式A7短消息有效期04短消息数据长度4F60597D汉字“你”“好”编码1A结束符PDU数据格式分析当来一条短消息时,通过串口调试助手可以看见显示+CMTI:“ME”,17。接收此条短消息使用接收指令AT+CMCR=17.可以阅读短信内容为08 91 683108701305F0 04 0D 91 68318637404F1 00 08 7011
29、3032015223 04 4F60597D表3:数据说明数据含义及说明0B地址信息的长度91SMSC地址格式683108701305F0SMSC地址,补F凑成偶数04基本参数0D恢复地址数字个数,共13个十进制数91回复地址格式68318637404F1回复地址,补F凑成偶数00协议标识08用户信息Unicode编码方式70113032015223时间04用户信息长度,长度为4字节4F60597D用户信息,“你好”PDU数据格式分析短消息收发系统由GSM通信模块、用户手机、PC机、单片机系统等组成。如图1。GSM通信模块由TC35模块及其外围电路组成,图2为TC35模块及其外围电路。4.4
30、AT指令系统主要的任务是监测被控对象的温度然后通过TC35i发送到监测中心(手机)。系统软件设计的重点在于单片机的编程。向TC35i写入不同的AT指令完成多种功能。单片机对TC35i所有的控制都是通过串口发送AT指令进行的,TC35i的每一个动作都对应了一个AT指令,而且每一个指令之后都要有一个回车符以告诉TC35i该条命令已经发完。一些常用的AT指令下表。表4:常用AT指令表ASCI码指令功能手机回答AT回车握手OKATE简化显示OKAT+CMGR=X回车读取第X条短信短消息内容AT+CMGF=1回车用TEXT格式AT+CMGF=1回车AT+CMGD=X回车删除第X条短信AT+CMGD=X回
31、车AT+CMGS=6回车发送短消息的字节数AT+CMGS=6回车AT+CNMI=1,1,2设置收到短消息提示OK+CMTI:“SM”,44表示手机内短消息数量AT+CSCA短信服务中心地址。AT+CSQ信号质量。+CSQ: 17,99AT+CGMI给出模块厂商的标识AT+CCID获得SIM卡的标识。这个命令使模块读取SIM卡上的EF-CCID文件。图7:应用软件界面图使用前,我们要对板子进行测试,测试模块是否正常工作。用录下的“TC35TIest.exe”测试程序来对实验板进行测试。测试步骤如下:1、先将SIM卡装入开发板,拧上GSM天线。2、将开发板上跳线设置成PC-TC35I通信模式。3、
32、插上配套电源,然后按一下板上的开机按键,时间大于200ms即可。4、找到光盘“TC35I测试程序”目录下的“TC35TIest.exe”测试程序来进行测试。5、先点击“打开端口”,然后点击“TC35I初始化”,如果连接成功后会出现“DSR信号线有问题”的提示,没关系,不用管它,我们确实没用到这条线。图8:串口运行图6、使用电话拨号板子上SIM卡的号码,如果电话能打通,则表示模块已正常工作,测试完成。关于通信跳线说明: 在通信过程中进行了三种通信跳线方式的选择:PC机与MCU通信;PC机与TC35I模块通信;MCU与TC35I模块通信。 1.如果要使用PC机来进行模块的测试,收发短信或进行语音呼
33、叫实验,请将跳线设置成:PC与TC35I模块通信。 2.如果要给单片机芯片烧写程序,即完成ISP下载功能, 请将跳线设置成:PC与MCU通信。3.如果要使用MCU来控制TC35I模块,请将跳线设置成:MCU与TC35I模块通信图9:硬件实物图6 STC芯片烧写软件首先要把编写完成的程序烧到STC89C51RC里,写软件的使用步骤:1、打开STC芯片烧写软件的窗口STC-ISP.exe选择单片机型号STC89C51RC;2、打开文件Open File选择通过编译生成的HEX文件;图10:烧写设置3、选择串行口,最高波特率等参数选择默认值;4、点击下载Download,再给MCU上电,程序的烧写工
34、作完成。7 结论通过本次毕业设计我学到了不少的知识,进一步巩固了单片机的基础知识,实际动手能力有所提高,能够将理论与实际相结合。该毕业设计主要由GSM模块TC35i、STC89C51单片机、DSl8B20温度传感器等构成。过程是:首先单片机要实现测温功能,通过单片机上的温度传感器DSl8B20采集到周围的温度。其次实现单片机与GSM模块的通信,手机发送短信给GSM模块的SIM卡,GSM模块接收信息后收集单片机上当时的温度,并把该温度发给手机,这样就实现了远程温控。GSM模块是用AT指令控制的。(如果有短信来,GSM模块会通过串口向单片机发送字符串,单片机读取短信,发信息给手机回复温度)在设计过
35、程中,由于以前课程有所涉及,接触各方面时间比较长,但由于缺乏自己动手实际操作,在实际制作硬件和软件编写过程中遇到了不少的麻烦,但在指导老师的帮助下,通过有针对性地查找资料,了解了些相关方面的资料,既增长了自己见识,补充最新的专业知识,又提高了自己的应用能力,能够自行解决一些基本的问题。在大学四年的时间,大多在学习理论基础知识,实践的机会并不是太多。经过这次毕业设计,我积累了相关的使用调试经验,发现了自己很多不足之处,体会到了所学理论知识的重要性,知识掌握得越多,设计得就更全面、更顺利、更好。总之,这次毕业设计让我能把理论知识和工程实践相结合、基础知识与创新意识相结合,培养了自己的全面素质。这些
36、在我今后的学习和工作当中都会有很大的帮助。附 录软件程序设计#include#include#define uchar unsigned char#define uint unsigned int#define RxIn 100 /定义接收的数组长度为100char s20=Temperature= 0C;uchar code AT=AT;/握手信号uchar code ATE=ATE; /关回显uchar code AT_CNMI=AT+CNMI=2,1;/设置这组参数来了新信息直接显示到串口,不作存储uchar code AT_CSCA=AT+CSCA=+8613800510500;/设置
37、服务中心号码uchar code AT_CMGF=AT+CMGF=1;/设置短信的格式为text格式uchar code AT_CMGR=AT+CMGR=;/读取短信指令uchar code AT_CMGS=AT+CMGS=;/发送短信指令uchar code AT_CMGD=AT+CMGD=;/发送短信指令uchar code successfully=Operate Successfully!;/发送操作成功信息到目标号码uchar code fail=Operate failed,try again!;/发送操作失败信息到目标号码uchar AT_delete12;uchar AT_Re
38、ad12;/用来存储发送读取短信指令 uchar AT_SendNumber25; /用来存储发送短信号码指令uchar numberbuf3; /用来保存短信条数 uchar idata SystemBufRxIn; /储存出口接收数据 uchar CommandBuf6; /用来储存指令 uchar idata state17; /用来存储IO口状态 uchar idata state117; /用来存储IO口状态 uchar Rx=0;uint temp;/记录状态 uchar temp1;/ 用于记录P0口状态uchar temp2; / 用于记录P2口状态 bit check=0;/
39、查询标志位 bit receiveready=0; /接收短信标志位bit sendready=0; /发送短信准备标志位bit send=0; /发送短信标志位bit flag=0; /指令标志位sbit P3_7=P37;/启动GSM的启动线连IGTsbit realy0=P00;/继电sbit realy1=P01;/继电器2sbit realy2=P02; /继电器3sbit realy3=P03;/继电器4sbit realy4=P04; /继电器5sbit realy5=P05; /继电器6sbit realy6=P06; /继电器7sbit realy7=P07;/继电器8sbi
40、t key1=P20; /开关1sbit key2=P21; /开关2sbit key3=P22; /开关3sbit key4=P23; /开关4sbit key5=P24; /开关5sbit key6=P25; /开关6sbit key7=P26; /开关7sbit key8=P27;/开关8void Delay_ms(uint i);void Start_GSM(void);void UART_init (void);void sendchar(uchar ch);void sendstring(uchar *p);void GSM_INIT(void);void receive_read
41、y(void);void message_read(void);void read_message(void);void sendmessage(void);sbit DQ=P33; /温度输入口uint h; uint tempX;/*温度小数部分用查表法*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;uchar code dis_712=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0
42、xff,0xbf;/共阳LED段码表 0 1 2 3 4 5 6 7 8 9 不亮 - uchar data temp_data2=0x00,0x00; /读出温度暂放uchar data display5=0x00,0x00,0x00,0x00,0x00; /显示单元数据,共4个数据和一个运算暂用/*11us延时函数*/void delay(uint t)for (;t0;t-);/*DS18B20复位函数*/ow_reset(void)char presence=1;while(presence)while(presence) DQ=1;_nop_();_nop_();/从高拉倒低DQ=0
43、; delay(50); /550 usDQ=1; delay(6); /66 uspresence=DQ; /presence=0 复位成功,继续下一步 delay(45); /延时500 us presence=DQ;DQ=1; /拉高电平/*DS18B20写命令函数*/向1-WIRE 总线上写1个字节void write_byte(uchar val) uchar i; for(i=8;i0;i-) DQ=1;_nop_();_nop_(); /从高拉倒低 DQ=0;_nop_();_nop_();_nop_();_nop_(); /5 us DQ=val&0x01; /最低位移出 de
44、lay(6); /66 us val=val/2; /右移1位 DQ=1; delay(1);/*DS18B20读1字节函数*/从总线上取1个字节uchar read_byte(void)uchar i;uchar value=0;for(i=8;i0;i-)DQ=1;_nop_();_nop_(); value=1; DQ=0;_nop_();_nop_();_nop_();_nop_(); /4 us DQ=1;_nop_();_nop_();_nop_();_nop_(); /4 us if(DQ)value|=0x80; delay(6);/66 usDQ=1;return(value);