首页专业论文技术应用政策标准解决方案常用资料经验交流教育培训企业技术专家访谈电力期刊
您现在的位置:北极星电力网 > 技术频道 > 解决方案 > 多费率电能表中基于单片机串行口红外通信的设计(2)

多费率电能表中基于单片机串行口红外通信的设计(2)

北极星电力网技术频道    作者:谷海明 江海萍   2011/5/4 17:26:53   

 关键词:  多费率 电能表 单片机

 

  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×10-6=26 μs

  

  所以高频调制反转的周期TC=T/2=26/2=13μs

 

  即定时器/计数器T0的初值TL0=TH0=28-(TC×f1)/12=256-(13×10-6×11.0592×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的溢出率)×2SMOD / 32

  

  T1的溢出率=(f1/12)/(28-T1初值)

  

  得:波特率=(T1的溢出率)×2SMOD / 32

  

  =[(f1/12)/(28- T1初值)] ×2SMOD / 32

   

  得:定时器/计数器T1初值

  

  TL1=TH1=28-(f1×2SMOD )/(12×32×波特率)

  

  =256-(11.0592×106)/( 12×32×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

   

   

 

来源:百度文库

广告直拨:   媒体合作/投稿:陈女士 13693626116

关于北极星 | 广告服务 | 会员服务 | 媒体报道 | 营销方案 | 成功案例 | 招聘服务 | 加入我们 | 网站地图 | 联系我们 | 排行