1、 机电工程 系 应用电子 专业 2008 级毕业设计(论文)题 目: 基于GSM模块的远程控制系统指导教师(签名) 目录摘要4前言5一、 远程控制的介绍 6(一) 远程控制的前景及发展现状6(二) 远程控制的应用领域7(三) 远程控制的实现方法7二、GSM模块的介绍 8(一) 基于GSM模块远程控制的介绍 8(二) 短消息的介绍 8(三)AT指令的介绍9(四) AT指令上位机的调试10三、系统的硬件设计 12 (一) 系统的整体框图 12 (二)单片机模块12 (三)TC35模块 12 (四)电源模块13 (五)SIM卡模块 13四、系统的软件设计 13 (一)控制方式的研究及选择 14 (二
2、)系统软件的整体流程图14 (三)发短信息的控制16 (四)接受信息的控制18 (五)系统软件的调试22五、总结 24致谢 25参考文献 26 摘要(主要讲你做了什么,用什么方法,以及有什么创新)GSM模块移动通信系统是目前移动通信领域中比较成熟、完善、应用最为广泛的系统。作为GSM网络的基本服务之一的短消息SMS也受到越来越多的系统开发商的重视,各种基于短信应用的远程控制也蓬勃的发展起来。本文以GSM移动网络作为信息传输平台,设计了一个通过短消息进行远程控制的系统。短消息遵循GSM的标准AT指令集,这里着重介绍了和本课题相关的几条AT指令,采用了TEXT编码方式实现对GSM模块的控制,同时实
3、现TEXT方式的解码和编码,对短消息的控制。本课题的任务是实现基于短消息的远程控制系统,用户可以通过手机发送短信对远程系统进行控制,如对远程家用电器的控制。该系统主要由GSM模块TC35、51单片机、LED灯及继电器组成。硬件设计部分中对TC35、单片机及其外围电路进行了详细的描述。通过对短信息的收发,实现了对远程系统的控制。软件部分对其进行了详细的描述。本系统采用回馈短信的方式获取当前系统的状态,从而更加安全的实现了对远程系统的控制。Abstract Mobile communication system GSM module is the more mature field of mobi
4、le communication, perfect, the most widely used system. GSM network as one of the basic short message service SMS is also being more and more attention to system developers, a variety of applications based on SMS remote control also flourish. In this paper, GSM mobile network as an information deliv
5、ery platform, designed a remote control through the short message system.GSM short messages follow the standard AT command set, where the highlights and a few of the issues related to AT commands, use the TEXT encoding to achieve the control of GSM module, while achieving the decoding and encoding T
6、EXT mode, the control of short message .The task of this project is to achieve a short message on the remote control system, the user can send text messages via cell phone to control the remote system, such as remote control of home appliances. The system mainly consists of GSM module TC35, 51 micro
7、controller, LED lights and relay components. Hardware design section of the TC35, microcontrollers and peripheral circuit is described in detail. Send and receive short messages through to achieve the control of the remote system. Software part of its detailed description.The system uses feedback te
8、xt message to get the current state of the system, thus achieving a more secure system for remote control.前言(格式) 进入20世纪90年代后期以来,计算机、信息、电子、控制、通信等技术得到了迅速的发展,现在家庭更加注重生活品质,健康,安全,舒适,便捷成了人们的迫切需要,远程控制系统为智能家电的一个重要组成部分,为人们提供方便、安全、智能化,舒适的数字化生活提供了解决的方案。现有的远程控制方式主要有以下两种:因特网和固定电话网,两种远程监控控制方式存在不足,前者必须再能上网的前提才能实现对
9、远程设备的控制,而后者通过固定电话远程控制必须是一种有线的控制,受到了极大的束缚,因此它们在简洁、方便、灵活、实时等方面难以满足要求。GSM短信息数字通信平台利用GSM短消息进行远程无线控制,它具有通信成本低,不受通信线路及地区限制、保密性高、可靠性高、抗干扰能力强,使用方便、灵活,通信快捷等特点。GSM(Global Systemfor Mobile communication)系统是目前基于时分多址技术的移动通信体制中,比较成熟完善,且应用最广泛的一种系统。目前已建成的覆盖全国的 GSM数字蜂窝移动通信网,是我国公众移动通信网的主要方式。基于 GSM的短信息服务,是一种在移动网络上传送简短
10、信息的无线应用,是一种信息在移动网络上储存和转寄的过程。由于公众 GSM网络在全球范围内实现了联网和漫游,建立上述系统不需再组建专用通信网络,所以具有实时传输数据功能的短信应用将得到迅速普及。本论文设计基于 GSM网络的无线传输系统正是借助该网络平台,利用短信息业务实现数据的自动双向传递。从而实现远程设备的控制。一、远程控制的介绍远程控制是指通过有线或者是无线等传输方式,使用远程终端如手机、个人电脑,电话等,对连接在网络中的设备进行遥控,使远程设备接收命令进行相应的动作。比如,通过手机操控家中的电热水器、空调的启动。(一)远程控制的前景及发展现状进入20世纪90年代后期以来,数字化技术取得了更
11、加迅猛的发展,随着internet网向普通家庭生活不断扩展,消费电子、计算机、通讯一体化趋势日趋明显,传统的家用电器行业也带来了新的革命,网络家电悄然进入到人们的生活中。而远程控制技术是不可缺少的一门关键性技术,起到了至关重要的作用。国内外的远程控制技术基本上都是专用的遥控终端或者是个人电脑,而随着移动通信的快速发展,其中GSM系统是目前基于时分多址技术的移动通信体制中比较成熟、完善、应用最为广泛的一种系统。SMS短信服务时GSM系统中提供的一种GSM终端直接,通过服务中心进行文本信息收发的应用服务,它具有传输速度快,费用低,不占用语音通信通道等特点,已得到越来越多的系统运营商和系统开发商的重
12、视,所以具有实时传输数据功能的短信息应用得到了迅速普及,以GSM网络作为数据无线传输网络,可以开发出各种前景极其乐观的各类应用,如无线数据的双向传送、无线远程控制。利用GSM短信息系统进行无线通信,性能稳定,为远程数据传送和控制的主要动向。2003年,松下电器开始出售命名为“生活网络”的手机远程控制的家电网络制品,生活网络产品种类有空调、微波炉、洗衣机和电冰箱等。可以帮助用户通过远程控制的方式控制家中的电器。广大的普通收入的消费者,同样有对远程控制的网络家电所带来的便捷与实用的消费需求。但就中国家庭目前的状况来看,一方面家庭里已经存在了大量传统的家电,并且数量还在持续增长;目前已建成的覆盖全国
13、的GSM数字蜂窝移动通信网,是我国公众移动通信网的主要方式。由于GSM网络在全国范围内实现了联网和漫游,具有网络能力强的特点,用户无需另外组网,在极大提高网络覆盖范围的同时为客户节省了安规建网费用和维护费用。同时,它对用户的数量也没有限制,克服了传统的专网通信系统投资成本大,维护费用高,且网络监控的覆盖范围和用户数量有限的缺陷。比起传统的集群系统在无线网络覆盖在具有无法比拟的优势,加上GSM的SMS本身具备的数据传递功能,因此,短消息业务在远程智能控制系统中得到了广泛的应用,基于GSM短消息的远程控制系统,克服了电话远程家电控制系统电话费用高,控制时间长等缺点,具有良好可扩展性和实用价值。鉴于
14、中国目前一般家庭的现状,中国拥有庞大的手机和家电用户。一旦家电市场和手机市场能够在远程控制技术下融合,将为运营商和家电企业带来更为巨大的利润,短信息通信时一直崭新的通信方式,它具有开发方便、费用低、免维护、可靠性高等特点,因此,针对现阶段,我们可以在传统家电的基础上,利用普及极广的手机的短信息业务并用廉价的成本开发家电远程控制系统,用以来实现一些简单、实用的远程控制功能以满足人们的日常需要。(二)远程控制的应用领域 此类型GSM远程控制不受距离的限制,对于一些没有固定电话的地方,显得尤为重要。主要应用列举如下: 1、控制多个水泵:例如要操作远方的水泵:只要用手机发短信控制与GSM远程控制器相连
15、接的水泵,捷便可打开水泵。之后随时都可以查询水泵是否通电了,随时都可以再次发短信关闭水泵。最大电流可以达到30A,完全满足水泵的要求。控制多个水泵,可以接多个继电器即可。 2、控制电饭煲:假如要操作家中的电饭煲:下班前给家中控制装置发短信,就可以远程打开插电饭煲的插座,之后可随时查询或关闭。 3、控制门窗:与电磁铁式门栓相给合,可以GSM远程控制,也可以钥匙打开,是智能门的一个发展方向。 与控制窗的电机相连,可以远程控制窗的开闭,特别是在下雨的时候更为方便。 4、控制各类阀门:与电磁阀相结合,可GSM远程控制水、气、油等各类阀门,包括酸、碱等化工产品的阀门。 5、控制工控机、服务器远程开机复位
16、:可作为连续运行网络设备(如:工控机、服务器等)的远程开机、复位控制。 6、控制无人值守的基站、服务器:控制某些需要无人职守的基站,节省人力物力,控制里面的设备如:服务器空调风机等的工作时间工作状态等。(三)远程控制的实现方法远程控制的方式包括有线方式、通信速度达到1Mbps可配备手机与笔记本电脑等上面的无线方式“蓝牙”,以及通信速度仅2400bps但提供通信质量稳定的“特定小功率无线方式”等。在远程控制方面采用蓝牙方式,主要原因是其通信速度快。但是蓝牙方式的最大弱点是通信距离太短而无法实现远距离控制。有线方式主要通过电话线或者是Internet网接入网络进行的远程控制,但是其受到了距离和费用
17、的限制。二、GSM模块的介绍 GSM模块,是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。GSM模块具有发送SMS短信,语音通话,GPRS数据传输等基于GSM网络进行通信的所有基本功能。简单来讲,GSM模块加上键盘、显示屏和电池,就是一部手机。 开发人员使用ARM或者单片机通过RS232串口与GSM模块通信,使用标准的AT命令来控制GSM模块实现各种无线通信功能,例如:发送短信,拨打电话,GPRS拨号上网等。基于GSM模块产品的开发往往都是基于ARM平台,使用嵌入式系统进行开发。有些GSM模块具有“开
18、放内置平台”功能,可以让客户将自己的程序嵌入到模块内的软件平台中。(一)基于GSM模块远程控制的介绍GSM短信息数字通信平台利用GSM短消息进行远程无线控制,它具有通信成本低,不受通信线路及地区限制、保密性高、可靠性高、抗干扰能力强,使用方便、灵活,通信快捷等特点。GSM(Global Systemfor Mobile communication)系统是目前基于时分多址技术的移动通信体制中,比较成熟完善,且应用最广泛的一种系统。目前已建成的覆盖全国的 GSM数字蜂窝移动通信网,是我国公众移动通信网的主要方式。基于 GSM的短信息服务,是一种在移动网络上传送简短信息的无线应用,是一种信息在移动网
19、络上储存和转寄的过程。由于公众 GSM网络在全球范围内实现了联网和漫游,建立上述系统不需再组建专用通信网络,所以具有实时传输数据功能的短信应用将得到迅速普及。本论文设计基于 GSM网络的无线传输系统正是借助该网络平台,利用短信息业务实现数据的自动双向传递。从而实现远程设备的控制。(二)短消息的介绍手机的短消息是通信公司提供的一种独特的沟通方式。与话音服务不同,它通过短消息服务中心在网络和手机间传递的是文字、图形等可视信息,使沟通更温馨,更完美。 手机对手机的短消息收发支持中、英文方式,一条短消息最多可包含160个英文字符或70个汉字信息。 短消息特点: 1、不会遗漏和错过任何信息 2、短消息以
20、其独特的信息到达方式及信息存贮特点,成功弥补了受网络覆盖范围,外界条件影响的缺陷,即使手机关机,短信息中心也将在一定时间内保存这些信息,当重新开机时,短消息中心将及时把这些信息发送给接收人。 3、有效节省话费,短消息服务免基本月使用费,按条计费。(三)AT指令的介绍AT 即Attention,AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter, TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。通过TA,
21、TE发送AT指令来控制移动台(Mobile Station,MS)的功能,与GSM 网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。90年代初,AT指令仅被用于Modem操作。没有控制移动电话文本消息的先例,只开发了一种叫SMS BlockMode的协议,通过终端设备(TE)或电脑来完全控制 SMS。几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM研制了一整套AT指令,其中就包括对SMS的控制。AT指令在此基础上演化并被加入GSM0705标准以及现在的GSM0707标准,完全标准化和比较健全的标准。如:对SMS的控制共有3种实现
22、途径:最初的BlockMode;基于AT指令的TextMode;基于AT指令的PDUMode。到现在PDUMode已经取代BlockMode,后者逐渐淡出。GSM模块与计算机之间的通信协议是一些AT指令集,AT指令是以AT作首,字符结束的字符串,AT指令的响应数据包在中。每个指令执行成功与否都有相应的返回。其他的一些非预期的信息(如有人拨号进来、线路无信号等),模块将有对应的一些信息提示,接收端可做相应的处理。AT指令包括AT指令集的一般命令、 呼叫控制命令、网络服务命令、安全命令、电话簿命令、短消息命令、追加服务命令、数据命令、传真命令、第二类传真命令、V24-V25命令、特殊AT命令、SI
23、M卡工具箱命令等。本文着重介绍呼叫控制命令和短信息命令。呼叫命令包括:1、ATD 拨号命令。这个命令用来设置通话、数据或传真呼叫。通过ATD10086;回车发送给GSM模块即可拨打10086热线。 2、ATH 挂机命令。 3、ATA 接电话。 短信息命令包括:1、AT+CSMS 选择消息服务。支持的服务有GSM-MO、SMS-MT、SMS-CB。 2、AT+CNMA 新信息确认应答。 3、AT+CPMS 优先信息存储。这个命令定义用来读写信息的存储区域。 4、AT+CMGF 优先信息格式。执行格式有TEXT方式和PDU方式。 5、AT+CSAS 保存设置。保存+CSAS和+CSMP的参数。 6
24、、AT+CRES 恢复设置。 7、AT+CSDH 显示文本方式的参数。 8、AT+CNMI 新信息指示。这个命令选择如何从网络上接收短信息。AT+CNMI=2,1回车发送,设置有新短信息提示功能。 9、AT+CMGR 读短信。信息从+CPMS命令设定的存储器读取。AT+CMGR=1回车发送,固定读取第一条信息。 10、AT+CMGL 列出存储的信息。 11、AT+CMGS 发送信息。 AT+CMGS=13800138000回车发送,向13800138000发送信息,模块返回,在输入短息内容发送0x1a回车发送。12、AT+CMGW 写短信息并存储。 13、AT+CMSS 从存储器中发送信息。
25、14、AT+CSMP 设置文本模式的参数。 15、AT+CMGD 删除短信息。删除一个或多个短信息。 16、AT+CSCA 短信服务中心地址。 17、AT+CSCB 选择单元广播信息类型。 18、AT+WCBM 单元广播信息标识。 19、AT+WMSC 信息状态(是否读过、是否发送等等)修正。 20、AT+WMGO 信息覆盖写入。 21、AT+WUSS 不改变SMS状态。在执行+CMGR或+CMGL后仍保持UNREAD。(四)AT指令上位机的调试任何一个TC35模块首次使用时,必须要测试其工作是否正常,由于其自带RS232接口,所以我们可以用PC机的串口调试软件进行调试。 1、启动串口调试软件
26、(见界面) 串口调试软件有许多,可以使用任意一款软件,也可以使用WINDOWS自带的“超级终端。设置波特率19.2k,这是TC35的默认波特率,首次连机可以从240057.6k不断测试,直到TC35有应答。 2、发送“ATAT 回车, 返回AT OK,说明连接成功。 3、改变波特率“AT+IPS=XXXX。TC35的默认波特率是19.2k,实际使用时,可以改成9600或38.4K,方法如下:AT+IPR=9600 回车 4、短信模式的设置 GSM模块的短信模式有2种。第1种是:TEXT模式;第2种是:PDU模式。PDU模式可以采用unicode编码发送英文、汉字。但合成PDU码比较复杂,而TE
27、XT模式只能发送英文,但无须编码。实际使用可以采用TEXT模式。设置如下:AT+CMFG=1 回车5、 短信读取方法AT+CMGR=X回车如果有短信息,TC35回应:AT+CMGR=1 +CMGR:REC UNREAD,133074 96548,04/08/17,22:24:32+02 testOK OK6、短信息分析:“test OK就是短信息内容。短信息的存储容量与Ic卡有关,序号从1-N。REC UNREAD:代表短信息未读过。REC READ :已读过。13307496548 :接收的手机号码。04/08/17,22:24:32+02:短信息发送的时间。无短信息,TC35回应:AT+C
28、MGR=3+CMGR:0,0 7、短信的删除方法 AT+CMGD=1回车 8、短信的发送方法分成两步:发送接收的手机号码,等待应答:“AT+CMGS=13800138000回车(目的地址)TC35回应:AT+CMGS=13800138000 。输入短信息的内容(只能是英文):Test 回车。即将信息发出去了 9、拨打电话的方法,通过ATD10086;回车。发送给GSM模块即可拨打10086热线。10、接电话指令,当来电话的时候GSM模块向串口发送RING ,当串口接收到RING时,通过指令ATA回车,即可接听电话。三、系统的硬件设计整个远程控制系统包括TC35模块、单片机模块、以及电源模块等组
29、成。通过单片机串口控制TC35使其进行收发短信息来完成远程控制。(一) 系统的整体框图电源模块通过芯片REG1117-3.3V为TC35模块提供3.3V的电压。单片机和TC35模块进行通信,作为整个系统的核心控制部分,通过串口和PC通信。(二)单片机模块系统中核心控制部分为51单片机。8位CPU4kbytes 程序存储器(ROM) (52为8K) 256bytes的数据存储器(RAM) (52有384bytes的RAM) 32条I/O口线111条指令,大部分为单字节指令 21个专用寄存器,2个可编程定时/计数器5个中断源,2个优先级(52有6个) ,一个全双工串行通信口,外部数据存储器寻址空间
30、为64kB,外部程序存储器寻址空间为64kB ,逻辑操作位寻址功能双列直插40PinDIP封装 ,单一+5V电源供电。完全满足本系统中的要求。(三)TC35模块TC35 模块性能指标:信息传送内容:语音和数据。电源:单电源 3.3V 5.5V ;频段:双频GSM900MHz 和 DCS1800 MHz(Phase 2+);发射功率:2W (GSM900MHz Class 4) 1W (DCS1800MHz Class 1) ;SIM 卡连接方式:外接;天线:由天线连接器连接外部天线;温度范围:工作温度:-20C to +55C ;储存温度:-30C to +85C;工作电流损耗;通话模式: 3
31、00mA (典型值.);空闲模式: 3.5mA (最大值);省电模式: 100A (最大值);语音解码标准 三种速率: 半速 (ETS 06.20) 全速(ETS 06.10) 增强型全速 (ETS 06.50/06.60/06.80);短信息:TEXT和 PDU 模式;外型尺寸:54.5 x 36 x 6.7mm;音频接口:模拟信号(麦克风,耳麦,免提手柄) ;通讯接口:RS232(指令和数据的双向传送);SIM卡操作电压: 3V/1.8V ;电话薄功能: 存储于SIM卡中;模块复位: 采用AT指令或掉电复位;串口通讯波特率: 300bps.115kbps 自动波特率范围; 4.8kbps.
32、115kbps ;软件下载功能:通过RS232或SIM接口;实时时钟: 可实现(时钟频率32.768KHz);定时器功能: 可用AT命令编程。(四)电源模块电源模块从电源适配器中输出5V,一路通过芯片REG1117-3.3V为TC35模块提供3.3V的电压,另一路直接给单片机供电。(五)SIM卡模块连结方式 (接27脚)CLK(接26脚)I/O(斜角) (接25脚)RST(悬空)VPP (接28脚)VCC(接29脚)GND四、系统的软件设计软件部分作为系统的核心部分,主要通过单片机嵌入式方式编程,程序主要包括短信的接受和发送,其中接受中包含了对短信内容的判断并根据不同的短信内容执行不同的动作。
33、(一)控制方式的研究及选择远程控制设备,通常只完成数据的采集、处理和控制,任务相对单一、固定,无须使用功能强大的台式机来完成。考虑到节能和安装方便,控制器多为嵌入式系统。根据整个无线远程控制系统所要实现的功能,和对数据处理与对远程控制能力的要求,控制器设计的复杂程度和采用的具体技术是不一样的,可以选用多种设计方式。在本课题中,只是对远程设备进行通断的控制,不需要很强的实时功能,对数据处理要求不高,运算量也不大。所以选择了基于单片机的实现方式,以降低成本和控制功耗。对于嵌入式系统来说,其软件部分的设计一般有两种模式:一种是前后台系统模式,一种是引入操作系统后的多任务模式。第一种模式的一般做法是写
34、一个无限循环的主程序,在程序中查询每个事件是否发生,每个任务是否具备运行条件,如果是,则处理这个事件或执行某个任务,这可以看 成是后台程序。而系统对中断的响应则可以看成是前台程序,中断的调入表示事件的发生,在中断服务子程序中,一般对中断做一些简单的处理,然后给出某事件已经发生的标志,待后台程序来处理。这种模式的优点是编写较为简单。第二种模式采用嵌入式操作系统,目前嵌入式操作系统的种类很多,根据实时性分有硬实时的操作系统,也有软实时操作系统。这种模式的优点是实时性好,缺点是操作系统本身占用的ROM和RAM较多。本设计中,远程系统的主要控制单元选用的是51单片机,其RAM较小,达不到嵌入式系统所要
35、求的RAM的大小要求,此外,本课题选用基于单片机的设计方案,通常不需要移植操作系统。而且系统的任务相对比较简单,且实时性要求也不高,所以本设计采用模式一,软件开发采用C语言,用Keil uVision3 进行编程。(二)系统软件的整体流程图开始开中断开机(串口初始化)短消息设置初始化删除第一条短信息固定读取第一条短信息检测短信内容并分支执行接电话函数软件系统包含主函数和中断函数系统,主函数主要作一些初始化工作,对串口中断,和外部中断进行初始化,再通过相应的一些AT指令对TC35进行控制,对其短消息设置进行一些初始化工作。对短信的判断分析并执行不同的动作。中断函数主要对是否有来电和来信息进行判断
36、,对短信内容进行接受。并交由主函数进行相应。相应的主函数代码为:void main() EA = 1; /开总中断 EX0 = 1; /开外部中断0 IT0 = 0; /设置外部中断0为电平触发方式 kaij(); /进行串口的初始化 init_duanxin(); /短信格式初始化设置GMS字符集,来短信提示 fscmgd(); /发送AT+CMGD=1,删除第一条短信 fdx(hw); / 需要发送的字符复制到hw数组,传递到fdx()函数 while(1) fscmgr(); /发送AT+CMGR=1,读第一条短信暂存短信内容到数组 jcdx(); /检测短信内容并分支执行 jdh();
37、 /接电话函数 (三)发短信息的控制短消息的发送过程如下图所示,先是用户通过GSM网络发送到短消息服务中心,再由短消息服务中心通过GSM网络发送到远程系统中。所以短消息的发送包括两部分,一是先设置本地区的消息中心号码,然后发送短信息,将短消息发送到短消息服务中心,并由消息服务中心将短信发送到远程设备。消息中心号码的设置正确与否是决定信息能否发送出去的关键所在,本地区短信中心号码可以到百度去搜索一下,也可拨打10086热线来获得。设置消息中心号码的AT指令为:AT+CSCA=+8613800535500回车,将消息中心号码设置为+8613800535500;发送消息的AT指令为:AT+CMGS
38、发送信息。 AT+CMGS=13800138000回车发送,向13800138000发送信息,模块返回,在输入短息内容发送0x1a回车发送。发送AT指令来进行消息中心号码的函数如下:void fscsca() /发送AT+CSCA=+8613800535500 ES = 0; /发送数据,关掉串口中断i = 0;while(cscai!=0) /写入数据SBUF = cscai;/ csca=AT+CSCA=+8613800535500;while(!TI) ; /等待数据发TI = 0;i+;SBUF=0x0d;while(!TI);TI = 0;ES = 1; /允许串口中断通过本程序将消
39、息中心号码设置为+8613800535500;发送AT指令来进行短消息的发送函数如下:void fscmgs() /发送AT+CMGS=13800138000ES = 0; /发送数据,关掉串口中断i = 0;while(cmgsi!=0) / cmgs=AT+CMGS=13800138000;SBUF = cmgsi;while(!TI) ; /等待数据发完TI = 0;i+;SBUF = 0x0d;while(!TI);TI = 0;ES = 1; /允许串口中断执行了这个指令后,如何指令发送成功的话,则GSM模块返回,则继续执行下面的指令,将数据发送出去。void fsduanxin(c
40、har *ptr2) /只发内容ES = 0; /发送数据,关掉串口中断while(*ptr2)SBUF = *ptr2;ptr2+;while(!TI) ; /等待数据发完TI = 0;SBUF = 0x1a;while(!TI);TI = 0;ES = 1; /直接打开串口中断这个命令将指针ptr2的数据一短消息的形式发送到了指定的号码上。(四)接受信息的控制信息的接受和判断分析是本设计的重点也是难点,不仅要成功的接受到短信息而且还得正确的分析出短信的内容,并根据不同的内容去执行不同的动作,从而是实现了远程控制。系统一直在扫描,执行固定读取第一条短消息,如果有短消息就进行分析并执行相应的动
41、作,并将第一条短消息删除,以便下次进行读取。如果没有消息继续循环读取。短消息删除的AT指令为:AT+CMGD=X,X代表删除第X条信息,因为这里只是固定删除第一条信息,所以其AT指令为AT+CMGC=1其代码为:void fscmgd() /发送AT+CMGD=1,删除第一条短信ES = 0; /发送数据,关掉串口中断i = 0;while(cmgdi!=0) /写入数据SBUF = cmgdi;while(!TI) ; /等待数据发完TI = 0;i+;SBUF = 0x0d;while(!TI);TI = 0;ES = 1; /允许串口中断短消息读取的AT指令为:AT+CMGR=X,X代表
42、读取第X条信息,因为这里只是固定读取第一条信息,所以其AT指令为AT+CMGR=1。当读取短消息的AT指令发送完成了,GSM模块就开始向串口发送短信息的内容,短信息的内容包括了:+CMGR:REC UNREAD,133074 96548,04/08/17,22:24:32+02 testOK OK短信息分析:“test OK就是短信息内容。REC UNREAD:代表短信息未读过。REC READ:已读过。13307496548 :接收的手机号码。04/08/17,22:24:32+02:短信息发送的时间。因此真正的短消息内容在65字符之后,所以,读取65个字符以后的内容,并把它存在数组中,这就
43、是短消息的内容了。void fscmgr() /发送AT+CMGR=1,读第一条短信,并分析短信uchar jj = 0;uchar kk = 0;uchar ll = 0;if(dxkg=1) /用于中断法的delayms(30); /等待来短信后面的数据发完ES = 0; /发送数据,关掉串口中断i = 0;while(cmgri!=0) /写入数据SBUF = cmgri;while(!TI) ; /等待数据发完TI = 0;i+;SBUF = 0x0d;while(!TI);TI = 0;ES = 1; /允许串口中? while(jj65) /读取65个字符之后的内容 i = 0; while(bb=0)&(i70000) i+; jj+; bb = 0;while(kk2) / 共读取连个字符作为短信的内容i=0;while(bb=0)&(i70000)i+;mmlll = aa;/将短消息的内容存在mml数组中bb = 0;kk+;ll+;dxkg = 0; /读短信这个开关也会打开delayms(77);sbkg = 1; /使能短信识别开关,让主程序识别短信命令 /用于中断法的短消息的判断通过