gd32f303 设计中断优先级_51单片机中断机制(定时器/计数器)

单片机中断简介

52单片机一共有6个中断源,它们的符号,名称以及各产生的条件分别如下:

  1. INT0 - 外部中断0,由P3.2端口线引入,低电平或下降沿引起
  2. INT1 - 外部中断1,由P3.3端口线引入,低电平或下降沿引起
  3. T0 - 定时器/计数器0中断, 由T0计数器计满回零引起
  4. T1 - 定时器/计数器1中断, 由T1计数器计满回零引起
  5. T2 - 定时器/计数器2中断, 由T2计数器计满回零引起
  6. TI/RI - 串行口中断,串行端口完成一帧字符发送/接收后引起

其中T2是52单片机特有的。

d9493b6f63dca219d134349444b127c5.png

中断允许寄存器IE

8d399ed732d4ce9af090510c55a0d048.png

9aa6d37d176f4dab39cc91ff7d5e501a.png

中断优先级寄存器IP

f6e446e23d15ce6f138a04add64ecfef.png

定时器中断

51单片机内部共有两个16位可编程的定时器/计数器,即定时器T0和定时器T1

52单片机内部多一个T2定时器/计数器

它们既有定时功能,也有计数功能。可通过设置与它们相关的特殊功能寄存器选择启用定时功能还是计数功能。

这个定时器系统是单片机内部一个独立的硬件部分,它与CPU和晶振通过内部某些控制线连接并相互作用,CPU一旦设置开启定时功能后,定时器便在晶振的作用下自动开始计时,但定时器的计数器计满后,会产生中断。

定时器/计数器的实质是加1计数器(16位), 由高8位和低8位两个寄存器组成,

TMOD:定时器/计数器的工作方式寄存器,确定工作方式和功能。

TCON:控制寄存器,控制T0,T1的启动和停止及设置溢出标志。

87fec527bddacf20fad354189a1f5a27.png

TMOD:定时器/计数器工作方式寄存器

914e2021a4a641391ff2beeb64c6e7c0.png

e9c2e668029be0cd70de23a7f6bec577.png

TCON:定时器/计数器控制寄存器

e03cd6f3ffb337c7054824fefedb166a.png

446a20fd89112a4b8860baa5a50b96e0.png

581019b8fb2d6353058280041f263a08.png

每个定时器有4种工作方式,可通过设置TMOD寄存器中的M1和M0来进行工作方式选择。

方式1的技术位数是16bit,对T0来说, TL0寄存器作为低8bit,TH0寄存器作为高8bit,组成了16bit加1计数器,逻辑结构框图如下

b0d7bd5ba3a9307f17f5942d0126e2fa.png

567e8e7a16436d7b2dee8b361e8c720b.png

如何计算定时器的初值

44719989d700414c3836563191f4bc02.png

edc30b38656d14aa013e738948519e7a.png

中断服务程序的写法

11c16afa08cadddb2f1407bfa0b61b77.png

b253a53e3bb9cda13f8bb3f9e16cbad6.png

单片机交流裙:1126743406,大家可以一起交流学习

嵌入式开发也要懂的WEB技术

http://www.makeru.com.cn/live/5413_2012.html?s=156461

IIC总线协议

http://www.makeru.com.cn/live/3576_1488.html?s=156461

RISC-V嵌入式系统开发

http://www.makeru.com.cn/course/details/5666?s=156461