C语言课件 第四章单片机内部资源及应用

上传人:woxinch****an2018 文档编号:44698110 上传时间:2018-06-14 格式:PPT 页数:98 大小:881.50KB
返回 下载 相关 举报
C语言课件 第四章单片机内部资源及应用_第1页
第1页 / 共98页
C语言课件 第四章单片机内部资源及应用_第2页
第2页 / 共98页
C语言课件 第四章单片机内部资源及应用_第3页
第3页 / 共98页
C语言课件 第四章单片机内部资源及应用_第4页
第4页 / 共98页
C语言课件 第四章单片机内部资源及应用_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《C语言课件 第四章单片机内部资源及应用》由会员分享,可在线阅读,更多相关《C语言课件 第四章单片机内部资源及应用(98页珍藏版)》请在金锄头文库上搜索。

1、第四讲: 中断,定时与串口本讲重点:中断概念,响应条件,处理原则,中断服务定时器/计数器工作方式1,2的用法串行通讯的波特率, 4种工作方式RS232和RS485通信接口1 1单片机的中断系统2 2数据的输入/输出传送方式查询传送方式(LOOK UP): 传送前一方先查询另一方的状态,若已经准备好 就传送,否则就继续查询/等待中断传送方式(IRQ): 一方通过申请中断的方式与另一方进行数据传送无条件传送方式: 一方对另一方来说总是准备好的直接存储器存取方式(DMA): 双方直接通过总线传送数据, 不经CPU中转3 3CPU在执行正常程序时,为处理一些紧急 发生的情况,暂时中止当前程序,转而对该

2、紧 急事件进行处理,并在处理完后返回正常程序 的过程。 中断优点:实现CPU与外设的并行工作; 解决速度矛盾、提高CPU效率; 应付突发事件、提高CPU的实时处理能力和控 制能力。中断的定义4 4中断源 中断申请开放中断保护现场中断服务恢复现场中断返回中断涉及的几个环节(非预料事件)(非预料事件提出申请)(CPU同意申请)(安排好当前的工作)(响应非预料事件的要求)(回到中断前的状态)(继续做中断响应前的工作 )5 5单片机的中断源51子系列3类5个中断源(52系列6个) : 外部中断(2个) 由外部信号引起 INT0(P3.2),INT1(P3.3) 定时中断(2个) 内部两个计数器溢出引起

3、 T0,T1(52系列有T2) 串行中断(1个) 串口接收(RI)或发送(TI)完数据引起6 6TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCONIT0/IT1:外部中断请求的触发方式选择位 : =0:电平触发方式,低电平有效 =1:脉冲触发方式,下降沿有效 由软件置“1”或清“0” 外部中断的触发方式(2种) 电平触发方式,低电平有效 脉冲触发方式,下降沿有效 定时器控制寄存器TCON (88H) 7 7定时器控制寄存器TCON (88H)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCONTF0/TF1:定时器溢出中断申请标志位:=0:定时器未溢出;=

4、1:定时器溢出申请中断,进中断后自动清零。TR0/TR1:定时器运行启停控制位:=0:定时器停止运行;=1:定时器启动运行。用于保存外部中断请求及定时器的计数溢出 IE0/IE1:外部中断申请标志位:=0:没有外部中断申请;=1:有外部中断申请。8 8SM0 SM1 SM2 REN TB8 RB8 TI RISCON串行口控制寄存器SCON (98H) TI:串行口发送中断请求标志位 当发送完一帧串行数据后,由硬件置“1”, 转向中断服务程序后,用软件清“0”。 RI:串行口接受中断请求标志位 当接受完一帧串行数据后,由硬件置“1”, 转向中断服务程序后,用软件清“0”。 在容许中断请求的情况

