当前位置:首页 > 单片机 > 单片机
[导读]中断是为使单片机具有对外部或内部随机发生的事件进行处理而设置的。51单片机有5种中断源,即有5种对应的情况发生时会使单片机去处理中断程序(中断函数)。此篇主要整理定时器中断笔记。采用定时器中断会涉及中断寄存

中断是为使单片机具有对外部或内部随机发生的事件进行处理而设置的。51单片机有5种中断源,即有5种对应的情况发生时会使单片机去处理中断程序(中断函数)。

此篇主要整理定时器中断笔记。采用定时器中断会涉及中断寄存器,定时器/计数器相关寄存器(TCON,TMOD),中断函数等知识点。

其中,中断寄存器,定时器/计数器相关寄存器本身或者相关位用来做初始化,中断函数的内容主要是体现发生中断后所需要的操作(在中断函数内写代码)。

1.中断允许寄存器IE

图1.中断寄存器IE

中断寄存器用来设定各个中断源的打开和关闭,IE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H~AFH,该寄存器运行位寻址,即可对该寄存器的每一位进行单独操作。单片机复位时IE全部被清零。下面列举各位的在不同状态下的具体含义:

EA-------全局中断允许位

EA = 1,打开全局中断控制,在此条件下由各个中断控制位(TCON寄存器中的TRn位)控制相应中断的打开和关闭。

EA = 0,关闭全部中断。

-- 无效位

ET2--定时器/计数器2中断允许位

ET2 = 1,打开T2中断。

ET2 = 0,关闭T2中断。

ES--串行口中断允许位

ES = 1,打开串行口中断。

ES = 0,关闭串行口中断。

ET1--定时器/计数器中断允许位

ET1 = 1,打开T1中断。

ET1 = 0, 关闭T1中断.

EX1--外部中断1中断允许位

EX1 = 1,打开外部中断1中断。

EX1 = 0,关闭外部中断1中断。

ET0--定时器/计数器0中断允许位

ET0 = 1, 打开T0中断。

ET0 = 0,关闭T0中断。

EX--外部中断0中断允许位

EX0 = 1,打开外部中断0中断。

EX0 = 0,关闭外部中断0中断。

2.定时器/计数器相关寄存器(TMOD,TCON)

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

图2.定时器/计数器工作方式寄存器

定时器/计数器工作方式寄存器在特殊功能寄存器中,字节地址为89H,不能位寻址。TMOD用来确定定时器的工作方式及功能选择。单片机复位时TMOD全被被清零。下面介绍各位在不同值下的含义:

GATE --门控制位。

GATE = 0,定时器/计数器启动与停止仅受TCON寄存器中TRn(n = 0, 1)来控制。

GATE = 1,定时器/计数器启动与停止由TCON寄存器中的TRn(n=0, 1)和外部中断引脚(INT0或INT1)的电平状态来共同控制。

