精华内容
下载资源
问答
  • 中断系统原理

    2021-01-16 11:23:47
    一.中断的概念 1.cup在处理某一件事情A时,发生了另外的一件事B请求CPU迅速去处理(中断发生) 2.cpu暂停中断当前的工作,转去处理事件B ...51单片机中的中断系统结构: 5个中断 (1.)通过配置中断标志IEO或者是I

    一.中断的概念

    1.cup在处理某一件事情A时,发生了另外的一件事B请求CPU迅速去处理(中断发生)
    2.cpu暂停中断当前的工作,转去处理事件B
    3.待cpu将事件B处理完后,再回到原来的事件A被中断的地方继续处理事件A(中断返回)
    这一个过程叫错中断
    例图。
    在这里插入图片描述

    优点

    1.分时操作:cpu可以分时为多个IO设备服务,提高了计算机的利用率
    2.实时响应:cpu能够及时处理应用系统的随机事件,系统的实时性大大的增强
    3.可靠性强

    51单片机中的中断系统结构:

    5个中断
    在这里插入图片描述
    (1.)通过配置中断标志IEO或者是IE1来向CPU申请中断。
    (2.)TF0和TF1中断溢出标志

    .中断允许控制

    CPU对于中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的;
    

    在这里插入图片描述
    EXO,EX1,外部中断0和1的允许位
    ETO,ET1,定时器或是计数器T0,T1中断允许位
    ES 串行口中断允许位
    EA cpu中断允许位(总开关)

    中断请求标志

    1.TCON板在这里插入图片描述
    从上到小优先级逐渐降低
    中断源:在这里插入图片描述

    使用中断

    1.选择相应的中断好
    2.触发的条件
    3.进入中断干什么
    以外部中断o为例

    EA=1//打开总开关
    EXO=1//打开外部中断0
    ITO=0/1//设置外部中断的触发方式
    /*IT0:外部中断0触发方式控制位 
    当IT0=0时,为电平触发方式(低电平有效) 
    当IT0=1时,为边沿触发方式(下降沿有效) */
    
    
    
     # include <reg52.h>
     sbit key = P3^2;
     sbit led = P2^1;
     void into ()
     
    {
    	EA=1;
    	EX0=1;
    	IT0=1;
    }
    void main ()
    {
    	into();
       while (1);
    }
    void adasd()interrupt 0{
    	int i;
    	for(i =100;i>0;i--);
    	if(key==0){
    		led =~led;
    	}
    } 
    
    展开全文
  • 中断系统工作原理及应用 为嘛要学习中断技术 因为如果单片机没有中断系统,单片机无论是否有服务请求都会去查询,这就很浪费时间了,有了中断技术就消除了查询方式中的等待现象,大大提高了单片机的实时性和工作...

    中断系统的工作原理及应用

    • 为嘛要学习中断技术
      因为如果单片机没有中断系统,单片机无论是否有服务请求都会去查询,这就很浪费时间了,有了中断技术就消除了查询方式中的等待现象,大大提高了单片机的实时性和工作效率
    • 负跳变就是下降沿的意思
    • 定时器/计数器T1从初值开始每次递增1来计数
    • 当AT89S51复位后,
      TCON被清零,5个中断源的中断请求标志均为0
      IE(中断允许寄存器)被清零,所有中断请求都被禁止
      IP(中断优先级寄存器IP)被清零,IP的内容为0,各个中断源均为低优先级中断
    • SCON寄存器(串行口控制寄存器),若要清除TI(串行口发送中断请求标志位)/RI(串行口接收中断请求标志位)的标志,必须软件清零(在中断服务程序中用指令将其清零
    • 记住EA:中断允许总开关控制位。写程序的时候别落下了。
    • 高优先级中断不可被任何中断打断,它可以打断低优先级中断从而先去执行完高优先级中断后再执行低优先级中断。低优先级中断不可被同优先级中断(低优先级)中断。缕清关系,可以拿动物克制关系来帮助理解。
    • 不过,在同时收到几个同一优先级的中断请求时,需要一个辅助优先级结构来确定哪个中断请求能优先被CPU响应。
      同级中断的查询次序如下
    中断源 中断级别
    外部中断0(EX0) 最高
    T0溢出中断(ET0) 👇
    外部中断1(EX1) 👇
    T1溢出中断(ET1) 👇
    串行口中断(ES) 最低
    • 响应中断请求的条件
      中断总允许位置1(EA=1;)–>中断源请求标志置1(eg.EX某=1;//打开外部中断某)–>该中断源的中断允许位置1(eg.IT=0;//低电平触发,设为外部中断的触发方式)
      注意:此时此情况下需要没有同级或更高级中断正在被服务!!!
    • 以下情况下中断响应被封锁:
      ①有同级或更高级中断正在被CPU处理
      ②查询出中断请求的机器周期不是当前正在执行指令的最后一个机器周期
      ③正在执行的指令是RETI或是访问IE或IP的指令。因为按照AT89S51中断系统的的规定,在执行完这些指令后,需要再执行完一条指令,才能相应新的中断请求。
      以上三种情况,CPU
      不会对中断请求进行响应
    • 电平触发方式可以提高CPU对外部中断请求的响应速度
    • 跳沿触发方式(下降沿触发方式)适合于以负脉冲形式输入的外部中断请求
    • 中断请求可以撤销,当然定时器/计数器、跳沿触发方式自动撤销请求。电平触发方式和串行口的中断请求撤销不会被自动撤销,前者需要加一个D触发器,后者需要软件撤销。
    • 中断服务函数的一般形式为
      函数类型 函数名(形式参数表)interrput n using n
      注意:interrupt 不要拼错,这个形式后面没有分号;
    • using是一个选项,可以不用,这样中断函数中的所有工作寄存器的内容将被保存到堆栈中,using后面的n专门用来选择AT89S51的4个不同的工作寄存器区
    • 如果在中断函数中再调用其他函数,则被调用的函数所使用的寄存器区必须与中断函数使用的寄存器区不同

    2020.4.14

    • 我的疑问:
    int main()
    {
    Int0Init();
    while(1);
    }
    

    外部中断的那个程序,为什么外部中断函数放在while(1)里就失效了?
    就算程序不失效那为什么要放在外面呢?按理来说应该放在while(1)里头让他循环中断啊?
    答:那只是初始化,初始化是给中断申请提供条件,所以只要初始化一次就行,真正触发中断的是中断标志位的改变,只要中断完成后将中断标志位清零就可以用于下一次中断,不需要重复初始化
    我的理解:我只用在主函数的循环外提供了中断条件,我就可以使用外部中断0(或1)了,然后我在主函数或其他函数里清零中断标志位就可以循环使用中断了。

    展开全文
  • 玖:中断系统原理与应用

    千次阅读 2018-09-30 21:40:27
    顾名思义,中断就是中断当前工作去处理一些临时发生的时间,处理完后,则继续原工作过程。例如:你在看书,电话响了,你在书上做好记号后去接电话,接完之后再原记号处继续往下看书。 2、51单片机也需要“中断”?...

    基本概念

    1、什么是“中断”?
    顾名思义,中断就是中断当前工作去处理一些临时发生的时间,处理完后,则继续原工作过程。例如:你在看书,电话响了,你在书上做好记号后去接电话,接完之后再原记号处继续往下看书。
    2、51单片机也需要“中断”?
    通常单片机中只有一个CPU,但却要应对诸如:运行程序、数据输入、数据输出、以及特殊情况处理等多项任务,为此单片机必须具备中断处理的功能,以应对特殊情况的紧急处理。
    3、“中断过程”是怎样的?
    中断的目的是为了暂停主程序的运行,先去执行中断服务程序,其功能是为了提高CPU工作效率。在中断源提出中断请求后,处理器执行完当前指令便进行中断响应,一旦中断服务程序执行完毕后,仍须返回到主程序被中断处(断点处)继续执行原先程序,其过程如图所示

    这里写图片描述

    4、谁能“中断”51单片机?
    中断源:能引发中断的来源称为中断源。
    51单片机一共支持5个中断源(2个外部中断源,3个内部中断源),这些中断源分别是:
    (1)外部中断请求0,由INT0(P3.2引脚)输入。
    (2)外部中断请求1,由INT1(P3.3引脚)输入。
    (3)片内定时/计数器0溢出中断(T0)请求。
    (4)片内定时/计数器0溢出中断(T1)请求。
    (5)片内串行口发送/接收中断请求。

    5、“中断源”同时来临,怎么办?
    中断优先级:处理中断源的优先顺序称为中断优先级

    51单片机将优先级整个划分为2个大等级:高优先级和低优先级。高优先级的中断先响应,等高优先级的中断响应完之后才响应低优先级的中断,高低优先级的分配可通过IP寄存器来设置。
    当多个中断都分配为同一个优先等级,并且发生中断时,由查询电路来确定最终优先级。
    对于同一优先级,单片机对其中断次序安排如下:外部中断0>定时/计数器T0>外部中断1>定时/计数器T1>串行口。
    6、“中断源”的信号可否屏蔽?
    51单片机是可以屏蔽中断信号的。有总开关和分开关。
    这里写图片描述

    7、中断响应可否嵌套?
    高优先级中断是可以打断低优先级的中断处理过程。
    这里写图片描述

    8、每个“中断”响应程序放在哪里呢?

    51单片机给每个中断安排了一个唯一的中断入口地址。

    中断源的入口地址表

    中断源
    入口地址
    外部中断0(INT0)
    0003H
    定时/计数器0
    000BH
    外部中断1(INT1)
    0013H
    定时/计数器1
    001BH
    串行口中断
    0023H

    51中断的使用

    ★★★中断允许寄存器(IE)

    D7
    D6
    D5
    D4
    D3
    D2
    D1
    D0
    EA
    ES
    ET1
    EX1
    ET0
    EX0
    ![这里写图片描述](https://img-blog.csdn.net/20180705231013334?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDE3NTQ1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) EA:中断总开关位。EA = 1,开中断;EA = 0,禁止所有中断。(分开关类似)

    ★★★中断优先级寄存器(IP)

    D7
    D6
    D5
    D4
    D3
    D2
    D1
    D0
    PS
    PT1
    PX1
    PT0
    PX0
    对应中断源
    对应中断源
    对应中断源
    串行口
    定时器1
    外部中断1
    定时器0
    外部中断0
    以上表格中,若某位=1,则该对应的中断源设置为高优先级;若该位=0,则该对应的中断源设置为低优先级。 **★★★各中断源的标志位** **TCON**
    D7
    D6
    D5
    D4
    D3
    D2
    D1
    D0
    TF1
    TF0
    IE1
    IT1
    IE0
    IT0
    T1计数溢出
    T0计数溢出
    外部中断1
    外部中断0

    SCON

    D7
    D6
    D5
    D4
    D3
    D2
    D1
    D0
    TI
    RI
    发送完毕
    接收完毕

    IT0、IT1:外部中断0、1触发方式选择位,由软件设置。1:下降沿触发方式;0:低电平触发方式
    IE0、IE1:外部中断0、1请求标志位。当外部中断0、1依据触发方式满足产生中断请求是,由硬件置位。
    RI :串行口接收中断请求标志位。当串行口接收完一帧数据后请求中断时,由硬件置位(RI=1)。RI必须由软件清0。
    TI:串行口发送中断请求标志位。当串行口发送完一帧数据后请求中断时,由硬件置位(TI=1)。TI必须由软件清0。

    (1)中断初始化
    中断系统的初始化:在为某个中断源编写中断服务程序前,首先应在主程序中对中断系统进行初始化,初始化步骤应包括:
    1)软件清除相应中断源的中断标志位,以消除以前中断标志对现在的影响。
    2)默认或设置中断优先级。
    3)其他设置:若为外部中断,应设置是电平触发方式还是下降沿触发方式;若为定时/计数器中断,应将定时/计数初值送入寄存器THx、TLx中。
    4)打开相应中断源的分开关和总开关EA。
    (2)中断服务程序的预先安排
    汇编语言要哟昂到ORG伪指令和JMP跳转指令,C语言要用到关键字interrupt。
    中断服务程序入口地址设置

    中断源
    服务程序名称(假设)
    入口地址
    汇编程序
    C程序
    外部中断0
    INT0_i
    0003H
    ORG 0003H JMP INT0_i
    INT0_i() interrupt 0
    定时/计数器0
    T0_i
    000BH
    ORG 000BH JMP T0_i
    T0_i() interrupt 1
    外部中断1
    INT1_i
    0013H
    ORG 0013H JMP INT1_i
    INT1_i() interrupt 2
    定时/计数器1
    T1_i
    001BH
    ORG 001BH JMP T1_i
    T1_i() interrupt 3
    串行口
    COM_i
    0023H
    ORG 0023H JMP COM_i
    COM_i() interrupt 4

    (3)中断服务程序的预先安排

    	ORG		OOOOH
    	JMP 	Start	;跳转到主程序
    	ORG		00BH
    	JMP		T0_i	;跳转到T0中断服务程序处
    	ORG		0030H
    Start:			;主程序
    	……
    T0_i:			;T0的中断服务程序
    	……
    	RETI        ;中断返回
    	END		
    

    (4)中断返回
    一旦某个中断请求得到响应,单片机必须把它的相应对应中断标志位清0,否则,单片机会因中断标志未能得到及时清除而重新相应同一中断请求,这是绝对不允许的。
    1、外部中断标志的清除
    当外部中断工作在电平触发方式下,外部中断标志IE0或IE1是依靠单片机检测其引脚INT0或INT1上为低电平而置位的。尽管RETI指令能使中断标志IE0或IE1自动清除成“0”状态,但无法改变引脚INT0或INT1上电平始终为低电平的事实,所以单机在运行过程中会再次检测到INT0或INT1引脚上的低电平而置位IE0或IE1。
    2、串行口中断标志的清除
    串行口有两个中断标志位TI和RI,硬件无法判别是哪个中断标志引发的中断请求,所以中断响应后,RETI指令无法自动清除中断标志,只能由软件清除。编程时应在中断服务程序的适当位置采用指令清除TI或RI。
    #实验

    汇编代码

    ******************************************************************/ 
    *   【课程10】 ****中断系统的应用***********
    *   【说  明】 ****使用T0定时1秒让LED灯闪烁一次	
    *   【描  述】 ****使用T0定时1秒让LED灯闪烁一次,并通过按键来控制定时器的开启和关闭。
    ******************************************************************/ 
    	    ORG 0000H
    		JMP MAIN        ;跳到主程序
    		ORG 000BH       
    		JMP Timer0      ;跳到Timer0的中断服务程序
    
    		ORG 0030H
    Timer0:	MOV TH0,#3CH  ;定时器T0赋初值
    		MOV TL0,#0B0H
    		INC R3            ;R3保存N值
    		MOV A,R3
    		CJNE A,#19,L1	  ;A不等于19,则跳转到L1处
    		CLR P2.7          ;P2.7=0,点亮D1灯
    L1:		CJNE A,#20,L2     
    		SETB P2.7         ;P2.7=1,熄灭D1灯
    		MOV R3,#00H       ;N=0
    L2:		RETI
    
    
    MAIN:	MOV TMOD,#01H    ;定时器T0工作在方式1下
    		MOV TH0,#3CH         ;T0赋初值
    		MOV TL0,#0B0H
    		SETB ET0             ;ET0=1,定时器t0中断允许
    		SETB EA              ;开中断总开关
    		SETB TR0             ;启动T0,开始定时
    		MOV R3,#00H          ;R3保存N值,N=0
    
    		CLR  20H            ;位地址20H处,保存标志量
    LOOP:	JB   P3.2,$	     ;如果P3.2=1,则跳到自身处继续运行
    		CALL DELAY
    		JB   P3.2,LOOP
    		JNB  P3.2,$
    		JB   20H,L3
    		SETB 20H
    		CLR  TR0             ;关闭T0
    		JMP  LOOP
    L3:		CLR  20H
    		SETB TR0             ;开启T0
    		JMP  LOOP
    
    DELAY:   MOV    R7,#0FFH
    W1:      MOV    R6,#03FH
    W2:      DJNZ   R6,W2
             DJNZ   R7,W1
    RET
    END
    

    C代码

    ******************************************************************/	
    *   【课程10】 ****中断系统的应用***********
    *   【说  明】 ****使用T0定时1秒让LED灯闪烁一次		
    *   【描  述】 ****使用T0定时1秒让LED灯闪烁一次,并通过按键来控制定时器的开启和关闭。
    ******************************************************************/
    
    #include<reg51.h>		//51头文件,
    #include <intrins.h>
    
    //---------常用的两个宏定义-------------- 
    #define uint8	unsigned char
    #define uint16  unsigned int
    
    
    sbit Key=P3^2;
    sbit Led=P2^7;
    uint8 num;			  //一秒的计数变量
    uint8 flag;
    
    /************************************
    函数名:Timer0_I()
    功能:中断服务程序
    ************************************/
    void Timer0_I() interrupt 1
    {
    	TH0=0x3c;  		//重装初值
    	TL0=0xb0;
    	num++;   		//计时变量+1
    	if(num==20)	{Led=~Led;  num=0;}
    }
    /************************************
    函数名:main()
    功能:主程序
    ************************************/
    void main()
    {
    	TMOD=0x01;		//选择定时器0工作在定时方式1
    	TH0=0x3c;		//定时50ms,装初值
    	TL0=0xb0;
    	ET0=1;  		//开启定时中断
    	EA=1;			//开总中断
    	TR0=1;			//开启定时器T0
    
    	num=0;
    	flag=0;
    	while(1)
    	{
    		if(Key==0)   	//有键按下
    		{
    			if(flag==0)
    			{flag=1;  TR0=0;}	//关闭定时器T0
    			else
    			{flag=0;  TR0=1;}	//开启定时器T0
    		}	
    	}
    }	
    
    展开全文
  • 51单片机中断系统原理和运用

    千次阅读 2020-05-02 23:31:00
    **电源引脚接入单片机工作电源** Vcc(40脚):接+5V电源; Vss ( 20脚 ) :接地 **时钟引脚** XTAL1和XTAL2分别接开发板的外部晶振,为单片机提供工作效率节拍 二、控制引脚 RST(RESET)是...

    QX-MCS51开发板上使用的是DIP封装(双列直插式)有40只引脚!
    40只引脚按其功能来分,有三类

    一、电源和时钟引脚:Vcc、Vss;XTAL1、XTAL2

    **电源引脚接入单片机工作电源**
    Vcc(40脚):接+5V电源;
    Vss ( 20脚 )   :接地
    
    **时钟引脚**
    XTAL1和XTAL2分别接开发板的外部晶振,为单片机提供工作效率节拍
    

    二、控制引脚

    RST(RESET)是复位信号输入端
    当单片机运行时,在此引脚加上持续两个机器周期的高电平时,就可以完成复位操作
    Vpd为本引脚的第二功能,即备用电源输入端
    当电源Vcc发生故障,降低到某一规定值的低电平时,将+5V电源自动接入RST端,为内部RAM提供备用电源,从而保证单片机复位后能继续运行
    EA为内外部程序储存器选择端
    当EA为高电平时,单片机访问内部程序储存空间,为低电平时访问外部程序储存空间
    Vpp编程电压的输入端
    ALE为地址所存允许信号
    PROG为对片内为PROG的单片机编写程序时,此引脚做编程脉冲输入
    PSEN当单片机访问外部程序储存器时,此引脚为读取外部储存选通信号

    三、I/O口引脚

    P0三态IO口,P1口、P2口内部有上拉普通准双向IO口,P3口内部有上拉普通准双向IO口(第二功能,可以通过配置特殊功能寄存来实现)
    P3第二功能各引脚功能定义:
    P3.0:RXD串行口输入
    P3.1:TXD串行口输出
    P3.2:INT0外部中断0输入
    P3.3:INT1外部中断1输入
    P3.4:T0定时器0外部输入
    P3.5:T1定时器1外部输入
    P3.6:WR外部写控制
    P3.7:RD外部读控制

    中断

    计算机执行某程序时,发出来紧急事件或有特殊请求,CPU暂停某程序的执行,转而去处理上述事件或请求,处理完毕后再重新执行某程序的过程。

    中断四个步骤:
    中断请求→中断响应→中断处理→中断返回

    中断功能的强弱是计算机性能优劣的重要标志

    提高CPU效率
    解决速度矛盾
    实现并行工作
    应付突发事件

    数据的输入/输出方式

    无条件传送方式
    一方对另一方来说总是准备好的
    查询传送方式(LOOK UP)
    传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询/等待
    中断传送方式(IRQ):
    一方通过申请中断的方式与另一方进行数据传送
    直接存储器存取方式(DMA):
    双方直接通过总线传送数据,不经CPU中转,适用于数据量大高速通讯的设备不占用CPU时间

    51子系列允许5个中断源

    外部中断源(2个):
    INT0——由P3.2端口线引入,低电平或下降沿引起
    INT1——由P3.3端口线引入,低电平或下降沿引起

    这两个外部中断源标志和它们的触发方式控制位由特殊功能寄存器TCON的低四位控制

    内部中断源(3个):
    T0——定时器/计数器0中断,由T0回零溢出引起
    T1——定时器/计数器1中断,由T1回零溢出引起
    TI/RI——串行I/O中断,串行端口完成一帧字符发送/接收后引起

    这三个内部中断源的控制位分别锁存在特殊功能寄存器TCON和SCON中。

    中断请求标志TCON(88H)可位寻址

    TCON:Timer控制寄存器,低四位管理外部中断
    作用:设置外部中断触发方式,标注外部中断请求

    7 6 5 4 3 2 1 0
    符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

    IE0/IE1:外部中断申请标志位
    =0:没有外部中断申请
    =1:有外部中断申请

    IT0/IT1:外部中断请求的触发方式选择位
    =0:在INT0/INT1端申请中断的信号 低电平有效
    =1:在INT0/INT1端申请中断的信号 负跳变有效(下降沿)

    中断允许控制寄存器IE(A8H)

    作用:CPU对中断系统所有中断以及某个中断源的开发和屏蔽是由中断允许寄存器IE控制的。

    7 6 5 4 3 2 1 0
    符号 EA ES ET1 EX1 ET0 EX0

    EA
    CPU中断允许(总允许)位;
    =0时禁止全部中断
    =1时允许中断
    ES
    串行口中断允许为;
    =0时禁止中断
    =1时允许中断
    ET1
    定时/计数器T1中断允许位;
    =0时禁止中断
    =1时允许中断
    EX1
    外部中断0允许位;
    =0时禁止中断
    =1时允许中断
    ET0
    定时/计数器T0中断允许位
    =0时禁止中断
    =1时允许中断
    EX0
    外部中断0允许位
    =0禁止中断
    =1允许中断

    外部中断及中断请求的撤除

    低电平触发:
    引脚上的低电平须持续到中断发生。若中断返回前仍未及撤除低电平,将再次中断
    负脉冲触发:
    CPU在前一机器周期采到INT0/INT1引脚为高,后一机器周期采到为低才认为是一次中断请求。CPU可记忆申请、可自动撤除中断申请。

    51的中断系统有5个中断源,2个优先级,可实现二级中断嵌套

    在这里插入图片描述
    中断优先级控制寄存器IP(B8H)可位寻址

    0 1 2 3 4 5 6 7
    符号 - - - PS PT1 PX1 PT0 PX0

    PX0/PX1
    INT0/1优先级控制位
    =0属低优先级
    =1属高优先级
    PT0/PT1
    T0/1中断优先级控制位
    =0属低优先级
    =1属高优先级
    PS1
    串行口中断优先级控制位
    =0属低优先级
    =1属高优先级

    中断优先级处理原则

    同时发生多个中断申请时:
    1、不同优先级的中断同时申请(很难遇到)——先高后低
    2、相同优先级的中断同时申请(很难遇到)——按序执行
    3、正处理低优先级中断又接到高级别中断——高打断低
    4、正处理高优先级中断又接到低级别中断——高不理低

    在这里插入图片描述

    中断响应条件
    1、此中断源的中断允许位为1
    2、总中断CPU中断打开(EA = 1)
    3、中断源有中断请求
    外部中断0初始化例子

    EXO = 1;//开外部中断0
    IT0 = 0;//低电平触发
    EA = 1//开总中断
    

    跳变沿触发代码示例:
    灯闪一下

    #include<reg52.h>
     
    #define uchar unsigned char
    #define uint unsigned int
    
    void delay(uint z)
    {
    	uint x,y;
    	for(x = z;x > 0;x --)
    		for(y = 114;y > 0;y --);
    }
    
    void init() //中断服务特殊功能寄存器配置
    {
    	EXO = 1; //开外部中断0
    	IT0 = 1;//低电平触发方式
    	EA = 1;//开总中断
    }
    
    void int0() interrupt 0
    {
    	P1 = 0;
    	delay(100);
    }
    
    void main()
    {
    	init();
    	while(1)
    	{
    		P1 = 0xff;
    	}
    }
    

    led灯隔200ms闪烁一次
    代码示例:

    #include<reg52.h>
     
    #define uchar unsigned char
    #define uint unsigned int
    
    uint count = 0;
    
    void delay(uint z)
    {
    	uint x,y;
    	for(x = z;x > 0;x --)
    		for(y = 114;y > 0;y --);
    }
    
    void init() //中断服务特殊功能寄存器配置
    {
    	TMOD = 0x01; //定时器0为计数模式
    	TH0 = 0x4b;
    	TL0 = 0xfd//50ms
    	ET0 = 1;//开定时器0中断
    	TR0 = 1;//启动定时器0
    	EA = 1;//开总中断
    }
    
    /*因为T0溢出中断优先级为第二高
    所以interrupt后面唯一,最高级为0,最低为4
    */
    void timer0() interrupt 1  //因为T0溢出中断优先级为第二高,所以
    {
    	TH0 = 0x4b;
    	TL0 = 0xfd;
    	count ++;
    	if(count == 4)
    	{
    		P1 = 0;
    		delay(5);
    		count = 0;
        }
    }
    
    void main()
    {
    	init();
    	while(1)
    	{
    		P1 = 0xff;
    	}
    }
    
    展开全文
  • 单片机复位电路就好比电脑的重启...本文介绍的就是单片机按键复位电路原理和电路图解析。复位电路在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所...
  • 第五章 80C51单片微机的 中断系统原理及应用; 实现CPU与外部设备的速度配合 ?通过中断的方法来协调快速CPU与慢速外部设备之间的工作 实现实时控制 依靠中断技术能实现实时控制 实现故障的及时发现及处理 中断技术使...
  • 前言 这篇文章是整个《漫谈计算机组成原理》系列文章的最后一篇——...在这篇文章中,我们将细化的讲述中断系统的相关内容,带你全面的了解中断系统的组成、中断系统工作流程及中断系统的意义。那就开始吧! ...
  • 微机原理-07-中断系统

    2020-04-09 09:14:12
    中断系统 ###定义 中断”,是指CPU暂时停止正在执行的程序,转去执行请求CPU为之服务的内、外部事件的服务程序,待该服务程序执行完后,又返回到被暂停的程序继续运行的过程。 中断的作用 (1)可以提高CPU的...
  • arm gic 中断控制器工作原理概述

    千次阅读 2018-07-21 19:46:08
    linux pinctrl 里面有个gpio抽象的中断控制器与系统的gic中断控制器级联cascade 阅读arm generic interrupter controller architecture specification,总结下 支持的中断类型 平常工作接触到的是ppi,sgi和spi...
  • 上一篇文章我们模拟操作系统的加载器程序,使用汇编语言实现了一个程序加载器:点击链接查看上一篇文章:程序加载器的实现原理 ...硬中断工作原理中断工作原理 中断向量表 1、硬中断中断...
  • 一、中断/异常机制工作原理 1. 中断/异常机制是现代计算机系统的核心机制之一 硬件和软件相互配合而使计算机系统得以充分发挥能力 ●硬件该做什么事?--中断/异常响应 捕获中断源发出的中断/异常请求,以一定方式...
  • 交通信息与控制工程系教案理论教学用 课程名称 微机原理与接口技术 第 17 次 第 8 周 2 学时 上课教室 WM1310 课程类型 专业基础课 授课对象 自动化专业 章节名称 第7章 中断系统7.37.4 教学目的 和要求 了解8259...
  • CPU与打印机共同工作原理: 程序中断方式的接口电路 配置中断请求触发器和中断屏蔽触发器 INTR 中断请求触发器 INTR=1 有请求 MASK 中断屏蔽触发器 MASK=1 被屏蔽 D完成触发条件 排队器 软件 硬件:在CPU...
  • Linux中断下半部处理有三种方式:软中断、tasklet、工作队列。  曾经有人问我为什么要分这几种,该怎么用。当时用书上的东西蒙混了过去,但是自己明白自己实际上是不懂的。近有时间了,于是试着整理一下linux的...
  • 通道是一种专用处理部件,它能控制一台或多台外设的工作,...所谓中断是指当主机接到某种信号(如I/O设备完成信号)时,马上停止原来的工作,转去处理这一事件,当事件处理完毕,主机又回到原来的工作点继续工作。 ...
  • 目前,随着企业业务的不断增长,数据中心日常所消耗的能源也呈同步增长趋势,一旦发生市电中断故障,单台柴油发电机根本满足不了数据中心后备电源容量需求,所以,往往需要多台机组并...
  • MCS-51单片机中断源的种类及工作方式 中断控制寄存器IE中断优先级寄存器IP及定时器/计数器及外部中断控制寄存器TCON的使用方法 MCS-51型单片机中断响应过程 外部中断的结构及原理 熟练编制中断服务程序;第一讲 80C...
  • 微型计算机的中断系统中断原理中断的基本概念中断中断源中断识别中断断点中断服务程序中断系统中断管理中断源的识别中断的优先级中断嵌套中断过程中断源请求中断中断响应中断响应周期8086 CPU中断系统中断类型外部...
  • 1.问题的引出 1.操作系统如何从计算机一加电以后启动到正常运行然后最终让我们的应用程序各自正常地开始自己的工作? 2.操作系统如何给我们应用提供服务以及控制外设或者与外设进行交互. ...
  • 缓冲区溢出(buffer overflow),在电脑学上是指针对程序设计缺陷,向程序输入缓冲区写入使之溢出的内容(通常是超过缓冲区能保存的最大数据量的数据),从而破坏程序运行、趁著中断之际并获取程序乃至系统的控制权...
  • 今天为大家分享的干货就是51单片机的中断系统,中断的原理等,希望能对单片机初学者有所帮助。中断的概念CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B...
  • 上讲通过讲述用单片机控制一个外部的LED闪烁实验来向读者介绍了单片机的工作原理与开发流程。这一讲将介绍单片机内部非常重要的两个资源——定时/ ...通过该讲,读者可以掌握定时器的工作原理和单片机的中断系统
  • MCS-51单片机中断源的种类及工作方式 中断控制寄存器IE中断优先级寄存器IP及定时器/计数器及外部中断控制寄存器TCON的使用方法 MCS-51型单片机中断响应过程 外部中断的结构及原理 熟练编制中断服务程序;第一讲 80C...
  • 文章目录操作系统——计算机系统概述计算机的基本构成微处理器的发展指令的执行中断中断和指令周期中断处理过程多个中断顺序中断处理嵌套中断处理存储器的层次结构访问的局部性原理高速缓存高速缓存原理高速缓存设计...
  • 大学学操作系统原理的时候,感觉进程和文件似乎是介绍最多的两块内容,但慢慢发现,要想理解清楚操作系统工作机制,如果按知识学习的先后顺序排,中断应当是比较靠前的才对,只有理解了中断的机制,才有可能真正...
  • 操作系统原理

    2018-01-08 15:06:45
    操作系统原理 1.1操作系统做了什么? 1.2.1操作系统的定义和作用 1.2.2 操作系统的定义和作用 ...1.2操作系统的定义和作用(全) ...1.3操作系统的主要特征 ... 异常机制 工作原理 2.4实例: X86的中断与异常机制 2.5
  • 计算机组成原理实验七:中断实验

    千次阅读 2019-04-24 09:02:36
    加深理解计算机系统中断工作原理及处理过程。 学习和掌握中断产生、响应、处理等技术。 掌握中断服务子程序的编写要点,进行一次硬、软件的综合调试。 二、实验设备与器材      ~~~~~&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 777
精华内容 310
关键字:

中断系统工作原理