51单片机中断系统详解

合集下载

MCS-51单片机的中断系统

MCS-51单片机的中断系统

MCS-51单⽚机的中断系统单⽚机中断技术概述在任何⼀款事件驱动型的CPU⾥⾯都应该会有中断系统,因为中断就是为响应某种事件⽽存在的。

中断的灵活应⽤不仅能够实现想要的功能,⽽且合理的中断安排可以提⾼事件执⾏的效率,因此中断在单⽚机应⽤中的地位是⾮常重要的。

单⽚机中断(Interrupt)是硬件驱动事件,它使得CPU暂停当前的主程序,转⽽去执⾏⼀个中断服务⼦程序。

为了更形象地理解中断,下⾯以学⽣上⾃习时接电话为例阐述⼀下中断的概念。

单⽚机的中断系统有5个中断源、2个中断优先级,可实现两级中断服务程序嵌套。

如果单⽚机没有中断系统,单⽚机的⼤量时间可能会浪费在查询是否有服务请求发⽣的定时査询操作上。

采⽤中断技术完全消除了单⽚机在査询⽅式中的等待现象,⼤⼤地提⾼了单⽚机的⼯作效率和实时性。

单⽚机中断系统结构及中断控制中断系统结构图如图5-2所⽰。

由图5-2可见,MCS-51中断系统共有5个中断请求源:INT0——外部中断请求0,中断请求信号由INT0引脚输⼊。

定时/计数器T0计数溢出发出的中断请求。

INT1——外部中断请求1,中断请求信号由INT1引脚输⼊。

定时/计数器T1计数溢出发出的中断请求。

串⾏⼝中断请求。

中断优先级从⾼到底排列。

单⽚机如何知道有中断请求信号?是否能够响应该中断?若5个中断源请求信号同时到来,单⽚机如何响应?这些问题都可以由中断寄存器来解决。

单⽚机中断寄存器有中断标志寄存器TCON和SCON、中断使能寄存器IE和中断优先级寄存器IP,这些寄存器均为8位。

中断标志寄存器5个中断请求源的中断请求标志分别由TCON和SCON的相应位锁存,单⽚机通过这些中断标志位的状态便能知道具体是哪个中断源正在申请中断。

TCON寄存器TCON寄存器为定时/计数器的控制寄存器,字节地址为88H,可位寻址。

特殊功能寄存器TCON的格式如图5-3所⽰。

TCON各标志位功能如下。

TF1——定时/计数器T1的溢出中断请求标志位。

第5章-MCS-51单片机中断系统-PPT

第5章-MCS-51单片机中断系统-PPT
CPU在每一个机器周期得S5P2期间对P3、 3引脚采样,若P3、3为低电平,则使IE1置1,否 则IE1清0。
5、2、2 MCS-51单片机得中断源
IT1=1,外中断1为下降沿触发 采样:CPU在每一个机器周期得S5P2期间 对P3、3引脚采样,若上一个机器周期检测为 高电平,紧挨着得下一个机器周期为低电平,则 使IE1置1。 IT0:外中断0触发方式控制位。
CPU主要就是通过标志寄存器、控制 寄存器、优先级寄存器对中断源进行管
5、2、2 MCS-51单片机得中断源
(1)与中断标志相关得SFR
主要有:定时器/计数器T0、T1控制寄 存器TCON
串行口控制寄存器SCON 定时器/计数器2控制寄存器T2CON(第 6章介绍) (2)中断控制寄存器:TCON、IE (3)中断优先级寄存器:IP
DMA释放总线:当一批数据传送后, DMA控制器再向CPU发出“结束总线请 求”,CPU响应请求,收回总线使用权。
DMA方式速度高、效率高,可以与CPU 并行工作。
5、1、2 中断得相关概念
1、中断得概念
CPU在正常运行得时候, 外部或者内部发生了请求 CPU迅速去处理得事件,CPU 暂时中断当前得程序,去处理 所发生得事件,处理完事件后, 再返回到原来被中断得程序 继续运行。此过程称为中断。
图5-3 定时器得控制寄存器
TCON可位寻址。复位后TCON=00H。 TF1(TCON、7):T1溢出标志位
当T1计满溢出时,由内部硬件置位; 中断响应后自动清 0。
5、2、2 MCS-51单片机得中断源
TF0:T0溢出标志位 功能同TF1。
IT1:外中断1触发方式设置位 IT1=0,外中断1为低电平触发
5、1、1 微机得输入/输出方式

单片机教程 第6章-中断系统

单片机教程 第6章-中断系统

