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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.