保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

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


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的中断服务程序中只用两条指令即可实现高频调制,即CPLP3.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的汇编语言程序设计如下:
  ;以下为参数设置程序
  MOVTMOD,#22H;定时器/计数器T0方式2自动重装模式用于PWM38.4KHZ调
  ;制用,定时器/计数器T1方式2自动重装模式用于串行口通讯波特率发生器
  MOVTH1,#0E8H;波特率1200时,定时器/计数器T1自动重装初值
  MOVTL1,#0E8H
  MOVTH0,#0F4H;38.4KHz高频频调制时,定时器/计数器T0自动重装初值
  MOVTL0,#0F4H
  SETBET0;定时器/计数器T0溢出中断允许位
  SETBTR1;定时器/计数器T1开始定时控制位
  SETBTR0;定时器/计数器T0开始定时控制位
  MOVPCON,#00H;SMOD为0不倍增模式
  MOVSCON,#0D0H;串行口设置为模式3,允许接收
  SETBES;串行口允许中断
  SETBEA;开总中断允许位
  ;以下为定时器/计数器T0中断溢出服务程序

《多费率电能表中基于单片机串行口红外通信的设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/170175.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。