定时器和串口
来源:互联网 发布:cd音轨抓取软件 编辑:程序博客网 时间:2024/06/08 06:09
定时器:
定时器学习关键一步,就是能够看明白下面 定时器模式0的框架图。
如果你正真理解了这个框架图,那么定时器、计数器,甚至串口的波特率设定,都不在话下。
那么就一定要耐着心思,把这个框框图看明白!
上面标识出来了两部分。
定时器各种模式,
在模块1这部分,控制是相同的;
在模块2这部分,就是要根据是13/16/8位计数的不同,采用不同的公式计算即可。
模块一,对应的控制寄存器主要有两个。
TMOD :
TCON:
简单识别一下上个框框图中一部分,如下:
由上图逻辑关系可知,GATE位如果为0(注意:GATE位后有一个“非门”),则经过 “或门” 输出后,输出点一定为 1;而且该输出点位,不再受INT(外部中断脚位)控制。也就说明,GATE为0时,一定是作为 定时器 而 非计数器用的。
TR位,只有为1,后端定时、计数功能才会起作用。如果TR为0,则通过框框图可知,定时/计数功能,已关闭了。
其他位,实际都比较好理解。如:C/~T / IE / IT / TF,不过要要注意下 IT位选择,IT位控制了 中断触发模式,IT=0 时,为低电平触发;IT=1时,为电平高→低变化时触发中断。
模块2:
该部分只提供一个模式0的公式,实际上这部分就是一个算数的问题。
CusTimeLen = (2(13/16/8次方) - X)*12/晶振频率
值得说明的是 模式0 13位计数时,寄存器的设定要注意移位。
例如:
X = 0x1E0C
那么TH0 = 0xF0(0x1e<<3)
TL0 = 0x0C
因为 模式0 , THX 低五位 溢出后,便进位。因此,计算出结果后,要讲高8位,左移三位后,得到THx的值。
串口:
控制寄存器如下:SCON
波特率 = 2(SMOD)/32*定时器1的溢出率。
定时器1的溢出率,可通过第一部分定时器说明设定即可。
- 定时器和串口
- 二,ESP8266 GPIO和SPI和定时器和串口
- 51单片机的定时器0和串口同时使用问题
- 8051单片机串口波特率和定时器1的初值计算
- 单片机定时器/计数器、中断和串口控制位
- 定时器2+串口发送
- 定时器1,作串口用
- avr串口通信和定时器产生矛盾(两种中断方法声明的异同)
- 定时器中断和按键中断控制dht11温湿度采集串口输出实验源码
- Java定时器,Spring定时器和quartz定时器
- java定时器,Spring定时器和Quartz定时器
- java定时器,Spring定时器和Quartz定时器
- 串口中断结合定时器实现稳定可靠的串口接收
- zigbee zstack 串口,按键,消息,定时器
- ARM裸机程序之串口控制定时器
- python串口编程,使用线程定时器
- Spring --- java定时器,Spring定时器和Quartz定时器
- Spring --- java定时器,Spring定时器和Quartz定时器
- 大型web 应用服务架构配置一栏
- 如何学习单片机?
- 2012.1.28-月记计划书
- fiddler使用记录
- objective-c中字符串反向查找
- 定时器和串口
- MFC显示flash动画
- Google搜索到Amazon的产品点击相关链接进入之后
- 对于MVC设计模式的一点疑惑
- 23种设计模式(Design pattern)
- 【Killua笔试题面试题整理】n是一个奇数,求证n(n^2-1)能被24整除
- Windows api之SetPolyFillMode的winding填充模式原理
- minimizing the attack surface
- 在Eclipse中查看JDK类库的源代码