当前位置:网站首页 > C++编程 > 正文

单片机程序的入口地址是,外部中断1的入口地址是(mcs-51单片机的外部中断0中断入口地址为)



定义:CPU执行正常程序时,系统中出现特殊请求(中断申请),CPU暂时中止当前执行的程序,转去处理更紧急的事件(中断服务程序),处理完毕后,CPU自动返回原程序(中断返回)的过程。

作用:

①提高CPU的工作效率;

②可使多项任务共享一个资源(CPU);

③可及时处理突发事件,实现分时处理、实时处理;

解决CPU与外设之间的速度矛盾,使CPU高效率地对多个外部设备进行管理。

8051有5个中断源:2个外部中断、2个定时器中断、一个串行口中断。

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

 2.2 中断标志寄存器

(1)控制寄存器TCON(SFR地址为88H)

TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8F8E8D8C8B8A8988

        IT0:外部中断/INT0的触发位,用来选择外部中断/INT0是低电平触发(0)还是下降沿触发(1);

        IE0:外部中断/INT0的标志位,当IE0=1时,说明外部/INT0有中断信号,CPU开始处理,当IE0=0时,硬件复位;

        IT1:外部中断/INT1的触发位,用来选择外部中断/INT0是低电平触发(0)还是下降沿触发(1);

        IE1:外部中断/INT1的标志位,当IE0=1时,说明外部/INT1有中断信号,CPU开始处理,当IE1=0时,硬件复位;

        TF0:T0中断标志位;

        TF1:T1中断标志位。

(2)串行口控制寄存器SCON(SFR地址为98H)

SCONSM0SM1SM2RENTB8RB8TIRI位地址9F9E9D9C9B9A9998

RI:串行口接受请求标志;

TI:串行口发送请求标志。

3.1 中断的开放与关闭控制

由中断允许寄存器IE(SFR地址0A8H)实现两级控制

IEEAXXESET1EX1ET0EX0位地址AFAEADACABAAA9A8

EA:总允许位(一级控制)

ES:串行口中断允许位(二级控制)

ET1:定时器T1中断允许控制(二级控制)

EX1:外部中断/INT1中断允许控制(二级控制)

ET0:定时器T0中断允许控制(二级控制)

EX0:外部中断/INT0中断允许控制(二级控制)

例如:

想允许外部中断/INT1开放,需要:

SETB EA

SETB EX1

或 MOV IE,#84H

3.2 中断优先级的控制

由中断优先级寄存器IP(SFR地址0B8H)实现两级控制(1为高级、0为低级)

IPXXXPSPT1PX1PT0PX0位地址BCBBBAB9B8

PS:串行口中断优先级设置位;

PT1:定时器T1中断优先级设置位;

PX1:外部中断/INT1中断优先级设置位;

PT0:定时器T0中断优先级设置位;

PX0:外部中断/INT0中断优先级设置位;

优先级排队:高级>低级

                      同一级别中,按:/INT0>/INT1>T0>T1>串行口中断

CPU对中断的处理:先高后低,按序执行,高打断低,高不理低。

4.1 中断的查询

每个机器周期中,所有的中断源都按照其顺序检查一遍;

到当前机器周期的S6状态时,就能查到所有被激活的中断申请并拍好优先顺序;

在下一个机器周期的S1状态,只要不受阻断,就可以开始响应高级中断。

中断被阻止的情况:

①同级或高级的中断正在执行;

②当前的机器周期不是指令的最后一个机器周期,需要等指令执行完后;

③CPU正在执行的指令是RETI或访问IE或IP寄存器时,CPU不会响应中断,而且要等到该指令的下一条指令执行完后中断才能响应。

4.2 中断的响应过程

①CPU查询到某一中断源后,使相应的“优先级激活触发器”置位用以阻断同级或低级中断;

②在硬件的控制下,自动将当时PC的内容(断点地址)压入堆栈,以备返回;

③然后将相应的中断矢量(中断入口地址)装入PC,使CPU转向对应的中断服务程序;

ROM中的六个特殊单元,五个存放中断的入口地址

0003H:/INT0的中断入口地址

000BH:T0的中断入口地址

