版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于GSM模块的智能家居系统设计作 者 丁明明指导教师 白政民摘要GSM(全球移动通讯系统)在如今这个信息大爆炸的时代中扮演着重要的角色,现如今已经成为一种应用最广泛、技术成熟、相对完善的移动通讯系统。我国目前几乎已经被三大公司各自建造的GSM移动通信网覆盖全国的范围。用户可以利用手机通过GSM网络实现远程控制的作用。智能家居是一种新生产业,目前我国智能家居市场正在逐渐成形和扩大。本论文设计的智能家居系统比较简单,选用一款最常见的单片机STC89C52来控制,利用一款常见的GSM无线通信模块(西门子TC35)构建控制通信网络,通过收发短信的形式控制继电器的状态,间接地控制相应家电的状态。简而言
2、之,就是用户可以在异地收发短信控制家用电器状态。本设计的独特之一在于用市场上常见的单片机控制GSM模块收发短信,再间接的控制继电器组成的家电控制电路;独特之二在于解决了GSM模块和单片机如何正确通信连接的问题。关键词 智能家居;STC89C52;TC35;继电器1. 设计方案和工作原理1.1 设计要求(1)GSM模块能联网通信且能和PC机之间成功连接:本设计要求TC35模块插上SIM卡(2G版)能成功连接G网络,能通过USBRS-232串口线与PC机之间进行连接,并能使用AT指令进行一些基本操作如:接打电话、收发短信、读取短信、按条件列举短信、删除短信、设置短信服务中心号码、设置短信模式等。(
3、2)GSM模块与单片机可以成功连接且能通过短信控制继电器动作:单片机STC89C52和TC35模块能通过串口线成功连接,二者可以成功的互相传输数据。单片机可以识别GSM模块所接收的信息,进而控制相应的继电器的闭合和释放,从而达到控制家用电器的功能。1.2 设计方案STC89C52 单片机GSM模块(TC35) 控制模块(可用继电器控制家电)通信RS-232串口技术标准通信图1-1 总体设计框图智能家居系统一般可以实现两种功能:家电控制功能和家庭安防功能。本设计只涉及到家电控制方面,总体电路结构比较简单。设计时选用一款最常见的单片机STC89C52来控制,利用一款常见的无线通信模块西门子TC35
4、构建控制通信网络,通过收发短信的形式控制继电器的状态,间接地控制相应家电的状态。简而言之,就是用户可以在异地收发短信控制家用电器状态。GSM模块能将短信息内容传送给单片机,单片机通过将短信内容与内部ROM存储的程序相对比,判断决定不同编号的继电器是闭合还是释放。本设计选用西门子公司旗下的一款模块TC35模块作为GSM通信模块。TC35模块可以通过自带的RS-232通信串口和单片机联络通信,RS-232是一种串口技术标准,相关的电路主要采用MAX232作为电平转换芯片,MAX232芯片能将单片机的TTL电平和TC35的CMOS电平转换到相同的RS-232电平,以便于TC35和单片机之间的通信。T
5、C35模块和单片机之间硬件通信连接时,单片机的TXD(P3.1)引脚和RXD (P3.0)引脚传输数据时分别对应着TC35模块的RXD0和TXD0引脚。但是由于二者的通信电平不同,单片机的输入、输出为TTL电平,TC35的输入、输出为CMOS电平,二者电平不能通信。因此单片机和TC35之间需要两组MAX232芯片组成的RS-232串口来将TTL和CMOS电平都转换成RS-232通信电平,再用双公头串口线把两个端口相连接,就可以实现TC35MAX232MAX232MCU这样的串口通信线路。如图1-2为单片机和TC35模块通信连接框图。STC89C52MAX232TC35模块MAX232RXD0T
6、XD0RXDTXD图1-2 单片机和TC35模块通信框图本设计的单片机采用了一款最常用、且便宜的单片机STC89C52作为控制中心,该单片机的P0口作为输出控制端连接着执行机构。执行机构选用原理简单、且易操作的继电器来控制家电的状态。当用户用手机向通信模块发送短信息后,通信模块会将信息内容传输个控制中心,控制中心通过对收到的短信数据判断,将相应的执行命令传输给执行机构继电器,继电器闭合会间接控制家电打开,继电器释放会间接控制家电关闭。2. 硬件设计2.1 单片机2.1.1 STC89C52本设计选用一款STC公司生产的目前社会上最常用的STC89C52单片机作为控制芯片。该单片机自带8K只读存
7、储器,运行时功耗低、性能高。该器件采用Atmel高密度非易失存储器制造技术,兼容Intel8031指令集。该芯片使用经典的MCS-51内核,但做了很多的改进使其具备了一些新的功能。STC89C52是传统51单片机的升级版8。MCU在没有执行操作的状态时,允许内部寄存器、定时器和计数器、串口和中断继续工作。STC89C52自带掉电保护功能,断电后内部寄存器内容能够被保存下来,振荡器被冻结,单片机停止工作,等到有中断或硬件复位时再正常工作。最高运作频率35MHz,6T/12T可选。图2-1为STC89C52引脚图,表2-1为STC89C52主要特性8。表2-1 STC89C52主要特性可编程UAR
8、T串行通道8K可反复擦写Flash ROM2个外部中断源软件设置睡眠和唤醒功能3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断兼容MCS51指令系统32个双向I/O口2个读写中断口线共6个中断源3级加密位低功耗空闲和掉电模式256x8bit内部RAM图2-1 STC89C52引脚图2.1.2 单片机外围电路设计本设计选用STC89C52被广泛使用,可靠性高而且价格便宜。该单片机自带看门狗功能,能够在单片机系统运行过程中因故障而超出设置时间的时候复位电路让系统恢复正常。该类型单片机内存比较大,一般都能存储下平常编写的程序。图2-2是给STC89C52单片机设计的外围电路,包括复
9、位电路、晶振电路和P0输出口的上拉电阻(排阻)。其中JP0JP3分别为P0P1的扩展插针,P0作为输出控制端口,为了稳定电平输出,增大端口的驱动能力,需要增加上拉电阻。J1为上拉电阻(排阻)插座。图2-2 STC89C52及周围电路2.1.3 单片机与TC35模块连接方式单片机和GSM模块联络通讯时,一定注意不能直接把单片机RXD(P3.0)、TXD(P3.1)引脚直接和TC35的TXD0和RXD0相连接,这样是不能实现二者通信的。因为单片机的电平为TTL类型,TC35的电平为CMOS类型,二者的高电平和低电平都不一样,实现不了数据的传输。正确的连接方法是:单片机的TXD(P3.1)和RXD
10、(P3.0)引脚通过RS-232串口端后经过双公头串口线连接到TC35模块的RS-232串口端(TC35模块自带RS-232串口端),再对应的连接到TC35的RXD0和TXD0引脚。两者之间需要两组MAX232芯片组成的RS-232串口端作为通信端10。图2-3为单片机侧的RS-232串口电路。图2-3 单片机侧RS-232串口电路2.2 继电器2.2.1 继电器功能和原理继电器的种类和功能有很多,涉及到强电和弱电电路的保护控制等。其工作原理可以综合认为是:由某种输入信号(如电流、电压等)的变化,改变继电器的状态,间接控制电路,从而起到自动控制电路状态的作用7。继电器一般由控制系统和被控制系统
11、两部分组成,控制系统又称输入回路,被控制系统又称输出回路。输入回路一般为小电流电路,输出回路一般为大电流电路,用小电流控制大电流的方法可以隔离大电流电路被控时的危险性,即安全又可控。图2-4为常见的不同类型的继电器。图2-4 常见继电器继电器的控制回路有“常开”和“常闭”两种触点7。“常开”触点指的是当输入回路没有输入量时输出回路是开路状态,“常闭”触点指的是当输入回路没有输入量时输出回路是接通状态。最早出现的继电器是电磁式继电器,该继电器应用最为广泛。该类型继电器主要由铁芯、线圈、衔铁、主触点、辅助触点和释放弹簧组成。当输入回路线圈加上一定电流后,线圈会根据电磁效应产生电磁场,衔铁在电磁场中
12、会受到磁力的作用而动作,间接地带动“常开”触点闭合、“常闭”触点释放。当该电流消失或小于最小动作值后,衔铁就会在弹簧的作用力下返回原始状态。使动触点与静触点分离。2.2.2 继电器的选择继电器种类和功能多样,如果没有选择正确合适的继电器可能会导致被控系统不能被控制甚至导致整个电路的瘫痪。一般在选择继电器时可以简单地考虑以下几点要素:(1) 输入回路的电压和最大电流;(2) 输出回路的电压和最大电流;(3) 输出回路有几组被控制端;(4) 输出回路控制端需要“常开”还是“常闭”。本设计选用了一款松乐公司生产的继电器。该继电器信号输入端为5V直流电压,输出控制端最高控制量为10A-250V AC或
13、10A-30V DC。单片机IO口输出的为TTL电平,输出电压近似为5V,但输出电流只有420mA,这种低电流是无法带动继电器正常工作的,为解决此问题,本设计选用PNP三极管放大电路来放大IO口的输出电流,达到成功驱动继电器的目的。该放大驱动电路如图2-5所示。驱动电路的J2输入端通过杜邦线连接单片机的P0口。发光二极管D2和电阻R5组成的线路起到显示接通电源的作用。当IO口输出高电平时,电流Ib通过PNP三极管8550放大后达到动作值使继电器动作。当J2输入端输入量由高电平变成低电平时,由于自感现象继电器线圈会产生比较大的自感电压,该电压方向和电源电压VCC相同,这两种电压同向加在三极管e、
14、c两级上,高于之前状态下的电压,这很可能会导致e极被击穿而损坏电路。为解决这个问题,可以在继电器输入端两边反向并联一个稳压二极管来吸收和释放自感电压。图2-5 继电器驱动电路实际电路制作中,为简化实物焊接过程,笔者选用成型的继电器模块。图2-6为制作实物时选用的5V直流继电器模块。该模块将继电器元件和驱动电路设计到一个很小的电路板上供二次开发使用。继电器元件为松乐公司生产的一款继电器(输入量:5V直流电压,最高输出:10A-250V AC或10A-30V DC),驱动电路符合图2-5所示。该模块输入端有三个可接线插头,分别是电源端(VCC)、接地端(GND)、信号输入端(IN)。输出端有三个可
15、接线端口,分别是“常开”触点、公共端和“常闭”触点。当继电器闭合后,“常开”触点闭合、“常闭”触点释放;当继电器释放后所有触点都返回初始状态。图2-6 5V直流继电器模块2.3 TC35模块2.3.1 TC35模块介绍TC35模块是西门子公司生产的一种无线通信GSM模块,可以通过G网实现数据传输、语音传输、短消息服务和传真等功能。TC35模块主要由TC35和其外围电路组成。TC35是整个TC35模块的核心。外围电路涉及到电源电路、开关电路、数据输入/输出电路、音频电路、SIM卡电路、RS-232串口、指示灯电路。TC35和其外围电路是通过40针ZIF连接器相连接的。图2-7为TC35结构框图。
16、电源SIM数据IN/OUTRS-232音频GSM基带处理器GSM射频模块供电模块Flash天线ZIF 40针连接器图2-7 TC35结构框图TC35主要由GSM基带处理器、GSM射频模块(Radio)、供电模块(ASIC)、闪存(Flash)、ZIF连接器、天线(Antenna Connector)六部分组成2。GSM 基带处理器相当于TC35甚至整个TC35模块的大脑,它由C116CPU和DSP处理器内核组成,控制着模块中各种信号的传输、转换、放大等处理过程;GSM 射频模块是一个由外差式接收器、上变频调制环路发生送器、射频锁相环路和集成中频合成器四个功能模块组成的单片收发器,能够实现对射频
17、信号接收和发送等处理;GSM 模块电源(ASIC)利用线性电压调节器将外部电源电压转换成支持GSM 基带处理器和GSM 射频部分工作的合适电压;Flash用于存储一些信息9。图2-8为TC35去除金属封装后的内部电路结构。图2-8 TC35内部电路结构TC35模块的工作电压为3.3 5.5V,其工作电流变化较大,待机状态时电流小于3.5mA,正常工作(接打电话、收发短信等)时电流最大能达到1.8A。该模块可以工作在EGSM900和GSM1800两个频段。EGSM900频段的上行频率为880890 MHz ,下行频率为925935 MHz。GSM1800频段的上行频率为17101785 MHz
18、,下行频率为18051880 MHz。工作在EGSM900和GSM1800频段的功率消耗分别为2W和1W。图2-9为本设计选用的TC35模块。该模块电源接口输入为5V直流电源,背面有SIM卡槽,插上SIM卡并接通电源后左上角电源指示灯常亮,按下启动按钮,信号灯开始闪烁。信号指示灯600ms亮/600ms灭,表明未连接到网络或者正在搜寻网络中,一段时间后,如果信号指示灯75ms亮/3s 灭,表示网络注册成功(控制通道和用户交换信息完成),这时就可以用USBRS-232串口线连接TC35模块和PC机进行AT指令调试。如果需要进行TC35和单片机的联机调试,除了TC35模块自带的RS-23
19、2串口端外,还需要另外设计一个单片机的RS-232串口端,二者之间用一根双公头串口线连接。图2-9 TC35模块2.3.2 AT指令AT(Attention)指令应用于GSM模块与单片机应用之间的连接和通信。AT指令是以AT开始以字符结束的字符串,AT指令的响应数据包含在该字符串中。每个指令执行成功与否都会有对应的返回值。在TC35模块和PC机连接调试时就用到AT指令控制TC35模块接打电话、收发短信、存储和删除短信、设置波特率等操作。还可以通过单片机编写含有AT指令的程序来控制TC35模块进行同样的操作。基本常见的AT指令:AT 测试连接是否正确AT+CMGF 设置短信息收发模式(两种常用模
20、式:Text模式和PDU模式)AT+CSCA 设置短信服务中心号码(不同的地区短信服务中心号码不同)AT+CNMI 新短信息提示AT+IPR? 显示串口波特率AT+IPR=9600 更改串口波特率为9600AT+CMGR 读取短信息(从指定的存储地址读取)AT+CMGS 发送短信息AT+CMGL 列举短信息2.3.3 短信收发模式TC35模块短消息收发控制模式一共有三种,可以通过AT指令AT+CMGF进行修改和设置,这三种模式为:Block模式、Text模式、PDU模式(Protocol Data Unit:协议数据单元)。最初的Block模式已经被PDU模式取代,Block模式已逐渐淡去。现
21、如今常用的是Text模式和PDU模式。Text模式下收发短信内容直接为ASCII字符,包括英文、数字或者英文格式下的标点符号。PDU模式不仅可以收发与Text模式相同的短信息内容,还可以收发中文和含有中文格式下的标点符号是的短信,但是该模式需采用unicode编码方式对收发的短信息进行编码。二者相比而言,PDU模式收发的短信息内容更加全面和丰富但过程相对复杂,Text模式收发短信息内容简单且过程无需编码。出于本设计操作简单考虑,本设计只使用Text 模式以便于通过单片机和GSM 模块之间的短信收发。2.3.4 TC35连PC机调试TC35模块可以通过PC机进行调试,测试TC35模块能不能正常使
22、用。TC35模块自带RS-232接口,PC机与GSM联络通讯时,只需要通过USBRS-232串口线连接PC机和TC35模块,该串口线能将USB的差分信号转换成RS-232信号便于通讯连接。连接成功后,只需要利用PC机上的串口调试助手软件就可以进行TC35调试。串口调试软件如图2-10所示。图2-10 串口调试助手TC35模块和PC机连接调试时需要用到AT指令。具体运用指令调试时可以进行如下调试:控制TC35模块接收短信、列举短信息、存储和删除短信、设置波特率、设置短信服务中心号码、发送短信息等操作。TC35连机调试主要步骤:1、 启动串口调试软件打开串口调试助手主界面后需要进行一些必要设置:端
23、口位置根据串口和PC机实际连接的COM口选择、波特率:9600、无校验位:None(无)、数据位:8、停止位:1。如果GSM模块联网成功且COM口选择正确,点击“打开串口”按钮后指示灯会亮起,表明串口调试助手和TC35模块连接成功。2、发送“AT”在发送区编写大写AT,加回车后点“手动发送”,此时该软件的接收区会显示“AT OK”表明连接正确。3、改变波特率“AT+IPR=XXXX”TC35的波特率可以通过AT指令修改,波特率过高时传输容易出错,过低时传输速度太慢,所以把TC35模块的波特率设置为9600最为合适。设置方法:AT+IPR=9600回车4、 设置短信模式“AT+CMGF=XX”T
24、C35模块有两种常用的短消息收发控制模式:Text模式和PDU模式。本设计只使用Text模式收发短信。设置Text模式方法:AT+CMGF=1回车5、短信读取方法“AT+CMGR=XX”SIM卡中可以存储一定量的短信息,其容量跟SIM卡有关。指令中“XX”指代SIM卡中要读取短信的序号,该序号可以为1最大存储容量间的任意数。在使用该指令前需设定短信收发模式。Text模式下短信读取命令举例:AT+CMGR=1回车(读取第一条短信)如果有短信息时TC35模块的响应如下:+CMGL: "REC UNREAD","+8615346205520","14
25、/04/27,09:20:51+32"xuchangxueyuan10DIANQI6BANOK短信息分析:“xuchangxueyuan10DIANQI6BAN”就是短信息内容。"REC UNREAD":表明短信未读取("REC READ":表明短信已读过)。"+8615346205520":该短信息的。"14/04/27,09:20:51+32":短信息收到的时间。如果没有短信息时TC35模块的响应如下:AT+CMGR=7+CMGR: 0,06、 列举短信息方式 “AT+CMG
26、L=<stat>”该命令可以按<stat>要求的方式列举SIM卡中存储的短信息。 例如以下指令操作:选择为Text短信收发模式后,在AT指令区中输入:AT+CMGL="REC UNREAD"如果之前有未读的新短信息发送给TC35模块时,TC35模块会给出如下响应:+CMGL: 6,"REC UNREAD","+8615346205520","14/04/27,10:25:11+32"ddfjkkgfhkOK<stat> 的取值:表2-2 <stat> 的取值Text
27、模式下<stat>取值说 明 "REC UNREAD"接收未读 "REC READ"接收已读 "STO UNSENT"存储未发送 "STO SENT"存储已发送 "ALL"所有消息 7、 设置短信服务中心号码短信服务中心号码是一种短信息服务器,可以理解为短信收发过程的中转站。当手机用户暂时无法联系上时,如果用户开通了短信服务,短信服务中心就会将那些无法收到的短信中存储下来,等到用户手机开机或重新连上服务器后,短信服务中心号码这个第三方就会将这些信息发到用户手机上,起到短信息中转站的作
28、用。操作指令为:AT+CSCA="+8613800374500"许昌市移动的短信服务中心号码是“+8613800374500”。8、短信发送方法 “ AT+CMGS="XXXXXX"”注意:在测试该指令前,必须先将控制模式改成Text模式,其次必须要设置好短信服务中心号码,短信服务中心号码因地区不同而不同,可联系客服咨人工咨询或上网查询。否者无法正确发送短信息。具体指令操作步骤如下:(1)AT+CMGF=1回车 (选择Text模式)点手动发送(2)AT+CSCA="+8613800374500"回车 (设置短信服务中心号码)点手动发送
29、(3)AT+CMGS="quot;回车 (短信接收用户号码为点手动发送(4) 输入短信内容,内容为英文、数字或英文格式下的标点符号点手动发送(5)选中串口调试助手面板左下角的“十六进制发送”选项(在其他情况下不需要选中该选项),然后输入1A(“1A”是16进制数ASCII值,1A转换成10进制后是26,该值对应的代码是“”符号,该符号表示短信输入结束)。点手动发送(6) 如果返回值为:CMGS: XXX(某个整数) OK表明短信已经成功发送。3. 软件设计3.1 编译程序流程本设计控制方面采用STC89C52单片机,使用现如今比较通用
30、且简单方便的C语言编写程序。当系统开始运行时,串口和TC35都需要先初始化才能正常使用,其次开始判断有没有短信发送给TC35模块,如果有收到短信息,单片机会根据信息判断选择后决定继电器的动作,如果没有收到短信息,则单片机一直进入循环等待状态。本设计在编写主程序时遵循的流程图如图3-1所示。继电器1开关继电器2开关继电器3开关否是开始始串口初始化TC35初始化判断是否有短信判断指令图3-1 主程序流程图3.2 单片机控制TC35模块本设计的最大难点就在于如何用单片机控制TC35模块。TC35模块和单片机硬件连接方法为:将单片机的TXD(P3.1)和RXD (P3.0)引脚通的RS-232串口端,
31、经过双公头串口线连接到TC35模块上的RS-232串口端,再相对应的分别连接到TC35芯片的RXD0和TXD0引脚上。TC35模块和单片机通信的软件设计方面就如同利用串口助手调试TC35模块一样,单片机也是通过AT指令控制TC35模块收发短信的。这里就需要在编译主程序中加入一些AT指令,单片机通过硬件上的连接把这些AT指令发送给TC35模块,达到控制模块收发短信的目的。与此同时,TC35模块可以将收到的短信发送给单片机,通过程序判断再进一步的决定执行部分中继电器的状态。以上这些工作都涉及到利用RS-232串口传输数据,编程时就需要编写有关串口通信的相关程序。3.2.1 串行口初始化串行口通信的
32、编程需要涉及到对SCON寄存器的设置1。该寄存器是单片机寄存器中一个可位寻址的专用寄存器,该专用寄存器用于串行数据通信的控制。其单元地址为98H,位地址为98H9FH。8位SCON的各个位的内容和地址如下表3-1所示。表3-1 SCON寄存器内容及位地址位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H 位符号 SM0 SM1SM2REN TB8RB8TI RI SM0、SM1两者不同的组合方式决定不同的串行口工作方式,如表3-2所示:表3-2 SM0和SM1不同组合及对应工作方式 SM0SM1 工作方式00方式001方式110方式211方式3REN允许接收位。REN0表示
33、禁止接收数据;REN1表示允许接收数据。SM2允许在工作方式2、3时多机通信控制位。TB8发送数据位8。RB8接收数据位8。TI串行发送中断请求标志位。数据发送过程中,当最后一位数据被发送完成后,T1由硬件置位。软件查询时TI可作为状态位使用1。RI串行接收中断请求标志位。数据接收过程中,当采样到最后一位数据位有效时,R1由硬件置位。软件查询时RI可作为状态位使用1。本设计程序在对串口方式编程时设计到改变波特率的情况,工作方式0不能更改波特率,只能是晶振频率的十二分之一,所以不选择方式0。本设计在编写串口程序时选用工作方式1。在此工作方式下,波特率是可以自行修改的,可以通过计算T1的溢出率来设
34、置波特率。串口初始化程序如下5:void UART_init (void) TMOD=0x20; /选择定时器1 PCON=0x00;/波特率不加倍 SCON=0x50;/串行工作方式1允许串行接收 TH1=0xFD;/实验板上晶振位11.0592MHZ,选择波特率为9600 TL1=0xFD;/在相应计数器上赋值 EA=1;/总中断开启 ES=1;/串行中断开启 TR1=1;/开启定时器1 3.2.2 串行口中断程序本设计程序用到单片机的C语言中断函数interrupt 4。void receive(void) interrupt 4 using 1 if(RI) if(Rx<RxIn
35、) SystemBufRx=SBUF; Rx+; RI=0; 3.2.3 串行口数据接收程序本设计程序要求:手机用户可以通过发送open18分别控制八路继电器闭合,例如:发送open1给TC35模块时闭合继电器1,发送open2时闭合继电器2,发送open5时闭合继电器5;手机用户可以通过发送shut18分别控制八路继电器释放,例如:发送shut1给TC35模块时释放继电器1,发送shut2时释放继电器2,发送shut5时释放继电器5;手机用户发送openO闭合所有继电器,发送shutS释放所有继电器(如果正常打开,系统会通过TC35模块发送“Operate Successfully!”给操作
36、用户手机,如果不成功则发送“Operate Failed,try again!”)。编写的串行口数据接收程序如下:void readcommend(void) uchar i; for(i=0;i<5;i+)/将短信内容中的指令部分截取出来放到 CommandBufi=SystemBuf64+i; if(CommandBuf0='o')&&(CommandBuf1='p')&&(CommandBuf2='e')&&(CommandBuf3='n')/判断指令是否为开继电器指令
37、switch(CommandBuf4) case 0x31: realy0=1;/继电器 1开启 break; case 0x32: realy1=1;/继电器 2开启 break; case 0x33: realy2=1; /继电器 3开启 break; case 0x34: realy3=1;/继电器 4开启 break; case 0x35: realy4=1;/继电器 5开启 break; case 0x36: realy5=1;/继电器 6开启 break; case 0x37: realy6=1;/继电器 7开启 break; case 0x38: realy7=1;/继电器 8开
38、启 break; case 0x4f: P0=0xff;P2=0xff; break; case 0x3f: temp1=P0; temp2=P2; temp=temp2; temp<<=8; temp=temp|temp1; check=1;break; default:flag=1;/其他指令定义为错误操作 break; /置位错误操作位为1 else if(CommandBuf0='s')&&(CommandBuf1='h')&&(CommandBuf2='u')&&(Comman
39、dBuf3='t')/判断指令是否为关闭电器指令 switch(CommandBuf4) case 0x31: realy0=0; /关闭继电器1 break; case 0x32: realy1=0; /关闭继电器2 break; case 0x33: realy2=0; /关闭继电器3 break; case 0x34: realy3=0;/关闭继电器4 break; case 0x35: realy4=0;/关闭继电器5 break; case 0x36: realy5=0;/关闭继电器6 break; case 0x37: realy6=0; /关闭继电器7 break
40、; case 0x38: realy7=0; /关闭继电器8 break; case 0x53:P0=0;P2=0; break; default:flag=1;/其他指令定义为错误操作 break; /置位错误操作位为1 else flag=1;/若发送指令既不是open也不是shut就定义为错误操作3.2.4 短信发送程序在编译短信发送程序时,需要考虑延时的问题,延时时间如果太长或者太短,所发送的短信息就会乱码。编写的程序如下:void sendmessage(void) uchar i;for(i=0;i<8;i+) AT_SendNumberi=AT_CMGSi; for(i=8
41、;i<24;i+) AT_SendNumberi=SystemBuf14+i; /将对方号码提取用来回复给对方sendstring(AT_SendNumber);Delay_ms(400);if(flag=0) if(check=1)sendstring(state);/如果查询位置1时,发送状态信息 sendstring(successfully);check=0;Elsesendstring(fail);Delay_ms(30);sendchar(0X1A);4. 仿真调试和实物制作4.1 仿真调试为测试本论文设计出来的家电控制系统能否正常运行,且避免硬件测试中的多种干扰因素,这里利
42、用单片机仿真元件Protues进行仿真和调试。本设计Protues仿真调试时必须注意一点问题:连接单片机和TC35模块的串口如何实现?由于Protues内置元件库有限,无法绘制TC35模块的电路图,也就无法实现单片机和TC35模块之间的通信仿真。为解决此问题,本设计在绘制单片机主电路图时选用元件库中的COMPIM作为仿真串口(COMPIM内部集成TTL-RS232电平转换),同时调用虚拟仪表模式中的VIRTUAL TERMINAL(串口监视仪器)来监视单片机和TC35间的通讯指令。仿真串口电路如下图4-1所示。图4-1仿真串口电路图 在绘制好单片机主控电路图后,就可以进行本设计的整体仿真。仿真
43、前需要将PC机通过USB-RS232串口TC35模块连接,COMPIM元件需要设置正确对应的COM口和波特率。COMPIM元件的具体设置如下图4-2所示,根据实际连接情况COM口选择为COM6,由于该处下拉菜单只提供COM14选项,该操作需要手动输入。图4-2 COMPIM元件的设置设置 COMPIM元件参数及连接好TC35模块后,用户就可以通过手机发送短信给TC35模块,模块通过串口连接PC机中正在运行的仿真图,这样就可以实现“实”到“虚”的仿真了。在仿真的过程中,可以通过VIRTUAL TERMINAL(串口监视仪器)的窗口查看单片机发送给TC35的控制指令和响应。仿真过程如下图4-3所示
44、;仿真过程中手机用户发送的短信指令内容和单片机控制TC35模块回复的短信内容如图4-4所示;仿真过程中VIRTUAL TERMINAL显示用户手机发送的短信指令和响应如图4-5所示。图4-3 单片机主控总电路仿真过程图4-4 手机用户发送和接收的短信内容图4-5 VIRTUAL TERMINAL显示的仿真指令操作和响应4.2 实物制作实物主要由四部分组成:STC89C52单片机最小系统、TC35模块、继电器模块、小电器模块(代表家用电器)。因为模块比较多,实物制作时除了单片机最小系统和小电器模块需要焊接,其他部分用杜邦线连接以便于硬件调试。实物的制作需要注意一下几点:(1) 单片机与TC35模
45、块连接经过两个MAX232芯片起到TTL、CMOS电平到RS-232电平转换通信的作用。(2) 单片机、TC35模块以及两个MAX232芯片的RXD(0)和TXD(0)要对应好,否则会由于电平冲突而导致MAX232芯片烧坏。(3) 本设计程序中设计的是低电平触发继电器动作,而购买的继电器模块是高电平直流5V触发,这就需要串接非门转换一下电平。(4) 单片机从40针座上取下和安装时要小心不要把管脚折断。(5) 实物制作没有用到双公头串口线,而是直接把两个MAX232对应的通信段转接插针并用杜邦线连接,方便单片机和TC35模块通信调试。(6) 整体实物的电源电压为5V,通过TC35模块自带电源(2
46、20V交流5V直流电源器提供)转接给整体电路供电。(7) 制作的总体实物如图4-8所示,总体实物电路焊接如4-9所示,单片机即外围电路焊接如图4-6和图4-7所示。图4-6 单片机即外围电路焊接(正面) 图4-7 单片机即外围电路焊接(反面)图4-8 整体实物图图4-9整体实物电路焊接参 考 文 献1 李广弟,朱月秀,冷祖祁等.单片机基础(第三版)M.北京:北京航空航天大学出版社,2007.2 韩斌杰,新颜,建斌等.GSM原理及其网络优化M.北京:机械工业出版社,2010:2.3 张威.GAM网络优化原理与工程M.北京:人民邮电出版社,2010.1:20-24.4 孙育才.MCS-51系列单片机微型计算机及其应用M.南京:东南大学出版社,2004.5 谭浩强.C程序设计M.北京:清华大学出版社,2005.6 郑凌燕,葛万成.基于GSM 短信的远程控制系统设计J.微型电脑应用,2006,10(5):36-38.7 胡俊达,周惠芳,郭鹏.工业控制与PLC应用入门M.北京:中国电力出版社,2014:19-23.8 陈忠平.51单片机C语言程序设计经典实例M.北京:电子工业出版社,2012.9 邓彬伟等.基于GSM模块的智能控制系统J.山西电子技术,2012,2(6):42-49.10 吴玉田,王瑞光,郑喜凤,肖传武.GSM模块TC35及其应用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年青海省玉树藏族自治州单招职业倾向性测试题库及答案详解一套
- 滕州市东沙河镇招聘社区网格员备考题库附答案详解
- 2026年辽宁现代服务职业技术学院单招职业适应性考试题库及完整答案详解1套
- 河南省2026年普通高等学校对口招收中等职业学校毕业生考试 英语试题答案
- 2026湖南益阳市大通湖国有土地资产经营有限责任公司人才直接招聘7人备考题库附答案详解
- 2026湖南郴州文旅集团郴心游分公司招聘2人备考题库含答案详解(预热题)
- 2026湖州师范大学招聘辅导员3人备考题库含答案详解(突破训练)
- 2026福建南平市数字产业发展有限公司员工招聘3人备考题库附答案详解(夺分金卷)
- 2026四川省现代种业发展集团种芯农业有限公司招聘财务人员(会计岗)1人笔试历年常考点试题专练附带答案详解
- 2026北京城建七建设工程有限公司成熟人才招聘10人笔试历年备考题库附带答案详解
- 水电建设工程质量监督检查大纲
- GB/T 46342-2025听力防护装备通用测试方法
- 煤矿新工人安全考试题库及答案解析
- GB/T 24460-2025太阳能光伏照明装置总技术规范
- 水利施工监理安全培训课件
- 智库项目课题申报书
- 学堂在线医学英语词汇进阶(首医)作业单元测验答案
- 2025年山东卷政治参考答案及评分细则
- 地铁行业面试常见问题及答案
- 反恐防暴安全课件
- 大宗贸易柴油讲解
评论
0/150
提交评论