80C51单片微机市公开课一等奖省赛课获奖课件_第1页
80C51单片微机市公开课一等奖省赛课获奖课件_第2页
80C51单片微机市公开课一等奖省赛课获奖课件_第3页
80C51单片微机市公开课一等奖省赛课获奖课件_第4页
80C51单片微机市公开课一等奖省赛课获奖课件_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

普通高等教育“十一五”国家级规划教材

单片微型计算机原理与接口技术(第二版)高锋编著科学出版社北京80C51单片微机第1页第五章

80C51单片微机

中止系统原理及应用80C51单片微机第2页

中止概念出现,是计算机系统结构设计中重大变革。 当代计算机中操作系统实现管理调度,其物质基础就是丰富中止功效和完善中止系统。一个CPU资源要面向多个任务,出现资源竞争,而中止技术实质上是一个资源共享技术。中止系统包含它硬件和软件编程。

80C51单片微机第3页⒈中止系统几个概念: ⑴中止 程序执行过程中,允许外部或内部事件经过硬件打断程序执行,使其转向为处理外部或内部事件中止服务程序中去;完成中止服务程序后,CPU继续原来被打断程序,这么过程称为中止响应过程,如图5-1所表示。 ⑵中止源 能产生中止外部和内部事件。

5.1中止系统概述

5.1.1单片微机中止系统需要处理问题

80C51单片微机第4页 ⑶中止优先级 当有几个中止源同时申请中止时,或者CPU正在处理某中止源服务程序时,又有另一中止源申请中止,那么CPU必须要确定优先去处理谁能力。

⑷中止嵌套 优先级高事件能够中止CPU正在处理低级中止服务程序,待完成了高级中止服务程序之后,再继续被打断低级中止服务程序。80C51单片微机第5页⒊实现故障及时发觉及处理

应用中因为外界干扰、硬件或软件设计中存在问题等原因,在实际运行中会出现硬件故障、运算错误、程序运行故障等,有了中止技术,单片微机就能及时发觉故障并自动处理。

⒋实现人机联络

如经过键盘向单片微机发出中止请求,能够实时干预计算机工作。80C51单片微机第6页 ⒉单片微机中止系统需要处理问题 ⑴当单片微机内部或外部有中止申请时,CPU能及时响应中止,停下正在执行任务,转去处理中止服务子程序,中止服务处理后能回到原断点处继续处理原先任务; ⑵当有多个中止源同时申请中止时,应能先响应优先级高中止源,实现中止优先级控制; ⑶当低优先级中止源正在享用中止服务时,若这时优先级比它高中止源也申请中止,要求能停下低优先级中止源服务程序转去执行更高优先级中止源服务程序,实现中止嵌套,并能逐层正确返回原断点处。80C51单片微机第7页⒈实现CPU与外部设备速度配合

经过中止方法来协调快速CPU与慢速外部设备之间工作。⒉实现实时控制 依靠中止技术能实现实时控制。 实时控制要求计算机能及时完成被控对象随机提出分析和计算任务。在自动控制系统中,要求各控制参量随机地在任何时刻可向计算机发出请求,CPU必须作出快速响应、及时处理。

5.1.2中止主要功效80C51单片微机第8页

80C51中止系统包含中止源、中止允许存放器IE、中止优先级存放器IP、中止矢量等。 在80C51中,只有两级中止优先级。图5–2是80C51中止系统结构示意图。5.280C51中止系统

80C51单片微机第9页

80C51有5个中止源,80C52增加了一个中止源——定时器/计数器T2。 每一个中止源都能被程控为高优先级或低优先级。◆ 两个外部中止源INT0和INT1:外部设备中止请求信号、掉电等故障信号都能够从INT0或INT1引脚输入。 三个内部中止源:T0和T1定时/计数谥出中止源和串行口发送或接收中止源。 5.2.1中止源80C51单片微机第10页 1.外部中止

◆外部中止是由外部信号引发,共有两个外部中止,它们中止请求信号分别从引脚INT0和INT1上引入。 ◆外部中止请求有两种信号触发方式.可经过设置相关控制位进行定义。 当设定为电平有效方式时,若INT0或INT1引脚上采样到有效低电平,则向CPU提出中止请求; 当设定为跳变有效方式时,若INT0或INT1引脚上采样到有效负跳变,则向CPU提出中止请求。

