51单片机(定时器)按键控制led流水灯模式(1)

一、定时器介绍

●定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成
●定时器作用: 
(1)用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作
(2)替代长时间的Delay,提高CPU的运行效率和处理速度............

二、STC89C52定时器资源

       定时器个数: 3个(T0、 T1、T2),T0和T1与传统的51单片机兼容,T2是此型号单片机增加的资源。
       注意:定时器的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的定时器个数和操作方式,但一般来说,T0和T1的操作方式是所有51单片机所共有的。

三、定时器框图

四、定时器工作原理

       当CT=0时,多路开关连接到系统时钟的分频输出,T0对时钟周期计数,T0工作在定时方
。当CT=1时,多路开关连接到外部脉冲输入P3.4/T0,即T0工作在计数方式
       STC89C52系列单片机的定时器有两种计数速率:一种是12T模式,每12个时钟加1,与传统
8051单片机相同,12MHz的外部时钟,12分频以后,为1MHz,即1us计数器加一,也就是说晶振震动12次,计数器加一,所以它的机器周期是12个时钟;另外一种是6T模式,每6个时钟加1,速度是传统8051单片机的2倍,12MHz的外部时钟,6分频以后,为2MHz,即0.5us计数器加一。对于系统的机器周期的选择是在烧录用户程序时在STC-ISP编程器中设置。若设置为6T只需要勾选就可以,若不需要不用勾选,默认下就是12T。

(1)单片机时钟来源:

SYSclk:系统时钟,即晶振周期,本开发板上的晶振为12MHz,

T0 Pin:外部脉冲输入,来一个脉冲,计数加一

        STC89C52系列单片机的定时器0和定时器1,与传统8051的定时器完全兼容,当在定时器1
做波特率发生器时,定时器0可以当两个8位定时器用。
        STC89C52系列单片机内部设置的两个16位定时器/计数器T0和T1都具有计数方式和定时方
式两种工作方式。对每个定时器/计数器(T0和T1),在特殊功能寄存器TMOD(定时器模式寄存器)中都有一控制位一c/T来选择T0或T1为定时器还是计数器。定时器/计数器的核心部件是一个加法(也有减法)的计数器,其本质是对脉冲进行计数。只是计数脉冲来源不同:如果计数脉冲来自系统时钟SYSclk,则为定时方式,此时定时器/计数器每12个时钟或者每6个时钟得到一个计数脉冲,计数值加1;如果计数脉冲来自单片机外部引脚(T0为P3.4, T1为P3. 5),则为计数方式,每来一个脉冲加1。

(2)STC89C52的T0和T1均有四种工作模式:

                            模式0: 13位定时器/计数器

                            模式1: 16位定时器/计数器(常 用)

                            模式2: 8位自动重装模式

                            模式3:两个8位计数器

定时器/计数器0和1的相关寄存器:

 其中TCON控制寄存器可位寻址——可对它其中每一位单独赋值 eg:P2_0=1;

其中TMOD模式寄存器不可位寻址——只能整体赋值 eg:P2=0x01;

定时器控制配置,三个门控,从左到右,非门 或门 与门 ,当GATE(TMOD.3)=0,TR0=1时,则定时器计数;当GATE(TMOD.3)=1,TR0=1时,允许由外部输入INT0控制定时器0,INT1控制定时器1,这样可以实现脉宽测量。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值