5、下,无论是接受到数 据或者是发送完数据,也就是说不管是TI=1或者 RI=1,都会产生串行中断的请求。 9 9CPU在每个机器周期的S6期间,会自动查询各个 中断申请标志位,若查到某标志位被置位,将启 动中断机制,其中对外部中断信号的检测在S5P2 期间。 CPU识别中断申请的依据:Tc=1/fosc Ts=2Tc Tm=12Tc=6TsTcTsTmTmS5S6S4S3S2S5S6S4S3S2S11010EA ET2 ES ET1 EX1 ET0 EX0IE中断允许寄存器IE (0A8H) EA:总的中断允许控制位(总开关):=0 时禁止全部中断;=1 时允许中断。 EX0/EX1/ET1/E

6、T0/ES 位:分别是INT0/1,Timer0/1,串行口的中断允许控制位:=0 时禁止中断; =1 时允许中断。 ET2:T2中断允许控制位(仅52子系列有)=0 时禁止中断; =1 时允许中断。1111在CPU已经开放了外部中断允许的前提下: 在INT0/INT1引脚输入一个负脉冲或低电平, TCON寄存器中的IE0/IE1标志位自动变“1”, 检测到IE0/IE1变“1”后,将产生指令:LCALL 0003H(/0013H)执行中断服务程序, 并将IE0/IE1标志位自动清“0”,以备下次申请 。外部中断(INT0,INT1)申请过程1212单片机的中断矢量与优先级 (P108)中断矢

7、量: MCS-51单片机的 5 个中断源分别对 应有各自的中断服务程序入口地址中断矢量000BHTF0定时/计数器0(T0)002BHTF2定时/计数器2(T2)0023HRI/TI串行口接收/发送001BHTF1定时/计数器1(T1)0013HIE1外部中断1( INT1)0003HIE0外部中断0( INT0)中断优先级中断矢量申请标志中 断 源最高优先级最低优先级1313 PT2 PS PT1 PX1 PT0 PX0IPPX0/PX1:INT0/1优先级控制位:=0 时属低优先级; =1 时属高优先级。 PT0/PT1/PT2:T0/1/2中断优先级控制位:=0 时属低优先级; =1 时

8、属高优先级。 PS1:串行口中断优先级控制位:=0 时属低优先级; =1 时属高优先级。中断优先级控制寄存器IP (0B8H)1414对同时发生多个中断申请时: 不同优先级的中断同时申请(很难遇到)先高后低 相同优先级的中断同时申请(很难遇到)按序执行 正处理低优先级中断又接到高级别中断高打断低 正处理高优先级中断又接到低级别中断高不理低在所有中断处于同一优先级时,如同时向 CPU发出中断信号,则CPU响应的先后顺序是外 部中断0,定时中断0,外部中断1,定时中断1 ,串行中断。中断优先级处理原则1515(P108)没有同级的中断或更高级别的中断正在处理;在中断源提出了中断申请且CPU此前已经

9、允许 中断的前提下,还须满足以下三个条件:正在执行的指令必须执行完最后1个机器周期;若正在执行RETI,或正在访问IE或IP寄存器,须 执行完上述指令和下一条指令以后方能响应中断。中断响应的条件:1616中断系统硬件结构 (P106)注:各中断允许控制位=0,开关断开; =1,开关接通IE0 EX0TF0IE1TF1TI ESET1EX1ET0外部中断 请求0外部中断 请求1内部 定时器0内部 定时器1内部 串行口T RRIIE寄存器 EA位IP寄存器各单路开关 总开关中断源标志 位查询机构高中断级 中断请求低中断级 中断请求中断入口中断源 标志位INT0INT1中断入口中断源 标志位1717

10、MCS-51中断系统涉及的SFR:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TCONEA ET2 ES ET1 EX1 ET0 EX0IE PT2 PS PT1 PX1 PT0 PX0IPSM0 SM1 SM2 REN TB8 RB8 TI R1SCON中断允许控制寄存器IE (0A8H) 中断申请标志位寄存器(TCON SCON)串行口控制寄存器SCON (98H): 定时器控制寄存器TCON (88H): 中断优先级控制寄存器IP (0B8H): 1818外部中断及中断请求的撤除 (P106)低电平/负脉冲INT0/INT1引脚可触发中断TF1 TR1 TF0 TR0

