该接收电路要求被接收的红外光波长在950μm左右,被调制信号的脉冲宽度不小于600μs。TFMS5380的应用电路非常简单。实验证明,TFMS5380的性能良好,完全可以满足数据传输的需要。S3C2410 ARM9开发板800元 SOC开发平台360元 豪华单片机开发系统498元 单片机学习板138 无线nRF-9E5模块100元 51单片机试验开发板238元 Genius NSP通用编程器260元 Mini ARM Debugger330元 LABTOOL-48UXP2800元 S3C2410 ARM9开发板800
3.软件设计
该系统软件设计主要包括手持抄表器主机软件和电度表端从机软件两部分。在本设计中手持抄表器单片机发送字符与接受字符均采用查询方式,发送前先读取通信状态寄存器,查询发送保持寄存器空否,接收前先读取通信状态寄存器,查询一帧数据收完否。电度表单片机采用中断方式,即接收到地址帧后就进行串行口中断申请,中断响应后,进入中断服务程序。
手持抄表器软件设计:
在红外通信过程中,手持抄表器作为主机,是通信的发起者,其发送和接收都是主动的,它的具体工作过程为:不断扫描键盘,若发现有命令键按下,则调用发送子程序发送相应的操作命令,发送结束后即启动接收子程序,以接收电度表回送的信息,然后对接收到的信息进行后续处理。手持抄表器通信程序包括初始化子程序和串行通讯程序,其流程如图4所示。
初始化子程序SP-INIA,主要是对通讯波特率及方式的设置,程序源代码如下:
SP_INIA:MOV TMOD,#20H ;选择定时器T1模式2,计时方式
MOV TH1,#0E8H ;预置时间常数
MOV TL1,#0E8H
CLR ET1 ;禁止定时中断
www.55dianzi.com
SETB TR1 ;启动计时器
MOV PCON,#80H ;SMOD=1
MOV SCON,#0D8H ;方式3,SM2=0,REN=1,TB8=1
SETB EA ;开总中断
SETB ES ;开串口中断
RET
抄表机串行通讯程序略;
电度表端软件设计:电度表端作为从机,其软件程序包括主程序和中断服务程序,流程图如图5所示;
主程序源代码为:
ORG 0023H
LJMP SUB_COM ;串口中断服务程序入口
ORG 0050H
SM_COM:LCALL SP_INIB ;调串口初始化子程序
MOV 08H,#50H ;选工作寄存器区1
MOV 09H,#60H
SETB EA ;开总中断
SETB ES ;开串口中断
LOOP:SJMP $ ;等待中断
SP_INIB:MOV TMOD,#20H ;选择定时器T1模式2,计时方式
MOV TH1,#0E8H
MOV TL1,#0E8H
CLR ET1
SETB TR1
MOV PCON,#80H
MOV SCON,#0F0H ;方式3,SM2=1,REN=1
RET
中断服务程序:限于篇幅,略。
4.结束语
本文介绍的应用于电度表 抄表系统 中 单片机 红外串行通信接口,具有硬件电路简单、成本低廉、编程方便、通信可靠性高的特点。利用手持抄表器可以方便地完成对电度表的抄录和校准等工作,大大提高了抄表工作的效率,而且抄表准确度高并杜绝了估抄和误抄的问题。本文提出的通讯协议能够在多台单片机间安全地传送数据,实现了通信双方非接触式的数据传送,也可用于其他遥控、遥测的单片机应用场合。