C/T`--定时器模式和计数器模式选择位。

C/T` = 1,为计数器模式;C/T` = 0,为定时器模式。

M1M0--工作方式选择位(见下表)

图3.定时器/计数器的4中工作方式

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

定时器/计数器控制寄存器在特殊功能寄存器中,字节地址为88H,位地址(由低到高)分别为88H~8FH,该寄存器可进行位寻址。TCON寄存器用来控制定时器启,停,标志寄存器溢出和中断情况。单片机复位时TCON全部被清零。各位被赋不同值的含义如下:

图4.定时器/计数器控制寄存器TCON

TF1--定时器1溢出标志位

当定时器1计满溢出时,由硬件使TF1置1,并申请中断。进入中断程序后由硬件自动清零。如使用定时器中断,则该位不用人为操作;但如用软件查询方式,当查询到该位为1时,需用软件清零。

TR1--定时器1运行控制位

由软件清0关闭定时器1。当GATE = 1,且INT1为高电平时,TR1置1启动定时器1;当GATE = 0时,TR1置1时即可启动定时器1.

TF0--定时器0溢出标志位,功能和操作方式和TF1相同。

TR0--定时器0运行标志位,其功能和操作方式同TR1。

IE1--外部中断1请求标志

当IT1 = 0,时为电平触发方式,每个机器周期的S5P2采样INT1引脚;若INT1引脚为低电平,则置1,否则IE1清0。

当IT1 = 1,INT1为跳变沿触发方式,当第一个机器周期采样到INT1为低电平时,则IE1置1。IE1=1时,表示外部中断1正在向CPU申请中断。当CPU响应中断,转向中断服务程序时,该位由硬件清0.

IT1--外部中断1触发方式选择位

IT1= 0,为电平触发方式,引脚INT1上低电平有效。

IT1 = 1,为跳变沿触发方式,引脚INT1上的电平从高到低的负跳变有效。

IE0--外部中断0请求标志,其功能及操作方式同IE1。

IT0--外部中断0触发方式选择位,其功能及操作方式同IT1。

3.总结

<1>.以上列举的各种寄存器都是为我们写中断程序的初始化部分所服务的。我们在初始化部分程序的时候,可以根据具体的需求查询到各寄存器的各个位含义,按照需求对其赋予不同的值使其发挥不同的功能。

<2>.要想编写一个定时器中断函数,还需要知道中断函数的编写方式,还需要对THn、TLn(n= 0, 1)编写初值。然后明确单片机在下载具体的可执行程序后的工作方式。这些将留在下一篇笔记中记录。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

控制寄存器(Control Register)是中央处理器(CPU)中用于管理系统级操作的特殊寄存器,它为操作系统和硬件提供对处理器行为的精细控制。本文从计算机体系结构角度系统阐述控制寄存器的设计原理、功能分类、操作机制...

关键字: 寄存器 处理器

Holtek推出新一代无刷直流电机 (BLDC) 控制专用单片机 HT32F65233。采用 Arm® Cortex®-M0+ 低功耗内核, 具备 2.5 V~5.5 V 宽电压操作。系统电压为 5 V 时,可获得更高的...

关键字: BLDC单片机 电机驱动 计数器

在嵌入式系统开发中,硬件抽象层(Hardware Abstraction Layer,HAL)起着至关重要的作用。它为上层软件提供了统一的硬件访问接口,隐藏了底层硬件的细节,使得软件具有更好的可移植性和可维护性。C++作...

关键字: 嵌入式C++ HAL 寄存器 封装

采用51单片机最小开发板,由8位自制独立按键控制。单片机芯片为STC89C52RC,晶振为@12.000 mhz。8X8LED点阵屏模块由MAX7219驱动,MAX7219包含一个自动扫描电路。你只需要把要显示的数据发送...

关键字: 51单片机 MAX7219 寄存器

电源管理集成电路(PMIC)有益于简化最终应用并缩小其尺寸,也因此备受青睐。然而,当默认启动时序和输出电压与应用要求不符时,就需要定制上电设置。大多数情况下,电路没有可以存储这些设置的非易失性存储器(NVM)。对此,低功...

关键字: 电源管理 集成电路 寄存器

我从Digilent公司拿出了我的Arty Z7板,并在Vivado/Vitis 2021.2中创建了一个项目来让它工作,你可以在我的上一个项目帖子中阅读,我在QDSP-6061的5位数上显示滚动文本,上面写着“Hell...

关键字: 寄存器 AXI4 QDSP-6061 RTL模块

你可能会想象他们使用先进的人工智能相机来计算访客人数,但实际上,一个简单的基于传感器的系统就能有效地完成这项工作!通过在入口和出口点放置红外传感器,这些系统检测移动方向并保持准确计数。不需要花哨的技术。

关键字: Arduino IR传感器 计数器

在单片机系统的设计中,复位电路是确保单片机正常工作的关键组成部分。它能够在系统启动时将单片机的内部寄存器和状态设置为初始值,保证单片机从一个确定的状态开始运行。与门芯片作为一种常见的数字逻辑芯片,有时会被应用于单片机复位...

关键字: 复位电路 寄存器 单片机

该项目利用OLED显示器和两个输入开关,允许用户增加屏幕上显示的两个数字(10和单位)。代码由设置和循环函数组成,用于管理显示和开关输入。

关键字: OLED 显示器 计数器

在数字电路设计中,计数器是一种基础的数字电路组件,用于记录并显示脉冲信号的数量或频率。4进制计数器,即模4计数器,是一种特殊的计数器,其计数范围从0到3,共4个状态。本文将深入探讨如何结合D触发器与寄存器来实现一个4进制...

关键字: D触发器 寄存器 计数器
关闭