51单片机之定时器篇

这篇具有很好参考价值的文章主要介绍了51单片机之定时器篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先,学好单片机必须要搞懂定时器,定时器是单片机重要的组成部分之一,总之,学不好定时器,单片机相当于没学,下面就让我介绍如何学好单片机定时器。

学习单片机首先要明白的:

1,51单片机有两组定时器/计数器,既可以定时,又可以计数,总称之定时器

2,单片机内的定时器和CPU是相互独立的,互不影响。

3,有了定时器可以增加单片机的效率。

4,51单片机中的定时器是根据机器内部的时钟或者是外部的脉冲信号实现对寄存器的自加一。

定时器的工作原理:

1,CPU时序问题

振荡周期:为单片机提高定时信号的振荡源周期。

状态周期:2个振荡周期为一个状态周期。

机器周期:一个机器周期包含六个状态周期,十二个振荡周期。

指令周期:完成一条指令所占用的全部时间。

2,定时器内部结构

51单片机之定时器篇

 定时/计数器的实质是加一计数器(16位),由高8位和低八位两个寄存器TH和TL组成,TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TMON是控制寄存器,控制T0,T1的启动和停止及设置溢出标志位。

3,定时器的控制

1,工作方式寄存器TMOD

    工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1,格式如下:

工作方式寄存器TMOD
7 6 5 4 3 2 1 0
字节地址:89H GATE C/T M1 M0 GATE C/T M1 M0 TMOD

GATE:门控位,GATE=0时,用于控制定时器的启动是否受外部中断源信号的影响,只要用软件使TCON中的TR0或者TR1为1,就可以启动定时器;而当GATE=1时,要用软件使TCON中的TR0或者TR1为1,同时外部中断INT0/1也为高电平,才能启动定时器。

C/T:定时/计数模式选择位。C/T=0时,为定时模式;C/T=1时,为计数模式;

M1M0:为工作方式设置位。

工作方式设置表
M1M0 工作方式 说明
00 方式0 13位定时/计数器
01 方式1 16位定时/计数器
10 方式2 8位自动重装定时/计数器
11 方式3 T0分为两个独立的8位定时/计数器

2,工作方式寄存器TCON

     TCON的低四位用于外部中断,暂时不用了解,高四位用于定时/计数器的启动和和中断申请

4

工作方式寄存器TCON
7 6 5 4 3 2 1 0
字节地址:88H TF1 TR1 TF0 TR0 TCON

TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1=1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。
TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。
TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。
TR0(TCON.4):T0运行控制位,其功能与TR1类同。

定时器/计数器的工作方式:

方式1:

51单片机之定时器篇

计数个数与计数初值的关系为:X=2^16-N 

方式2:

51单片机之定时器篇

计数个数与计数初值的关系为:X=2^8-N 

方式三:

51单片机之定时器篇

T0分为两个独立的8位计数器TL0和TH0

始化程序应完成如下工作:
1,对TMOD赋值,以确定T0和T1的工作方式。


2,计算初值,并将其写入TH0、TL0或TH1、TL1。


3,中断方式时,则对EA赋值,开放定时器中断。


4,使TR0或TR1置位,启动定时/计数器定时或计数。

定时0实现LED一秒亮灭闪烁程序:

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit led=P1^1;
void timer0Init();
void timer0() interrupt 1        
{ 
	static u16 count;
    TH0=0xfc;
	TL0=0x18;
	//count++;
	if(count-- ==0)     //LED一秒闪烁亮灭
		{
		count=1000;
		led=~led;
		}
	

}
int main()
{
 timer0Init();
  while(1);
}

void timer0Init()      //定时器的初始化
{
    TMOD=TMOD|0X01;      //对TMOD赋值
	TH0=0xfc;          //高位赋值
	TL0=0x18;          //低位赋值
	ET0=1;            //定时器中断允许位
	EA=1;             //总中断开关
	TR0=1;            //开始计数控制位
}

如果不懂,可以随时解答,谢谢支持!文章来源地址https://www.toymoban.com/news/detail-512966.html