80C51单片微机第11页⑴INT0:外部中止0。

当IT0=0时,低电平有效; 当IT0=1时,下降沿有效。⑵INT1:外部中止1。 当IT1=0时,低电平有效; 当IT1=1时,下降沿有效。

80C51单片微机第12页⒉

定时中止

当计数器发生计数溢出时,表明设定定时时间到或计数值已满,这时能够向CPU申请中止。80C51有两个源,即: ⑴TF0:T0溢出中止。 ⑵TF1:T1溢出中止。80C51单片微机第13页⒊串行中止 每当串行口发送或接收一帧串行数据时,就产生一个中止请求。 RXD,TXD:串行中止。80C51单片微机第14页

◆矢量中止:当CPU响应中止时,由硬件直接产生一个固定地址,即矢量地址,由矢量地址指出每个中止源设备中止服务程序入口。 ◆当CPU识别出某个中止源时,由硬件直接给出一个与该中止源相对应矢量地址,从而转入各自中止服务程序。中止矢量地址见表5-1。5.2.2中止矢量

80C51单片微机第15页

INT0,INT1,T0及T1中止标志存放在TCON存放器中;串行口中止标志存放在SCON存放器中。

定时器/计数器控制存放器TCON:

◆IT1:INT1中止申请触发方式控制位 ◆IT0:INT0中止申请触发方式控制位。

5.3中止控制

5.3.1中止标志80C51单片微机第16页◆TF1:T1计数溢出,由硬件置位,响应中止时由硬件复位。不用中止时用软件清0。◆TF0:T0计数溢出,由硬件置位,响应中止时由硬件复位。不用中止时用软件清0。◆IE1=1时,外部中止1向CPU申请中止。◆IE0=1时,外部中止0向CPU申请中止。80C51单片微机第17页 串行口控制存放器SCON:◆TI:串行口发送中止源。发送完一帧,由硬件置位。响应中止后,必须用软件清0。◆RI:串行口接收中止源。接收完一帧,由硬件置位。响应中止后,必须用软件清0。80C51单片微机第18页中止允许和禁止由中止允许存放器IE控制。中止允许存放器IE:5.3.2中止允许控制

◆IE存放器中各位设置:为0时,禁止中止;为1时,允许中止。◆系统复位后IE存放器中各位均为0,禁止全部中止。80C51单片微机第19页 ⑴EX0:外部中止0中止允许位。 ⑵ET0:T0中止允许位。 ⑶EX1:外部中止1中止允许位。 ⑷ET1:T1中止允许位。 ⑸ES:串行口中止允许位。 ⑹EA:CPU中止允许位。当EA=1,允许全部中止开放,总允许后,各中止允许或禁止由各中止源中止允许控制位进行设置;当EA=0时,屏蔽全部中止。

80C51单片微机第20页 在80C51中有高、低两个中止优先级,经过IP来设定。 中止优先级存放器IP:

◆IP存放器中各位设置:为0时,为低中止优先级;为1时,设为高中止优先级。◆系统复位后IP存放器中各位均为0,全部设定为低中止优先级。5.3.3中止优先级80C51单片微机第21页

中止优先级控制,还有两个不可寻址优先级状态触发器,一个用于指示某一高优先级中止正在进行服务,而屏蔽其它高优先级中止;另一个用于指示某一低优先级中止正在进行服务,从而屏蔽其它低优先级中止,但不能屏蔽高优先级中止。

◆在中止执行过程中,高中止优先级能够中止低中止优先级中止过程。不过若在中止服务程序中,关掉全部中止(CLREA)或关掉部分中止时除外。 ◆当CPU同时接收到两个不一样优先级中止请求时,先响应高优先级中止,假如CPU同时接收到是几个同一优先级中止请求时,则由内部硬件查询序列确定它们优先服务次序,

80C51单片微机第22页 ★在同一优先级内有一个由内部查询序列确定笫二个优先级结构。其排列以下:

中止源

中止优先级

⒈外部中止0 最高 ⒉定时器T0中止 ⒊外部中止1 ⒋定时器T1中止 ⒌串行口中止 ⒍定时器T2中止 最低(80C52)

