作者Email: 3-14159265@163.com 摘要:运用单片机的串行口、守时器/计数器T0、守时器/计数器T1、红外发射管和红外接纳管等简略的软硬件就牢靠地完成了多费率电能表的红外通讯功用。本规划详细介绍了串行口红外通讯的软硬件规划办法,并给出了详细的电路原理图、波形图和51单片机程序。 关键词: 红外通讯 串行接口 电能表 SSU7301单片机 0 导言 多费率电能表是我国现在节约用电和方案用电方针下不行短少的电能计量产品,多费率电能表的通讯接口一般兼有红外接口和RS485接口。红外通讯具有直观、操作简洁、牢靠性高级长处,是电能表中运用最为遍及的一种通讯方法,是电能表和掌机之间完成抄表、编程、校时、数据管理等功用的有用手法。选用新茂单片机 SSU7301(51系列)、日本光电子公司的红外发射管SE303和红外接纳管PIC12043,以及单片机串行口、2个守时器/计数器能够有用地完成红外通讯功用。 1 红外通讯原理 红外通讯是运用波长为900nm~1000nm的红外波作为信息的载体,发射设备把二进制信号经过高频调制后发送出去,接纳设备把接纳的红外高频信号进行解调为本来信息的一种通讯传输方法。其间调制方法有脉宽调制(经过改动脉冲宽度调制信号PWM)和脉时调制(经过改动脉冲串之间时刻距离调制信号PPM)两种,本文选用PPM脉时调制方法。 2 串行口红外通讯硬件规划 多费率电能表的红外发射和红外接纳电路首要包含新茂单片机SSU7301、日本光电子公司的红外发射管SE303和红外接纳管PIC12043,以及驱动三极管8550、电阻和电容,红外通讯硬件原理图见图1。
2.1 红外发射硬件规划 红外发射是运用单片机SSU7301的串行数据发送口TXD(P3.1)操控驱动三极管BG1进行二进制数据“0”和“1”的传输(数据由串行发送缓冲器 SBUF中送出),以及运用P3.4口操控驱动三极管BG2进行高频38.4kHz调制(高频驱动信号由守时器/计数器T0的方法2主动重装形式发生),然后牢靠地完成了红外发射管D1在传输数据“0”时进行高频红外发射和数据“1”时被截止的发射功用。状况联系见表1,波形见图2。 2.2 红外接纳硬件规划 红外接纳是运用红接纳管PIC12034收到高频信号输出低电平确定为数据“0”,而没收到高频信号输出高电平确定为数据“1”的方法经过解调,把数据经过单片机SSU7301的串行数据接纳口RXD(P3.0)进行串行方法接纳(接纳数据存储在串行口缓冲器SBUF中)。 3 红外通讯软件规划 DL/T645-1997《多功用电能表通讯》中规则电能表的红外载波频率为38kHz%26;#177;1kHz;初始速率为1200 bps;通讯的字节格局为8位二进制码D0~D7,传输时加上一个开端位(0),一个偶校验位P和一个中止位(1),共11位,传输时先传低位,后传高位,传输序列见图3。依据以上要求,本规划中红外载波频率选用38.4kHz,波特率为1200bps,串行口选用形式3为9位异步通讯方法,加1位开端位和1位完毕位,传送一个字节数据为11位。
3.1 红外载波和守时器/计数器T0设置 红外载波频率f2为38.4kHz,当守时器/计数器T0形式操控器TMOD中C/T=0和M1M0=10时,SSU7301的守时器/计数器T0设置成形式2方法。此刻,TL0和TH0预置成1个能够主动重装的8位的守时器/计数器。用软件将TL0和TH0预置相同的初值后,当TL0计数值增1溢出时,一方面使TF0置1,请求中止;另一方面发生的溢出脉冲将TH0的数据值主动打入到TL0中去,不需要用软件对TL0从头置初值。体系的晶振f1为 11.0592MHz,则TL0和TH0的初值核算如下: f2=38.4kHz 得T=1/f2=1/38.4k≈26%26;#215;10-6=26 μs 所以高频调制回转的周期TC=T/2=26/2=13μs 即守时器/计数器T0的初值TL0=TH0=28-(TC%26;#215;f1)/12=256-(13%26;#215;10-6%26;#215; 11.0592%26;#215;106)/12=256-11.9808≈244=0F4H 在守时器/计数器T0的中止服务程序中只用两条指令即可完成高频调制,即 CPL P3.4和RETI。 3.2 串行口和守时器/计数器T1波特率发生器设置 串行口选用形式3为9位异步通讯方法,波特率为1200bps。由串行口操控寄存器SCON的操作形式挑选位SM0、SM1都置1设置为形式3,当守时器 /计数器T1形式操控器TMOD中C/T=0和M1M0=10时,SSU7301的守时器/计数器T1设置成形式2方法作为波特率发生器,其波特率表明为: 波特率=(T1的溢出率)/ n 当SMOD=0时,n=32;当SMOD=1时,n=16,(本规划中SMOD=0)则波特率=(T1的溢出率)%26;#215;2SMOD / 32 T1的溢出率=(f1/12)/(28-T1初值) 得:波特率=(T1的溢出率)%26;#215;2SMOD / 32 =[(f1/12)/(28- T1初值)] %26;#215;2SMOD / 32 得:守时器/计数器T1初值 TL1=TH1=28-(f1%26;#215;2SMOD )/(12%26;#215;32%26;#215;波特率) =256-(11.0592%26;#215;106)/( 12%26;#215;32%26;#215;1200) =256-24=232=0E8H 3.3 程序规划 依据以上两点参数的设置,51系列单片机SSU7301的汇编语言程序规划如下: ;以下为参数设置程序 MOV TMOD, #22H ;守时器/计数器T0方法2主动重装形式用于PWM38.4KHZ调 ;制用 , 守时器/计数器T1方法2主动重装形式用于串行口通讯波特率发生器 MOV TH1,#0E8H ;波特率1200时,守时器/计数器T1主动重装初值 MOV TL1,#0E8H MOV TH0,#0F4H ;38.4KHz高一再调制时, 守时器/计数器T0主动重装初值 MOV TL0,#0F4H SETB ET0 ; 守时器/计数器T0溢出中止答应位 SETB TR1 ; 守时器/计数器T1开端守时操控位 SETB TR0 ; 守时器/计数器T0 开端守时操控位 MOV PCON,#00H ;SMOD为0不倍增形式 MOV SCON,#0D0H ;串行口设置为形式3,答应接纳 SETB ES ;串行口答应中止 SETB EA ;开总中止答应位 ;以下为守时器/计数器T0中止溢出服务程序 ORG 000BH; 守时器/计数器T0中止进口地址 T0SERVE:CPL P3.4 ; 守时器/计数器T0守时取反P3.4口进行高频调制 RETI ;中止回来 ;以下为串行口中止服务程序,以接纳一个字节数据为例,多字节以此类推 ORG 0023H;串行口中止进口地址 SENDSERVE:NOP NOP MOV A,SBUF ;把接纳缓冲器的数据送到A寄存器 … ;进行数据处理及其它功用操作 RETI ;中止回来 ;以下为串行口发送程序,以发送一个字节数据为例, 多字节以此类推 COMSEND: MOV A,#DATAH ;把数据送到A寄存器 MOV C,P ;依据A中数据发生的偶校验位送到进位标志位 MOV TB8,C ;送偶校验位到发送的第9位数据 MOV SBUF,A ;送数据到发送缓冲器 JNB TI,$ ;以查询方法等候发送完毕 CLR TI ;清发送中止标志位 … ;持续发送或其它功用操作 RET 子程序回来 4 完毕语 本规划的最大特色在于省掉了脉冲振荡器,而只是运用多费率电能表上所带单片机的串行口和2个守时器/计数器,这不只使多费率电能表在硬件规划上愈加简略、本钱愈加低价,并且在软件上也愈加便利、牢靠。一起这种红外通讯方法也能够应用在带串行口和守时器/计数器的单片机应用领域。 本文所附 SCH 图 由下下载: http://www.21ic/upload-image/pic.Sch