11、IE1 IT1 IE0 IT0TCON (88H) IT0/IT1:INT0/1的触发方式选择位:IT0/IT1 =0 时,INT0/INT1是低电平有效;IT0/IT1 =1 时,INT0/INT1是负跳变有效。 低电平触发 引脚上的低电平须持续到中断发生。 若中断返回前仍未及时撤除低电平,将再次中断。负脉冲触发 CPU在前一机器周期采到INT0/INT1引 脚为高,后一机器周期采到为低才认为是一次中断 请求。CPU 可记忆申请、可自动撤除中断申请。1919外部低电平中断的撤除外来的低电平反相CLK端产生上跳沿 D端的“0”打到Q端申请中断INTxP1.0CLKSQD外来中断申请 信号(低电

12、平)MCS-5174LS74S=0 则 Q=1中断返回前对P1.0送“0” 令Q端变为“1” 指令如下:ANL P1,#0FEH = CLR P1.0 ;令Q端置 “1”ORL P1, #01H = SETB P1.0 ;令S端置 “1”,以免下次中断来时Q端不能变“0” 2020中断应用前后要做的几项工作中断前(中断的初始化 P.111)开中断允许:必须选择优先级:根据需要选择,可有/可无设置控制位:INTx触发方式(ITx)TxTCON,TMOD,TRx,初值RI/TISCON,REN,RB8,TB8,中断后 进入中断服务后:保护现场,关中断, 退出中断服务前:恢复现场,开中断,设Tx的初

13、值,清TI/RI, 中断服务程序的最后一条指令必是 RETI2121中断应用程序举例: 例:通过外部中断1,在中断服务中将B寄存器里的内容左 环移一位。 已知: (B)=01h,要求采用边沿触发,低优先级。 此例的实际意义:在INT1引脚接一个按钮开关到地,每 按一下按钮就申请一次中断,中断服务则是:依次点亮 八盏灯中的一盏。 2222中断应用程序举例:例:通过外部中断1,在中断服务中将B寄存器里的内容左 环移一位。 已知: (B)=01h,要求采用边沿触发,低优先级。 此例的实际意义:在INT1引脚接一个按钮开关到地,每 按一下按钮就申请一次中断,中断服务则是:依次点亮 八盏灯中的一盏。 P

14、1.0P1.7INT1300VCC2323ORG 0000H LJMP MAINORG 0013H ;中断矢量LJMP INT MAIN:SETB EA ;开总中断允许“开关”SETB EX1 ;开分中断允许“开关” CLR PX1 ;0 优先级(也可不要此句) SETB IT1 ;边沿触发MOV B,#01H ;给 B 寄存器赋初值 HERE:SJMP HERE ;原地等待中断申请 INT:MOV A,B ;自B寄存器中取数(MOV P1,A) ;输出到P1口RL A ;左环移一次MOV B,A ;存回B,备下次取用RETI ;中断返回中断服 务程序2424外部中断源的扩展定时器/计数器用于

15、外部中断源扩展查询式扩展外部中断源 (P.112)INT0INT18031P1.0 P1.1 P1.2 P1.3进入现场保护之前关中断 PUSH A ; 开始现场保护 ; SETB EA ; 完成现场保护后开中断. ; 中断服务程序实战经验转下页2626CLR EA ; 进入现场恢复之前关中断 POP A ; 开始现场恢复 ; SETB EA ; 完成现场恢复后开中断RETI ; 退出中断服务程序实战经验接上页2727 2.中断服务程序的结束语句RETI,除了像RET一样 弹出断点地址外,还要清除两个不可寻址的中断 优先级触发器,以便其他中断能够正常进入。这 两个中断优先级触发器,一个指示CPU正在处理高 优先级中断,一个指示CPU正在处理低优先级中断 。 3.处于电平方式触发的外部中断要注意对电平信 号的撤消,避免重复进入中断 4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号