毕业设计(论文)基于GSM的无线远程家电控制_第1页
毕业设计(论文)基于GSM的无线远程家电控制_第2页
毕业设计(论文)基于GSM的无线远程家电控制_第3页
毕业设计(论文)基于GSM的无线远程家电控制_第4页
毕业设计(论文)基于GSM的无线远程家电控制_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、合 肥 师 范 学 院 计算机科学与技术系 企业实习报告 课 程 校内专业实习 题 目 基于 gtm900-b 的无线传输 姓 名 学 号 专业班级 08 计算机普本非师班 企业教师 完成日期2011年 12 月 19 日 实习 课题 基于基于 gtm900-b 的无线传输系统的无线传输系统成绩 企 业 实 习 主 要 内 容 1 1、熟悉熟悉 gtm900gtm900b b 的短信指令。的短信指令。 2 2、熟悉熟悉 gtm900-bgtm900-b 短信功能函数短信功能函数 3 3、掌握驱动电路的原理,以及电磁继电器与固继电器的原理。掌握驱动电路的原理,以及电磁继电器与固继电器的原理。 4

2、 4、完成并熟练掌握驱动电路的设计完成并熟练掌握驱动电路的设计 5 5、完成利用短信控制任一个大风扇的开和停的功能。完成利用短信控制任一个大风扇的开和停的功能。 6 6、完成利用短信控制所有大风扇的开和停的功能。完成利用短信控制所有大风扇的开和停的功能。 7、驱动模块要做到大电流驱动,否则难以驱动。驱动模块要做到大电流驱动,否则难以驱动。 (建议:从学生的工作态度、工作量、设计(论文)的创造性、学术性、实用性及书面表达 能力等方面给出评价) 评 语 签名: 年月日 - 1 - 目目 录录 目目 录录.- 1 - 基于基于 gtm900-b 的无线传输的无线传输.- 2 - 摘要摘要:.- 2

3、- 关键词关键词: .- 2 - 一、前一、前 言言.- 3 - 二、二、 系系 统统 硬硬 件件 结结 构构.- 3 - (一) 、gsm900-b 模块.- 3 - 1开发板简介.- 3 - 2开发板测试.- 4 - (二) 、单片机 stc12c5a60s2 .- 7 - 1功能概述.- 7 - 2stc12c5a60s2系列单片机的内部结构.- 7 - (三) 、9015 三极管.- 8 - 1简介.- 8 - 2管脚功能.- 9 - (四) 、uln2003 模块 .- 10 - 1功能概述.- 10 - 2引脚分布及实物.- 10 - (五) 、继电器.- 11 - 1.电磁继电器

4、.- 11 - 2.固态继电器.- 14 - (六) 、其它.- 16 - 三、系统软件示意三、系统软件示意.- 16 - 1系统示意图.- 16 - 2软件流程图.- 17 - 3编程软件 .- 17 - 4.原理图及 pcb.- 18 - 5.核心原理.- 19 - 四、实验结论四、实验结论.- 19 - 五、致五、致 谢谢.- 19 - 六、附六、附 录录.- 19 - 参参 考考 文文 献献.- 31 - - 2 - 基于基于 gtm900-b 的无线传输的无线传输 摘要摘要: 本系统主要是一种基于 stc12c5a60s2 单片机的远程电话控制系统。该系统是以 stc12c5a60s

5、2 为核心、利用现有的个人通信终端,实现基于 gsm900-b 的电话远程控制系统。 本文将比较详尽的介绍了基于手机短信的 pc 机短信发送软件和数据采集系统的硬件电路部 份和软件编程部份,以及手机短消息的 at 命令。 借助系统模型,阐明 gsm 模块收发短信的基本概念以及串口控制 sms 的基本原理。该 系统设计实用,功能灵活多样,可靠性高,操作方便,可以广泛地应用于家庭或者其它场 所的智能控制。 关键词关键词: stc12c5a60s2;远程电话控制;gtm900-b;智能家电 - 3 - 一、前一、前 言言 进入 20 世纪 90 年代后期以来, 数字化技术取得了更加迅猛的发展, 随着

