- 1、本文档共84页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
流水灯定时控制研讨
任务三 流水灯定时控制 教学导航 任务单 任务三 流水灯定时控制 3.1 中断系统 3.2 定时器/计数器 3.1 中断系统 3.1.1 中断的概念与作用 3.1.2 MCS – 51单片机中断系统 3.1.3 中断服务函数 1.中断的定义 什么是中断? 中断是指计算机在执行某段程序的过程中, 由于计算机系统内、外的某种原因, 暂时中止原程序的执行, 转去执行相应的处理程序, 并中断服务程序执行完后, 再回来继续执行被中断的原程序的过程。 2. 中断的作用 1)CPU与外设并行工作。解决CPU速度快、外设速度慢的矛盾。 2)实时处理。控制系统往往有许多数据需要采集或输出。实时控制中有的数据难以估计何时需要交换。 3)故障处理。计算机系统的故障往往随机发生,如电源断电、运算溢出、存储器出错等。采用中断技术,系统故障一旦出现,就能及时处理。 4)实现人机交互:人和单片机交互一般采用键盘和按键,可以采用中断的方式实现,中断方式时CPU执行效率高,而且可以保证人机交互的实时性,故中断方式在人机交互中得到广泛应用。 3.1.2 MCS-51中断系统 中断系统是指能实现中断功能的那部分硬件电路和软件程序。 对于MCS-51单片机,大部分中断电路都是集成在芯片内部的,只有和中断输入线上的中断请求信号产生电路才分散在各中断源电路或接口芯片电路里。 3.1.2 MCS-51单片机中断系统 1. MCS-51的中断源和中断标志 中断源是指引起中断的事件。 在单片机中,中断源是指引起中断原因的设备或事件,或发出中断请求信号的源泉。通常有I/O设备、实时控制系统中的随机参数和信息故障源等。 提 示: ①在电平触发方式下,CPU响应中断时,不能自动清除IE0标志。也就是说,IE0状态完全由 状态决定,所以在中断返回前必须撤除 的低电平,否则会引起重复中断;而在负跳变触发方式下,当CPU响应中断时,硬件会自动使IE0清0。 ②在负跳变触发方式下,为保证CPU能检测到负跳变,的高、低电平时间至少应保持1个机器周期。 1)TCON的中断标志位 (2)中断优先级控制 MCS-51单片机有两个中断优先级:高级中断和低级中断。 每一个中断源都可以通过编程确定为高优先级中断或低优先级中断。 若CPU当前正在为低优先级中断服务,在开中断的条件下,它能被另一个高优先级中断请求所中断,转去为高级中断服务,再返回到被中断了的低级中断的服务程序,这即为中断嵌套。 中断嵌套过程 MCS-51系列单片机中断响应原则: 1)高级中断请求可以中断正在执行的低级中断。 2)同级或低级中断请求不能中断正在执行的中断。 3)多个中断源同时向CPU申请中断,首先响应优先级别最高的中断请求;多个同级中断源同时向CPU申请中断,CPU通过内部硬件查询,按自然优先级确定优先响应哪一个中断请求。 实例3-3 在上例中,如果5个中断请求同时发生,求中断响应的次序。 解:响应次序为 定时器0→外中断1→外中断0→实时器1→串行中断。 (2)CPU响应中断的条件 3.1.3 中断服务函数 C51编译器支持在C语言源程序中直接编写8051单片机的中断服务函数,从而减轻使用汇编语言的繁琐程度,提高了开发效率。 1.中断服务函数的一般形式 void 函数名(void) interrupt m [unsing n] 关于USING的说明 using不仅可以用于中断服务函数的定义中,也可以用于普通的内部函数,但不能用于外部函数。 就中断服务函数而言 如果不使用using,则在进入中断服务函数的时候,中断函数中所用到的全部工作寄存器都要入栈,函数返回之前所有的寄存器内容出栈; 如果使用using,则在进入中断服务函数的时候,只将当前工作寄存器组入栈,用using指定的工作寄存器组的内容不变也不入栈,函数返回之前将被保护的工作寄存器组出栈。 提 示 (1)使用using可缩减中断服务函数的入栈操作时间,因此可以使中断得到更及时的处理;但同时,使用using要十分小心,要保证寄存器组切换在所控制的区域内,否则会导致错误。 (2)中断函数的编写包括两部分:中断源的初始化函数和中断服务函数。概括地说,中断源初始化函数就是对中断源所需要的一些变量进行设置,其形式与其他普通函数一样——一般在主函数里实现;而中断服务函数就是规定系统在发生相应的中断的时候要执行哪些操作。 (3)中断函数的调用过程与一般函数调用相似,但一般函数是程序中事先安排好的;而何时调用中断函数事先无法确定,调用中断函数的过程是由硬件自动完成的。 中断函数的类型及参数都为void类型 中断函数既不能进行参数传递,也没有返回值,因此,中断函数的形式参数列表和函数类型标识符名均为v
文档评论(0)