51单片机-定时器中断

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

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

  • 对TMOD赋值,以确定T0和T1的工作方式。
  • 计算初值,并将其写入TH0、TL0或TH1、TL1。
  • 中断方式时,则对EA赋值,开发定时器中断。
  • 使用TR0或TR1置为,启动定时/计数器定时或计数。
cpp 复制代码
#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;
  }
}
相关推荐
GeekArch15 小时前
第24讲:Vibe模式代码风格控制——适配Keil/STM32工程规范
人工智能·stm32·单片机·嵌入式硬件·mcu·决策树·ai编程
Freedom_my16 小时前
STM32项目3
stm32·单片机·嵌入式硬件
国科安芯17 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
小李不困还能学18 小时前
基于 51 单片机的8 路抢答器设计教程
单片机·嵌入式硬件·mongodb·抢答器
萌动的小火苗19 小时前
嵌入式开发中的栈与队列:任务调度为什么依赖数据结构
数据结构·c++·单片机·嵌入式硬件
振浩微433射频芯片19 小时前
工业遥控器总在关键时刻“掉链子”?——433MHz芯片方案如何破局
网络·单片机·嵌入式硬件·物联网·工业遥控
blevoice20 小时前
抖抖燃脂机单 AC6966B 主控调试踩坑:Type-C 整机供电喇叭无声排障
c语言·开发语言·单片机
三易串口屏21 小时前
三易串口屏开发教程:如何使用键盘控件输入参数并发送给单片机
单片机·嵌入式硬件·串口屏·三易串口屏·键盘控件
十月的皮皮1 天前
STM32从零到量产开发:四路继电器工业控制模块开发实战笔记(小白视角)
c语言·笔记·stm32·stm32cubemx·hal库
2CM_Embed1 天前
F28379D 下载后 VOFA+ 无数据、Reset 后恢复:一次 TZ 中断误触发排查记录
笔记·单片机·sci·c2000·f28379d·vofa·tz