沈阳航空航天大学毕业设计(论文)
开始 初始化 DS18B20存在 Y ROM操作命令 N 存储操作命令 读取温度值 返回
图4.2 采集温度流程图
4.3 短信发送流程图
短信发送首先要对TC35模块进行初始化,设置短信模式,因为本系统采用了TEXT模式,所以不用设置短信中心,因为有些城市短信中心缺省,而且经过测试使用TEXT模式,不管是移动或者是联通的SIM卡都能接收到短信,考虑到兼容性问题所以把模式设置为TEXT模式。
本模块的核心是利用AT指令发送短消息,TC35模块初始化时首先要发送AT和回车指令,和TC35模块进行握手,如果握手成功,那么TC35会向单片机发送OK,如果失败,那么TC35会向单片机发送ERROR, 单片机接收到数据会进入串口中断,判断是OK还是ERROR,如果是OK就会按之前设置好的接收方的号码,同时利用AT指令将存储好的报警信息发送至预先设定好的号码中。 短信发送流程图如4.2所示,
21
沈阳航空航天大学毕业设计(论文)
开始
TC35初始化 设置号码,文本模式 用AT指令发送短信
N 返回 OK ? Y 结束
图4.2 短信发送流程图
4.4 短信接收流程图
系统要一直判断有没有收到短消息,如果有判断是不是要执行的指令,如果不是就立即删除,并且又进入循环状态,开始判断有没有收到短信,如果收到的信息与指令吻合,就把当前温度发送给用户,同时删除信息。并且开始进入最初的判断新短信的循环。
本模块是一个难点,因为TC35模块收到信息后,并不会提示单片机,而是由单片机不断的向TC35发送指令,询问有没有接收到短消息,如果TC35回应有,那么单片机还要发送指令询问短信的内容,同时需要把内容接收到单片机进行判断,如果与预先存储好的执行指令吻合,那么就执行指令,如果不是,那么还有发送信息给TC35模块删除该条信息。
本模块对新短信的判断,主要是不断的判断第一条短信,并且读出内容,如果内容为空,说明没有新的短信进入,如果判断出来不为空,那么把这个信息发送给单片机,单片机会发送指令去删除这条短信,然后继续判断有没有新的短信进入,TC35模块和单片机的交互,依旧是使用AT指令,这是本模块的核心。
短信接收流程图如4.3所示
22
沈阳航空航天大学毕业设计(论文)
开始
读SIM卡信息
N 新信息提示?
Y 执行信息指令
删除SMS信息
结束
图4.3 短信发送流程图
4.5 数码管显示子程序
我们单片机上的数码管为共阴极,为了静态的显示出数字,我们需要两个锁存器,首先要打开U2锁存器,送入位选信号,在关闭U2锁存器,打开U1锁存器,然后送入段选信号,然后在关闭U1锁存器,这样就能显示出一个数字。
由于数码管为共阴极,所以位选选通时为低电平,位选关闭时为高电平,为了在数码管上显示出一串数字,要先定义好数字编码,并把这些数字编码存入一个定义好的数组里,当温度采集完把该数组对应的数字编码送入段选信号,从而实现温度数字的显示。
数码管显示比较容易实现,但是为了准确的显示温度,首先要编写一个简单的程序,确定数码管显示的数字是正确的,再把数码管显示程序封装成为一个函数,在温度采集后调用。
23
沈阳航空航天大学毕业设计(论文)
5 系统调试
根据设计要求,要对三大部分进行调试,包括硬件调试,软件调试,软硬件系统联调。电路模块分别连接电脑,调试串口数据,单个模块调试完成后,再将各个模块组合一起调试。程序先在最小系统板调试,然后在软硬联调。
5.1 硬件测试
5.1.1 静态调试
首先要对线路进行检查,使用万用表来检查线路是否联通,检查线路连接是否正确,是否有断路,或者短路,有没有虚焊。还要检查下各个主要元器件有没有因为焊接而损坏,比如说DS18B20等。
其次要对元件进行核对,检测元件的针脚安装是否正确,是否有没有损坏。 最后要检查下电源系统,在所有的测试前,要检测电源的品质,电源的电压匹配和负载能力尤为重要,只有电源稳定工作,才能把其他的元件上电测试。
5.1.2 联机调试
在经过了静态测试之后,系统可能还存在着硬件故障,需要在软硬件联机调试中找出问题,并且解决问题,所以联机调试是尤为重要的,具体相关的操作如下:
(1)测试晶振和复位电路:单片机系统工作的最基本条件就是晶振电路,本系统单片机的晶振频率是11.0592MHZ,可以用示波器进行检查。
(2)测试存储器:把数据写入存储单元并读回比较,如果写入与写出的数据是一致的则表示存储单元能正常工作,否则有短路,断路或者器件损坏的情况。
(3)测试I/O口和I/O设备:把各个模块连接电脑,用串口助手发送和接收数据,检查I/O接口的性能,然后在编写简单的程序,把各个模块组合测试,检验串口的稳定性,如果能自如的支配或者控制,则表示I/O通道的工作是正常的。
(4)测试GSM通信模块:连接好电源,把SIM卡插上,连接电脑,打开串口助手,用AT指令测试GSM是否能正常工作,同时测试发送短消息的功能是否能使
24
沈阳航空航天大学毕业设计(论文)
用。测试成功后,用串口线与单片机连接进行系统联调。
以上的四个步骤完成后,如果各个环节没有出现问题,而且联调也没有出现问题的话,那么硬件测试就完成了。
5.2 软件测试
程序是模块化编写的,首先编写各个子程序,例如发送和接收短信子程序,并且连接电脑,模拟单片机进行测试。编写完程序模块后,首先进行汇编和编译。编译完成后,生产HEX文件,利用STC-ISP下载至单片机进行联机调试,调试每个子程序,最后加入主程序进行调试。
本设计利用Keil软件进行编写程序,同时利用Keil把程序和Keil内涵的库函数装配在一起,设置好端口和波特率,下载至目标单片机STC89C52的Flash中。
5.3 系统调试
所有模块连接好之后,就要对系统进行静态测试,就是对组成系统的各个模块分别进行功能测试,使其实现预定功能。
对各个模块调试完毕之后,再对整个系统进行整机联调。连接好电源,注意正负极性,连接好所有的I/O口,编写简单的测试程序,单独支持某一I/O口和与之相连的I/O设备,如果能自如的支配或控制,则表明I/O通道的工作正常。通过以上的检测,如果各个测试环节,如果最终各环节都正常,那么硬件测试应该没问题了。
程序模块编写完成后,首先通过汇编和编译。有些开发软件的功能比较强,能够模仿单片机的运行模式,直接在pc机上就可以调试编写的软件。对于大多数情况,还是需要把程序装入单片机系统中进行联机调试。直到每一个程序模块调试成功。
当硬件调试和软件模块调试之后,就可以进行系统调试。在系统调试时,应将全部硬件电路都接上,应用程序模块也都组合好,进行全系统软硬件调试。系统调试的任务是排除软硬件中的残留错误。使整个系统能够完成预定的工作任务,达到要求的技术性能指标。
25