到了这里,关于51单片机之定时器篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51单片机之定时器篇

    首先,学好单片机必须要搞懂定时器,定时器是单片机重要的组成部分之一,总之,学不好定时器,单片机相当于没学,下面就让我介绍如何学好单片机定时器。 学习单片机首先要明白的: 1,51单片机有两组定时器/计数器,既可以定时,又可以计数,总称之定时器 2,单片

    2024年02月11日
    浏览(53)
  • 51单片机 | 定时器中断实验

      这一节介绍51单片机的定时器中断。 STC89C5X 含有 3 个定时器:定时器 0、定时器 1、定时器 2(注意: 51 系列单片机一定有基本的 2 个定时器(定时器 0 和定时器 1),但不全有 3 个中断,需要查看芯片手册,通常我们使用的是基本的 2 个定时器:定时器 0/1)。本节要实现

    2024年02月06日
    浏览(111)
  • 51单片机PWM(定时器)

    目录 前言 一、PWM的介绍 二、在定时器中配置PWM 三、代码  总结         PWM普遍应用于惯性系统,我们知道单片机几乎只能输出“1”和“0”两种状态,即开和关,想要输出模拟量是不太容易实现的,那么怎样才能使单片机输出平滑的线性信号呢?没接触过PWM的小伙伴可能第

    2024年02月09日
    浏览(55)
  • 【51单片机】:定时器的详解(包括对单片机定时解释、各类定时方式,以及中断方式)

              51定时/计数器的详解。                   码字不易,如有帮助请收藏,点赞哦。         前提:首先我们知道51单片机内部有21~26个特殊功能寄存器: P.x口寄存器:P0、P1、P2、P3 数据指针寄存器:DP0H、DP0L、DP1H、DP1L 定时器: TH1、TL1、TH0、TL0、TMOD、TCON 串口:

    2024年02月07日
    浏览(97)
  • 51单片机定时器基础知识

    经验总结:定时器0工作方式1的溢出中断初始值计算 1.晶振11.0592M 11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期。 65536-46080=19456(4c00) TH0=0x4c,TL0=0x00 2.晶振12M 12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次 机器周期。 65536-50000=15536(3cb0) TH0=0x

    2024年02月04日
    浏览(115)
  • 51单片机定时器中断TMOD

    最近在学定时器中断TMOD,写程序时,要对定时器进行配置 对TMOD进行赋值时,拌了好久。。。。 如何根据所用的      定时器0/1 ,  工作方式0/1/2/3      对TMOD赋值呢? 我们知道: 1.TMOD长这样 :  由八位组成,前四位是T1的参数;后四位是T0的参数;GATE 和 C/T\\\' 不用多讲,

    2024年02月12日
    浏览(47)
  • 51单片机中断定时器1用法

    中断为使单片机具有对内部或外部随机发生的事件实时处理而设置的。 中断技术不仅解决了快速主机与I/O设备的数据传送问题,而且还有具有如下的优点: 1. 分时操作:CPU可以分时为多个I/O设备服务,提高了计算机的利用率。 2. 实时操作:CPU能够及时处理应用系统的随机事

    2024年02月06日
    浏览(61)
  • 【单片机c51】定时器应用1

    1.系统时钟为12MHz,编程实现从P1.0引脚输出一个周期为2ms的方波。 注:要想产生一个周期2ms的方波,定时器应产生1ms的周期性的定时,定时对P1.0求反。选择定时器T0,方式1定时,采用中断方式,GATE不起作用。   注:1.EA=1 所有的中断请求被开放 2.ET0=1  允许T0溢出的请求 3.T

    2024年02月04日
    浏览(54)
  • 51单片机-定时器(简易时钟的实现)

    最近在学习51单片机,学到了 定时器 这块,由于自己的基础不太扎实,在这方面花了很多时间,这里通过对定时器和中断的介绍,用 简易时钟 这个例子来对学习的内容进行加深巩固,把自己的经验分享给大家,希望对大家能够有帮助。 其实就是单片机的内部,通过系统时钟

    2024年02月03日
    浏览(68)
  • C51单片机——中断与定时器

    中断是大多数CPU最精彩的部分之一,下面我们通过讲解和编程练习学习中断和定时器相关概念 目录 1.1.什么是中断 1.2.中断的种类 1.3中断的相关概念 1.4. 51单片机可用中断及相关引脚 1.4.寄存器 1.5.中断优先级 在未进行任何关于优先级的设置情况下,51 单片机(52 单片机)中断

    2024年02月03日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包