版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章 中断系统81 什么是中断?在单片机中中断能其现哪些功能?答:中断是通过硬件来改变CPU程序运行方向。计算机在执行程序的过程中,由于CPU以外的某种原因,有必要尽快中止当前程序的执行,而去执行相应的处理程序,待处理结束后,再回来继续执行被中止了的原程序。这种程序在执行过程中由于外界的原因而被中间打断的情况称为中断。 在单片机中中断能实现如下功能: (1)能实现中断及返回 当某一个中断源发出中断申请时,CPU能决定是否响应这个中断请求(当CPU在执行更急更重要的工作时,可以暂不响应中断)。若允许响应这个中断请求,CPU必须在现行的指令执行完后,把断点处的PC值(即下一条应执行的指令地址)推
2、入堆栈保留下来 称为保护断点。这一步是硬件自动执行的。 (2)能实现优先权排队 计算机能按中断源级别高低逐次响应的过程称为优先权排队。这个过程可以通过硬件电路来实现,也可以通过程序查询来实现。 (3)能实现中断嵌套当CPU响应某一中断的请求,在进行中断处理时,若有优先权级别更高的中断源发出中断申请,则CPU能中断正在进行的中断服务程序,并保留这个程序的断点(类似于子程序嵌套),响应高级中断;在高级中断处理完以后,再继续进行被中断的中断服务程序。这个过程称为中断嵌套。82 什么是中断优先级?中断优先级处理的原则是什么?答:通常,在系统中有多个中断源,有时会出现两个或更多个中断源同时提出中断请求的
3、情况。这就要求计算机既能区分各个中断源的请求,又能确定首先为哪一个中断源服务。为了解决这一问题,通常给各中断源规定了优先级别,称为优先权或中断优先级。中断优先级处理的原则是:当两个或者两个以上的中断源同时提出中断请求时,计算机首先为优先权最高的中断源服务,服务结束后,再响应级别较低的中断源。83 80C51有几个中断源?各中断标志是如何产生的,又如何清0的?CPU响应中断时,中断入口地址各是多少?答:80C51单片机有5个中断源,分别为:2个外部输人中断源INT0(P32)和INTl(P3.3);2个片内定时器T0和Tl的溢出中断源TF0(TCON5)和TFl(TCON.7);1个片内串行口发
4、送和接收中断源TI(SCONl)和RI(SCON0)。 各中断标志的产生和清0如下: (1)外部申断类 外部中断是由外部原因引起的,可以通过两个固定引脚,即外部中断0 INT0和外部中1 INT1输入信号: INT0一一外部中断0请求信号,由P3.2脚输入。通过IT0(TCON.0)来决定申断请求信号是低电平有效还是下跳变有效。一且输人信号有效,则向CPU申请中断,并且使IE0=1。硬件复位。 INTl外部中断1请求信号,功能与用法类似外部中断0。 (2)定时中断类 定时中断是为满足定时或计数溢出处理的需要而设置的。当定时器/计数器中的计数结构发生计数溢出时,即表明定时时间到或计数值已满,这时
5、就以计数溢出信号作为中断请求,去置位一个溢出标志位。这种中断请求是在单片机芯片内部发生的,无需在芯片上设置引人端,但在计数方式时,中断源可以由外部引人。 TF0 定时器T0溢出申断请求。当定时器T0产生溢出时,定时器T0中断请求标志TFO=1,请求中断处理。使用中断时由硬件复位,在查询方式下可由软件复位(即清0)。 TFl 定时器Tl溢出中断请求。功能与用法类似定时器T0。 (3)串行口中断类 串行口中断是为串行数据的传送需要而设置的。串行中断请求也是在单片机芯片内部发生的,但当串行口作为接收端时,必须有一完整的串行帧数据从RI端引人芯片,d可能引发中断。 RI或TI 串行中断请求。当接收或发
6、送完一串行帧数据时,使内部串行口中断请求标志RI或TI=1,并请求中断。响应中断后必须软件复位。 CPU响应中断时,中断入口地址如下: 中断源 入口地址 外部中断0 0003H 定时器T0申断 000BH 外部中断1 0013H 定时器Tl中断 00lBH 串行口中断 0023H84 中断响应时间是否确定不变的?为什么?答: 中断响应时间不是确定不变的。由于CPU不是在任何情况下对中断请求都予以响应的;此外,不同的情况对中断响应的时间也是不同的。下面以外部中断为例,说明中断响应的时间。 在每个机器周期的S5P2期间,INT0、INT1端的电平被锁存到TCON的IE0和IEl位,CPU在下一个机
7、器周期才会查询这些值。这时如果满足中断响应条件,下一条要执行的指令将是一条硬件长调用指令LCALL,使程序转人中断矢量人口。调用本身要用2个机器周期,这样,从外部中断请求有效到开始执行申断服务程序的第一条指令,至少需要3个机器周期,这是最短的响应时间。 如果遇到中断受阻的情况,则中断响应时间会更长一些。例如,当一个同级或更高级的中断服务正在进行,则附加的等待时间取决于正在进行的中断服务程序:如果正在执行的一条指令还没有进行到最后一个机器周期,附加的等待时间为13个机器周期;如果正在执行的是RETI指令或者访问IE或IP的指令,则附加的等待时间在5个机器周期之内。 若系统中只有一个中断源,则响应
8、时间为38个机器周期。85 请用中断方式按第六章习题66要求设计程序,并分析采用中断后的优点。答:第六章习题66要求编程使Pl.0和Pl.1分别输出周期为2ms和500us的方波。 在此可采用定时器0定时,工作方式设为3,用TL0作为8位定时器,产生250us的定时,则定时初值X为:x=28一(1210625010-6)12=6 TH0=TL0=6H,TMOD=3H源程序 ORG 0000HLJMP MAIN ORG 000BHLJMP TT1MAIN: MOV TMOD,#3H ;设置T0为方式3定时 MOV TL0,#6H ;赋初值 SETB TR0 ;启动T0工作 MOV R0,#4 M
9、OV IE,#82H SJMP $ TT1: PUSH PSW MOV TL0,#6H ;重新赋初值 CPL Pl.l DJNZ R0, L2 MOV R0,#4 ;Pl.0延时计数器置初值 CPL Pl.0 L2: POP PSW SETB TR0 RETI采用中断后计算机不必专门等待定时时间到,可利用这个时间做其他事情。86 中断响应过程中,为什么通常要保护现场?如何保护?答:因为一般主程序和中断服务程序都可能会用到累加器、PSW寄存器及其他一些寄存器。CPU在进人中断服务程序后,用到上述寄存器时,就会破坏它原来存在寄存器中的内容;一旦中断返回,将会造成主程序的混乱。因而在进人中断服务程序
10、后,一般要先保护现场,然后再执行中断处理程序,在返回主程序以前再恢复现场。保护方法一般是把累加器、PSW寄存器及其他一些与主程序有关的寄存器压入堆栈。:保护现场和恢复现场时,为了不便现场数据受到破坏或者造成混乱,一般规定此时CPU不响应新的中断请求。这就要求在编写中断服务程序时,注意在保护现场之前要关中断,在恢复现场之后开中断。如果在中断处理时允许有更高级的中断打断它,则在保护现场之后再开断,恢复现场之前关中断。87 试用中断方法,设计秒、分脉冲发生器。答:利用定时器T0定时,Pl.0口作为秒脉冲发生器的输出端,Pl.1口作为分脉冲发生器的输出端,设晶振频率为12MHz。 采用中断的方法实现这
11、一要求,片内50H、51H单元分别用于进行秒、分的计数。要;T0定时50ms;此时T0的初始值X为: (65 536一X)l10-6。=50l0-3, x=65 536一50 000=15 536=3CB0H T0的中断服务程序入口地址为000BH。 源程序ORG 000BHAJMP 70H ORG 70HMOV TL0,#0B0H ;重赋初值MOV TH0,#3CHDJNZ 50H,L2 ;未到1s继续循环MOV 50H,#20SETB Pl.0 ;发秒脉冲NOPCLR Pl.0DJNZ 5lH,L2 ;未到lmin继续循环MOV 5lH,#60 SETB Pl.1 ;发分脉冲NOPCLR
12、Pl.1L2:SETB TR0RETIMAIN :MOV TMOD,#0lH ;设定时器0为方式1MOV 50H,#20 ;定时1秒循环次数MOV 5lH,#60 ;定时1分循环次数MOV TH0,#3CH ;定时器0赋初值MOV TL0,#0B0HMOV IE,#82H ;CPU开中断,T0开中断SETB TR0 ;启动T0HERE: SJMP HERE ;循环等待定时到 88 880C51单片机的中断系统中有几个优先级,如何设定?若扩充8个中断源,如何确定优先级?答:80C51单片机的中断系统具有两个中断优先级。申断优先级的设定:由专用寄存器IP统一管理,由软件设置每个中断源为高优先级中断
13、或低优先级中断,可实现两级中断嵌套。专用寄存器IP为中断优先级寄存器,锁存各中断源优先级的控制位,用户可由软件设定。其格式如下: 1) IP.4 PS串行口中断优先级控制位。PS=1,设定串行口为高优先级中断;PS=0,为低优先级中断。2) IP.3 PTl定时器Tl中断优先级控制位。PTl=1,设定定时器Tl为高优先级中断;PTl=0,为低优先级中断。3) IP.2 PXl外部中断1中断优先级控制位。PXl=1,设定外部中断1为高优先级中断;PXl=0,为低优先级中断。4)IP.l PT0定时器T0中断优先级控制位。PT0=1,设定定时器T0为高优先级中断;PT0=0,为低优先级中断。5)I
14、P.0 PX0外部中断0中断优先级控制位。PX0=1,设定外部中断0为高优先级中断;PX0=0,为低优先级中断。当系统复位后,IP低5位全部清0,将所有中断源设置为低优先级中断。如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部硬件查询逻辑按自然优先级顺序确定该响应哪个中断请求。其自然优先级由硬件形成,排列如下:中断源 自然优先级外部中断0 最高级定时器T0中断外部中断1定时器Tl中断串行口中断 最低级这种排列顺序在实际应用中很方便,且合理。如果重新设置了优先级,则顺序查询逻辑电路将会相应改变排队顺序。 若扩充8个中断源,可以采用中断和查询结合扩充外中断源的方法确定优先级。例如,可
15、以用8个OC门电路组成线或电路,当8个扩充中断源申有一个或几个出现高电平,OC门输出为0,使INT0、INT1为低电平触发中断,所以这些扩充的外中断源都是电平触发方式(高电平有效)。这8个扩充中断源的输入信号同时接到8个I/O口上。在外申断服务程序中,由软件按人为设定的顺序(优先级)查询外中断源哪位是高电平,然后进入该中断处理。89 试用中断技术设计一个秒闪电路,其功能是发光二极管 LED每次闪亮 400mS。主机频率为 6MHZ。答:本题目可理解为发光二极管LED每次亮400ms,灭600ms。设晶振频率f=6MHz,用定时器0定时,定时时间TMER0=100m,用Pl.0作输出,设Pl.0
16、为高时灯灭。编程如下:ORG 0000HLJMP EX8_9 ;复位跳转ORG 000BHLJMP TIMER0_SUB ;定时器0跳转 ORG 0030 HEX8_9: MOV TMOD,#01H ;定时器0方式1 MOV TH0, # 03CH ;定时器0初值(100ms) MOV TL0,#0B0H SETB ET0 ;允许定时器0中断 SETB EA ;开中断 MOV R2,#00H ;时间计数器清0 SETB TR0 ;启动定时器 LJMP $ ;等待TIMER0_SUB: PUSH PSW ;保护现场 INC R2 CJNE R2,#04,SUB1 ;未达到预定次数,转SUBl S
17、ETB P1. 0 ;改变输出状态 SUB1: CJNE R2, #10, TEND CLR Pl.0 MOV R2, #0TEND; MOV TH0, # 03CH ;重置定时器初值 MOV TL0,#0B0H SETB TR0 ;启动定时器。 POP PSW ;恢复现场RETI ;中断返回810 试设计一个 80C51单片机的双机通信系统 ,并编写程序将A机片由 RAM 40H5FH的教据块通过串行口传送到B机的片内RAM 60H7FH中去。 要求传送 时进行奇偶较验;若出错 ,则置 F0标志为“1”。答:设晶振频率为 11.0592MHz,波特率为9.6kb/s。 ;A机发送程序 ORG
18、 0000H LJMP EX8_l0S ORG 0030HEX8_10S: MOV SCON,#0C0H ;设串口工作方式3 MOV PCON,#00H ;SMOD=0 MOV TMOD,#20H ;定时器1工作在方式2 MOV THl,#0FDH ;置定时器初值 MOV TL1,#0FDH SETB TRl ;启动定时器 MOV R0,#40H ;发送数据起始地址 MOV R2,#20H ;发送字节数SEND_IP.: CTR TI ;清发送标志 MO/ A,R0 ;将发送数据送A MOV C,P ;校验位送TB8 MOV TB8,C MOV SBUF,A ;数据送出 JNB TI,$ ;等
19、待发送 INC R0 ;修改地址 DJNZ R2,SEND_LP ;发送末完,继续 LJMP $ ;结束;;B机接受程序 ()RG 0000H LJMP EX8_10R ORG 0023HLJMP RECEIVEEX8_10R: MOV SCON, # :串口工作方式 MOV PCON,#00H ;SMOD=0 MOV TMOD,#20H ;定时器1工作在方式2 MOV TH1,#0FDH ;置定时器初值 MOV TL1, # 0FDH SETB TR1 ;启动定时器 SETB ES S ETB EA ;串行口开中断RECV_INI: MOV Rl,#60H ;接收数据起始地址 MOV R2,
20、#20H ;接收字节数 LJMP $;- RECEIVE: PUSH PSW ;保护现场 PUSH ACC CLR RI ;清接收标志 MOV A,SBUF ;接收数据及校验位 MOV C,P JNC RECV_1 ;校验位为0,则转 JNB RB8, ERROR ;P=l,RB8=0,则出错 AJMP RECV_2 ;二者全为1,正确RECV_1: JB RB8, ERROR ;P=0,RB8=1,则出错RECV_2: MOV R1,A ;正确,保存数据 INC Rl ;修改地址 DJNZ R2,RECV_END ;接收未完,继续CLR ES ;接收完成,串口关中断RECV_END: POP
21、 ACC ;恢复现场 POP PSW RETI ;中断返回ERROR:SETB F0 ;接收错误 LCALL ERR1 ;调用接收出错处理子程序(省略) AJMP RECV-END 811 试将单片机初级教程56节的例8、例9改为用中断方法实现延时。答:本题分为如下两部分实现: 将56节的例8改为用中断方法实现延时。分别用定时器0、1进行定时。设工作频率为f=12MHz,输出为Pl.0。TONE EQU 00 H ;变调标志ORG 0000 H LJMP EX8_11A ;复位跳转 ORG 000BH ORG TIMER0 ;定时器0溢出跳转 LJMP TIMER1 ;定时器1溢出跳转 ORG
22、 0030H EX8_11A: MOV TMOD,#11H ;设置定时器工作方式 MOV TH0,#3CH ;置50ms定时初值 MOV TL0,#0B0H MOV TH1,#0FFH ;置250us定时初值 MOV TLl,#06H MOV R3,TH1 ;暂存定时器1初值 MOV R4,TL1 MOV R2,#14H ;循环次数 SETB TONE ;置位变调标志 MOV IE,#8A H;定时器0、1开中断 SETB TR0 ;启动定时器 SETB TR1 ;启动定时器1 LJMP $ ;等待 TIMER0: PUSH PSW ;保护现场 CLR TR0 ;关闭定时器。 MOV TH0,#03CH ;重置初值 MOV TL0,#0B0H DJNZ R2,TIMER0_B ;未循环20次,转 MOV R2,#14H ;重置循环次数 CPL TONE ;改变音调 JB TONE,TIMER0_A ;根据音调给定时器1赋不同的值 MOV R3,#0FEH ;置500us定时初值 MOV R4,#0CH LJMP TIMER0_BTIMER0_A: MOV R3, #0FFH ;置250us定时初值 MOV R4,#06HTIMER0_B: SETB TR0 ;启动定时器。 POP PSW ;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某酿酒厂成本控制制度
- AI生成式技术设计传统首饰配饰
- 2026年肾病透析基础护理试题与答案
- 2026年临床医学肿瘤考试题及答案
- 机械专业电厂入职考试题及答案
- 机械检验工试题及答案
- 音乐创意实践试题及答案
- 春夜喜雨必考题及答案
- 2026年健康素养知识竞赛模拟题及答案
- 2026年杭州市上城区纪检委招考易考易错模拟试题(共500题)试卷后附参考答案
- 2025夏季吃冰嘉年华夏日消暑冰品节茶饮清凉活动方案
- 职业妆容技巧培训课件
- 搅拌站安全会议管理制度
- T/CI 307-2024用于疾病治疗的间充质干细胞质量要求
- (高清版)TSG 09-2025 缺陷特种设备召回管理规则
- 2024小学科学教师教学技能测试题及答案
- 混凝土站生产流程
- 通站(2017)8012 铁路站场排水构筑物
- 《工业网络技术与应用(微课版)》 课件 第4章 网络冗余技术
- 云南省公路工程试验检测费用指导价
- 个人入股合同协议书
评论
0/150
提交评论