TCON位功能:
TF0/TF1:定时器溢出中断申请标志位: =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。
③ IE1 —— 外中断中断请求标志 当P3.3引脚信号有效时,IE1=1 ④ IE0 —— 外中断中断请求标志 当P3.2引脚信号有效时,IE0=1
IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。
=1:在INT0/INT1端申请中断的信号负跳变有效.
6.2
51单片机的中断系统
3、串行口中断设定
串行控制寄存器SCON控制字,字节地址:98H
SCON 位名称 位地址 功能 D7 D6 — — — — — — D5 — — — D4 — — — D3 — — — D2 — — — D1 TI 99H 串行发送 中断标志 D0 RI 98H 串行接收 中断标志
6.1
中断的概念
6.1.3 中断的分类 可分为三类: * 可屏蔽中断:由CPU的可屏蔽中断引脚INT引起的 中断。 * 非屏蔽中断:由CPU的非屏蔽中断引脚NMI引起的 中断(8086CPU)。 * 软件中断:由中断指令引起的中断(8086CPU)。 • 51单片机的中断可以分为:
①外部中断,由外部可屏蔽中断和外部计数器中断组成; ②内部中断,由内部定时器、串口传输中断等组成。
输入引脚。允许用户设定外部中断源以低电平或 者是负跳变方式触发。
6.2
51单片机的中断系统
②定时器溢出中断源:内部中断,51内部有两
个16位定时/计数器,它们由内部定时脉冲(主脉 冲12分频)或外部引脚T0、T1输入的外部计数脉 冲计数。当计数值溢出时,产生中断请求。这两 个16位定时/计数器的初值可由用户设定。

第五章 MCS-51的中断系统

第五章 MCS-51的中断系统

第5章MCS-51单片机的中断系统【例5-1】设允许外部中断0和串行口中断,禁止其它中断源的中断申请。

试根据假设条件设置IE的相应值。

解:⑴用位操作指令来编写如下程序段:SETB EX0 ;允许外部中断0中断SETB ES ;允许串行口中断CLR EX1 ;禁止外部中断1中断CLR ET0 ;禁止定时器/计数器T0中断CLR ET1 ;禁止定时器/计数器T1中断SETB EA ;CPU开中断⑵用字节操作指令来编写:MOV IE, #91H【例5-2】设置中断优先级控制寄存器IP的初始值,使得8031的2个外中断请求为高优先级,其它中断请求为低优先级。

解:⑴用位操作指令SETB PX0;2个外中断为高优先级SETB PX1CLR PS ;串行口、2个定时器为低优先级中断CLR PT0CLR PT1⑵用字节操作指令MOV IP,#05H【例5-3】假设允许外部中断0中断,并设定它为高级中断,其它中断源为低级中断,采用跳沿触发方式。

在主程序中可编写如下程序段:SETB E A ;EA位置“1”,CPU开中断SETB E X0 ;EX0位置“1”,允许外部中断0产生中断SETB P X0 ;PX0位置“1”,外部中断0为高级中断SETB I T0 ;IT0位置“1”,外部中断0为跳沿触发方式【例5-4】根据图5-9的中断服务程序流程,编写出中断服务程序。

假设现场保护只需要将PSW寄存器和累加器A的内容压人堆栈中保护起来。

解一个典型的中断服务程序如下:INT: CLR E A ;CPU关中断PUSH PSW ;现场保护PUSH ASETB E A ;CPU开中断中断处理程序段CLR E A ;CPU关中断POP A ;现场恢复POP PSWSETB E A ; CPU开中断RETI ;中断返回,恢复断点上述程序有几点需要说明的是:⑴本例的现场保护假设仅仅涉及到PSW和A的内容,如果还有其它的需要保护的内容,只需要在相应的位置再加几条PUSH和POP指令即可。

51单片机interrupt用法

51单片机interrupt用法

51单片机interrupt用法1. 什么是51单片机interrupt?51单片机是一种常用的嵌入式微控制器,被广泛应用于各种电子设备中。

中断是一种特殊的处理机制,它允许单片机在执行某个任务的过程中,临时暂停当前的任务,去处理其他紧急事件。

这些紧急事件可以是来自外部设备的信号、计时器溢出等。

2. 为什么要使用interrupt?使用interrupt的好处是可以及时响应外部事件,提高系统的实时性和可靠性。

不使用interrupt的话,单片机只能按照预定的程序执行,无法即时响应外部事件,造成系统的延迟和不稳定。

3. 如何使用interrupt?首先,我们需要了解51单片机的interrupt架构。

51单片机有两个interrupt源,分别是外部中断和定时器/计数器中断。

外部中断:单片机的P3口(即引脚INT0和INT1)可以接收外部中断信号。

当INT0引脚检测到高电平脉冲时(可以通过软件设置为下降沿触发或低电平触发),单片机就会执行外部中断的相关程序。

INT1引脚类似。

