当前位置: 首页 > news >正文

51单片机学习记录———定时器

文章目录

  • 前言
  • 一、定时器介绍
  • 二、STC89C52定时器资源
  • 三、定时器框图
  • 四、定时器模式
  • 五、定时器相关寄存器
  • 六、定时器练习


前言

一个学习嵌入式的小白~ 有问题评论区或私信指出~


提示:以下是本篇文章正文内容,下面案例可供参考

一、定时器介绍

定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。
定时器作用:
1.用于计数系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作
2.替代长时间的Delay,提高CPU的运行效率和处理速度

二、STC89C52定时器资源

1.定时器个数三个(T0,T1,T2),TO和T1与传统的51单片机兼容,T2是此型号单片机增加的资源
注意:定时器的资源和单片机的型号是关联在1起的,不同的型号可能会有不同的定时器个数和操作方式,但一般来说,TO和T1的操作方式是所有51单片机所共有的。

三、定时器框图

定时器在单片机内部就像一个小闹钟一样,根据时钟的输出信号每隔一个时钟周期,数单元的数值就加以,当计数单元数值增加到“设定的闹钟提醒时候”时,计数单元就会向中断系统发出中断申请,产生“响铃提醒”,使得程序跳转到中断服务程序。
在这里插入图片描述

四、定时器模式

STC89C52的TOT1均由四种工作模式
模式0:13位定时器/计数器
模式1:16位定时器/计数器(常用)
模式2:8位自动重装载模式
模式3:两个8位计数器

工作模式1框图:
在这里插入图片描述

Sysclk:系统时钟,即晶振周期,本开发板上的晶振为12MHZ
C/T=0>定时器,C/T=1->计数器

五、定时器相关寄存器

在这里插入图片描述

在这里插入图片描述

六、定时器练习

1.定时器定时闪烁灯
软件流程

  • 初始化化定时器0
    • 配置定时器0模式
    • 配置初值
    • 配置定时器中断
  • 写定时器中断程序对灯状态取反

代码演示:

#include <REGX52.H>
#include "Timer0.h"void Timer0_Init()
{TMOD &= 0xF0;//保持T1不变TMOD |= 0x01;//配置T0模式TH0 = (65535-1000)/256;//高八位TL0 = (65535-1000)%256;//第八位TF0 = 0;//清除中断标志位TR0 = 1;//开中断ET0 = 1;//中断允许控制位EA = 1;//中断总允许PT0 = 1;//优先级高
}
void mian()
{TImer0_Init();while(1);
}void Timer0_Routine() interrupt 1
{static unsigned int T0Count;//记录US数TH0 = (65535-1000)/256;//重新配置初值TL0 = (65535-1000)%256;T0Count++;if(T0Count > 1000){LED = ~LED;}
}
http://www.lryc.cn/news/382510.html

相关文章:

  • C# 热插拔---插件开发
  • hive优化之逻辑类似or逻辑重复
  • ES6+Vue
  • 如何将重量传感器 HX711 与 Arduino 一起使用
  • HarmonyOS Next开发学习手册——应用启动框架AppStartup
  • 如何在Springboot中添加事务执行?(以MySQL为例)
  • 优化MySQL并发事务:如何避免更新丢失问题?
  • 物联网设备管理系统设计
  • python之Bible快速检索器
  • 微服务-网关
  • OpenAI项目爆改GLM——以基于llama_index的pdf阅读助手
  • 如何在Java中处理ParseException异常?
  • Java中如何解决BadPaddingException异常?
  • 数电大作业-四输入表决器
  • ONLYOFFICE 桌面编辑器 8.1重磅来袭:全新功能提升您的办公效率
  • 网络协议安全:TCP/IP协议栈的安全问题和解决方案
  • VERYCLOUD睿鸿股份亮相亚马逊云科技中国峰会2024
  • 2-15 基于matlab的蚁群,模拟退火,遗传,神经网络,禁忌搜索等智能优化算法对TSP问题
  • kylinos 国产操作系统离线安装firefox 麒麟操作系统安装新版本firefox
  • Python 类对象
  • pytest unittest temp path单元测试创建临时文件
  • 在线样机生成器,制作精美的电脑手机壁纸图片展示
  • FreeRTOS实时操作系统
  • C/S、B/S架构(详解)
  • 代码随想录算法训练营第六十五天|KM99. 岛屿数量——深搜、KM99. 岛屿数量——广搜、KM100. 岛屿的最大面积
  • Lua 面向对象编程
  • AI赋能前端:你的Chrome 控制台需要AI(爱)
  • 代码随想录-Day38
  • CSS阴影优化气泡框样式
  • 强化安全新篇章:韶关石油化工可燃气体报警器年检解析