80C51单片微机第23页

INT0,INT1中止触发方式有两种:◆电平触发方式,低电平有效。◆跳变触发方式,电平发生由高到低跳变时触发。●IT1、IT0=0,选择电平触发方式;●IT1、IT0=l,选择跳变触发方式,即当INT0,INT1引脚检测到前一个机器周期为高电平、后一个机器周期为低电平时,则置位IE0、IE1且向CPU申请中止。

5.3.4外部中止触发方式80C51单片微机第24页 因为CPU每个机器周期采样INTO、INT1引脚信号一次,为确保中止请求被采样到,外部中止源送INTO、INT1引脚中止请求信号应最少保持一个机器周期。跳变触发方式,外部中止源送INT0、INT1引脚中止请求信号高、低电平应最少各保持一个机器周期,才能确保CPU采集到电平跳变;电平触发方式,则外部中止源送INT0、INT1引脚请求中止低电平有效信号,应一直保持到CPU响应中止为止。80C51单片微机第25页

1.

由单片微机内部硬件自动复位。

对于T0、T1溢出中止和采取跳变触发方式外部中止请求,在CPU响应中止后,由内部硬件自动去除中止标志TF0和TF1、IE0和IE1,而自动撤除中止请求。5.3.5中止请求撤除

80C51单片微机第26页2.应用软件去除对应标志。 对于串行接收/发送中止请求和80C52中T2溢出和捕捉中止请求,在CPU响应中止后,必须在中止服务程序中应用软件去除RI、TI、TF2和EXF2这些中止标志,才能撤除中止。80C51单片微机第27页3.采取外加

硬件结合软件去除中止请求。

对于采取电平触发方式外部中止请求,中止标志撤消是自动,但中止请求信号低电平可能继续存在,在以后机器周期采样时又会把已清“0”IE0、IE1标志重新置“1”,再次申请中止。 确保在中止响应后把中止请求信号从低电平强制改变为高电平。可在系统中加入如图5-3所表示电路。80C51单片微机第28页从图5-3中可看到,用D触发器锁存外部中止请求低电平,并经过触发器输出端Q送INT0或INT1,所以D触发器对外部中止请求没有影响。但在中止响应后,为了撤消低电平引发中止请求,可利用D触发器直接置位端SD来实现。采取80C51一根I/O口线来控制SD端。只要在SD端输入一个负脉冲即可使D触发器置“1”。

ANLP1,#0FEH;Q置1 ORLP1,#01H;SD无效使P1.0输出一个负脉冲,其连续时间为两个机器周期,足以使D触发器置位,撤除低电平中止请求。80C51单片微机第29页

从中止请求发生直到被响应去执行中止服务程序,中止响应过程时序如图5-4所表示。

⒈中止采样 针对外部中止请求信号进行,而内部中止请求都发生在芯片内部,能够直接置位TCON或SCON中中止请求标志。在每个机器周期S5P2期间,各中止标志采样对应中止源,并置入对应标志。5.4中止响应过程和响应时间

5.4.1中止响应过程

80C51单片微机第30页

⒉中止查询

若查询到某中止标志为1,则按优先级高低进行处理,即响应中止。 80C51中止请求都聚集在TCON和SCON中。而CPU则在下一机器周期S6期间按优先级次序查询各中止标志。先查询高级中止,再查询低级中止。同级中止按内部中止优先级序列查询。假如查询到有中止标志位为“1”,则表明有中止请求发生,接着从相邻下一个机器周期S1状态开始进行中止响应。

80C51单片微机第31页 ⒊中止响应

硬件自动生成长调用指令为LCALLaddr16,而addr16就是各中止源中止矢量地址(参见表5-1)。◆先将程序计数器PC内容压入堆栈进行保护,先低位地址,后高位地址,同时堆栈指针SP加2。◆将对应中止源中止矢量地址装入PC,去执行中止服务程序。◆中止服务程序由中止矢量地址开始执行,直至碰到RETI为止。执行RETI,一是撤消中止申请,弹出断点地址进入PC,先弹出高位地址,后弹出低位地址,同时堆栈指针SP减2,恢复原程序断点地址执行;二是恢复中止触发器原先状态。