6、 internet 网向普通家庭生活不断扩展, 消费 电子、 计算机、 通讯一体化日趋明显, 传统的家用电器行业也带 来了新的革命, 网络家电悄然进入到人们的生活中。 网络家电 是指可以使用远程终端(例如手机、 个人电脑等) 对连接在家庭网络上的家电进行遥控。 网络家电可以互联组成 家庭内部网络, 同时又能与外部互联网连接。用户可以通过电 脑、 手机等远程终端操控家中所有电器运作。 比如, 下班前通过 空调、 电饭煲的启动等。 电脑或手机操控家中电热水器、 可以预见, 网络家电的普及将极大地提高人们的生活质 量。 比起传统的集群系统在无线网 络覆盖上具有无法比拟的优势, 加上 gsm 的 sm

7、s 本 身具备的 数据传送功能, 因此, 短消息业务在远程智能控制系统中得到 克服了 了广泛 的应用, 基于 gsm 短消息的远程家电控制系统, 电话远程家电控制系统电话费用高、 控制时间长等缺点, 具有 良好可扩展性和实用价值。 2、系系 统统 硬硬 件件 结结 构构 (一)(一) 、gsm900-b 模块模块 1 开发板简介开发板简介 gtm900 开发板,适用于 gsm 远程控制、智能家电系统、远程报警等应用。开发板是 基于 stc12c5a60s2 单片机,此单片机有两个串口,这样可以一个串口与 gtm900 通信, 负责短信收发,另一个串口与 pc 通信实现程序的下载及调试信息的打印

8、。另外,开发板 有两种工作模式,单片机开发模式及无线 modem 模式,并且这两种模式可以通过硬件跳 线来配置。 单片机开发模式,通过跳线配置 gtm900 与单片机通信。此时单片机的串口 1 与 gtm900 通信,而串口 0 与 pc 通信,可以实现程序的下载及运行时调试信息的打印。 无线 modem 模式,通过跳线配置 gtm900 与 pc 直接通信。通过电脑可以直接控制 gtm900,实现短信收发、拨打电话灯功能。 gtm900 内置了 tcp/ip 协议栈,除了具有 gsm 的所有功能外,还具有 gprs 数据通信 功能,可以通过 tcp、udp 协议与远端服务器通信,进行数据传输

9、。 - 4 - 2 开发板测试开发板测试 2.1 准备工作 首先将 sim 卡安装到开发板的 sim 卡座中。然后通过数据线将 gtm900 连接到开发板 上。 2.2 上电测试 开发板发货时,默认配置是单片机开发模式,并且单片机中已经固化好了测试程序。 通过 5v 直流电源对开发板供电,设备上电后板上的电源指示灯会亮。如果指示灯亮说明设 备工作正常,否则说明电源部分已损坏。 2.3 gtm900 状态指示 开发板上有 gtm900 的工作指示灯,设备上电后该灯会 1s 闪一次,说明 gtm900 开 机成功,如果该灯不闪的话,检测数据排线是否存在连接不紧的情况。连续闪几次后,该 灯会变成 3

10、s 闪一次,这说明 gtm900 已经注册到网络,可以实现收发短及数据传输信功 能。如果该灯一直是 1s 闪烁一次,说明 gtm900 注册到网络失败,此时检测数据排线是 否接紧,sim 卡是否安装紧,sim 是否欠费等。 - 5 - 2.4 短信测试 设备上电工作正常后,可以通过手机发送短信给开发板进行短信测试。命令格式为 #m,n*,其中 m 为指示灯的位置,其取值范围为 16 分别表示开发板上的六个灯;n 表示 相应指示灯的状态,0 为点亮,1 为熄灭。 比如想点亮开发板上的第一个小灯则发送命令#1,0*,那么开发板上的第一个小灯会被 点亮,并且发短信的手机会接收到一条响应短信,同理发送

