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;
  }
}
相关推荐
Wave8459 小时前
基于 STM32 + ESP8266 + W25Q64 的双核 OTA 底层架构总结
stm32·嵌入式硬件·架构
振南的单片机世界10 小时前
CPU时钟:频率越高跑越快,但物理极限在“拖后腿”
stm32·单片机·嵌入式硬件
普中科技11 小时前
【普中 51-Ai8051 开发攻略】-- 第 20 章 输入捕获实验
单片机·嵌入式硬件·输入捕获·pca·普中科技·ai8051u·aicube
d111111111d11 小时前
直流电机位置式 PID 控制 和 舵机的区别
笔记·stm32·单片机·嵌入式硬件·学习
d111111111d14 小时前
了解Modbus
网络·笔记·stm32·单片机·嵌入式硬件·学习
三佛科技-1341638421214 小时前
主控FT32F031便携式吸尘器方案,迷你手持吸尘器MCU控制方案开发
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
一个平凡而乐于分享的小比特15 小时前
一文读懂MCU与FPGA:核心区别、协同之道与双修秘籍
单片机·fpga开发·职场发展·mcu开发
踏着七彩祥云的小丑16 小时前
嵌入式——认识电子元器件——微动开关系列
单片机·嵌入式硬件
调光IC-小雅16 小时前
解析FP62××系列限流保护机制:为何它是DC/DC芯片的安全底线
单片机·嵌入式硬件