51单片机T2定时器应用

来源:本站
导读:目前正在解读《51单片机T2定时器应用》的相关信息,《51单片机T2定时器应用》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《51单片机T2定时器应用》的详细说明。
简介:定时器T2有三种工作模式,其中MODE 2为波特率发生器。

定时器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 */

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;

提醒:《51单片机T2定时器应用》最后刷新时间 2024-03-14 01:08:00,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51单片机T2定时器应用》该内容的真实性请自行鉴别。