11、可以发送其 它命令对开发板上的小灯进行控制。 2 单片机开发模式 2.1 硬件配置 将开发板上的跳线跳到上侧,使 pct、51t 短路,pcr、51r 短路,单片机的串口 0 与 pc 连接,单片机可以向 pc 串口发送一些调试信息。硬件跳线如下图所示: 2.1 短信测试 在该模式下,单片机的串口与 pc 通信。设备工作运行时,会向 pc 发送一些调试信息, 以指示设备当前的工作状态,方便用户调试。以下为设备刚上电工作后,串口接收到的数 据,其中 ”gtm900 start successfull”:gtm900 开机成功; ”simcard check successfull”:sim 卡检

12、测成功; “register network successfull”:gtm900 注册到网络成功; “no cmd recieved”:系统未接收到新的短消息; “the recieve cmd is #1,0*”:系统接收到了点亮第一个指示灯的命令; “the receive cmd is #1,1”:系统接收到了熄灭第一个灯的明亮。 - 6 - 当然,不仅如此,系统还可以打印单片机与 gtm900 通信的数据,这样就可以确定发 送的每一条 at 指令是否成功,极大的方便了调试。 2.2 gprs 测试 gtm900 可以实现 gprs 功能与远端服务器完成数据通信。通信协议可以选择 t

13、cp 或者 udp。传输模式可以选择 ascii、二进制方式。用户可以通过修改 demo 程序中的 gprs.h 中 的配置,来完成不同的需求。 3 无线 modem 模式 - 7 - 3.1 硬件配置 将开发板上的跳线跳到下侧,使 pct、gmt 短路,pcr、gmr 短路,此时 gtm900 连接到串口上,可以通过 pc 直接对 gtm900 进行控制。 3.2 运行测试 系统上电,gtm900 注册网络成功后,就可以通过 pc 对 gtm900 进行控制了,可以 通过 gtm900i 测试软件实现短信收发,打电话等功能。 可以通过串口调试助手,发送各种 at 指令,完成开发板的测试。 (

14、二)(二) 、单片机单片机 stc12c5a60s2 1功能概述功能概述 stc12c5a60s2/ad/pwm 系列单片机是宏晶科技生产的单时钟/机器周期(1t)的 单片机,是高速/低功耗/超抗干扰的新一代 8051 单片机,指令代码完全兼容传 统 8051,但速度快 8-12 倍。内部集成 max810 专用复位电路,2 路 pwm,8 路高速 10 位 a/d 转换对电机控制。 2stc12c5a60s2 系列单片机的内部结构系列单片机的内部结构 stc12c5a60s2 系列单片机的内部结构框图如下图所示。stc12c5a60s2 单片机 中包含中央处理器(cpu)、程序存储器(fla

15、sh)、数据存储器(sram)、定时/计数器、 uart 串口、串口 2、i/o 接口、高速 a/d 转换、spi 接口、pca、看门狗及片内 r/c 振荡器和外部晶体振荡电路等模块。stc12c5a60s2 系列单片机几乎包含了数 据采集和控制中所需的所有单元模块,可称得上一个片上系统。 - 8 - stc12c5a60s2 系列内部结构框图 (三)(三) 、9015 三极管三极管 1简介简介 9015 是一种常用的普通三极管。它是一种小电压,小电流,小信号的 pnp 型硅三极管 特性: 集电极电流 ic:max -100ma 集电极-基极电压 vcbo:-50v 工作温度:-55 to +

