IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 51单片机定时器 -> 正文阅读

[嵌入式]51单片机定时器

1.原理:

一.CPU 时序的有关知识:
  1.振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡 周期)。 
  2.状态周期:2 个振荡周期为 1 个状态周期,用 S 表示。振荡周期又称 S 周 期或时钟周期。 
  3.机器周期:1 个机器周期含 6 个状态周期,12 个振荡周期。 
  4.指令周期:完成 1 条指令所占用的全部时间,它以机器周期为单位

二.学习定时器前需要明白的几点:
  1.51 单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之 为定时器/计数器。 
  2.定时器/计数器和单片机的 CPU 是相互独立的。定时器/计数器工作的过程 是自动完成的,
    不需要 CPU 的参与。 
  3.51 单片机中的定时器/计数器是根据机器内部的时钟或者是外部的脉冲信 号对寄存器中的数据加 1。  
   有了定时器/计数器之后,可以增加单片机的效率,一些简单的重复加 1 的 工作可以交给定时器/计数
   器处理。CPU 转而处理一些复杂的事情。同时可以实 现精确定时作用。

三.原理:
  定时/计数器的实质是加 1 计数器(16 位),由高8位和低 8 位两 个寄存器 THx 和 TLx 组成。
  它随着计数器的输入脉冲进行自加 1,也就是每来一个脉冲,计数器就自动加 1,当加到计数器为全1时,
  再输入一个脉冲就使计数 器回零,且计数器的溢出使相应的中断标志位置 1,向 CPU 发出中断请求
 (定时 /计数器中断允许时)

四.相关寄存器:
    51 单片机定时/ 计数器的工作由两个特殊功能寄存器控制。
  1.TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能。
  2.TCON 是控制寄存器,控制 T0、 T1 的启动和停止及 设置溢出标志。

?TMOD寄存器:

工作方式寄存器 TMOD 用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
GATE 是门控位:
? ????????GATE=0 时,用于控制定时器的启动是否受外部中断源信号 的影响。 只要用软件使 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TCON 中的 TR0 或 TR1 为 1 ,就可以启动定时/计数器工作。
??????????GATA=1 时, 要用软件使 TR0 或 TR1 为 1 同时外部中断引脚 INT0/1 也为高电平
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?时 ,才能启动定时/计数器工作。即此时定时器的启动条件,加上了? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?INT0/1 引脚为高电平这一条件。
C/T :定时/计数模式选择位。
? ? ? ? ?C/T =0 为定时模式。
? ? ? ? ?C/T =1 为计数模式。
M1M0:工作方式设置位。定时/计数器有四种工作方式, 见下表:

?TCON寄存器:

TCON 的 低 4 位用于控制外部中断 ,已在前面介绍。 TCON 的高 4 位用于控制定
时/计数器的启动和中断申请
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.方式 0:
? ? 方式 0 为 13 位计数 ,由 TL0 的低 5 位 (高 3 位未用)和 TH0 的 8 位组成 。TL0 的低 5 位溢出时向 TH0 进位,TH0 溢出时,置位 TCON 中的 TF0 标志,向 CPU 发出中断请求。其结构图如下所示:
计数初值与计数个数的关 系为:X=2(13)-N。
2.方式 1:
? ? 方式 1 的 计数位数是 16 位 ,由 TL0 作为低 8 位 TH0 作为高 8 位 ,组成了 16 位加 1 计数? 器。其结构图如下所示:

?计数初值与计数个数的关 系为:X=2(16)-N。

3.方式 2:
?方式 2 为 自动重装初值的 8 位计数方式 。工作方式 2 特别适合于用作较 精确的脉冲信号发生器。其结构图如下所示:
计数初值与计数个数的关系为:X=2(8)-N。
4.方式 3:
方式 3 只适用于定时/计数器 T0 , 定时器 T1 处于方式 3 时相当于 TR1=0, 停止计数。工作方式 3 将 T0 分成为两个独立的 8 位计数器 TL0 和 TH0 。其 结构如下所示:
这几种工作方式中应用较多的是方式 1 和方式 2。定时器中通常使用定时器
方式 1,串口通信中通常使用方式 2

?定时器初值计算:

1.机器周期的概念,它是 CPU 完成一个基本操作所需要的时间。 其计算公式是:机器周期? ? ? ? ?=1/单片机的时钟频率。
2.51 单片机内部时钟频率是外部 时钟的 12 分频,也就是说当外部晶振的频率输入到单片机? ? ? 里面的时候要进行 12 分频。比如说你用的是 12MHZ 晶振,那么单片机内部的时钟频率? ? ? ? 就12/12MHZ,
3.当你使用 12MHZ 的外部晶振的时候,机器周期=1/1M=1us。如果我们想定时 1ms 的初值是多少呢?1ms/1us=1000。也就是要计数 1000 个,初值=65535-1000+1(因为实际上计数器计数到 66636(2 的 16 次方)才溢出,所以后面要加 1) =64536=FC18H,
所以初值即 为 THx=0XFC,TLx=0X18。

?例:定时器 0 为例介绍配置定时器工作方式 1、设定 1ms 初值,开启定时 器计数功能以及总中断

void Timer0Init() { 
   TMOD|=0X01;//选择为定时器 0 模式,工作方式 1,仅用 TR0 打开启动。 
   TH0=0XFC; //给定时器赋初值,定时 1ms 
   TL0=0X18; 
   ET0=1;//打开定时器 0 中断允许 
   EA=1;//打开总中断 
   TR0=1;//打开定时器 
}

2.电路图(普中A2):

3.程序说明:

实现的功能是:通过定时器 0 中断控制 D1 指示灯间隔 1 秒闪烁

4.源程序:

#include <reg51.h>

typedef unsigned char u8;
typedef unsigned int u16;

sbit LED=P2^0;

/*定时器0初始化*/
void InitT0()
{
	TMOD=0x01;//方式0,定时
	TH0=0xFC;
	TL0=0x18;
	ET0=1;
	EA=1;
	TR0=1;
}

void main()
{
	InitT0();
	while(1);
}

void IntT0() interrupt 1
{
	 static u16 i=1;
	 TH0=0xFC;
	 TL0=0x18;
	 i++;
	if(i==1000)
	{
		i=0;
		LED=~LED;
	}
}
	

5.开发板运行结果:

?实验现象:LED亮一秒,再灭一秒。

?


以上就是51单片机的LCD1602实验了?

想要了解更多的单片机实验,请查看我的51单片机专栏

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:36:26  更:2021-08-31 15:36:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:34:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码