3.1 启动部分
启动部分的程序主要负责初始化单片机,配置A/D模块和启动GSM模块。系统上电后,必须对微控制器的定时器、端口、中断和串口等进行初始化。A/D模块TLC1549是10位模/数转换器,输出为串行方式,以中断的方式读取采集到的数据。GSM模块上电后,要进入工作状态,必须给IGT加一延时大于100 ms的低脉冲,电平下降持续时间不可超过1 ms。启动后,IGT应保持3.3 V高电平,因此,通过STC89C51单片机的P1.0口输出所需电平,控制TC35工作。
3.2 监控部分
监控部分的程序主要实现的功能是通过A/D采样,检测电流传感器的输出电压有没有发生变化,进而决定是否触发发送程序。
首先是调用A/D采样程序,通过控制A/D芯片TLC1549的CLK,DATA和CS的时序,读取10位A/D转换的数据。通过试验发现,正常情况下,电流传感器输出的电压几乎为零;而在烟火报警器工作时,输出电压为4 V以上。因此在程序中,设置了一个A/D采样值的阈值,当A/D采样值超过这个阈值,则判定发生火灾。为了防止出现假报警的情况,程序中设置了一个计数器,只有当检查到超过阈值的次数大于1 0次时,才最终判定发生了火灾。
3.3 短信息发送部分
监控程序检测出有火灾发生时,即调用发送程序发送短信到目标手机。本系统所用到的短消息规范为GSM07.05,发送模式有Text模式和PDU模式,Text模式的编码规范比较简单,只能发送英文,为了发送中文,这里选择PDU模式。PDU串是一串ASCII码,由数字0~9和字母A~F组成,它们是8位字节的十六进制数。PDU信息不仅包含需要发送的消息本身,还包含很多其他的信息。PDU模式信息编码有一定的规则,需要编码三个部分:短信息中心号码、目标手机号码和短信息内容,最后要将这三部分进行组合,并加入特定的字符串即可。发送中文短信息使用的AT命令。主要有:AT+CMGF=0,AT+CMGS=短信字节数,和待发送的PDU编码。