版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章第七章 中断系统中断系统 主要内容:主要内容: 7.17.1中断概述中断概述 7.27.2中断源和中断控制寄存器中断源和中断控制寄存器 7.3 7.3 中断处理过程中断处理过程 7.1 7.1 中断概述中断概述 1.什么叫中断 cpu暂时中止其正在执行的程序,转去执行请求中断的那 个外设或事件的服务程序,等处理完毕后再返回执行原来中止 的程序, 叫做中断。 7.17.1中断概述中断概述 一、 什么叫中断? 7.1 7.1 中断概述中断概述 2. 中断与调用子程序,不同的是: 子程序嵌套是在程序中事先按排好的;中断嵌套是随机发生 的。 子程序嵌套无次序限制,中断嵌套只允许高优先级“中断”
2、低优先级。 7.1 7.1 中断概述中断概述 二、 为什么要设置中断? 提高cpu工作效率 具有实时处理功能 具有故障处理功能 实现分时操作 中断功能强弱是计算机性能优中断功能强弱是计算机性能优 劣的重要标志劣的重要标志 7.1 7.1 中断概述中断概述 中断源中断源 中断申请中断申请 开放中断开放中断 保护现场保护现场 中断服务中断服务 恢复现场恢复现场 中断返回中断返回 三、中断涉及的几个环节 7.1 7.1 中断概述中断概述 cpu 在每个机器周期的s5p2期间,会自动查询各个中断 申请标志位,若查到某标志位被置位,将启动中断机制。 四、cpu识别中断申请的依据: 7.2 7.2 中断源
3、和中断控制寄存器中断源和中断控制寄存器 一、中断源一、中断源 中断源是指能发出中断请求,引起中断的装置或事件。 80c51单片机的中断源共有5个,其中2个为外部中断源,3个 为内部中断源: 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 int0:外部中断0,中断请求信号由p3.2输入。 int1:外部中断1,中断请求信号由p3.3输入。 t0:定时/计数器0溢出中断,对外部脉冲计数由p3.4输入。 t1:定时/计数器1溢出中断,对外部脉冲计数由p3.5输入。 串行中断:包括串行接收中断ri和串行发送中断ti。 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 中断请
4、求:定时和外中断控制寄存器tcon; 串行控制寄存器scon; 中断允许控制寄存器ie; 中断优先级控制寄存器ip。 二、二、 中断控制寄存器中断控制寄存器 8080c51c51单片机中涉及中断控制的有单片机中涉及中断控制的有3 3个方面个方面4 4个特殊功能寄个特殊功能寄 存器存器: 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 int0int0、int1int1、t0t0、t1t1中断请求标志放在中断请求标志放在tcontcon中中 串行中断请求标志放在串行中断请求标志放在sconscon中。中。 1. 中断请求控制寄存器 tcontcon8 8fhfh8 8eheh8 8
5、dhdh8 8chch8 8bhbh8 8ahah8989h h8888h h 位名称位名称tf1tf1tf0tf0ie1ie1it1it1ie0ie0it0it0 功能功能 t1t1 中断中断 标志标志 t0t0 中断中断 标志标志 中断中断 标志标志 触发触发 方式方式 中断中断 标志标志 触发触发 方式方式 (1 1)tcontcon的结构、位名称、位地址和功能如下:的结构、位名称、位地址和功能如下: 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 tcon位功能: tf1 t1溢出中断请求标志 t1计数溢出后,tf1=1 tf0 t0溢出中断请求标志 t0计数溢出后,tf
6、0=1 tf0/tf1:定时器溢出中断申请标志位: =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 ie1 外中断中断请求标志 当p3.3引脚信号有效时,ie1=1 ie0 外中断中断请求标志 当p3.2引脚信号有效时,ie0=1 ie0/ie1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 it1 外中断触发方式控制位 it1=1,边沿触发方式; it1=0,电平触发方式。 it0 外中断触发方式控制位 其意义和功能与it1
7、相似。 it0/it1:外部中断请求的触发方式选择位: =0:在int0/int1端申请中断的信号低电平有效; =1:在int0/int1端申请中断的信号负跳变有效. 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 cpu 主 程 序 int0 int1 t0 t1 串口 ie0 tf0 ie1 tf1 ti ri 中断源中断源中断标志位中断标志位 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 (2 2)串行控制寄存器)串行控制寄存器sconscon tcontcon9999h h9898h h 位名称位名称titiriri 功能功能 串行发送串行发送 中断标志中
8、断标志 串行接收串行接收 中断标志中断标志 titi 串行口发送中断请求标志串行口发送中断请求标志 riri 串行口接收中断请求标志串行口接收中断请求标志 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 8080c51c51对中断源的开放或关闭由中断允许控制寄存器对中断源的开放或关闭由中断允许控制寄存器ieie控制。控制。 2.2.中断允许控制寄存器中断允许控制寄存器ieie ieie的结构、位名称和位地址如下:的结构、位名称和位地址如下: ieieafhafhachachabhabhaahaaha9ha9ha8ha8h 位名称位名称eaeaeseset1et1ex1ex1et0
9、et0ex0ex0 中断源中断源cpucpu串行口串行口t1t1t0t0 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 ea ea cpucpu中断允许控制位中断允许控制位( (总开关)总开关) ea=1ea=1,cpucpu开中;开中; ea=0ea=0,cpucpu关中,且屏蔽所有关中,且屏蔽所有5 5个中断源。个中断源。 ex0 ex0 外中断外中断int0int0中断允许控制位中断允许控制位 ex0=1ex0=1,int0int0开中;开中;ex0=0ex0=0,int0int0关中。关中。 ex1 ex1 外中断外中断int1int1中断允许控制位中断允许控制位 ex
10、1=1ex1=1,int1int1开中;开中;ex1=0ex1=0,int1int1关中。关中。 et0 et0 定时定时/ /计数器计数器t0t0中断允许控制位中断允许控制位 et0=1et0=1,t0t0开中;开中;et0=0et0=0,t0t0关中。关中。 et1 - et1 - 定时定时/ /计数器计数器t1t1中断允许控制位中断允许控制位 et1=1et1=1,t1t1开中;开中;et1=0et1=0,t1t1关中。关中。 es es 串行口中断串行口中断( (包括串发、串收包括串发、串收) )允许控制位允许控制位 es=1es=1,串行口开中;串行口开中;es=0es=0,串行口关
11、中串行口关中 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 说明说明: : 80 80c51c51对中断实行对中断实行两级两级控制,控制,总控制位是总控制位是eaea,每一中断每一中断 源还有各自的控制位。源还有各自的控制位。首先首先要要ea=1ea=1,其次其次还要自身的控制还要自身的控制 位置位置“1”“1”。 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 3.3.中断优先级控制寄存器中断优先级控制寄存器ipip 80c51有5个中断源,划分为2个中断优先级:高优先级 和低优先级。 (1)ip的结构、位名称和位地址如下: ieiebchbchbbhbbhba
12、hbahb9hb9hb8hb8h 位名称位名称pspspt1pt1px1px1pt0pt0px0px0 中断源中断源串行口串行口t1t1int1int1t0t0int0int0 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 px0 :int0中断优先级控制位。px0=1,为高优先级; px0=0,为低优先级; px1 :int1中断优先级控制位。控制方法同上。 pt0 :t0中断优先级控制位。控制方法同上。 pt1 :t1中断优先级控制位。控制方法同上。 ps :串行口中断优先级控制位。控制方法同上。 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 (2)中断优先
13、级的控制原则: 1.低优先级中断请求不能打断高优先级的中断服务,反之可以; 2.一个中断一但响应,与它同级的中断请求不能中断它。 3.如果同级的多个中断请求同时出现,则按cpu的查询次序。 cpu的查询次序:外部中断0定时/计数器0外部中断1定时/计 数器1串行中断 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 (3)(3)中断嵌套中断嵌套 当cpu正在执行某个中断服务程序时,如果发生更高一 级的中断源请求中断,cpu可以“中断”正在执行的低优先级 中断,转而响应更高一级的中断,这就是中断嵌套。 中断嵌套只能高优先级“中断”低优先级,低优先 级不能“中断”高优先级,同一优先级也
14、不能相互“中断” 。 7.2 7.2 中断源和中断控制寄存器中断源和中断控制寄存器 7.3 7.3 中断处理过程中断处理过程 中断处理过程大致可分为四步: 中断请求、中断响应、中断服务、中断返回 一、中断响应的条件 cpu查询(检测)到某中断标志为“1”,在满足中断响应条 件下,响应中断。 1.中断响应条件: 首先要有中断源发出中断申请 中断总开关打开ea=1 请求中断已经也打开 7.3 7.3 中断处理过程中断处理过程 2.中断受阻的可能: cpu正在执行同级或更高级的中断; 当前的机器周期不是正在执行的指令的最后一个机器周期; 正在执行的指令是reti或者是访向ie、ip的指令, 则执行完
15、 该指令后,必须再另外执行一条指令后才能响应。 7.3 7.3 中断处理过程中断处理过程 3. 中断响应操作 cpu响应中断后,进行下列操作: 保护断点地址; 将相应中断的入口地址送入pc; 撤除该中断源的中断请求标志; 关闭同级中断 80c51五个中断入口地址: int0:0003h; t0:000bh; int1:0013h; t1:001bh; 串行口:0023h 7.3 7.3 中断处理过程中断处理过程 4. 中断请求的撤除 cpu响应中断后,必须清除中断请求“1”标志。否则中 断响应返回后,将再次进入该中断,引起死循环出错。 7.3 7.3 中断处理过程中断处理过程 对定时/计数器t
16、0、t1中断,外中断边沿触发方式,cpu响 应中断时就用硬件自动清除了相应的中断请求标志。 对外中断电平触发方式,需要采取软硬结合的方法消除后 果。 对串行口中断,用户应在串行中断服务程序中用软件清除 ti或ri 7.3 7.3 中断处理过程中断处理过程 例:例:硬件电路如图所示。当外部设备有中断请求时,中断请 求信号经反相,加到锁存器cp端,作为cp脉冲。由于d端接 地为0,q端输出低点平,触发 int0生中断。当cpu响应中断 后,应在该中断服务程序中按排两条指令: clr p1clr p10 0: setb p1 setb p10 0 从而撤消引起重复中断的int0低电平信号。 因此一般
17、来说,对外中断int0、intl,应尽量采用边沿触发 方式,以简化硬件电路和软件程序。 7.3 7.3 中断处理过程中断处理过程 5.5.中断响应等待时间中断响应等待时间 若排除若排除cpucpu正在响应同级或更高级的中断情况,正在响应同级或更高级的中断情况, 中断响应等待时间为中断响应等待时间为: : 3 38 8个机器周期个机器周期 7.3 7.3 中断处理过程中断处理过程 7.3 7.3 中断处理过程中断处理过程 二、 执行中断服务程序 中断服务程序应包含以下几部分: 保护现场 执行中断服务程序主体,完成相应操作 恢复现场 三、中断返回 在中断服务程序最后,必须安排一条中断返回指令ret
18、i, 当cpu执行reti指令后,自动完成下列操作: 恢复断点地址。 7.4 7.4 中断系统的应用中断系统的应用 一、一、 中断主程序初始化中断主程序初始化 1.设置堆栈指针sp 2.定义中断优先级 3.定义外中断触发方式 4.开放中断 5.安排好等待中断或中断发生前主程序应完成的操作内容。 二、二、 中断服务子程序中断服务子程序 中断服务子程序内容要求: 1.在中断服务入口地址设置一条跳转指令,转移到中断服务 程序的实际入口处。 7.4 7.4 中断系统的应用中断系统的应用 由于80c51相邻两个中断入口地址间只有8b的空间,8b只 能容纳一个有38条指令的极短程序,一般情况中断服务程序
19、均大大超出8b长度。因此,必须跳转到其他合适的地址空间。 跳转指令可用sjmp、ajmp或ljmp指令,sjmp、ajmp均受跳转范 围影响,建议用ljmp指令,则可将真正的中断服务程序不受限 制地安排在64kb任何地方。 7.4 7.4 中断系统的应用中断系统的应用 2. 根据需要保护现场。 保护现场不是中断服务程序的必需部分。通常是保护acc、 psw和dptr等特殊功能寄存器中的内容。若中断服务程序中不 涉及acc、psw,dptr,则不需保护,也不需恢复。例如:累加 器a是最常用的特殊功能寄存器,主程序中不可能不用到a。而 发生中断又是随机的,可能正好发生在对a进行操作、a中的数 据还
20、有用时进入中断,而在中断服务程序中又涉及到a,改变 了a中的内容,则在进入中断服务程序对a操作前应对原a中数 据进行保护,以便中断返回后恢复a中原来数据 需要指出的是,保护现场数据越少越好,数据保护越多, 堆栈负担越重,堆栈深度设置应越深。 7.4 7.4 中断系统的应用中断系统的应用 3.中断源请求中断服务要求的操作。 4. 恢复现场。与保护现场相对应,注意先进后出、后进先出 操作原则。 5.中断返回,最后一条指令必须是reti。 7.4 7.4 中断系统的应用中断系统的应用 【例【例7-17-1】 利用定时器t0定时,在p1.0端输出一方波,方波 周期为20ms,已知晶振为12mhz。 主
21、程序: org 0000h ljmp 2000h t0的中断服务程序 org 000bh ajmp 70h 7.4 7.4 中断系统的应用中断系统的应用 org 70h mov tl0,#0f0h mov th0,#0d8h cpl p1.0 reti org 2000h mov tmod ,#01h mov tl0,#0f0h mov th0,#0d8h mov ie,#82h setb tr0 here:sjmp here 7.4 7.4 中断系统的应用中断系统的应用 【例6-2】 出租车计价器计程方法是车轮每运转一圈产生一个 负脉冲,从外中断int0(p3.2)引脚输入,行驶里程为轮胎
22、周长运转圈数,设轮胎周长为2m,试实时计算出租车行驶 里程(单位米),数据存32h、31h、30h。 解:编程如下: org 0000h;复位地址 ljmp stat;转初始化 org 0003h;中断入口地址 ljmp int;转中断服务程序 7.4 7.4 中断系统的应用中断系统的应用 org 0100horg 0100h; ;初始化程序首地址初始化程序首地址 stat: mov sp,#60hstat: mov sp,#60h; ;置堆栈指针置堆栈指针 setb it0setb it0; ;置边沿触发方式置边沿触发方式 mov ip,#01hmov ip,#01h; ;置高优先级置高优先
23、级 mov ie,#81hmov ie,#81h; ;开中开中 mov 30h,#0mov 30h,#0; ;里程计数器清里程计数器清0 0 mov 31h,#0mov 31h,#0; ; mov 32h,#0 mov 32h,#0; ; ljmp main ljmp main; ;转主程序转主程序, ,并等待中断并等待中断 org 0200horg 0200h; ;中断服务子程序首地址中断服务子程序首地址 int: push accint: push acc; ;保护现场保护现场 push pswpush psw; ; mov a,30h mov a,30h; ;读低读低8 8位计数器位计数
24、器 add a,#2add a,#2; ;低低8 8位计数器加位计数器加2 2m m mov 30h,a mov 30h,a; ;回存回存 clr aclr a; ; addc a,31h addc a,31h; ;中中8 8位计数器加进位位计数器加进位 mov 31h,amov 31h,a; ;回存回存 clr aclr a; ; addc a,32h addc a,32h; ;高高8 8位计数器加进位位计数器加进位 mov 32h,amov 32h,a; ;回存回存 push pswpush psw; ;恢复现场恢复现场 push acc push acc ; ; reti reti; ;
25、中断返回中断返回 main主程序可以处理主程序可以处理 循环显示等任务。循环显示等任务。 7.4 7.4 中断系统的应用中断系统的应用 【例6-3】现有5个外中断源ex1、ex20、ex21、ex22和ex23,高 电平时表示请求中断,要求执行相应中断服务程序,试编制 程序。 解: org0000h ;复位地址 ljmpmain;转主程序 org0003h ;中断入口地址 ljmppint0 ;转中断服务程序 org0013h ;中断入口地址 ljmppint1 ;转中断服务程序 7.4 7.4 中断系统的应用中断系统的应用 orgorg0100h0100h ; ;主程序首地址主程序首地址 m
26、ain: movmain: movsp,#60hsp,#60h ; ;置堆栈指针置堆栈指针 orlorltcon,#05htcon,#05h; ;置置int0int0、int1int1为边沿触发方式为边沿触发方式 setbsetbpx0 px0 ; ;置为高优先级置为高优先级 movmovie,#0ffhie,#0ffh; ;全部开中全部开中 ; ;主程序内容主程序内容 org 1000horg 1000h; ;中断服务程序首地址中断服务程序首地址 pint0: pushpint0: pushaccacc; ;中断中断, ,保护现场保护现场 lcall work1lcall work1; ;调
27、用调用ex1ex1服务子程序服务子程序 poppopaccacc; ;恢复现场恢复现场 retireti; ;中断返回中断返回 orgorg 2000h 2000h ; ;中断服务程序首地址中断服务程序首地址 pint1: clrpint1: clr ea ea ;cpu;cpu禁中禁中 pushpush acc acc ; ;中断保护现场中断保护现场 pushpush dph dph ; ; push push dpl dpl ; ; setb setb ea ea ;cpu;cpu开中开中 7.4 7.4 中断系统的应用中断系统的应用 jb p1.0,jb p1.0,lwk20lwk20;
28、p1.0=1,ex20;p1.0=1,ex20请求中断请求中断 jb p1.1,jb p1.1,lwk21lwk21;p1.1=1,ex21;p1.1=1,ex21请求中断请求中断 jb p1.2,jb p1.2,lwk22lwk22;p1.2=1,ex22;p1.2=1,ex22请求中断请求中断 lcall work23 lcall work23 ;p1.3=1,;p1.3=1,调用调用ex23ex23服务子服务子 lret:lret: clr clr ea ea;cpu;cpu禁中禁中 poppop dpl dpl; ;恢复现场恢复现场 poppop dph dph; ; pop pop acc acc; ; setb setb ea ea;cpu;cpu开中开中 retireti; ;中断返回中断返回 lwk20lwk20: lcall work20: lcall work20 ;p1.0 = 1,;p1.0 = 1,调用调用ex20ex20服务子程序服务子程序 sjmp lret sjmp lret ; ;转中断返回转中断返回 lwk21lwk21: lcall work21 : lcall work21 ;p1.1 = 1,;p1.1 =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年山西省晋城市高考语文三模试卷
- 夏谷暑雨-商业综合体
- 通信原理知到智慧树章节测试课后答案2024年秋武汉科技大学
- 卫生整改报告(30篇)
- 服装销售个人2022-2024-2025年度述职报告工作总结(29篇)
- 辽宁省商品房买卖合同
- 沥青路面摊铺机械租赁合同范本
- 房屋钻桩安全协议书
- 房屋租赁合同白粉页
- 第七单元 认识酸和碱【单元卷测试卷】-九年级化学下册单元速记巧练(鲁教版2024)
- GB/T 19076-2022烧结金属材料规范
- 工具移交表模板
- 变更索赔成功案例-某工程窝工变更索赔报告
- GB 19517-2004国家电气设备安全技术规范
- 模具定期保养点检表
- 山西省太原市市药品零售药店企业药房名单目录
- 工程部长桥梁工程施工技术(PPT116)
- 全面设备保养TPM培训教材课件
- 茶叶企业营销课件
- 高炉无料钟炉顶设备安装与调试技术
- 初中语文人教九年级上册如何分析环境描写的作用 教案
评论
0/150
提交评论