定时器/计数器中断:单片机的定时器/计数器模块可以设置定时中断。

定时器可以根据一定的时钟源进行计数,当计数值达到预设值时,就会触发中断。

通过设置计数器的工作模式和计数初值,可以灵活控制定时中断的触发时间和频率。

对于外部中断,我们可以通过设置相应的中断控制寄存器来选择触发方式(下降沿触发、低电平触发等)。

然后,在主程序中需要响应外部中断的地方,我们可以编写一个中断服务程序(ISR),用来处理中断事件。

中断服务程序需要使用关键字”interrupt”进行声明,同时需要保存现场(将寄存器的值及其他关键状态保存在堆栈中),以便中断结束后能够正确恢复。

对于定时器/计数器中断,我们首先需要对定时器进行初始化设置,选择时钟源和工作模式。

然后,我们可以设置计数初值和中断触发时间。

当计数器达到预设值时,中断程序会被执行。

下面我们就来介绍一个常见应用案例:使用外部中断实现按键控制LED的亮灭。

c51单片机中断详解

c51单片机中断详解
一、中断请求标志位 A、TCON中的中断标志位 TCON为定时器/计数器的控 制寄存器,字节地址为88H。
包含: (1)T0和T1的溢出中断请求标志位TF1和TF0。 (2)外部中断请求标志位IE1与IE0。 各标志位的功能:
IE1——外部中断请求1的中断请求标志位。 IE1=0,无中断请求。 IE1=1,外部中断1有中断请求。当CPU响应该中 断,转向中断服务程序,由硬件清“0”IE0。
● IT1外部中断1的中断触发方式控制位
IT1——选择外部中断请求1为负跳变触发方式 还是电平触发方式:
IT1 =0,为电平触发方式,IE1状态完全 由IT1决定。
IT1=1,为负跳变触发方式。 IT1可由软件置“1”或清“0”。
● IT0—外部中断请求0为负跳变触 发方式还是电平触发方式,意义与 IT1类似。 ● IE0—外部中断请求0的中断请求 标志位,意义与IE1类似。
二、中断允许控制
中断允许控制寄存器IE
CPU对中断源的开放或屏蔽,由片内 的中断允许寄存器IE控制(两级控制)。 字节地址为A8H,可位寻址。格式如下:
IE中各位的功能如下:
(1)中断允许总控制位EA(IE.7位):
EA=0,所有中断请求被屏蔽。
EA=1,CPU开放中断,但五个中断源 的中断请求是否允许,还要由IE中 的5个中断请求允许控制位决定。
CPU暂时中止当前的工作,转到中断 服务处理程序处理所发生的事件。
处理完该事件后,再回到原来被中止的 地方,继续原来的工作,这称为中断。
中断方式优点:大大地提高了CPU的 工作效率。
●能够实现中断处理功能的部件称为 中断系统。 ●产生中断的请求源称为中断请求源。 ●中断源向CPU提出的处理请求,称为 中断请求(或中断申请)。 ● CPU暂时终止自身的事务,转去处 理中断事件的过程,称为CPU的中断响 应过程。

51单片机的定时器中断

51单片机的定时器中断

51单⽚机的定时器中断⼀、中断的概念CPU在处理某⼀事件A时,发⽣了另⼀事件B请求CPU迅速去处理(中断产⽣);CPU暂时中断当前的⼯作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A中断的地⽅继续处理事件A(中断返回),这⼀过程称为中断。

⼆、中断的优先级51单⽚机⾥⼀共有5个中断源,分别是外部中断0,定时器0,外部中断1,定时器1,串⼝中断,中断优先级从⼤到⼩分别是0,1,2,3,4。

三、中断的优点1.分时操作。

CPU可以分时为多个I/O设备服务,提⾼了计算机的利⽤率;2.实时响应。

CPU能够及时处理应⽤系统的随机事件,系统的实时性⼤⼤增强;3.可靠性⾼。

CPU具有处理设备故障及掉电等突发性事件能⼒,从⽽使系统可靠性⾼。

四、定时器中断⼯作⽅式寄存器TMOD:GATE:门控位。

GATE=0时,只要⽤软件使TCON中的TR0或TR1为1,就可以启动定时/计数器⼯作;GATA=1时,要⽤软件使TR0或TR1为1,同时外部中断引脚或也为⾼电平时,才能启动定时/计数器⼯作。

即此时定时器的启动多了⼀个条件。

(默认情况下等于0不要设置)。

C/T:定时/计数模式选择位。

=0为定时模式;=1为计数模式。

M1M0:⼯作⽅式设置位。

定时/计数器有四种⼯作⽅式,由M1M0进⾏设置。

(正常情况旋⽅式1,即M1M0=01)。

