图4 MC39i模块外围电路框图
● 串口电平转换电路设计
SPCE061A和MC39i模块之间的连接需要使用由Max232芯片组成的电平转换电路,电路如图5所示。由于单片机的信号是CMOS电平,而计算机和MC39i模块的串行口是EIA-RS232C电平,其电平1为-3~-25V控制工程网版权所有,电平0为+3~+25V控制工程网版权所有,因此要进行CMOS电平和EIA-RS232电平间的相互转换。串口通信的RS232接口采用9针串口DB9,数据的传输只要数据接收和数据发送两根线就能实现。
图5 Max232电平转换电路
软件设计
&n
1 AT指令
MC39i模块是采用AT指令集进行控制的,采用AT指令可以实现模块参数的设置,数据的发送与接收。在GSM07.05和GSM07.07标准中对一些标准的AT指令作了详细的规定。主要有两种方式来发送和接收SMS信息Text Mode和PDU Mode。Text Mode只支持英文字符控制工程网版权所有,操作比较简单www.cechina.cn,适合于仅传输字符的场合。PDU Mode支持汉字传输,不过操作相对复杂。
2 凌阳单片机语音播放
本系统选择A2000自动语音播放模式,其自动语音播放流程如图6所示。使用的语音相关API函数来自sacmv25.lib函数库,用到以下4个API函数。
图6 A2000自动语音播放流程图
① 格式:void SACM_A2000 _Initial(int Init_Index)
功能:SACM_A2000语音播放之前的初始化。
参数:Init_Index=0表示手动方式;Init_Index=1则表示自动方式。
② 格式:void SACM_A2000 _ServiceLoop(void)
功能:从资源中获取SACM_A2000语音资料,并将其填入译码队列中。
参数:无。
③ 格式:void SACM_A2000_ Play(int Speech_Index控制工程网版权所有, int Channel, int Ramp_Set)
功能:播放资源中SACM_A2000语音或乐曲。
参数:Speech_Index:表示语音索引号。Channel:1为通过DAC1通道播放;2为通过DAC2通道播放;3为通过DAC1和DAC2双通道播放。Ramp_Set:0为禁止音量增/减调节;1为仅允许音量增调;2为仅允许音量减调节;3为允许音量增/减调节。
④ 格式:unsigned int SACM _A2000_Status(void)
功能:获取SACM_A2000语音播放的状态。
返回值:当R1的bit0=0,表示语音播放结束;bit0=1,表示语音在播放中。
3 AD转换
SPCE061A单片机内部集成了8通道10位模/数转换器(ADC),其中7个通道用于将模拟量信号(电压信号)转换为数字量信号, 可以直接通过引线(IOA[0-6])输入。另外一个通道只用于语音输入,即通过内置自动增益控制放大器的麦克风通道(MIC_IN)输入。本系统的红外人体传感器和气体传感器的检测信号都是通过模拟电压来实现的,从而需要进行A/D转换。图7为A/D转换的流程图。
图7 AD转换流程图
4 报警拨号键盘
对于一个安全报警系统,根据不同的要求来改变报警的号码是必要的。这就需要一个拨号的键盘,同时增加键盘作为系统的输入设备,使系统的操作更加灵活、方便。键盘扫描程序流程如图8所示控制工程网版权所有,按键译码和响应流程如图9所示。
图8 键盘扫描程序流程图
图9 按键译码和响应流程图
系统的工作方式
1 家庭安全报警
&nb