80C51单片微机第32页 中止响应是有条件,在接收中止申请时,如遇以下情况之一时,硬件生成长调用指令“LCALL”将被封锁:⑴CPU正在执行同级或高一级中止服务程序中。因为当一个中止被响应时,其对应中止优先级触发器被置“1”,封锁了同级和低级中止;⑵查询中止请求机器周期不是执行当前指令最终一个周期。⑶当前正在执行RETI指令或执行对IE、IP读/写操作指令。80C51中止系统特征要求,在执行完这些指令之后,必须再继续执行一条指令,然后才能响应中止。

80C51单片微机第33页中止执行过程与调用子程序相同点: ⑴都是中止当前正在执行程序,转去执行子程序或中止服务程序。 ⑵都是由硬件自动地把断点地址压入堆栈,然后经过软件完成现场保护。 ⑶执行完子程序或中止服务程序后,都要经过软件完成现场恢复,并经过执行返回指令,重新返回到断点处,继续往下执行程序。 ⑷二者都能够实现嵌套,如中止嵌套和子程序嵌套。80C51单片微机第34页

中止执行与调用子程序差异 ⑴中止请求信号能够由外部设备发出,是随机,比如故障产生中止请求;子程序调用却是由软件编排好。 ⑵中止响应后由固定矢量地址转入中止服务程序,而子程序地址由软件设定。 ⑶中止响应是受控,其响应时间会受一些原因影响;子程序响应时间是固定。

80C51单片微机第35页

普通来说,在单级中止系统中,中止响应时间最短为3个机器周期,最长为8个机器周期。 当中止请求标志位查询占1个机器周期,而这个机器周期又恰好是指令最终一个机器周期,在这个机器周期结束后,CPU即响应中止,产生硬件长调用LCALL指令,执行这条长调用指令需要2个机器周期,中止响应时间为3个机器周期。5.4.2中止响应时间80C51单片微机第36页

中止响应时间最长为8个机器周期。假如CPU正在执行是RETI指令或访问IP、IE指令,则等候时间不会多于2个机器周期,而中止系统要求把这几条指令执行完必须再继续执行一条指令后才能响应中止,如这条指令恰好是4个机器周期长指令(比如乘法指令MUL或除法指令DIV),再加上执行长调用指令LCALL所需2个机器周期。 假如中止请求被前面所列三个条件之一所阻止,所需响应时间就更长些。假如正在处理同级或优先级更高中止,那么中止响应时间还需取决于处理中中止服务程序执行时间。80C51单片微机第37页

在80C51系列单片微机中,普通只有两个外部中止请求输入端INT0、INT1。当某个系统需要多个外部中止源时,能够经过增加“OC门”结合软件来扩展;当定时器/计数器在系统中有空余时,能够经过对计数器计数长度巧妙设置,使定时器/计数器外部输入脚(T0或T1)成为外部中止请求输入端。5.5外部中止源扩展

80C51单片微机第38页

引入芯片本身外部中止请求输入端(INT0、INT1)就可很方便地扩展多个外部中止源。图5–5就是占用一个80C51INT0(或INT1)扩展4个外部中止源电路。 4个扩展外部中止源中有一个或几个出现高电平,反相器输出为0,引发INT0低电平触发中止,中止源都是电平触发方式。当满足外部中止请求条件时,则CPU响应中止,转入0003H单元开始执行中止服务程序。5.5.1采取“OC门”经“线或”后实现80C51单片微机第39页 在中止服务程序中,由软件设定次序查询外中止哪一位是高电平,然后进入该中止处理程序。查询次序就是外部扩展中止源中止优先级次序。流程图示于图5-6。INT0中止服务程序以下:PINTO:PUSHPSW ;保护现场 PUSHACC JBP1.0,LOOP1 ;转向中止服务程序1 JBP1.l,LOOP2 ;转向中止服务程序2 JBP1.2,LOOP3 ;转向中止服务程序3 JBP1.3,LOOP4 ;转向中止服务程序480C51单片微机第40页INTEND:POPACC ;恢复现场

POPPSW RETILOOP1:… ;中止服务程序1 AJMPINTENDLOOP2:… ;中止服务程序2 AJMPINTENDLOOP3:… ;中止服务程序3 AJMPINTENDLOOP4:… ;中止服务程序4 AJMPINTEND80C51单片微机第41页

