新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机这么久,还不会计算定时器初值就out了。

单片机这么久,还不会计算定时器初值就out了。

作者:时间:2017-11-17来源:网络

  在学习的时候,我们发现很多功能都是通过中断来实现的。之前也举过烧水的例子来阐述中断,今天就讲解一下赋初值的方法。8位的最大可计数2的8次方为256,16位的最大可计数2的16次方为65536。由于的定时器是递加式的,所以最大值减去所要定时的值就是初值,举例如下:

本文引用地址:http://www.eepw.com.cn/article/201711/371645.htm

    

 

  最大值为100,我们只需要38,怎么办呢,由于是递加的,我们只需要在62时开始计时就可以了。

  以proteus仿真为例简单讲解定时器赋初值

    

 

  用proteus搭建的电路图如下,晶振为12M,P2.0每10ms翻转一次,即P2.0输出的频率为100HZ。

  这里使用16位的定时器,那定时器0的最大计数就是65536.晶振为12M,那单片机的一个机器周期就是1us,定时器 0工作在方式1时最大定时65.536ms。

  定时器的定时时间T = (65536-X),单位是us;

  定时器初值X = 65536-T;

  假设定时时间T=10ms=10000us,

  那定时器初值X=65536-10000=55536us,也就是定时器0从55536开始递加到65536就是10ms,所以55536就是定时器的初值,55536转化为十六进制为0Xd8f0,所以定时器的初值为:

  TH0 = 0XD8;

  THL = 0XF0;

    

 

  用虚拟示波器抓到的波形如下:

    

 

    

 

    

 

  只需要支付硬件成本的STM32单片机学习板正在集资众筹,价格129元,。这款学习板包含了GPIO应用、RS232通讯、RS485通讯、CAN总线通讯、USB通讯、IIC总线、SPI总线、JTAG在线调试、SW在线调试、ISP自动下载、RTC实时时钟、TFT真彩屏应用等丰富的外设资源,详情请加个人微信号liuzhx2000了解。



关键词: 单片机 定时器

评论

技术专区

关闭