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;
  }
}
相关推荐
碧海银沙音频科技研究院9 小时前
基于炬芯ATS308X 设计的上位机usb 串口音乐EQ调节工具
stm32·单片机·嵌入式硬件
三佛科技-1341638421212 小时前
过认证72W碳化硅方案(12V6A)主控HN1562+HN36228V 典型应用电路、变压器参数分享
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
Zwawa13 小时前
串口为什么会丢字节:从轮询到中断和环形缓冲区
c语言·单片机·嵌入式
Brilliantwxx14 小时前
【STM32】 内部 Flash 详解:寄存器逐位拆解 + 工作流程顺序全讲 + EEPROM再实现
stm32·单片机·嵌入式硬件·1024程序员节
木子单片机14 小时前
基于单片机的DS18B20温度传感器测温系统设计
单片机·嵌入式硬件·51单片机·keil
华清远见IT开放实验室14 小时前
实验室建设案例 | 安徽三联学院物联网实验室
stm32·单片机·嵌入式硬件·物联网·华清远见
Zw-awa15 小时前
串口为什么会丢字节:从轮询到中断和环形缓冲区
stm32
深圳光特通信豆子16 小时前
TTL 光模块在工业控制与串口通信中的应用指南(10M BIDI 单模系列)
单片机·嵌入式硬件
桀人16 小时前
SPI概念引入
stm32·单片机·嵌入式硬件
离凌寒17 小时前
一、基于stm32+freertos下LD2410D和R60ADB1两款雷达的使用效果
stm32·单片机·嵌入式硬件