0013H:/INT1的中断入口地址

001BH:T1的中断入口地址

0023H:串行口的中断入口地址

④中断服务程序最后一条指令是RETI,他将清除“优先级激活触发器”,从堆栈中弹出断点地址并装入PC中,使CPU回到原来主程序断点处继续运行。

5.1 外部中断的触发方式

两个外部中断输入:/INT0&/INT1

两种触发方式:低电平触发、下降沿触发,由控制寄存器TCON中的IT0、IT1位控制

5.2 MCS-51对外部中断触发信号的要求

(1)边沿触发方式

        在相邻的两个机器周期内,若第一次采集到的是高电平,第二次采集到的是低电平时,则TCON中的标志位IE0或IE1置位。因此外部设备发出的边沿信号的时间应该大于一个机器周期。

(2)电平触发方式

        CPU在每个机器周期的S5P2期间采集到的/INT0(/INT1)的引脚为低电平时,将激活TCON中的标志位IE0(IE1)。所以电平触发方式中,外部的低电平至少保留一个机器周期

若外部信号不能满足要求,可用触发器等硬件电路解决。

        要求:在CPU进入中断服务程序后,执行RETI返回主程序前,外部的低电平必须撤掉,否则CPU返回主程序后,由于外部低电平时间过长导致再次进入中断,这样不仅造成一次多余的错误操作,还会使主程序不能正常运行。

6.1 解决外部电平信号过长的硬件方案

6.2 解决外部电平信号过长的软件方案

在中断处理程序的最后,RETI之前,对外部中断信号进行判断、等待,只有外部中断信号消失后再执行RETI返回主程序。

 优点:硬件电路简单

缺点:程序执行速度慢,且不能解决外部中断信号过窄的问题。

6.3 MSC-51各中断请求的撤除方法

中断源中断标志说明撤出方法INT0、INT1IE0、IE1外部边沿触发无影响INT0、INT1IE0、IE1外部电平触发电路、软件撤除T0、T1TF0、TF1定时计数器触发自动清除标志ESRI、TI串行口中断软件清除标志

此表是使用中断服务程序处理中断事件的情况,若采用查询方式来处理事件,都需要软件清除标志

        中断响应时间:从终端有效(中断标志置1)到转向中断入口地址所需要的响应时间。

7.1 最短时间

中断请求有效,中断查询(一周期)+长调用,转向入口地址(两周期)

所以是三个机器周期

7.2 最长时间

如果中断信号发生在前面所说的三种阻断的情况,响应时间就要变长:

①若CPU正在执行同级或更高级中断,则取决于正在执行的中断的执行时间;

②若CPU执行的是多周期指令,如乘除法指令(4周期),最坏的情况还要再等三个周期才能开始进行本次中断的执行,所以是3+3=6;

③若CPU当前执行的指令是RETI或是访问寄存器IE或IP,则需要执行完本指令(一个周期)的下一条指令,若下一条指令是乘除法(四个周期),则为1+4+3=8。

若不考虑第①种情况,最长时间为8个机器周期。

到此这篇单片机程序的入口地址是,外部中断1的入口地址是(mcs-51单片机的外部中断0中断入口地址为)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • upc和ean(upc和ean的共同符号特征)2025-01-10 18:09:04
  • dhcp获取ip地址失败怎么办(dhcp获取地址错误)2025-01-10 18:09:04
  • apc和对乙酰氨基酚片能同吃吗(对乙酰氨基酚片可以和阿司匹林一起吃吗)2025-01-10 18:09:04
  • plc1200编程软件(plc1200编程软件百度网盘)2025-01-10 18:09:04
  • dhclient怎么读(dhc英文怎么读)2025-01-10 18:09:04
  • can通信硬件接口(can通信模块)2025-01-10 18:09:04
  • com串口线(com串口线接法)2025-01-10 18:09:04
  • linux dhclient命令(linux dhclient卡住)2025-01-10 18:09:04
  • iec104协议详解(iec1850协议)2025-01-10 18:09:04
  • dhclient获取不到ipv6(dhcp获取不到ip地址怎么办)2025-01-10 18:09:04
  • 全屏图片