




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/5/13,1,第5章80C51的中断系统及定时/计数器,80C51单片机的中断系统,5.1,80C51单片机的中断处理过程,5.2,80C51单片机的定时/计数器,5.3,80C52的定时/计数器2,5.4,2020/5/13,2,5.180C51单片机的中断系统,5.1.180C51中断系统的结构,CPU进行工作A时发生了事件B,请求CPU马上处理CPU暂时中断当前工作A,转去处理事件B事件B处理完后,回到工作A被中断的地方继续处理A工作,中断的概念,中断源中断请求中断服务中断返回中断系统,中断的优点利用率高实时性强可靠性好,2020/5/13,3,80C51中断系统的结构,5个中断源、2个优先级,2020/5/13,4,中断源,5.1.280C51的中断源,外部中断0(INT0)外部中断1(INT1)T0溢出中断(TF0)T1溢出中断(TF1)串行口中断(RI或TI),2020/5/13,5,触发方式设置及中断标志,电平方式(ITx=0),INTx引脚低电平时IEx=1,响应中断后IEx不自动清0(INTx引脚状态)。边沿方式(ITx=1),INTx引脚负跳变时IEx=1,响应中断后IEx自动清0。,外部中断标志IE1、IE0(用IEx表示),2020/5/13,6,两种触发方式比较:,电平方式时,INTx低电平必须保持到响应时,否则就会漏掉;在中断服务结束前,INTx低电平必须撤除,否则中断返回之后将再次产生中断。例,8255的中断请求线在接受读或写操作后即被复位,因此以其去请求电平触发方式的中断比较方便。,边沿方式时,采样到有效下降沿后,在IEx中将锁存一个1。若CPU暂时不能响应,申请标志也不会丢失,直到响应时才清0。例,ADC0809的转换结束信号EOC为正脉冲,经反相后就可以作为80C51的INTx信号。,2020/5/13,7,溢出中断标志TF1、TF0(用TFx表示),溢出中断请求标志TFx,Tx启动后就开始由初值进行加1计数,直至最高位产生溢出使TFx=1向CPU请求中断。CPU响应中断后TFx自动清0。,SCON的中断标志,RI:串口接收中断标志,响应中断时不能自动清除TI:串口发送中断标志,响应中断时不能自动清除,2020/5/13,8,5.1.380C51中断的控制,中断允许控制,中断源的开放和屏蔽由IE控制(1,开放;0,禁止),EX0:外中断0允许ET0:T0中断允许EX1:外中断1允许,ET1:T1中断允许ES:串口中断允许EA:CPU中断允许,2020/5/13,9,中断优先级控制,中断优先级由IP控制(1,高级;0,低级),PX0:外中断0优先级PT0:T0中断优先级PX1:外中断1优先级,PT1:T1中断优先级PS:串口中断优先级,同一优先级的自然顺序:自高至低:INT0、TO、INT1、T1、串口。,2020/5/13,10,中断优先级遵循的原则,几个中断同时申请,先响应高级的中断正进行的中断服务,同级或低级中断不能对其中断,但可以被高级中断所中断。,为此,中断系统内设有对应高、低2个优先级状态触发器(用户不能寻址)。状态触发器的复位由中断返回指令RETI控制。,2020/5/13,11,5.280C51单片机中断处理过程,5.2.1中断响应条件和时间,中断响应条件,有中断请求相应的中断允许位为1CPU开中断(即EA=1),遇下面情况之一将不被响应(此间中断条件失效,中断丢失),正在处理同级或高级中断当前查询周期不是所执行指令的最后一个机器周期正在执行RETI或访问IE或IP的指令,2020/5/13,12,中断响应时间,中断响应至少需要3个完整的机器周期(38个)!,受阻时要附加35个机器周期(无同级或高级中断正进行),查询周期不是当前指令的最后机器周期(如MUL,+3)查询周期恰逢RETI类指令(且后跟MUL指令+5),2020/5/13,13,5.2.2中断响应过程,CPU响应中断过程,将相应优先级状态触发器置1(阻断后来同级或低级中断)执行硬件LCALL指令(PC入栈,中断服务程序入口址送PC)执行中断服务程序,编写中断服务程序注意,中断服务程序入口存放指令LJMP或AJMP现场保护与现场恢复,2020/5/13,14,5.2.3中断返回,中断服务程序最后指令必须是RETI,其功能:,将断点从堆栈弹送PC,CPU从原断点继续执行将相应优先级状态触发器清0,恢复原来工作状态,注意,不能用RET代替RETI中断服务程序中PUSH和POP必须成对使用,2020/5/13,15,5.2.4中断程序举例,【例5-1】单外部中断源示例,ORG0000HSTART:LJMPMAINORG0003HLJMPINTOORG0030HMAIN:CLRIT0;电平SETBEASETBEX0MOVDPTR,#1000H,主程序:,2020/5/13,16,中断服务程序:,ORG0200HINT0:PUSHPSWPUSHACCCLRP3.0;由P3.0输出0NOPNOPSETBP3.0MOVP1,#0FFH;置P1口为输入MOVA,P1;输入数据MOVXDPTR,A;存入数据存储器INCDPTR;修改数据指针,指向下一个单元POPACC;恢复现场POPPSWRETI,2020/5/13,17,【例5-2】多外部中断源示例,中断服务程序:,ORG0003HLJMPINSE0ORG0013HLJMPINSE1INSE0:PUSHPSW;XI0中断服务PUSHACCPOPACCPOPPSWRETI(转下页),2020/5/13,18,INSE1:PUSHPSW(接上页)PUSHACCJBP1.0,DV1;P1.0为1,转XI1中断服务程序JBP1.1,DV2;P1.1为1,转XI2中断服务程序JBP1.2,DV3;P1.2为1,转XI3中断服务程序JBP1.3,DV4;P1.3为1,转XI4中断服务程序INRET:POPACCPOPPSWRETIDV1:;XI1中断服务程序AJMPINRETDV4:;XI4中断服务程序AJMPINRET,2020/5/13,19,5.380C51单片机的定时/计数器,定时/计数器的结构,基本型:T0,定时、计数。T1,定时、计数、串口波特率发生器。,增强型:增加了T2。见5.3.4节。,5.3.1定时/计数器的结构和工作原理,TH1、TL1TH0、TL0TCONTMOD,2020/5/13,20,定时/计数器的工作原理,实质是16位加1计数器,定时器模式时,是对内部机器周期计数。计数值乘以机器周期就是定时时间计数器模式时,是对外部事件计数。脉冲由T0(P3.4)或T1(P3.5)引脚输入。,注意:(若计数值为N,计数初值为X)溢出信号使TF0或TF1置1,并发出中断请求,16位时有:N=65536-X,或X=65536-N12MHz晶振时,计数频率低于0.5MHz,2020/5/13,21,5.3.2定时/计数器的控制,工作方式寄存器TMOD,GATE:门控位。GATE0时,只要TRx为1,就可启动计数器工作;GATA1时,定时器的启动还要加上INTx引脚为高电平这一条件。C/T:模式选择位。清0为定时模式,置1为计数方式。M1M0:工作方式设置位。可设置四种工作方式(见下页)。,2020/5/13,22,注意:TMOD不能进行位寻址,2020/5/13,23,控制寄存器TCON,TFx:Tx溢出标志位。响应中断后TFx有硬件自动清0。用软件设置TFx可产生同硬件置1或清0同样的效果。TRx:Tx运行控制位。置1时开始工作;清0时停止工作。TRx要由软件置1或清0(即启动与停止要由软件控制)。,2020/5/13,24,5.3.3定时/计数器的工作方式,T0有方式0、1、2、3;T1有方式0、1、2。以T0为例说明。,方式0:13位方式,2020/5/13,25,C/T=1时,则为计数模式,有:X=213-N=8192-NC/T=0时,则为定时模式,有:X=213-N=8192-N,N=t/Tcy,【例5-3】若计数个数N为2,求计数初值。公式法计算:X81922=8190=1FFEH求补法计算:对0000000000010B取反加1为:1111111111110B(1FFEH),初值计算:,公式法,求补法:X=对N求补,2020/5/13,26,门控位作用,当GATE=0时仅由TR0控制与门的开启。与门输出1时,控制开关接通,计数开始;,当GATE=1时与门的开启由INT0和TR0共同控制。这种方式可以用来测量INT0引脚上正脉冲的宽度。,注意:方式0的计数初值高8位和低5位确定麻烦,实际应用中常由16位的方式1取代。,2020/5/13,27,方式1:16位方式,X=216-N=65536-N计数范围:165536计数初值要分成2个字节分别送入TH0、TL0,2020/5/13,28,【例5-4】若要求定时器T0工作于方式1,定时时间为1ms,当晶振为6MHz时,求送入TH0和TL0的计数初值各为多少?应怎样送入TH0和TL0?,由于晶振为6MHz,所以机器周期Tcy为2S,因此:N=t/Tcy=110-3/210-6500X216-N65536-50065036FE0CH,也可以利用以下2条指令完成:MOVTL0,#(65536-500)MOD256;余数为计数初值的低字节MOVTH0,#(65536-500)/256;商为计数初值的高字节,用传送指令分别将FEH送入TH0中,0CH送入TL0中即可。,2020/5/13,29,方式2:8位自动重装方式,X=28-N=256-N计数范围:1256特别适合与脉冲信号发生器,2020/5/13,30,方式3:(仅T0有此方式,T1的方式3将停止计数),TL0进行8位定时/计数TH0进行8位定时(T1方式2时,可出借TR1、TF1),2020/5/13,31,5.3.4定时/计数器用于外部中断扩展,例:用T0扩展一个外部中断源。将T0设置为计数器方式,按方式2工作,TH0、TL0的初值均为0FFH,T0允许中断,CPU开放中断。其初始化程序如下:MOVTMOD,#06H;置T0为计数器方式2MOVTL0,#0FFH;置计数初值MOVTH0,#0FFHSETBTR0;启动T0工作SETBEA;CPU开中断SETBET0;允许T0中断,T0外部引脚上出现一个下降沿信号时,TL0计数加1,产生溢出,将TF0置1,向CPU发出中断请求,2020/5/13,32,5.3.5定时/计数器应用举例,初始化程序应完成:对TMOD赋值,以确定T0和T1的工作方式;求初值,并写入TH0、TL0或TH1、TL1;中断方式时,要对IE赋值,开放中断;使TR0或TR1置位,启动定时/计数器工作。,2020/5/13,33,计数应用,【例5-5】有一包装流水线,产品每计数24瓶时发出一个包装控制信号。试编写程序完成这一计数任务。用T0完成计数,用P1.0发出控制信号。,确定方式字:T0在计数的方式2时:M1M0=10,GATE=0,C/T=1方式控制字为06H,求计数初值X:N=24X=256-24=232=E8H应将E8H送入TH0和TL0中,2020/5/13,34,ORG0000HLJMPMAINORG000BHLJMPDVT0ORG0100HMAIN:MOVTMOD,#06H;置T0计数方式2MOVTH0,#0E8H;装入计数初值MOVTL0,#0E8HSETBET0;T0开中断SETBEA;CPU开中断SETBTR0;启动T0SJMP$;等待中断,DVT0:SETBP1.0NOPNOPCLRP1.0RETIEND,主程序,中断服务程序,2020/5/13,35,定时应用,定时时间较小时(小于65ms)。晶振为12MHz时,Tcy为1S。可直接采用方式1完成定时任务。,【例5-6】利用定时/计数器T0的方式1,产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波,采用中断方式,设系统的晶振频率为12MHz。,确定方式字:T0在定时的方式1时:M1M0=01,GATE=0,C/T=0方式控制字为01H,求计数初值X:Tcy为1SN=10ms/1S=10000X=65536-10000=D8F0H应将D8送TH0,F0H送TL0,2020/5/13,36,ORG0000HLJMPMAINORG000BHLJMPDVT0ORG0100HMAIN:MOVTMOD,#01H;置T0方式1MOVTH0,#0D8H;装入计数初值MOVTL0,#0F0HSETBET0;T0开中断SETBEA;CPU开中断SETBTR0;启动T0SJMP$;等待中断,DVT0:CPLP1.0MOVTH0,#0D8HMOVTL0,#0F0HRETIEND,主程序,中断服务程序,2020/5/13,37,采用软件查询方式完成的源程序如下:,ORG0000HLJMPMAIN;跳转到主程序ORG0100H;主程序MAIN:MOVTMOD,#01H;置T0工作于方式1LOOP:MOVTH0,#0D8H;装入计数初值MOVTL0,#0F0HSETBTR0;启动定时器T0JNBTF0,$;TF0=0,查询等待CLRTF0;清TF0CPLP1.0;P1.0取反输出SJMPLOOPEND,2020/5/13,38,定时时间较大时(大于65ms)。实现方法:一是采用1个定时器定时一定的间隔(如20ms),然后用软件进行计数;二是采用2个定时器级联,其中一个定时器用来产生周期信号(如20ms为周期),然后将该信号送入另一个计数器的外部脉冲输入端进行脉冲计数。,【例5-7】编写程序,实现用定时/计数器T0定时,使P1.7引脚输出周期为2s的方波。设系统的晶振频率为12MHz。,确定方式字:T0在定时的方式1时:M1M0=01,GATE=0,C/T=0方式控制字为01H,求计数初值X:Tcy为1SN=20ms/1S=20000X=65536-20000=4E20H应将4E送TH0,20H送TL0,采用定时20ms,然后再计数50次的方法实现,2020/5/13,39,ORG0000HLJMPMAINORG000BHLJMPDVT0ORG0030HMAIN:MOVTMOD,#01H;置T0方式1MOVT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小区绿化与农业资源利用合作协议
- 农业种植结构调整实施方案合同书
- 业务渠道合作合同书
- 2025合同范本试用合同
- 农民合作社种植技术推广合作协议
- 初一我的收获600字作文记叙文15篇
- 建筑垃圾买卖协议
- 制造业生产流程优化成果表
- 家庭赡养老人合同书
- 发诊感控要求课件
- 麻醉深度监测-洞察及研究
- 铁路专项病害课件
- 2025年口腔修复学笔试题及答案
- 开学安全教育课件
- 桥梁养护应急知识培训课件
- 2025年学历类自考专业(学前教育)学前儿童发展-学前教育原理参考题库含答案解析(5套)
- 2025-2026学年人教版(2024)初中化学九年级上册教学计划及进度表
- 日本设备销售合同范本
- (2024)大学生宪法知识竞赛题库及答案
- 智能化硬件基础知识培训课件
- 2025山西阳泉平定县从社区专职网格员中选聘社区专职工作人员考试备考试题及答案解析
评论
0/150
提交评论