MCS-51系列单片机有两个定时器/计数器: T0和T1,可以用来对外部信号计数或者对外部设备进行定时控制。通常计数功能由外部中断引脚输入信号而发生计数,定时功能是由内部寄存器发生的工作事件。
基础知识:
1.计数:对某一事件的统计,以1为单位进行累加。
2.计数器的容量:计数器的计数是有容量的限制,T0和T1都是由2个8位寄存器组成(TH0和TL0)。MCS-51单片机有四种工作模式,不同的工作模式,计数的容量不同:模式0——13位;模式1——16位;模式2——8位;模式3——8位。当计数器计数溢出时,则会发出请求CPU,CPU中断处理。
3.定时:定时器/计数器处于定时模式时,需要与外部断开连接,即由内部时钟产生计时信号。每个脉冲产生多长时间的定时时间,与单片机本身的震荡频率相关。比如振荡器产生12MHZ的时钟脉冲信号,经过12分频后产生1MHz的脉冲信号,得到每个脉冲信号定时时间是1微秒。定时器工作在模式0时,可以定时65536微秒。
定时器/计数器的结构及工作原理
1.定时器/计数器的结构
T0由TH0和TL0组成;T1由TH1和TL1组成。二者均为16位计数器,以1为单位累加。
除此之外还有TCON以及TMO寄存器,分别控制定时器/计数器的启动、停止和工作方式。
定时器/计数器通过内部总线将控制信号发送给CPU。
2.定时器/计数器的工作原理
计数模式:与外部引脚INT0或者INT1连接,当引脚的信号由1跳变到0时,计数器加1,直至溢出。
定时模式:晶振产生的信号经过12分频后,作为定时器的定时脉冲信号,直至溢出。
定时器/计数器的控制
定时器/计数器只有在TMOD和TCON设置好的前提下,才能快乐的定时或者计数。
定时器/计数器的方式控制寄存器(TMOD):主要功能控制T0和T1的工作方式。对于工作方式的控制:控制M1、M0进行组合的四种工作方式;C/T:控制定时器/计数器的工作模式在定时还是计数。定时器/计数器控制寄存器(TCON):接收各种中断源送来的请求信号,同时对定时器/计数器进行启动和停止控制。
TR0和TR1时启动相应的定时器;TF0和TF1是溢出标志。
定时器/计数器的工作方式:
1.工作方式0(M1M0=00)
以定时器/计数器T1为例。由TL1的低5位+TH1的高8位组成,当7溢出时,TCON寄存器的TF1=1,表示溢出。
如何启动定时器模式?TMOD的C/T=0
如何启动计数器模式?TMOD的C/T=1,当外部中断引脚(INT0、INT1)发生负跳变时,计数器加1.
如何启动定时器或者计数器?GATE=0,只需要启动TR0或者TR1即可;若是GATE=1,需要INT0或者INT1为高电平(高电平无效)+TR0=1或者TR1=1才可以启动。
2.工作方式1(M1M0=01)
16位定时器/计数器,计数溢出时,TF0=1或者TF1=1.工作原理与启动方式与工作方式0相同。
3.工作方式2(M1M0=10)
8位定时器/计数器,解决了重新装在初值的问题。以定时器0为例,TL0与TH0均为8位寄存器,计数开始时,TL0进行计数,当计数溢出时(最大值256),TCON的标志位TF0=1,同时将TH0保存的数值传递给TL0.
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|