16、150 和 9014(npn)相对 主要用途: 开关应用 射频放大 - 9 - 2管脚功能管脚功能 引脚图 - 10 - 特性 集电极电流 ic:max 500ma 集电极-基极电压 vcbo:40v 工作温度:-55 to +150 (四)(四) 、uln2003 模块模块 1功能概述功能概述 功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。 功率驱动电路是功率电子设备输出电路的一个重要组成部分。在大型仪器仪表系 统中,经常要用到伺服电机、步进电机、各种电磁阀、泵等驱动电压高且功率较 大的器件。uln2000、uln2800 高压大电流达林顿晶体管阵列系列产品就属于这类 可

17、控大功率器件,由于这类器件功能强、应用范围广。因此,许多公司都生产高 压大电流达林顿晶体管阵列产品,从而形成了各种系列产品,uln2000、uln2800 系列就是美国 texas instruments 公司、美国 sprague 公司开发的高压大电流达 林顿晶体管阵列产品。它们的系列型号分类如表 1 所列,生产 2000、2800 高压大 电流达林顿晶体管阵列系列产品的公司与型号对照表如表 2 所列。在上述系列产 品中,uln2000 系列能够同时驱动 7 组高压大电流负载,uln2800 系列则能够同时 驱动 8 组高压大电流负载。美国 texas instruments 公司、美国 s

18、prague 公司生 产的 uln2003a 由 7 组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构 成,具有同时驱动 7 组负载的能力,为单片双极型大功率高速集成电路。以下介 绍该电路的构成、性能特征、电参数以及典型应用。2000、2800 高压大电流达林 顿晶体管阵列系列中的其它产品的性能特性与应用可参考 uln2003a。 uln2003a 电路具有以下特点: 电流增益高(大于 1000); 带负载能力强(输出电流大于 500ma); 温度范围宽(4085); 工作电压高(大于 50v)。 uln2003 电路主要用于如下领域: 伺服电机; 步进电机; 电磁阀; 可控照明灯。 2

19、引脚分布及实物引脚分布及实物 uln2003a 电路的管脚排列如图 1 所示,图 2 为其原理和引脚功能图,各引出 端的功能符号及说明如表 3 所列。 - 11 - (五)(五) 、继电器继电器 1.电磁继电器电磁继电器 1 1、电磁式继电器的结构与工作原理、电磁式继电器的结构与工作原理 电磁式继电器的结构及工作原理与接触器相似,电磁继电器是由缠绕于铁心 的线圈的“电磁铁部分”,安装于铁片上的可动触点与固定触点组合而成的“触 点部分”,共同结合构成的。 当电流流过线圈,铁心变成电磁铁。可动铁片被吸引,受到向下的力的作用。 可动触点也向下方移动,与固定触点接触构成闭合电路。当线圈中无电流流动,

