0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机C语言编程中定时器初值计算的两种方法

2oON_changxuemc 来源:工程师曾玲 2018-12-30 16:59 次阅读

单片机C语言编程中,定时器的初值对于初学者真的是比较不好计算,因此我总结了以下几种方法。

第1种方法:

#define FOSC 11059200L //晶振的频率

#define TIMS (65536-FOSC/12/1000) //12T mode 对于8051系列单片机通用

//#define TIMS (65536-FOSC/1000) //1T mode STC单片机可以用这个

unsigned int timer0_tick;

int timer0_count;

void Timer0(void) interrupt 1 using 1 //定时器0中断外理

{

TL0=TIMS;

TH0=TIMS>>8;

if(timer0_tick--==0) //加到1000次即1秒

{

timer0_tick=1000;

LED_Timer=~LED_Timer;

}

}

初值的赋值采用的是移位运算:

TL0=TIMS;

TH0=TIMS>>8;

第2种方法:

#define FOSC 11059200L //晶振的频率

TH=(65536-time*FOSC /12)/256

TL=(65536-time*FOSC /12)%256

time就是假设要延时的100ms(要取100000us)

FOSC 是晶振频率

注意:定时器一定要考虑晶振的频率,因为单片机最小的中断时间和频率有关系。

例如:

6MHz晶振对应的时间范围是:512us --- 16.384ms --- 131.072ms

因此,在设置时间前,一定要考虑晶振和定时器的关系。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6043

    文章

    44617

    浏览量

    638141
  • 晶振
    +关注

    关注

    34

    文章

    2899

    浏览量

    68274
  • 定时器
    +关注

    关注

    23

    文章

    3255

    浏览量

    115290

原文标题:单片机C语言编程定时器的几种表达方式

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    怎样去计算定时器初值

    单片机C语言编程定时器初值对于初学者真的是比较
    发表于 07-20 07:07

    Winbond 51单片机定时器初值计算器(工具软件)

    Winbond 51单片机定时器初值计算器(工具软件)
    发表于 06-14 07:53 237次下载

    51单片机定时器初值计算软件工具

    给大空提供个版本,一个是51定时器初值计算器工具另一个是单片机定时器
    发表于 02-13 10:25 506次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>定时器</b><b class='flag-5'>初值</b><b class='flag-5'>计算</b>软件工具

    单片机视频教程06:使用定时器方法

    《手把手教你学单片机单片机视频教程06:使用定时器方法 单片机视频教程06:使用定时器
    发表于 08-21 09:33 1.7w次阅读
    <b class='flag-5'>单片机</b>视频教程06:使用<b class='flag-5'>定时器</b>的<b class='flag-5'>方法</b>

    PIC单片机定时器初值计算器V1.0

    PIC单片机定时器初值计算器V1.0
    发表于 12-28 10:16 16次下载

    14709225341T单片机定时器初值计算器

    单片机定时初值计算器是一款不错的51单片机定时器初值
    发表于 08-31 14:34 19次下载
    14709225341T<b class='flag-5'>单片机</b><b class='flag-5'>定时器</b><b class='flag-5'>初值</b><b class='flag-5'>计算器</b>

    单片机定时器初值计算公式(51单片机和AVR单片机初值计算种方法

    单片机定时器初值计算公式 一、51单片机定时器初值
    发表于 11-09 17:17 8.5w次阅读

    使用51单片机进行定时器初值计算详细资料说明

    本文档的主要内容详细介绍的是使用51单片机进行定时器初值计算详细资料说明包括了:一、10MS定时器初值
    发表于 08-29 17:29 1次下载
    使用51<b class='flag-5'>单片机</b>进行<b class='flag-5'>定时器</b><b class='flag-5'>初值</b>的<b class='flag-5'>计算</b>详细资料说明

    51单片机两种方法点亮LED的C语言程序免费下载

    本文档的主要内容详细介绍的是使用51单片机两种方法总线操作和位操作点亮LED的C语言程序免费下载。
    发表于 08-19 17:31 1次下载
    51<b class='flag-5'>单片机</b>的<b class='flag-5'>两种方法</b>点亮LED的<b class='flag-5'>C</b><b class='flag-5'>语言</b>程序免费下载

    使用51单片机进行定时器初值计算的详细资料说明

    菜鸟关于51类单片机定时器初值计算问题的计算 首先先来介绍单片机的几个周期: 1、时钟周期
    发表于 06-18 17:44 1次下载
    使用51<b class='flag-5'>单片机</b>进行<b class='flag-5'>定时器</b><b class='flag-5'>初值</b><b class='flag-5'>计算</b>的详细资料说明

    单片机定时器初值方法解析

    8位的定时器最大可计数2的8次方为256,16位的定时器最大可计数2的16次方为65536。由于单片机定时器是递加式的,所以最大值减去所要定时
    发表于 11-13 16:28 7622次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>定时器</b>赋<b class='flag-5'>初值</b>的<b class='flag-5'>方法</b>解析

    单片机实现延时两种方法

    单片机系统一般常选用11.059 2 MHz、12 MHz或6 MHz晶振。第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便于精确延时。本程序假设使用频率为12 MHz的晶振。最长的延时时间可
    发表于 11-04 15:36 12次下载
    <b class='flag-5'>单片机</b>实现延时<b class='flag-5'>两种方法</b>

    51单片机定时器初值计算详解

    前言: 本文详细介绍了51单片机学习过程定时器初值计算问题以及相关概念,力求把每一个学习过程
    发表于 11-12 14:51 13次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>定时器</b><b class='flag-5'>初值</b><b class='flag-5'>计算</b>详解

    51单片机定时器初值计算问题

    最近在看51单片机定时器与中断,作为51单片机比较重点的内容,很多人也花费了很长时间在这上面,有些问题网上的资料方法各不相同,也看得云里雾里,比如
    发表于 11-14 19:21 16次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>定时器</b><b class='flag-5'>初值</b><b class='flag-5'>计算</b>问题

    51单片机定时器初值计算以及初值计算软件

    51单片机定时器初值计算以及初值计算软件不想搞懂计算
    发表于 11-23 16:36 6次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>定时器</b><b class='flag-5'>初值</b><b class='flag-5'>计算</b>以及<b class='flag-5'>初值</b><b class='flag-5'>计算</b>软件