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

51单片机-定时器中断

1、使用定时器,该做哪些工作

初始化程序应完成如下工作:

  • 对TMOD赋值,以确定T0和T1的工作方式。
  • 计算初值,并将其写入TH0、TL0或TH1、TL1。
  • 中断方式时,则对EA赋值,开发定时器中断。
  • 使用TR0或TR1置为,启动定时/计数器定时或计数。
#include "reg52.h"

typedef unsigned char u8;
typedef unsigned int u16;

sbit led = P2^0;
/**
   初始定时器
   定时1ms=1000us
   2^16-1000+1,0xFC18
  
*/
void Timer0Init()
{
   TMOD |= 0X01; // 0000 0001
   TH0=0XFC;
   TL0=0X18;
   ET0=1; // IE寄存器打开T0的中断
   EA=1; //打开总中断
   TR0=1; //开始定时器中断
}

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


void Time0() interrupt 1
{
  static u16 i;
   // 方式一:需要重新装载,方式二:不需要
   TH0=0XFC;
   TL0=0X18;
  i++; //每次经过1ms,进行累加
  if(i==1000){  //1s
     i=0;  //就要清零,防止溢出
     led=~led;
  }
}

相关文章:

  • 「正版软件」PDF Reader - 专业 PDF 编辑阅读工具软件
  • SpringBoot+Vue3-学习笔记
  • java泛型
  • 交通物联网:概念、历史、现状与展望
  • Redis 字符串(String)
  • 【分布式理论11】分布式协同之分布式事务(一个应用操作多个资源):从刚性事务到柔性事务的演进
  • Vue 监听属性(watch)
  • MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 2
  • 嵌入式工业级显示器在环保垃圾柜设备中发挥着至关重要的作用
  • Linux 实操篇 组管理和权限管理、定时任务调度、Linux磁盘分区和挂载
  • Linux-C/C++《C/9、信号:基础》(基本概念、信号分类、信号传递等)
  • 2025年archlinux tigervnc分辨率设置不生效的问题
  • Deepseek 与 ChatGPT:AI 浪潮中的双子星较量
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-loaders.py
  • 机器视觉--图像的运算(减法)
  • matplotlib无法显示中文的问题
  • HTML/CSS中子代选择器
  • AI赋能前端开发:告别加班,提升抗压能力
  • 【Python爬虫(29)】爬虫数据生命线:质量评估与监控全解
  • 软件测试与软件开发之间的关系
  • 大型网站平台建设/热搜榜排名今日事件
  • 河北辛集市城乡建设管理局网站/吉安seo
  • 韩国做美食网站有哪些/网站外链平台
  • 宁夏百度网站怎么做/google首页
  • 优秀的网页网站设计/东莞网站优化公司
  • 网站维护的基本概念/他达拉非片正确服用方法