利用T0或T1外部事件输入引脚T0、T1作为边缘触发外部中止源。这时应设置定时器/计数器为计数器方式,而计数常数为满刻度值。外部输入脉冲在负跳变时有效,计数器加1后即溢出,向CPU申请中止。 假如以T0、T1计数脉冲输入作为外部中止请求输入,T0、T1中止矢量用做第3、笫4个扩展外部中止矢量,T0、T1中止服务程序入口地址作为第3、第4个扩展外部中止服务入口地址。 当T2用做波特率发生器时,若EXEN2置1,则T2EX端信号产生负跳变时,EXF2将置1,但不会发生重装载或捕捉操作。T2EX能够作为一个附加外部中止源。

5.5.2经过片内定时器/计数器来实现80C51单片微机第42页

例.把外部中止请求信号2连到T1引脚上,T1设为方式2,即8位自动重装载方式,时间常数设为满刻度值FFH。外部中止服务程序入口地址存放在T1中止矢量区中。初始化程序段以下: ORG 0000H AJMP MAIN ORG 001BH ;T1中止矢量用作外部中止2 ;中止矢量 LJMP INT2

80C51单片微机第43页 ORG 0030HMAIN:MOV TMOD,#60H;设T1计数器方式2 MOV TL1,#0FFH ;置T1计数常数 MOV TH1,#0FFH SETB EA ;开中止 SETB ET1 ;允许计数器1中止 SETB TR1 ;开启计数 ------INT2: ------ ;外部中止2服务程序80C51单片微机第44页

80C51中止系统中,允许用户单步运行程序。普通是设置一个单步键(STEP),用以产生脉冲,按一次STEP键就执行一条指令,经过检验结果来检验每条指令执行正确是否。 80C51中止结构有一个主要特征,即执行中止返回指令RETI后,必须最少执行一条其它指令后,才能响应新中止。经典方法是使用外部中止,并将其设为电平触发方式。 硬件上,把按键产生脉冲连到INT0,作为外部中止0中止请求信号,并把电路设计为不按键时为低电平,按一次键产生一个正脉冲。

5.680C51单步操作

80C51单片微机第45页外部中止0中止服务程序,在中止服务程序末尾为∶ JNBP3.2,$ ;INT0=0,则等候 JBP3.2,$ ;INT0=1,则等候 RETI ;中止返回 在没有按键时,INT0=0,中止请求有效,响应中止后执行中止服务程序,在执行到JNBP3.2,$指令时等候。当按下单步键后产生一个正脉冲,执行中止返回,再执行一条指令后,因为已为低电平,所以单片微机再次响应中止,并进入中止服务程序等候。

80C51单片微机第46页

80C51共有5个中止源,由4个特殊功效存放器TCON、SCON、IE和IP进行管理和控制。

在80C51中,需要用软件对以下5个内容进行设置:⑴中止服务程序入口地址设定。⑵某一中止源中止请求允许与禁止。⑶对于外部中止请求,还需进行触发方式设定。⑷各中止源优先级别设定。⑸CPU开中止与关中止。

5.7中止服务程序设计80C51单片微机第47页

中止程序普通包含中止控制程序和中止服务程序两部分。中止控制程序即中止初始化程序,普通包含在主程序中。例.试编写设置外部中止INT0和串行接口中止为高优先级,外部中止INT1为低优先级。屏蔽T0和T1中止请求初始化程序段。 将中止请求优先级存放器IP第0、4位置“l”,其余位置“0”。 将中止请求允许存放器第0、2、4、7位置“l”,其余位置“0”。80C51单片微机第48页编程以下: ORG 0000H SJMP MAIN ORG 0003H LJMP INT0INT ;设外部中止INT0中止矢量 ORG 0013H LJMP INT1INT ;设外部中止INT1中止矢量 ORG 0023H LJMP SIOINT ;设串行口中止矢量80C51单片微机第49页

ORG 0030HMAIN:… MOVIP,#00010001B;设外部中止INT0和串行 ;口中止为高优先级 MOVIE.#10010101B;允许INT0、INT1、串行 ;口中止,开CPU中止80C51单片微机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论