历史上的今天
今天是:2025年04月21日(星期一)
2021年04月21日 | 51单片机T2定时器应用
2021-04-21 来源:eefocus
定时器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;
史海拾趣
|
德国mandia大功率LED专用荧光粉 一、简介 德国mandia大功率LED荧光粉是(Deutschland Mandia Materials Development Co., Ltd)德国mandia公司应对新世纪的照明工业的发展研制而成,该产品粒径15±0.1mil,适用于450-470NM芯片,亮度与市场上小功率 ...… 查看全部问答> |
|
下面是处理电源irp的代码节选,问题是:为什么提高电源级别时使用完成例程,而降低电源级别时直接使用PoSetPowerState( pDevObj, type, newState);?请高手赐教! if (newState < pDevExt->currentPowerState) {& ...… 查看全部问答> |
|
请问各位高手和大侠!! 怎么样才能入门CAN-BUS,小弟现在看了关于CAN-BUS的书籍,但是就是不明白里面协议,请高手指点,怎么入门,会编写程序,会应用?… 查看全部问答> |
|
uC/OS-II官方STM32版本修改后在万利的STM32开发板上运行 bh3nvn:您好,学习单片机和ARM也都四五年了,我本身电气工程毕业的,所以操作系统的东西一直没时间琢磨,也一直想 ...… 查看全部问答> |
|
STM32固件库的CMSIS简析 [ 2011-2-23 11:26:00 | By: banyai 2011-8-19 Edit By:tony STM32的V3.3.0库,内有CMSIS的文件夹为arm Cortex微控制器软件接口标准,现在 ...… 查看全部问答> |
|
拜托各位大侠帮忙给看看这个程序,msp430f149单片机,为何ADS1211不用读值,正确的程序应该怎样写,谢谢了 [ 本帖最后由 cumtszs 于 2011-9-6 16:29 编辑 ]… 查看全部问答> |




