定时器:简单的理解就是用来计时或者计数

定时器的作用:定时器的目的主要是用于精准计时,因为使用晶振的方法,常用的晶振为11.0592MHZ(在计算中常取整数12Mhz),所以会出现偏差,或者6MHZ ,所以一般使用的定时器。

单片机中使用定时器/计数 T0T1,它们分别是连接51单片机的  P3.4  P3.5  两个口,其它口I/O口不能使用

定时器/计数器的初始化

1、确定工作方式(即对TMOD赋值);

2、预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1);

3、根据需要开放定时器/计数器的中断(直接对IE位赋值);

4、启动定时器/计数器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚步加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时)。

定时器的工作方式(4种):根据不同的需要选择不同的计时方式

工作方式1(以timer0为例子)

工作方式1的计时方式

工作方式3的工作方式

在定时计时的过程中,往往需要我们计算装载值,也就是计时的时长,下面以工作模式0为例子,

首先要把计时的时长装到寄存器的TH0,TL0,也就是寄存器的高八位,和低8位

计数值的多少和定时器模式使用的位数有关,在其内部已经固定好了,根据实际,选择对应的计时模式,减去的值为所要计时的时长,取整,求余后面为TH0,TL0对应的位数

mode 0 填入计数值范例

mode 1 填入计数值范例

mode 2 填入计数值范例

如何计算定时器所需要的装载值,是定时器的重点

下面以一个例子

 第一步:定时器工作于方式0定时模式

第二步:装入T0的常数。计数器每机器周期计数值加1,机器周期为(题目是6M晶振):

接下来就是计算初值的多少,并把二进制转化为16进制

题目给出是T0,所以是13位定时器的特性,TH0放x的高8位,TL0放低5位,(运用除2求余的方法,就可得到2进制数,)我们将x值重排如下:x = 1111 0000 0 1100,即得本任务的时间常数为:TH0 = F0H,TL0 = 0CH。

 第三步:编写程序,

#include<reg52a.h>

sbit led=P2^5;

void    main()

{

TMOD = 0x00;   //定时器工作模式0

       TH0=0xf0;         //高八位

       TL0=0x0c;        //低5位

while(1)

{

if(TF0)

{

TF0=0;

TL0=0x0c;

TH0=0xf0;

led=~led;

}

}

}

51单片机—— 定时器相关推荐

  1. c语言单片机定时器的应用程序,51单片机定时器中断程序(C语言)

    51c程序 51单片机定时器中断程序(C语言) 用C语言实现的,先要定义好定时器的初值 不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期 机器周期=12/n(n指晶 ...

  2. 基于51单片机定时器计数+2片74HC595联级+8位数码管时钟+按键修改时间

    基于51单片机定时器计数+2片74HC595联级+8位数码管时钟+按键修改时间 Proteus仿真 实例代码 #include "at89x52.h" /**74hc595引脚定义 ...

  3. 51单片机定时器(T0/T1)的使用与配置流程

    第一步:配置工作方式寄存器-TMOD TMOD寄存器的字节地址为89H,不能位寻址.一般采用整体赋值的方式进行配置:如:TMOD=0x01 // 0000 0001 GATE=0,定时器仅受TCON寄 ...

  4. 51单片机定时器的查询和进入中断处理

    51单片机定时器可用两种方式处理:查询和进入中断处理. 1.查询方式 void Init_T0 (void) 定时器初始化 { TMOD = 0x01;//计时器模式 TH0 = (65535-650 ...

  5. 51单片机定时器秒计数时钟+Proteus仿真

    51单片机定时器秒计数时钟+Proteus仿真 Proteus仿真 实例代码 本实例采用的是普中开发板Proteus模板 功能:电子钟,从左到右,1.2位为秒,3.4位为分,5.6位为时,7.8位为天 ...

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

    51单片机定时器初值计算以及初值计算软件 不想搞懂计算原理的直接跳到文章末尾,使用初值计算软件来解决有关初值计算的问题 51单片机定时器初值计算部分 时钟周期,也称为振荡周期:定义为时钟脉冲的倒数,在 ...

  7. 51单片机定时器/计数器(定时器中断)

    51单片机定时器/计数器(中断系统:定时器中断) 实现功能 通过定时器终端控制LED灯 D1 间隔一秒闪烁 单片机型号:STC89C52 定时器介绍 1.51单片机定时器原理 定时器实质上就是一个加1 ...

  8. 【51MCU】51单片机定时器中断写MIDI音乐(按键可切换音乐)

    Author: Manba Cople 专业:IOT 说明:记录和输出学习内容 文章目录 前言 定时器 音乐播放 音乐库 总结和展望 前言 程序思路:该程序是利用51单片机的定时器中断,另外根据音符的 ...

  9. 51单片机定时器及其应用(2)(测量脉冲宽度)

    51单片机定时器及其应用(2)(测量脉冲宽度) 上一篇文章讲了如何使用51单片机的定时器功能制作一个简易的数字钟,上次有一个GATE位没有涉及到,因此这次来介绍一下定时器的这个GATE位的应用,也就是 ...

  10. 51单片机定时器及其应用(3)(测量脉冲频率)

    51单片机定时器及其应用(3)(测量脉冲频率) 前面介绍了定时器的一般应用以及定时器GATE位的应用,还有一个位没有介绍,那就是定时器C/TˉC/\bar{T}C/Tˉ位.前面讲解定时器时总是写作定时 ...

最新文章

  1. python 难度-Python分析 oj 网的题目难度和通过率的关系
  2. stdthread(2)创建
  3. 21天让你成为Horizon View高手—Day18:Windows操作系统优化
  4. 网络验证php接口逆向,一个专利查错的逆向(网络验证)
  5. C#中的扩展方法,Linq,IO和多线程的定义和实例
  6. make -j32 21 | tee show.log
  7. 多线程之并发基础(四)
  8. ffmpeg和opencv 播放视频文件和显示器
  9. vue通过webpack打包后怎么运行
  10. OpenCV精进之路(零):HighGUI——读写XML和YML文件
  11. 缺陷检测算法matlab,MATLAB 基于模板匹配的玻璃瓶口缺陷检测
  12. IIR型高斯滤波的原理及实现
  13. 河北工业大学 高等数学学习资料分享(课件,录屏,教材,答案)
  14. java游戏开发入门(一) - HelloWorld
  15. mosek安装及出现的问题解决方法
  16. 小程序引入外部icon图标
  17. 了解下常用分析JVM参数以及优化工具
  18. Python实现测量平差数据处理
  19. #!/bin/bash 和 #!/usr/bin/env bash 的区别
  20. 郸城二高2021年高考成绩查询,郸城几所高中高考成绩汇总!有你们村的没?

热门文章

  1. 基于微信小程序在线音乐播放交流系统 uniapp
  2. Excel~TODAY与NOW以及怎样提取年月日星期数等函数
  3. 计算机审计在预算执行应用,计算机在金融监管部门预算执行审计中的应用
  4. 金立f5android10,金立F5和金立S9哪个好?金立F5和金立S9区别对比评测
  5. 见证奇观(重庆日全食,最美、最好)
  6. intel固态硬盘tbw什么意思
  7. 计算机wps二级知识选择题,计算机等级考试一级WPS选择题精选试题及答案
  8. 如何把手机上的B站视频导入电脑观看:使用 FFmpeg(bilibili视频m4s合成mp4)
  9. 日常办公会用到的python模块-宝安2020年_商务办公软件应用与实践_高校邦_期末答案...
  10. rpm安装与卸载命令