c51定时器

关于时钟周期,机器周期
在这里插入图片描述
寄存器加1经过了多少时间
例如;晶振频率为11.0592MHZ
时钟周期=1\11.0592us,机器周期=12\11.0952=1.085us(寄存器加1就是这里的时间),并且每走一个机器周期等于寄存器走一位,这里时两个八位为16位的二进制2 ^ 16 =65536。
走完的时间为65536*1.085=71ms
如何定义10ms
这里诺想要定义10ms,不能让它从0开始计时,需要10/1.085=9620(10ms需要多少的数)所以必需要从65536-9620=56320开始,56320是寄存器开始的位十六进制位DC00
低位 TL0=0x00
高位 TH0=0xDC
在这里插入图片描述
如何开始定时
TMOD=0x01;这里是根据TMOD的寄存器选择工作模式并且设置成十六位二进制,为定时器0.
在这里插入图片描述
如何看出爆表
TF0这个位为1时,就是读数一轮完成,没有中断的话,这里需要手动设置为0.

#include"reg52.h"

//sbit led1=P3^7;
sbit led2=P3^6;

void main()
{
  int cnt=0;

  TMOD=0x01;//1.配置定时器0工作模式

  TL0=0x00;
  TH0=0xDC;//2.给个初值定时10ms

  TR0=1;//3.开始计时
 
  //led1=1;
  led2=1;

  while(1)
  {
     if(TF0==1)//4.爆表了,这个位为1,需要手动设置为0
	 {
	 
	    TF0=0; 
		TL0=0x00;
        TH0=0xDC;
		cnt++;
	 }
	 if(cnt==50)
	 {
	    led2=!led2;//io口状态反转
		cnt=0;
	 }
  }
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值