当前位置:首页>>单片机定时器学习汇总

单片机定时器学习汇总

发布时间:2016-03-28作者:小王子

  1时钟周期=1/晶振频率M

  1机器周期=12(51系列12T,若1T则为1)X时钟周期 = 12(1)X(1/晶振频率M) = 1 us(1/12 us)

  1us机器周期脉冲数=晶振频率f/12

  假设12MHZ晶振工作在51单片机12T模式下,需要使用定时器进行50MS定时操作,定时器工作在方式1;

  12M的晶振每秒(s)可产生1M(10^6 us)个机器周期

  50ms就需要50×1000 us × 1us(1机器周期)个机器周期 = 50000

  定时器在方式1工作,是16位计数器,最大值为65536(2^16),也就是能进行最大65536次计数

  50ms定时操作需要50000个机器周期,1个机器周期=1us,所以需要50000次计数操作

  为了计数器定时器工作,需要预先填充定时器初值(初值=定时器计数最大计数次数 - 所需定时计数次数)

  所以需设置定时器初值15536 = 65536 -50000,即3CB0H(10进制15536转换成16进制数3CB0),所以TH0=0x3c,TL0=0xb0,高位就是TH0的值,低位为TL0的值

  若假设使用11.0592MHZ的晶振,其他条件不变

  11.0592M的晶振每秒可产生0.9216M个机器周期,50ms就需要46080个机器周期

  定时器在方式1工作,是16位计数器,最大值为65536,所以需设置初值19456 = 65536 - 46080,即4C00H

  所以TH0=0x4c,TL0=0x00。

  推导方式1 ,16位定时器/计数器初值设定高8位TH0,低TL0的公式为:

  TH0=(65536- 所需计数次数)/256 = 初值/256;

  TL0=(65536 - 所需技术次数)%256 = 初值%256;

  为什么除以256,因为我们的计时器是两个8位组成的,那么要把那些差值装进这两个8位,计数从低8位开始,那么低8位最多能装256个机器周期,那么256计满了就用高8位的,就是说低8位满一次高8位加1,那么高8位装多少,低8位就满了几次,算法就是用差值除一下256取其整数,剩下的,就是还剩了小于256次数的就放在低8位,就是差值 的余数。

  void timer0() interrupt 1

  {

  TH0=(65536-50000)/256;

  TL0=(65536-50000)%256;

  flag++;

  if(flag==20)//当定时到1秒时执行花括号里面的语句

  { }

  }

  ---------------------------------------------------------------------------------------

  at89s52,晶振频率12m

  其程序如下:

  #include

  #include

  void timer0_iNIt()

  {

  TMOD=0x01;//方式1

  TL0=0xb0;

  TH0=0x3c;

  TR0=1;

  ET0=1;

  }

  void timer0_ISR(void) interrupt 1

  {

  TL0=0xb0;

  TH0=0x3c;//50ms中断一次

  single++;

  if(single==20)

  { kk++;

  single=0;

  }

  }

  void main()

  {

  int kk=0;//计数器

  int single=0;

  timer0_init();

  }

 

公司简介

宜科(天津)电子有限公司是中国工业自动化的领军企业,于2003年在天津投资成立,销售和服务网络覆盖全国。作为中国本土工业自动化产品的提供商和智能制造解决方案的供应商,宜科在汽车、汽车零部件、工程机械、机器人、食品制药、印刷包装、纺织机械、物流设备、电子制造等诸多领域占据领先地位。宜科为智慧工厂的整体规划实施提供自系统层、控制层、网络层到执行层自上而下的全系列服务,产品及解决方案涵盖但不局限于云平台、MES制造执行系统、工业现场总线、工业以太网、工业无线通讯、机器人及智能设备组成的自动化生产线、自动化电气控制系统集成、智能物流仓储系统等,以实现真正智能化的生产制造,从而带来生产力和生产效率的大幅提升,以及对生产灵活性和生产复杂性的管理能力的大幅提升。多年来,宜科以创新的技术、卓越的解决方案和产品坚持不懈地为中国制造业的发展提供全面支持,并以出众的品质和令人信赖的可靠性、领先的技术成就、不懈的创新追求,在业界独树一帜。帮助中国制造业转型升级,加速智能制造进程,成为中国工业4.0智慧工厂解决方案当之无愧的践行者。

更多详情>>

联系我们

  • 联系人:章清涛
  • 热线:18611695135
  • 电话:
  • 传真:
  • 邮箱:18210150532@139.com

Copyright © 2015 ilinki.net Inc. All rights reserved. 智汇工业版权所有

电话:010-62314658 邮箱:service@ilinki.net

主办单位:智汇万联(北京)信息技术有限公司

京ICP备15030148号-1