版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中断的基本概念MCS-51的中断系统中断源和中断标志中断的允许和优先权中断的处理过程外部中断源的扩展中断的应用第
章
中断系统本章内容SingleChipMicrocomputer中断系统1回顾:单片机内部结构示意图
CPU存储器定时器/计数器
中断系统P0-P3TxDRxDTINT并行I/O口串行I/O口P5
2简易秒表精度不高 ORG 0000HSTART: MOV P1,#0FFH MOV R0,#0FFHL1: MOV P1,R0 LCALL DELAY DJNZ R0,L1 SJMP STARTDELAY: MOV R2,#10 ;延时1sDEL3: MOV R3,#200DEL2: MOV R4,#125DEL1: NOP NOP DJNZR4,DEL1 DJNZR3,DEL2 DJNZR2,DEL3 RET
END3定时/计数器功能内部结构框图工作原理工作方式编程和应用MORE451、M1和M0:方式选择位。定义如下:M1M0工作方式功能说明
00方式013位计数器
01方式116位计数器
10方式2自动再装入8位计数器
1
1
方式3定时器0:分成两个8位计数器定时器1:停止计数TMOD
M0
M1C/GATE
M0
M1C
/GATET1T02、:功能选择位。为0时,设置为定时器工作方式;为1时,设置为计数器工作方式。3、GATE:门控位。当GATE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须(P3.2)或(P3.3)为高电平方可启动定时器,即允许外中断、启动定时器。一、定时/计数器方式寄存器TMOD
6二、定时器/计数器控制寄存器TCON
TCON(88H)8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0各位含义:TCON.7TF1:定时器1溢出标志位。TCON.6TR1:定时器1运行控制位。TCON.5TF0:定时器0溢出标志位。TCON.4TR0:定时器0运行控制位。TCON.3IE1:外部中断1()请求标志位。TCON.2IT1:外部中断1触发方式选择位。TCON.1IE0:外部中断0()请求标志位。TCON.0IT0:外部中断0触发方式选择位。7三、定时器/计数器的初始化(准备工作)1、确定工作方式——对TMOD赋值。2、预置定时或计数的初值——直接将初值写入TH0、TL0或TH1、TL1。3、根据需要开启定时器/计数器中断——直接对IE寄存器赋值。4、启动定时器/计数器工作——将TR0或TR1置“1”。85.1.2定时/计数器的工作方式1、方式0、方式19105.1.2定时/计数器的工作方式2、方式2每次计数满溢出后,具有重置初值的功能。11125.1.2定时/计数器的工作方式4、方式313用定时器T0方式3实现实训5步骤1)中1s的延时
DELAY: MOV R3,#14H ;置100ms计数循环初值
MOV TMOD,#07H ;置定时器0为方式3计数 MOV TH0,#06H ;置TH0初值
MOV TL0,#38H ;置TL0初值
SETB TR0 ;启动TL0 SETB TR1 ;启动TH0 LP1: JBC TF1,LP2 ;查询TH0计数溢出
SJMP LP1 ;未到500s继续计数
LP2: MOV TH0,#06H ;重置TH0初值 CLR P3.4 ;T0引脚产生负跳变 NOP ;负跳变持续 NOP SETB P3.4 ;T0引脚恢复高电平
JBC TF0,LP3 ;查询TH0计数溢出 SJMP LP1 ;100ms未到继续计数LP3: MOV TL0,#38H ;重置TL0初值 DJNZ R3,LP1 ;未到1s继续循环
RET14例5.4用单片机定时器/计数器设计一个简易秒表,由P1口连接的LED采用BCD码显示,发光二极管亮表示0,暗则表示1。计满60s后从头开始,依次循环。定时器T0:定时方式1,产生1s的定时;定时器T1:计数方式2,当1s时间到,由软件复位T1(P3.5)脚,产生负跳变,再由定时器T1进行计数,计满60次(1分种)溢出,再重新开始计数。按上述设计思路设定TMOD及T1初值:TMOD=61HT1的初值:25660=196=C4H15
ORG 0000H MOV TMOD,#61H ;T0方式1,定时;T1方式2,计数 MOV TH1,#0C4H ;T1置初值
MOV TL1,#0C4H SETB TR1 ;启动T1,T1从196开始计数,每60次向 TF1产生一个溢出位DISP:MOV A,#00H
MOV P1,A ;计数显示初始化,点亮所有灯,从0开始显示CONT:ACALLDELAY;一次延时就是一秒 CLR P3.5 ;向T1送一个负跳变
NOP NOP ;负跳变保持两个时钟周期 SETB P3.5 ;T1引脚恢复高电平
INC A ;累加器加1,每向T1送一个负跳变后,A加1 DA A ;将16进制数转换成BCD数 MOV P1,A ;将该数送至P1,并显示
JBC TF1,DISP ;查询T1,看是否已经达60次计数(60S) SJMP CONT ;60s不到继续计数16DELAY:MOVR3,#14H;置计数循环初值20(将 50ms循环20次)
MOV TH0,#3CH ;置定时器初值
MOV TL0,#0B0H SETB TR0 ;启动T0,T0从15536开始计时, 每50ms向TF0产生一个溢出位LP1:JBC TF0,LP2 ;查询TF0位,看是否有计数溢出
SJMP LP1 ;未到50ms继续计数LP2:MOV TH0,#3CH
MOV TL0,#0B0H ;重新置定时器初值 DJNZ R3,LP1 ;未到1s继续循环,(20次循环没结 束,继续执行)
RET ;返回主程序
END17小结定时器/计数器既可用作定时亦可用作计数,而且其应用方式非常灵活;软件定时与定时器定时(硬件定时)软件定时是对循环体内指令机器数进行计数定时器定时是采用加法计数器直接对机器周期进行计数二者工作机理不同,置初值方式也不同定时器定时在方便程度和精确程度上都高于软件定时18作业P1535.6191、使用定时/计数器的计数方式检测按键次数。连续按动单次脉冲的按键,由8位发光二极管显示按键次数。
ORG0000hmovTMOD,#00000101b;方式1,记数工 作方式
movTH0,#0movTL0,#0;计数初值为0setbTR0;开始记数Loop:movP1,TL0 ;将记数结果送P1口call DELAYljmpLoopDELAY:要注意硬件的连接!!!按键接在哪?202、利用T1方式1产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。
ORG0000HMOVTMOD,#10HMOVTH1,#0??HMOVTL1,#??HSETBTR1;计数器从????H开始计数, 每1ms将向TF1产生一个溢出位WAIT:
JBCTF1,NXSJMPWAITNX:CPLP1.0 ;将P1.0求反的子程序MOVTH1,#0??HMOVTL1,#??HSJMPWAITEND21中断的基本概念日常生活中断的例子单片机中的中断概念中断技术的优点22日常中断的例子返回你正在专心看书,突然电话铃响,于是你记下正在看的书的页数,去接电话,接完电话后再回来接着看书。23计算机中的中断概念返回中断是指由于某种随机事件的发生,计算机暂停现行程序的运行,转去执行另一程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。将能引起中断的事件称为中断源。CPU现行运行的程序称为主程序。处理随机事件的程序称为中断服务子程序。24
中断技术的优点分时操作
——CPU可以同多个外设“同时”工作实时处理
——CPU及时处理随机事件故障处理
——电源掉电、存储出错、运算溢出
25MCS-51中断系统中断源中断标志中断允许中断优先级MCS-51中断系统结构中断寄存器26
MCS-51的中断系统——中断源8051单片机有5个中断请求源:单片机INT0或外部输入中断源INT0(P3.2)INT1或外部输入中断源INT1(P3.3)T0片内定时器T0的溢出T1片内定时器T1的溢出串行口片内串行口发送或接收中断源27
MCS-51的中断系统——中断标志CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断标志位每一个中断源都有相应的中断标志位;某一个中断源申请中断,相应中断标志位置1。28
MCS-51的中断系统——中断允许CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TIRI中断源中断标志位
EA——总中断允许位,EA=1开放所有中断,EA=0,禁止所有中断;某一个中断源还有相应的中断允许位,1允许相应中断源的中断,0禁止相应中断源的中断。中断允许ESET0EX0EX1ET1EA29
MCS-51的中断系统——中断优先级CPU主程序INT0INT1T0T1串口IE0TF0IE1TF1TISI中断源中断标志位
单片机中有两个中断优先级,即高优先级中断和低优先级中断,前者优先权高于后者(在程序中设置,相应位=1,为高优先级);同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件形成,无法改变)。中断允许ESET0EX0EX1ET1EA自然优先级高低优先控制PSPT0PX0PX1PT130IE0TCONSCONINT0IT0=0IT0=1INT1IT1=0IT1=1TF0IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然优先级矢量地址高级中断请求自然优先级矢量地址低级中断请求PX0PT0PX1PT1PSIEIPMCS-51的中断系统结构图中断标志位中断源允许总允许中断优先级31TCON寄存器——T0和T1控制寄存器TF1TF0IE1IT1IE0IT0TCONT1溢出中断标志(TCON.7):
T1启动计数后,计满溢出由硬件置位TF1=1,向CPU请求中断,此标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。7654321032TF1TF0IE1IT1IE0IT0TCON88H外部中断INT1中断标志位(TCON.3):IE1=1,外部中断1向CPU申请中断
外部中断INT1触发方式控制位(TCON.2):
IT1=0,电平触发方式
IT1=1,下降沿触发方式76543210TCON寄存器——T0和T1控制寄存器注意:该寄存器可以位寻址。33返回
TI(SCON.1)——串行发送中断标志。RI(SCON.0)——串行接收中断标志。TIRISCON寄存器——串行口控制寄存器SCON98H76543210注意:该寄存器可以位寻址。34IE寄存器——中断允许寄存器
IEA8H
EAESET1EX1ET0EX0例:允许定时器T0中断:
SETBEASETBET0
或MOVIE,#82H76543210注意:该寄存器可以位寻址。35
51单片机有两个中断优先级——高级和低级专用寄存器IP为中断优先级寄存器,用户可用软件设定相应位为1,对应的中断源被设置为高优先级,相应位为0,对应的中断源被设置为低优先级系统复位时,均为低优先级该寄存器可以位寻址PSPT1PX1PT0PX0IP寄存器——中断优先级寄存器
IPB8H
7654321036对同时发生多个中断申请时:☞不同优先级的中断同时申请(很难遇到)
——先高后低☞相同优先级的中断同时申请(很难遇到)——按序执行☞正处理低优先级中断又接到高级别中断
——高打断低☞正处理高优先级中断又接到低级别中断
——高不理低中断优先级处理原则37中断处理过程
中断处理过程分为三个阶段:中断响应、中断处理和中断返回。
中断响应中断处理(又称中断服务)中断返回
中断请求的撤除
在中断返回前,应该撤除该中断请求,否则会引起重复中断
中断响应中断返回38中断响应(以外部中断0为例)中断响应:在满足CPU的中断响应条件之后,CPU对中断源中断请求予以处理。中断响应过程:保护断点地址;中断响应把程序转向中断服务程序的入口地址(通常称矢量地址)。特别注意:这些工作是硬件自动完成的!
断点地址中断服务子程序的入口地址外部中断0入口地址0003ZD0AJMPORG0003HAJMPZD0ZD039中断响应中断服务子程序入口地址又称为中断矢量或中断向量。中断响应单片机中5个中断源的矢量地址是固定的,不能改动。断点地址中断服务子程序的入口地址40程序存储器ROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH使用时,通常在这些入口地址处存放一条跳转指令,使程序跳转到用户安排的中断服务程序起始地址上去!41程序存储器ROM0000H:复位后,程序的入口地址(PC=0000H)0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH包含T0中断服务子程序的程序结构:
ORG0000H AJMPMAIN
ORG000BH AJMPINTT0
ORG0100HMAIN:...INTT0:...RETIENDAJMPMAINAJMPINTT042中断处理中断服务程序从中断子程序入口地址开始执行,直到返回指令RETI为止,这个过程称为中断处理(或中断服务)。中断服务子程序一般包括两部分内容,一是保护和恢复现场,二是处理中断源的请求。中断响应入口地址RETI43中断处理INTT0:PUSHACC PUSHDPHPUSHDPLPUSHPSW
中断源服务
POPPSW
POPDPLPOPDPHPOPACCRETI保护现场恢复现场44中断返回中断返回是指中断服务完后,计算机返回到原来暂停的位置(即断点),继续执行原来的程序。中断返回由专门的中断返回指令RETI来实现。中断响应中断返回45中断返回RETI指令功能:把断点地址取出,送回到程序计数器PC中去。另外,它还通知中断系统已完成中断处理,将清除优先级状态触发器。特别注意:不能用RET指令代替RETI指令!中断响应中断返回46中断处理过程示意图中断源发中断请求中断响应条件是否满足?中断是否受阻?
把PC断点地址压入堆栈
相应中断源的中断入口地址送入PC,转向中断服务程序NYYN
由硬件自动完成47
关中断保护现场中断服务
开中断
关中断恢复现场
开中断中断返回断点地址由堆栈弹入PC保护现场和恢复现场的过程中不允许中断,以免现场遭到破坏。保护和恢复现场之后的开中断是为了允许有更高级中断打断此中断服务程序。中断服务程序硬件自动完成48中断请求的撤除
CPU响应某中断请求后,在中断返回前,应该撤除该中断请求,否则会引起另一次中断。
定时器0或1溢出:CPU在响应中断后,硬件清除了有关的中断请求标志TFO或TF1,即中断请求是自动撤除的。
边沿激活的外部中断:CPU在响应中断后,也是用硬件自动清除有关的中断请求标志IE0或IE1。
串行口中断:CPU响应中断后,没有用硬件清除T1、R1,故这些中断不能自动撤除,而要靠软件来清除相应的标志。49电平触发外部中断撤除方法较复杂。因为在电平触发方式中,CPU响应中断时不会自动清除IE1或IE0标志,所以在响应中断后应立即撤除INT0或INT1引脚上的低电平。在硬件上,CPU对INT0和INT1引脚的信号不能控制,所以这个问题要通过硬件,再配合软件来解决。电平激活的外部中断源中断标志的撤除50中断系统的应用中断控制实质上是对4个寄存器TCON、SCON、IE、IP进行管理和控制。(1)CPU的开、关中断。(2)具体中断源中断请求的允许和禁止(屏蔽)。(3)各中断源优先级别的控制。(4)外部中断请求触发方式的设定。中断管理和控制程序一般都包含在主程序中,根据需要通过几条指令来完成。中断服务程序是一种具有特定功能的独立程序段,可根据中断源的具体要求进行服务。51例:在P1.0上产生周期为10ms的方波,设晶振频率12MHz.(要求分别以查询方式和中断方式设计程序)
查询方式:ORG0000HMOVTMOD,#10HMOVTH1,#0CEHMOVTL1,#78HSETBTR1WAIT:JBCTF1,NXSJMPWAITNX:CPLP1.0MOVTH1,#0CEHMOVTL1,#78HSJMPWAITEND中断方式:ORG0000HMOVTMOD,#10HMOVTH1,#0CEHMOVTL1,#78HMOVIE,#88HSETBTR1WAIT:SJMPWAITORG001BHCPLP1.0MOVTH1,#0CEHMOVTL1,#78HRETI52中断应用前后要做的几项工作中断前
开中断允许:必须
选择优先级:根据需要选择,可有/可无
设置控制位:INTx—触发方式(ITx)
Tx—TCON,TMOD,TRx,初值……
RI/TI—SCON,REN,RB8,TB8,……中断后进入中断服务后:保护现场,关中断,……退出中断服务前:恢复现场,开中断,设Tx的初值,清TI/RI,……中断服务程序的最后一条指令必是
RETI531)定时器查询方式DELAY:MOVR3,#14H MOV TMOD,#10H MOV TH1,#3CH
MOV TL1,#0B0H SETB TR1 LP1: JBC TF1,LP2
SJMP LP1 LP2: MOV TH1,#3CH
MOV TL1,#0B0H DJNZ R3,LP1
RET
END ORG 0000HCONT:MOV R2,#07H MOV A,#0FEHNEXT:MOV P1,A ACALL DELAY RL A DJNZ R2,NEXT MOV R2,#07HNEXT1:MOV P1,A RR A ACALL DELAY DJNZ R2,NEXT1 SJMP CONT实训5—信号灯的控制要求:信号灯循环显示,时间间隔为1秒。(1)用定时器方式1编制1秒的延时程序。(2)用定时器中断方式编制1秒的延时程序。系统采用12M晶振,采用定时器T1方式1定时50ms,50ms×20=1s(R3计数)542)定时器中断方式 ORG 0000H
AJMP 0100H
ORG 001BH
AJMP CONT
ORG 0100HMAIN:MOV TMOD,#10H MOV TH1,#3CH
MOV TL1,#0B0H SETB EA
SETB ET1
SETB TR1 CLR 08H
MOV R3,#14HDISP:MOV R2,07H MOV A,#0FEHNEXT:MOV P1,A JNB 08H,$
CLR 08H
RL A DJNZ R2,NEXT
MOV R2,#07HNEXT1:MOVP1,A JNB 08H,$ CLR 08H RR A DJNZ R2,NEXT1 SJMP DISPCONT:MOV TH1,#3CH
MOV TL1,#0B0H DJNZ R3,EXIT
MOV R3,#14H
SETB 08H EXIT:RETI END12M晶振,采用定时器T1方式1定时50ms,50ms×20=1s(R3计数),再用08H位作1s计数溢出标志
55外部中断源的扩展单片机仅有两个外部中断输入端.可用两种方法扩展:1.定时器T0,T1。(工作在计数方式下)2.中断和查询结合。56
1.用定时器作外部中断源例5.5将定时器T0扩展为外部中断源。解:将定时器T0设定为方式2(自动恢复计数初值),TH0和TF0的初值均设置为FFH,允许T0中断,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版小区商业街物业社区文化活动赞助与支持服务合同2篇
- 2025年陶瓷行业标准制定与实施合同3篇
- 2025年私家车租赁车辆检测与评估服务合同3篇
- 2025年劳务派遣合同审查协议
- 2025年云服务监控协议
- 2025版个人房屋产权转移合同模板4篇
- 二零二五年度绿色建筑改造项目合同书4篇
- 2025年垃圾处理和解协议
- 2025年混合赠与合同与赠与税
- 2025版协议离婚法律援助与调解服务协议3篇
- 第1课 隋朝统一与灭亡 课件(26张)2024-2025学年部编版七年级历史下册
- 2025-2030年中国糖醇市场运行状况及投资前景趋势分析报告
- 冬日暖阳健康守护
- 水处理药剂采购项目技术方案(技术方案)
- 2024级高一上期期中测试数学试题含答案
- 山东省2024-2025学年高三上学期新高考联合质量测评10月联考英语试题
- 不间断电源UPS知识培训
- 三年级除法竖式300道题及答案
- 2024年江苏省徐州市中考一模数学试题(含答案)
- 新一代飞机维护技术
- 幼儿园教师培训:计数(数数)的核心经验
评论
0/150
提交评论