T2定时器应用

 
 
定时器T2有三种工作模式,其中MODE 2为波特率发生器。
 
1 、Mode 2 :波特率发生器
串口方式1和3的波特率计算如下:
波特率 bps= 振荡器频率 freq/[32*(65536-(RCAP2H, RCAP2L))]
则: RCAP2=65536-(freq/32/bps)
如果freq=11.0592MHZ,bps=9600,则:RCAP2 = 65500
RCAP2H = 255;RCAP2L = 220
 
此时的程序设置如下:
uint a, bps = 96;    // 9600 bps
         SCON |= 0x50;          // 0101 0000 串口方式 1, 允许接收
         a=3456/bps;         a=~a;
         RCAP2H = a/256;        RCAP2L = a;         T2MOD=0x00;
// T2CON =  0    0    1     1     0      1   0    0      = 0x34
//                  TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2
         T2CON=0x34;      // TF2=0;EXF2=0;RCLK=1;TCLK=1;EXEN2=0;TR2=1;C/T2=0;CP/RL2=0
         EA = 1;         ES = 1;      TI = 1;
 
2 Mode 0 :自动装载 16 位定时器
// 10000周期定时
#define MSB_reload_value 216 /* msb reload value exemple */
#define LSB_reload_value 240 /* lsb reload value exemple */
 
T2MOD |= 0x01;        T2EX=1;
TH2=MSB_reload_value;          // Init msb_value
TL2=LSB_reload_value;          // Init lsb_value
RCAP2H=MSB_reload_value;    // reload msb_value
RCAP2L=LSB_reload_value;     // reload lsb_value
EA=1;                       // interupt enable
ET2=1;                      // enable timer2 interrupt
// T2CON =  0    0    0    0    0     1   0    0      = 0x04
//                  TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2
T2CON = 0x04;
 
 
 
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值