单片机基础(第3版)——第5章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IE0和IE1:外部中断请求标志位。中断到来时由 硬件置1,请求中断;进入中断服务后硬件清0。
IT0和IT1:外部中断触发方式控制位,靠软件来 置位或清除,来控制触发类型。=1时,下降沿 触发;=0时,低电平触发。(interrupt touch)
3. 串行口控制寄存器SCON 用于串行数据通信控制的寄存器。有2位与中断有关。
TF0和TF1:计数溢出标志。溢出时,相应溢出标志硬件置位, 申请中断。中断服务后硬件清除。(软件清也可)
2.定时器方式选择寄存器(TMOD)
GATE:选通门位
“=1”时,/INT0或/INT1由“0”变为“1”时,且TR0或TR1置 1,定时/计数器T0或T1开始工作。
“=0”时,不考虑/INT0或/INT1电平,只要TR0或TR1置1,T0或 T1就开始工作。
如果中断查询的机器周期恰好是指令的最后一个 机器周期,则最快只需3个机器周期就可以转向中断服 务程序的入口。其中查询占1个机器周期,在这个机器 周期结束后中断即被响应,生成 LCALL指令;执行这 条长调用指令需要2个机器周期。
如果中断查询刚好是开始执行RET、RETI或访问 IE、IP的指令,则需把当前指令执行完再继续执行一 条指令后,才能进行中断响应。这些指令中最长执行 时间需2个机器周期。而如果接着再执行的指令恰好是 MUL(乘)或DIV(除)指令,则又需4个机器周期。再加 上执行长调用指令LCALL所需的2个机器周期,从而形 成了8个机器周期的最长响应时间。
中断控制是指提供给用户使用的中断控制手段,控制的内容分布在4个 专用寄存器。
1. 中断允许控制寄存器IE(interrupt ennable)
EA:中断允许总控制位。=0时,禁止所有中断;=1时,并且相应的 允许位=1则可中断。(enable all)
EX0和EX1 :外部中断允许控制位。 =0时,禁止外中断; =1时,允 许外中断。(enable exterior)
中断嵌套; 同优先级的中断不能嵌套; 低优先级中断请求不能对高优先级的中断进行嵌套。
5.2.4 中断响应过程
从中断请求发生到中断被响应,再转向执行中断 服务程序去完成中断所要求的操作,是一个完整的中 断处理过程。 1. 外部中断请求采样 只有外部中断请求才有采样问题,只有通过采样才能知 道是否有中断请求信号到来。
TI:串行发送中断请求标志位。最后一位数据位被发 送完后,TI由硬件置位,软件查询时TI可作为状态位 使用。
RI:串行接收中断请求标志位,接收数据过程中,当 采样到最后一个数据位有效时,RI由硬件置位,软件 查询时RI可作为状态位使用。必须由软件清0。
4. 中断优先级控制寄存器IP(interrupt priority) 各中断的优先级通过中断优先级控制寄存器IP设定。
第5章 80C51 单片机的中断与定时
5.1 中断概述 5.2 80C51单片机的中断系统 5.3 80C51 单片机的定时器/计数器
5.1 中断概述
中断定义:CPU暂时停止原程序执行转而为外部设备服务(执 行中断服务程序),中断服务完成后自动返回原程序执行的 过程—演示
中断技术实质上是一种资源共享技术。在计算机中通常只有一 个CPU,任何时刻它只能进行一项工作,而它所面对的任务 却可能是多个,资源竞争现象不可避免,使用中断技术可以 解决。
采样是在每个机器周期的S5P2(第5状态第2拍节)对 芯片引脚INT0(P3.2)和INT1(P3.3)进行的,根据采样结果 来设置定时器控制寄存器TCON外部中断标志位的状态。
2. 中断查询 中断查询是查看是否有中断请求发生并确定是哪一个中
断源的中断请求。 中断查询操作是由CPU逐个检测定时器控制寄存器
2. 中断服务流程
① 现场保护和现场恢复 现场是指中断时刻单片机RAM内的数据。为使中断服务程序的执行
不破坏这些数据,应送入堆栈中保存起来,以免在中断返回后影响主程序 的运行; 中断服务结束后,在返回主程序之前,应把保存的现场内容从堆 栈恢复给相关存储单元,这就是现场恢复。 ② 关中断
在一个多中断源系统中,为保证重要中断能执行到底,可以在现场保 护之前先关闭中断系统,彻底屏蔽其它中断,中断处理完成后再打开。 ③ 中断处理 — 是中断服务程序的核心内容,即中断要做的事。 ④ 中断返回
C/T:定时/计数区别位
“=1”时,计数器工作方式,计数输入信号来自T0或T1管脚。 “=0”时,定时器工作方式,计数输入信号来自内部时钟。
M1,M0:工作方式选择位 M1M0=00,工作方式0; M1M0=01,工作方式1 M1M0=10,工作方式2; M1M0=11,工作方式3
3. 中断允许控制寄存器(IE)
DELAY: MOV R7,#255 DEL2: MOV R6,#255 DEL1: DJNZ R6,DEL1
DJNZ R7,DEL2 RET
END
举例: P2口接8只发光二极管,按键一次产 生一次中断,二极管循环点亮。
P2.0 INT0
P2.7
ORG 0000H
5V
AJMP MAIN
ORG 0003H
5.3.2 用于定时器/计数器控制的寄存器
在80C51中与定时器/计数器应用有关的控制寄存器共有 3个:定时器控制寄存器-TCON、定时器方式选择寄 存器-TMOD、中断允许控制寄存器-IE。
1. 定时器控制寄存器(TCON)
TR0和TR1:运行控制位。=1,启动定时/计数器工作。控制 启停只需用软件方法使其置1或清0。
SJMP LOOP IN0: RL A
RETI END
5.3 80C51 单片机的定时器/计数器
在单片机控制应用中定时和计数的需求很多, 为此在单片机中都有定时器/计数器。 80C51中有两个16位定时器/计数器: 定时器/计数器0—T0、定时器/计数器1—T1
5.3.1 定时器/计数器的计数和定时功能
表明一个中断的服务程序从这里开始存放。中断发生后要 通过它引导CPU转向相应的中断服务。正因为它具有指向 性,所以称其为中断向量(或中断矢量)。
中断源
外部中断0
定时器0溢出
外部中断1
定时器1溢出 串行发送、串 行接收中断
中断向量
0003H 000BH 0013H 001BH 0023H
5.2.2 中断控制
AJMP MAIN
ORG 0003H
AJMP IN0
MAIN: SETB EA
SETB EX0
SETB IT0
MOV A,#01H
LOOP: MOV P2,A
ACALL DELAY
RL A
SJMP LOOP
IN0: PUSH ACC MOV A,#0FFH MOV P2,A MOV R1,#5
LL: ACALL DELAY DJNZ R1,LL POP ACC RETI
TCON和串行控制寄存器SCON中各中断标志位的状态而 实现的。所有中断请求最终都要汇集到这两个寄存器中。
80C51单片机是在每一个机器周期的最后一个状态S6进 行中断查询,查询按优先级顺序进行。如果查询到有标 志位为1,则表明有中断请求发生,接着就从相邻的下一 个机器周期的S1状态开始进行中断响应。
5.2 80C51单片机的中断系统
在8位单片机中,80C51的中断系统比较简单,但它是其他单 片机中断系统的基础。
5.2.1 中断源与中断向量
中断源:凡是中断请求的来源都统称为中断源。 80C51的中断系统具有5个中断源,即2个外部中断、2个定时
器中断和1个串行中断。 中断向量 (Interrup Vector) :就是程序存储器的一个地址,
1. 计数功能 计数是对外部事件进行的。外部事件以脉冲形式输入,
作为计数器的计数脉冲。为此芯片上有T0(P3.4) 和T1(P3.5)两个引脚,用于为这两个计数器输入 计数脉冲。计数脉冲是负跳变有效,计数器进行加 法计数。
2. 定时功能 定时功能也是通过计数器的计数来实现的,不过此时
的计数脉冲来自单片机芯片内部,每个机器周期有 一个计数脉冲,即每个机器周期计数器加1。
80C51 中断系统控制逻辑
3. 中断嵌套 中断优先级的作用不仅体现在中断响应时,而且也体现 在中断服务过程中,即允许把正在进行的中断服务暂停下来 ,而转去进行优先级高的中断服务,这就是中断嵌套。
中断可以多层嵌套。80C51因为只具有两个优先级,所 以中断嵌套只能一层,其原则是: 高优先级中断请求可以打断低优先级的中断服务,进行
PX0:外部中断0优先级设定位,=1时为高级 PT0:定时器0中断优先级设定位,=1时为高级。 PX1:外部中断1优先级设定位,=1时为高级。 PT1:定时器1中断优先级设定位,=1时为高级。 PS:串口中断优先级设定位,=1时为高级。
5.2.3 中断优先级控制
1、中断优先级定义原则 中断的轻重缓急程度;中断设备的工作速度;中断处理的工作量;中 断请求发生的频繁程度。
3. 中断响应
中断响应的主要内容是由硬件自动生成一条长调用指 令,指令格式为: “LCALL addr16”。addr16是程序存储器中断区中相应中 断源的入口地址,在80C51单片机中,这些入口地址已由 系统设定。 主要内容:保护断点地址 ,把中断入口地址送给PC—运行 中断服务程序
4. 中断响应的快慢
计算机中的资源竞争,通常是因计算机在运行程序时会发生一 些可预测或不可预测的随机事件引起的。这些随机事件包括:
与计算机“并行”工作的输入/输出设备发出的中断请求,。 硬件故障、运算错误及程序出错时产生的中断请求。 当对运行中的计算机进行干预时,通过键盘输入的命令。 来自被控对象的中断请求。
2、 中断优先原则在中断响应时的体现 中断优先原则:保证高优先级中断请求被优先响应。 按以下两种情况安排: ① 当高、低优先级中断请求同时出现时,高优先级中断请求被响应。 ② 如果同级的多个中断请求同时出现,则按CPU查询次序确定哪个中 断请求被响应。其查询次序为: 外部中断0→定时器0中断→外部中断 1→定时器1中断→串行中断。
AJMP IN0
MAIN: SETB EA
SETB EX0
SETB IT0
MOV A,#01H
MOV P2,A
SJMP $
IN0: RL A
MOV P2,A
RETI
END
ORG 0000H AJMP MAIN ORG 0003H AJMP IN0 MAIN: SETB EA
SETB EX0 SETB IT0 MOV A,#01H LOOP: MOV P2,A
中断服务程序的最后一条指令必须是中断返回指令RETI,CPU执行这 条指令时,从堆栈中弹出断点地址送入程序计数器PC,以便从断点处重新 执行被中断的主程序。
举例: P2口接8只发光二极管,二极管循环点亮。
按键产生中断,所有二极管全点亮,亮一秒后返 回。
P2.0 INT0
P2.7
ORG 0000H
5V
ET0和ET1:定时器中断允许控制位。=0时,禁止定时器中断; =1时, 允许定时器中断。
ES:串行中断允许控制位。 =0时,禁止串行中断; =1时,允许串行 中断。 练习:设置允许INT0、T0、串口中断
2. 定时器控制寄存器TCON
TF0和TF1:定时器( T0和T1 )溢出标志位。 硬件置1,并自动产生定时中断请求。也可作为 状态位供查询。
5.2.5 中断服务程序
1. 主程序中的中断初始化
中断都是在运行主程序时发生的,是主程序的随机 事件是否允许发生以及如何发生,都应该在主程序中预 先设置,这就是中断初始化。
中断初始化的内容包括: 堆栈设置、中断允许设置、 中断请求方式设置(只限外部中断)和中断优先级设置等。பைடு நூலகம்
练习:允许INT0、INT1、T1中断,T1中断为高优先级, 其它是一 般优先级。INT0是低电平有效,INT1是负 跳变有效,进行初始化设置。
ET0和ET1:=0,禁止定时器中断; =1,允许定 时器中断。
练习:T0以方式1做定时器,T1以方式2做计数器, 允许T0、T1中断。
5.3.4 定时器工作方式1
方式1是16位计数结构的工作方式,计数器由TH0的全 部8位和TL0的全部8位构成。
使用工作方式1的计数功能时,计数值的范围是: 1~65536(216)
相关文档
最新文档