20、铁心不再变成电磁铁。可动铁片不再受到吸引,由于返回弹簧的作用,受到向上 方的力的作用。可动触点也向上方移动,于是与固定触点脱离接触而使电路断开。 (a)电磁式继电器外观图 (b)电磁式继电器原理构造图 - 12 - (c)电磁式继电器动作原理示意图 1 (d)动作原理示意图 2 电磁式继电器的原理结构 (a)外观图(b)原理构造图(c)动作原理示意图 1(d)动作原理示意图 2 2.2.中间继电器(文字符号中间继电器(文字符号 kaka) 中间继电器是将一个输入信号变成一个或多个输出信号的继电器,它的输入 信号为线圈的通电或断电,它的输出信号是触头的动作,不同动作状态的触头分 别将信号传给几个

21、元件或回路。 中间继电器与接触器所不同的是中间继电器的触头对数较多,并且没有主、辅之 分,各对触头允许通过的电流大小是相同的,其额定电流约为 5a。 中间继电器的四种功能 - 13 - (a)外观图(b)外观图 (c)符号 中间继电器的外观图和符号 3 3、电磁式电压继电器、电磁式电压继电器 电压继电器用于电力拖动系统的电压保护和控制。使用时电压继电器线圈并 联接入主电路,感测主电路的电路电压;触头接于控制电路,为执行元件。电压 继电器的线圈匝数多、导线细、阻抗大。电压继电器又分过电压继电器、欠电压 继电器和零电压继电器。 (1)过电压继电器 - 14 - 过电压继电器线圈在额定电压值时,衔铁

22、不产生吸合动作,只有当电压高于 额定电压 105115以上时才产生吸合动作。 (2)欠电压继电器 当电路中的电器设备在额定电压下正常工作时,欠电压继电器的衔铁处于吸 合状态。如果电路出现电压降低时,并且低于欠电压继电器线圈的释放电压,其 衔铁打开,触点复位,从而控制接触器及时分开电气设备的电源。 通常欠电压继电器的吸合电压值的整定范围是额定电压值的 3050,释 放电压值整定范围是额定电压值的 1035。 零电压继电器是当电路电压降低到(5%25%)un 时释放,对电路实现零电压保 护。用于电路的失压保护。 4 4、电磁式电流继电器、电磁式电流继电器 电流继电器用于电力拖动系统的电流保护和控制

23、。使用时电流继电器线圈串 联接入主电路,用来感测主电路的电流;触头接于控制电路,为执行元件。电流 继电器反映的是电流信号。根据通过继电器线圈自身电流的大小而动作实现对被 控电路的通断控制。电流继电器的线圈的匝数少、导线粗、阻抗小。根据用途不 同电流继电器又分为过电流继电器和欠电流继电器。 (1)欠电流继电器 欠电流继电器用于电路起欠电流保护,吸引电流为线圈额定电流 30%65%, 释放电流为额定电流 10%20%,因此,在电路正常工作时,衔铁是吸合的,只有 当电流降低到某一定值时,继电器释放,控制电路失电,从而控制接触器及时分 断电路。 (2)过电流继电器 过电流继电器线圈在额定电流值时,衔铁

24、不产生吸合动作,只有当负载电流 超过一定值时才产生吸合动作。过电流继电器常用于电力拖动控制系统中起保护 作用。 通常,交流过电流继电器的吸合电流整定范围为额定电流的 1.1 倍4 倍, 直流过电流继电器的吸合电流整定范围为额定值的 0.7 倍3.5 倍。 2.固态继电器固态继电器 1.1.简介简介 固态继电器(ssr)与机电继电器相比,是一种没有机械运动,不含运动零件的 继电器,但它具有与机电继电器本质上相同的功能。ssr 是一种全部由固态电子 元件组成的无触点开关元件,他利用电子元器件的点,磁和光特性来完成输入与 输出的可靠隔离,利用大功率三极管,功率场效应管,单项可控硅和双向可控硅 等器件

25、的开关特性,来达到无触点,无火花地接通和断开被控电路。 2.2.固态继电器的组成固态继电器的组成 固态继电器有三部分组成:输入电路,隔离(耦合)和输出电路。安输入电压的 不同类别,输入电路可分为直流输入电路,交流输入电路和交直流输入电路三种。 - 15 - 有些输入控制电路还具有与 ttl/cmos 兼容,正负逻辑控制和反相等功能。固态继 电器的输入与输出电路的隔离和耦合方式有光电耦合和变压器耦合两种。固态继 电器的输出电路也可分为直流输出电路,交流输出电路和交直流输出电路等形式。 交流输出时,通常使用两个可控硅或一个双向可控硅,直流输出时可使用双极性 器件或功率场效应管。 3.3.固态继电器

26、的优缺点固态继电器的优缺点 1、固态继电器的优点 (1)高寿命,高可靠:ssr 没有机械零部件,有固体器件完成触点功能,由 于没有运动的零部件,因此能在高冲击,振动的环境下工作,由于组成固态继电 器的元器件的固有特性,决定了固态继电器的寿命长,可靠性高。 (2)灵敏度高,控制功率小,电磁兼容性好:固态继电器的输入电压范围较 宽,驱动功率低,可与大多数逻辑集成电路兼容不需加缓冲器或驱动器。 (3)快速转换:固态继电器因为采用固体其间,所以切换速度可从几毫秒至 几微妙。 (4)电磁干扰笑:固态继电器没有输入线圈,没有触点燃弧和回跳,因而 减少了电磁干扰。大多数交流输出固态继电器是一个零电压开关,在

27、零电压处导 通,零电流处关断,减少了电流波形的突然中断,从而减少了开关瞬态效应。 2、固态继电器的缺点 (1)导通后的管压降大,可控硅或双相控硅的正向降压可达 12v,大功率 晶体管的饱和压浆液灾 12v 之间,一般功率场效应管的导通电祖也较机械触点的 接触电阻大。 (2)电力半导体器件关断后仍可有数微安至数毫安的漏电流,因此不能实现 理想的电隔离。 (3)由于管压降大,导通后的功耗和发热量也大,大功率固态继电器的体积 远远大于同容量的电磁继电器,继电器批发成本也较高。 (4)电子元器件的温度特性和电子线路的抗干扰能力较差,耐辐射能力也较 差,如不采取有效措施,则工作可靠性低。 (5)固态继电

28、器对过载有较大的敏感性,必须用快速熔断器或 rc 阻尼电路 对其进行过在保护。固态继电器的负载与环境温度明显有关,温度升高,负载能 力将迅速下降。 4.4.实物图实物图 - 16 - (六)(六) 、其它、其它 固定胶带、电源线、串口转接线、简易装置、两台家用风扇等。 三、系统软件示意三、系统软件示意 1系统示意图系统示意图 - 17 - 2软件流程图软件流程图 3编程软件编程软件 使用 keil uvision4、stc_isp 等,程序如见“附录” 。 - 18 - 4.原理图及原理图及 pcb - 19 - 5.核心原理核心原理 gtm900-b 的短消息模块,stc12c5a60s2

29、单片控制模块,驱动模块,其中核心模 块为 gtm900-b 的短消息模块。根据原理部分的分析,本设计采用 gtm900-b 的短息 模块,对用户通过手机发送的短信进行提取、分析已达到控制不同风扇开关的目的。 其短信的格式如下: #m,n*,其中 m 为表示风扇的编号,其取值范围为 0,1 和 2;n 表示相应风扇状态, 0 为打开,1 为关闭。 四、实验结论四、实验结论 发送短信风扇 1 状态风扇 2 状态 初始状态关闭关闭 #1,0*打开关闭 #1,1*关闭关闭 #2,0*关闭打开 #2,1*关闭关闭 #0,0*打开打开 #0,1*关闭关闭 经检测发送短信控制两台风扇的开和关,每次发送是都能

30、正常控制每台风扇,实现 功能,即本设计调试正确。 五、致五、致 谢谢 从学校中的理论知识到实训中的实践操作,我们将有更充分的实践去挑战我们的工作, 虽然短暂,锻炼了我们动手的能力,同时也锻炼了我们的团队合作精神。我要感谢我们的 学校给予我这样一个锻炼的机会,感恩在我成长路上帮助过我的所有老师!感谢我们的指 导老师们,他们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们循循善诱 的教导和不拘一格的思路给予我无尽的启迪。感谢我的实训老师,这片论文的每个实验细 节和每个数据,都离不开你们的细心指导。 六、附六、附 录录 /- /工 程 名:gtm900-b /功 能:通过短信控制风扇开关 -

31、 20 - /设 计:赵长远 /日 期:2011-12-14 /修 改: / 无 /- #include config.h #defineuart_init()uart1_init() #defineuart_putstring(cmd)uart1_putstring(cmd) #defineuart_get_buf()uart1_get_buf() #defineuart_flush_buf()uart1_flush_buf() xdata char phonenumber12; /- /函数名称:void delay_ms(void) /函数功能:延时函数 /输入参数:无 /返回参数:无

32、/- static void delay_ms(void) uint16 i, j; for (i = 0; i 100; i+) for (j = 0; j 100; j+); /- /函数名称:void debug_print(void) /函数功能:打印调试输出 /输入参数:无 /返回参数:无 /- static void debug_print(void) uint8 *uart_buf; uart_buf = uart_get_buf(); printf(-n); printf(%s, uart_buf); /- /函数名称:void gsm_init(void) - 21 - /函

33、数功能:gsm 初始化函数 /输入参数:无 /返回参数:无 /- void gsm_init(void) uart_init(); /- / 函数名称:uint8 gsm_send_cmd(char* pcmd) / 函数功能:gsm 命令字发送函数 / 输入参数: / pcmd,要发送的命令 / 返回参数: / 0 ,命令发送成功 / 1 ,命令发送失败 /- uint8 gsm_send_cmd(char* pcmd) uint16 i; uint8 ret, *uart_buf; uart_flush_buf();/ 清除串口缓冲区 uart_putstring(pcmd);/ 发送命令

34、 uart_buf = uart_get_buf(); for (i = 0; i ) ret = 0; break; else if (strstr(uart_buf, error) / 命令发送失败 ret = 1; - 22 - break; else ret = 1; debug_print();/ 打印调试信息 return ret; /- /函数名称:uint8 gsm_start(void) /函数功能:查询 tc35 是否启动 /输入参数:无 /返回参数: / 0,启动成功 / 1,启动失败 /- uint8 gsm_start(void) uint8 ret; ret = g

35、sm_send_cmd(atrn); return ret; /- /函数名称:uint8 gsm_check_simcard(void) /函数功能:检测 sim 卡 /输入参数:无 /返回参数: / 0,sim 卡检测成功 / 1,sim 卡检测失败 /- uint8 gsm_check_simcard(void) return (gsm_send_cmd(at+cimirn); /- - 23 - /函数名称:uint8 gsm_check_network(void) /函数功能:检测 sim 卡 /输入参数:无 /返回参数: / 0,网络注册成功 / 1,网络注册失败 /- uint8

36、 gsm_check_network(void) uint8 ret, *uart_buf; ret = gsm_send_cmd(at+creg?rn); uart_buf = uart_get_buf(); if (ret = 0) if (!strstr(uart_buf, +creg: 0,0) ret = 0; else ret = 1; else ret = 1; return ret; /- /函数名称:void gsm_send_message(char* pmsg) /函数功能:发送短消息 /输入参数: / pmsg,短消息指针 /返回参数:无 /- void gsm_sen

37、d_message(char* pmsg) char cmd23 = at+cmgs=00000000000rn; gsm_send_cmd(at+cmgf=1rn);/ 设置短消息为 text 模式 gsm_send_cmd(at+csmp=17,167,0,0rn); gsm_send_cmd(at+cscs=gsmrn); / 设置 gsm 字符集 /gsm_send_cmd(at+cmgsn);/ 设置目的手机号码 /gsm_send_cmd(tc35 recieve cmd ok!x01a);/ 设置短消息 memcpy(cmd+9), phonenumbe

38、r, 11); - 24 - gsm_send_cmd(cmd); gsm_send_cmd(pmsg); /- /函数名称:uint8 gsm_recv_message(char* pmsg) /函数功能:接收短消息 /输入参数: / pmsg,短消息指针 /返回参数: / 0,接收到新的短消息 / 1,未接收到新的短消息 /- uint8 gsm_recv_message(char* pmsg) uint8 ret, i; char *p, *uart_buf; gsm_send_cmd(at+cmgf=1rn);/ 设置短信模式为 text gsm_send_cmd(at+cscs=gs

39、mrn);/ 设置 gsm 字符集 ret = gsm_send_cmd(at+cmgr=1rn);/ 读取短消息 uart_buf = uart_get_buf(); if (ret = 0) if (strstr(uart_buf, +cmgr:0,0)/ 没有新的短消息 ret = 1; else p = strstr(uart_buf, ,5rn);/ 有新的短消息 if (p) for (i = 0; i 5; i+)/ 获取短消息内容 pmsgi = p4+i; pmsg6 = 0; p = strstr(uart_buf, unread,); for (i = 0; i 11;

40、i+) phonenumberi = pi + 11; phonenumber11 = 0; ret = 0; - 25 - else ret = 1; else ret = 1; return ret; /- /函数名称:void gsm_remove_message(void) /函数功能:删除短消息 /输入参数: / 无 /返回参数: / 无 /- void gsm_remove_message(void) gsm_send_cmd(at+cmgd=1rn); /- /工 程 名:gtm900-b /功 能:通过短信控制风扇开关 /设 计:赵长远 /日 期:2011-12-14 /修 改

41、: / 无 /- #include config.h /- /函数名称:void uart_init(void) /函数功能:串口初始化 /输入参数: / 无 /返回参数: / 无 /- void uart0_init(void) - 26 - scon= 0 x50;/ scon:工作模式 1,8-bit uart,允许接收 tmod |= 0 x20;/ tmod:定时器 t1,工作模式 2, 8 位自动重载方式 th1= 0 xfd;/ 当波特率为 9600 时,定时器初值 tr1= 1;/ 定时器 t1 开始运行 ti= 1;/ 允许发送数据 /- /函数名称:char putchar

42、 (char c) /函数功能:串口发送字符 /输入参数: / c, 发送的字符 /返回参数: / 发送的字符 /- char putchar (char c) if (c = n) while (!ti); ti = 0; sbuf = 0 x0d; / output cr while (!ti); ti = 0; sbuf = c; while (!ti); return sbuf; /- /工 程 名:gtm900-b /功 能:通过短信控制风扇开关 /设 计:赵长远 /日 期:2011-12-14 /修 改: - 27 - / 无 /- #include config.h xdata

43、char uart_buf500; xdata uint16 uart_recv_len; void uart1_init(void) p1m0 |= 0 x08;/ txd2(p1.3),推挽输出 p1m1 p1 = 0 xff;/ rxd2(p1.2),输入 s2con = 0 x50;/ s2con:工作模式 1,8-bit uart,允许接收 brt = 0 xfd; auxr = 0 x10;/ 启用波特率发生器 ie2 |= 0 x01; /- /函数名称:void uart1_putchar(char c) /函数功能:串口 1 发送一个字符 /输入参数: / c, 要发送的字符

44、 /返回参数:无 /- void uart1_putchar(char c) uint8 temp = 0; ie2 s2con / 清除串口 2 发送完成标志 s2buf = c;/ 发送数据 do temp = s2con; temp while (temp = 0); s2con ie2 |= 0 x01; - 28 - /- /函数名称:void uart1_putstring(char* str) /函数功能:串口 1 发送一个字符串 /输入参数: / str, 要发送的字符串 /返回参数:无 /- void uart1_putstring(char* str) uint8 i; f

45、or (i = 0; stri; i+) uart1_putchar(stri); /- /函数名称:void flush_recv_buf(void) /函数功能:清除接收缓冲区 /输入参数:无 /返回参数:无 /- void uart1_flush_buf(void) uart_recv_len = 0; memset(uart_buf, 0, sizeof(uart_buf); char* uart1_get_buf(void) return uart_buf; /- /函数名称:void isr_uart2(void) /函数功能:gsm 接收中断处理函数 /输入参数: / 无 /返回参数: / 无 /- void isr_uart2(void) interrupt 8 uint8 stat; - 29 - stat = s2con; if (stat uart_bufuart_recv_len+ = s2buf; /if (stat /- /工 程 名:gtm900-b /功

温馨提示

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

评论

0/150

提交评论