中断寄存器:EA是总中断,ET0是定时器0中断,EX0是外部中断0,ET1是定时器1中断,EX1是外部中断1。

【参考资料】51单⽚机第⼆讲(定时器中断)。

51单片机中断详解

51单片机中断详解

51单片机中断详解1、中断发生CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理2、中断响应和中断服务CPU暂时中断当前的工作,转去处理事件B3、中断返回待CPU将事件B处理完毕后,再回到原来事件A 被中断的地方继续处理事件A这一过程称为中断二、中断过程示意图3、 MCS51中断系统的结构MCS51的中断系统有5个中断源(8052有6个),2个优先级,可实现二级中断嵌套四、中断寄存器单片机有10个寄存器主要与中断程序的书写控制有关1、中断允许控制寄存器IE2、定时器控制寄存器TCON3、串口控制寄存器SCON4、中断优先控制寄存器IP5、定时器工作方式控制寄存器TMOD6、定时器初值赋予寄存器(TH0/TH1,TL0/TL1)五、部分寄存器详解1、中断允许控制寄存器(IE)EX0:外部中断0允许位;ET0:定时/计数器T0中断允许位;EX1:外部中断1允许位;ET1:定时/计数器T1中断允许位;ES :串行口中断允许位;EA :CPU中断允许(总允许)位。

2、定时器/计数器控制寄存器控制寄存器(TCON)IT0:外部中断0触发方式控制位当IT0=0时,为电平触发方式(低电平有效)当IT0=1时,为边沿触发方式(下降沿有效)IE0:外部中断0中断请求标志位IT1:外部中断1触发方式控制位IE1:外部中断1中断请求标志位TF0:定时/计数器T0溢出中断请求标志位TF1:定时/计数器T1溢出中断请求标志位3、串行口控制寄存器(SCON)RI:串行口接收中断标志位。

当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。

注意,RI必须由软件清除。

TI:串行口发送中断标志位。

当CPU将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。

每发送完一个串行帧,由硬件置位TI。

CPU响应中断时,不能自动清除TI,TI必须由软件清除。

4、中断优先级控制寄存器(IP)PX0:外部中断0优先级设定位PT0:定时/计数器T0优先级设定位PX1:外部中断0优先级设定位PT1:定时/计数器T1优先级设定位PS :串行口优先级设定位PT2:定时/计数器T2优先级设定位六、中断响应条件1、中断源有中断请求2、此中断源的中断允许位为13、开中断(即EA=1)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机中断系统详解(定时器、计数器)
满TH0和TL0就需要216 -1个数,再来一个脉冲计数器溢出,随即向CPU申请中断。

因此溢出一次共需65536us,约等于65.6ms,如果我们要定时50ms的话,那么就需要先给TH0和TL0装一个初值,在这个初值的基础上记50000个数后,定时器溢出,此时刚好就是50ms中断一次,当需要定时1s时,我们写程序时当产生20次50ms 的定时器中断后便认为是1s,这样便可精确控制定时时间啦。

要计50000个数时,TH0和TL0中应该装入的总数是65536-50000=15536.,把15536对256求模:15536/256=60装入TH0中,把15536对256求余:15536/256=176装入TL0中。

以上就是定时器初值的计算法,总结后得出如下结论:当用定时器的方式1时,设机器周期为T CY,定时器产生一次中断的时间为t,那么需要计数的个数为N=t/T CY ,装入THX和TLX中的数分别为:
THX=(65536-N)/256 , TLX=(65536-N)%256
<x为0或1>
中断服务程序的写法
void 函数名()interrupt 中断号using 工作组
{
中断服务程序内容
}
在写单片机的定时器程序时,在程序开始处需要对定时器及中断寄存器做初始化设置,通常定时器初始化过程如下:
(1)对TMOD赋值,以确定T0和T1的工作方式。

(2)计算初值,并将初值写入TH0、TL0或TH1、TL1。

(3)中断方式时,则对IE赋值,开放中断。

(4)使TR0和TR1置位,启动定时器/计数器定时或计数。

例:利用定时器0工作方式1,实现一个发光管以1s亮灭闪烁。

程序代码如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
uchar num;
void main()
{
TMOD=0x01; //设置定时器0位工作模式1(M1,M0位0,1)
TH0=(65536-45872)/256; //装初值11.0592M晶振定时50ms 数为45872
TL0=(65536-45872)%256;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器0
while(1)
{
if(num==20) //如果到了20次,说明1秒时间 {
led1=~led1; //让发光管状态取反num=0;
}
}
}
void T0_time()interrupt 1
{
TH0=(65536-45872)/256; //重新装载初值 TL0=(65536-45872)%256;
num++;
}。

相关文档
最新文档