任务三 流水灯定时控制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
③若正在 RETI 或读写 IE 或 IP 寄存器,则必须执行 完当前指令的下一条其它指令之后才会响应。
任务3 以定时方式控制流水灯
(3)CPU响应中断的过程
单片机一旦响应中断请求, 就由硬件完成以下功能:
①自动清除相应的中断请求标志位(串行口中断
请求标志RI和TI除外);
②保护断点和现场,把被响应的中断源所对应的 中断服务程序的入口地址(中断矢量)送入PC, 从 而转入相应的中断服务程序。 ③结束中断服务程序,恢复断点和现场,并返回
任务3 以定时方式控制流水灯
3.1.2
MCS-51中断系统
中断系统是指能实现中断功能的那部分硬件电路 和软件程序。 对于MCS-51单片机,大部分中断电路都是集成 在芯片内部的,只有和中断输入线上的中断请求 信号产生电路才分散在各中断源电路或接口芯片 电路里。
任务3 以定时方式控制流水灯
位 符号 值
D7 X 0
D6 X 0
D5 X 0
D4 PS 0
D3 PT1 0
D2 PX1 1
D1 PT0 1
D0 PX0 0
IP的值就是06H。
任务3 以定时方式控制流水灯
实例3-3 在上例中,如果5个中断请求同时发生 ,求中断响应的次序。
位 符号 值 D7 X 0 D6 X 0 D5 X 0 D4 PS 0 D3 PT1 0 D2 PX1 1 D1 PT0 1 D0 PX0 0
(1) 中断源
1)外部中断源:MCS-51系列单片机有2个外中 断源,称为外中断0和1,经由单片机上的P3.2、P3.3 这两个外部引脚引入,为 INT 0 、 。 INT 1 2)内部中断源 • 定时器溢出中断源。定时器溢出中断源由内 部定时器/计数器产生,属于内部中断。 • 串行口中断源。串行口中断是由内部串行口 中断源产生。
任务3 以定时方式控制流水灯
什么是中断?
中断是指计算机在执行某段程序的过程中 ,
由于计算机系统内、外的某种原因, 暂时中止原 程序的执行, 转去执行相应的处理程序 , 并中断 服务程序执行完后, 再回来继续执行被中断的原 程序的过程。
任务3 以定时方式控制流水灯
2.
中断的作用
1)CPU与外设并行工作。解决CPU速度快、外设速度 慢的矛盾。 2)实时处理。控制系统往往有许多数据需要采集或输 出。实时控制中有的数据难以估计何时需要交换。 3)故障处理。计算机系统的故障往往随机发生,如电 源断电、运算溢出、存储器出错等。采用中断技术,系统 故障一旦出现,就能及时处理。 4)实现人机交互:人和单片机交互一般采用键盘和 按键,可以采用中断的方式实现,中断方式时CPU执行效 率高,而且可以保证人机交互的实时性,故中断方式在人 机交互中得到广泛应用。
任务3 以定时方式控制流水灯
自然优先权顺序
中 断 源 同级内优先权排列
外部中断0中断(IE0) 定时器/计数器0中断(TF0) 外部中断1中断(IE1) 定时器/计数器1中断(TF1) 串行接口中断(TI/RI)
最 高
最 低
任务3 以定时方式控制流水灯
MCS-51系列单片机中断响应原则:
1)高级中断请求可以中断正在执行的低级中断。
低级中断请求
高级中断请求
响应高级中断
返回主程序
返回低级中断程序
任务3 以定时方式控制流水灯
中断优先级寄存器IP
(MSB)BFH D7 BEH D6 BDH BCH D5 D4 BBH D3 BAH D2 B9H D1 B8H(LSB) D0
×
×
×
PS
PT1 PX1 PT0 PX0
专用寄存器IP为中断优先级寄存器,用户可用软件 设定 相应位为1,对应的中断源被设置为高优先级,相 应位为0,对应的中断源被设置为低优先级 系统复位时,均为低优先级 该寄存器可以位寻址
注意:该寄存器可以位寻址。
外部中断INT0触发方式 控制位(TCON.0): IT0=0,电平触发方式 IT0=1, 下降沿触发方 式
任务3 以定时方式控制流水灯
1)TCON的中断标志位
8FH 8EH TCON D7 TF1 D6 TR1 8DH D5 TF0 8CH D4 TR0 8BH D3 IE1 8AH D2 IT1 89H D1 IE0 88H D0 IT0
任务3 以定时方式控制流水灯
(2)中断请求标志
1)TCON中的中断标志位
(MSB)8FH D7 TF1 8EH D6 TR1 8DH D5 TF0 8CH D4 TR0 8BH D3 IE1 8AH D2 IT1 89H D1 IE0 88H(LSB) D0 IT0
外部中断INT0中断标志 位(TCON.1) : IE0=1,外部中断1 向CPU申请中断
3.1.2
IT0=0
MCS-51单片机中断系统
TCON IE
EX0
IP
PX0
INT0 IT0=1
IE0
TF0 IE1
T0
IT1=0
PT0
ET0 PX1 EX1 PT1
自 然 优 先 级
INT1 IT1=1
矢量 地址
自 然 优 先 级
高 级 中 断 请 求
T1
TXD RXD
中断标 志位
TF1 ET1 PS TI ES EA RI SCON 中断源 总允许 EA 允许
中断优 先级
矢量 地址
低 级 中 断 请 求
任务3 以定时方式控制流水灯
1. MCS-51的中断源和中断标志
中断源是指引起中断的事件。 在单片机中,中断源是指引起中断原因的设备或 事件,或发出中断请求信号的源泉。通常有I/O 设备、实时控制系统中的随机参数和信息故障源 等。
任务3 以定时方式控制流水灯
D7 D6 D5
ACH
D4
ABH
D3
AAH A9H
D2 D1
A8H(LSB)
D0
EA
×
×
ES
ET1
EX1
ET0
EX0
中断允许寄存器IE对中断的开放和关闭实行两级控制。 所谓两级控制,就是有一个总开、关中断控制位EA,当 EA=0时,则屏蔽所有的中断申请,即任何中断申请都 不接受;当EA=1时,CPU开放中断,但五个中断源还 要由IE的低5位的各对应控制位的状态进行中断允许控制。
教学导航
(1)中断控制用寄存器;(2)中断服务函数的编写; 知识重点 (3)定时器工作方式及控制寄存器的使用
知识难点 定时器工作方式;中断服务函数的编写 以任务入手,通过流水灯的定时控制程序的编写逐 教 推荐教学 渐认识中断系统、定时器/计数器的作用,深化对中 方式 断系统与定时器的理解,掌握中断服务函数的编写 方法及中断响应的机制。 建议学时 8学时 推荐学习 通过对教师提供的电路图,编写程序,完成仿真调 方法 试,理解相关理论知识,学会应用。
任务3 以定时方式控制流水灯
任务三
流水灯定时控制
3.1 中断系统 3.2 定时器/计数器
任务3 以定时方式控制流水灯
3.1
中断系统
中断的概念与作用
MCS – 51单片机中断系统
3.1.1
3.1.2
3.1.3
中断服务函数
任务3 以定时方式控制流水灯
3.1.1
中断的概念与作用
外部设备是微机的重要组成部分,而微机和外 部设备之间不是直接相连的,而是通过不同的接
若CPU当前正在为低优先级中断服务,在开中断的 条件下,它能被另一个高优先级中断请求所中断, 转去为高级中断服务,再返回到被中断了的低级中 断的服务程序,这即为中断嵌套。
任务3 以定时方式控制流水灯
中断嵌套过程
CPU在执行 的主程序
CPU执行 低级中断 响应低级中断 CPU执行 高级中断 服务
ET0
0
EX0
0
(a)SFR赋值 IE=0x8c (b)用位赋值 EA=1;CPU开中断 ET1=1;定时/计数器1允许中断 EX1=1;外中断T1允许中断
任务3 以定时方式控制流水灯
(2)中断优先级控制
MCS-51单片机有两个中断优先级:高级中断和低 级中断。
每一个中断源都可以通过编程确定为高优先级中断 或低优先级中断。

(2)中断控制用寄存器; 必须掌握 (1)单片机中断系统; 的理论知 (3)中断服务函数的编写; (4)单片机定时器结构; 识 (5)工作方式及控制寄存器;(6)定时器的应用 必须掌握 中断程序、定时器应用程序的编写,仿真调试技巧。 的技能
任务3 以定时方式控制流水灯
任务单
任务二是利用单片机的并行I/O口外接流水灯,采用并行输 入/输出方式控制发光二极管实现流水灯,在实现该任务时, 任务 每次点亮一个灯后要延时,否则无法看到流水灯效果,任 描述 务二通过软件方法实现延时。本任务要求利用单片机的定 时器/计数器,让流水灯指定时间循环点亮发光二极管。
T0溢出中断标志(TCON.5): T0启动计数后,计满溢出由硬件 置位TF0=1,向CPU请求中断,此标志 一直保持到CPU响应中断后,才由硬 件自动清0。也可用软件查询该标志, 并由软件清0。
任务3 以定时方式控制流水灯
2) SCON的中断标志位
(MSB)9FH 9EH 9DH 9CH 9BH 9AH 99H 98H(LSB)
任务3 以定时方式控制流水灯
实例3-1 如果我们要设置外中断 1、定时器1中断允 许,其它不允许,请设置IE的相应值。
(MSB)AFH AEH ADH ACH ABH AAH A9H A8H(LSB) 位 符号 值 D7 D6 D5 D4 D3 D2 D1 D0
EA
1
×
0
×
0
ES
0
ET1
1
EX1
1
口电路来达到彼此间的信息传送的。
CPU与外部交换信息的方式: (1)程序控制传送方式 (2)中断传送方式 (3)直接存储器存取(DMA)方式
任务3 以定时方式控制流水灯
1.中断的定义
日常中断的例子
你正在专心看书, 突然电话铃响,于是 你记下正在看的书的 页数,去接电话,接 完电话后再回来接着 看书。
2)同级或低级中断请求不能中断正在执行的中断。
3)多个中断源同时向 CPU申请中断,首先响应优先 级别最高的中断请求;多个同级中断源同时向 CPU申 请中断,CPU通过内部硬件查询,按自然优先级确定 优先响应哪一个中断请求。
任务3 以定时方式控制流水灯
实例3-2 设有如下要求,将T0、外中断1设为高优先级 ,其它为低优先级,求IP的值。 解:IP的首3位没用,可任意取值,设为000,后面 根据要求写就可以了。
D7
D6
D5
D4
D3
D2
D1
D0
SM0 SM1 SM2 REN TB8 RB8 TI (SCON.1)—— 串行发送中断标 志。 注意:该寄存器可以位寻址!
TI
RI
RI (SCON.0)— —串行接收中断 标志。
任务3 以定时方式控制流水灯
2. 中断控制
(1)中断允许控制——中断允许寄存器IE
(MSB)AFH AEH ADH
如图3-1所示,由P0连接8只发光二极管,实现如下流水灯 的功能: 任务 (1)要求每隔1s从左至右循环点亮发光二极管; 要求 (2)按自定时间间隔从左至右循环点亮发光二极管,点亮 最右边的发光二极管后,再从右至左循环点亮。
实现 1.利用Proteus仿真运行,按任务要求实现流水灯。 方法 2.在实训设备上按任务要求连线,运行程序。
解:响应次序为 定时器0→外中断1→外中断0→实时器1→串行 中断。
任务3 以定时方式控制流水灯
3. 中断响应 (1)中断响应的时序
任务3 以定时方式控制流水灯
(2)CPU响应中断的条件
①没有同级或高优先级的中断正在处理;
②正在执行指令必须执行完最后一个机器周期 (换言之, 正在执行的指令完成前, 任何中断请求都 得不到响应);
任务3 以定时方式控制流水灯
关于USING的说明
using不仅可以用于中断服务函数的定义中,也可以 用于普通的内部函数,但不能用于外部函数。 就中断服务函数而言 如果不使用using,则在进入中断服务函数的时候 ,中断函数中所用到的全部工作寄存器都要入栈 ,函数返回之前所有的寄存器内容出栈; 如果使用using,则在进入中断服务函数的时候, 只将当前工作寄存器组入栈,用using指定的工作 寄存器组的内容不变也不入栈,函数返回之前将 被保护的工作寄存器组出栈。
响应中断之前的程序继续执行。
任务3 以定时方式控制流水灯
3.1.3
中断服务函数
C51编译器支持在C语言源程序中直接编写8051 单片机的中断服务函数,从而减轻使用汇编语言 的繁琐程度,提高了开发效率。
任务3 以定时方式控制流水灯
1wk.baidu.com中断服务函数的一般形式
void 函数名(void) interrupt m [unsing n] •代表中断号,是一 个常量,取值范围 是0-31。 •C51编译器允许32 个中断,从8m+3处 产生中断向量 代表中断函数 将要选择使用 的寄存器组, 也是一个常量, 取值范围是 0~3。
相关文档
最新文档