1、第四章第四章 中断、定时中断、定时/计数器与串行通计数器与串行通信信第一节第一节 中断系统中断系统第二节第二节 定时器定时器/计数器及应用计数器及应用第三节第三节 串行口通信系统串行口通信系统第四节第四节 I/O口的扩展技术口的扩展技术第一节第一节 中断系统中断系统一、中断功能的概述一、中断功能的概述所谓中断是指中央处理器所谓中断是指中央处理器CPU在处理某件事情的时候,外部在处理某件事情的时候,外部又发生了某一事件(如一个电平的变化,一个脉冲沿的发生,又发生了某一事件(如一个电平的变化,一个脉冲沿的发生,定时器计数溢出等)请求定时器计数溢出等)请求CPU迅速处理,于是,迅速处理,于是,CPU
2、暂时中暂时中断当前的工作,转入处理所发生的事情;中断服务处理完以断当前的工作,转入处理所发生的事情;中断服务处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断,如程称为中断,如图图4-1所示。实现这种功能的部件称为中断所示。实现这种功能的部件称为中断系统,产生中断的请求称为中断源。如果在进行中断处理的系统,产生中断的请求称为中断源。如果在进行中断处理的过程中,又有新的中断到来,则我们称这种情况为中断嵌套。过程中,又有新的中断到来,则我们称这种情况为中断嵌套。下一页返回第一节第一节 中断系统中断系统二、二、MCS-51单片机
3、的中断系统单片机的中断系统MCS-51单片机的中断系统是单片机的中断系统是8位单片机中功能较强的一种,位单片机中功能较强的一种,可以提供可以提供5个中断请求源(个中断请求源(表表4-1),具有两个中断优先级。),具有两个中断优先级。可实现两级中断服务程序嵌套。可实现两级中断服务程序嵌套。MCS-51的中断系统结构示的中断系统结构示意图如意图如图图4-2所示。所示。外中断是由外部原因引起的,共有两个中断源,即外部中断外中断是由外部原因引起的,共有两个中断源,即外部中断0和外部中断和外部中断1.它们的中断请求信号分别由引脚它们的中断请求信号分别由引脚 (P3.2)和)和 (P3.3)引入。外部中断
4、请求有两种信)引入。外部中断请求有两种信号方式,即电平方式和脉冲方式。号方式,即电平方式和脉冲方式。上一页 下一页返回第一节第一节 中断系统中断系统定时中断是为满足定时或计数的需要而设置的。在单片机芯定时中断是为满足定时或计数的需要而设置的。在单片机芯片内部有两个定时器片内部有两个定时器/计数器,以对其中的计数结构进行计数计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当计数结构发生计数溢出的方法,来实现定时或计数功能。当计数结构发生计数溢出时,即表明定时时间到或计数值已满,这时就以计数溢出信时,即表明定时时间到或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志
5、位,作为单片机接受号作为中断请求,去置位一个溢出标志位,作为单片机接受中断请求的标志。这种中断请求是在单片机芯片内部发生的,中断请求的标志。这种中断请求是在单片机芯片内部发生的,依次无需在芯片上设置引入端。依次无需在芯片上设置引入端。串行中断是为串行数据传送的需要而设置的。每当串行口接串行中断是为串行数据传送的需要而设置的。每当串行口接收或发送完一组串行数据时就产生一个中断请求。因此串行收或发送完一组串行数据时就产生一个中断请求。因此串行中断请求也是在单片机芯片内部自动发生的,同样不需在芯中断请求也是在单片机芯片内部自动发生的,同样不需在芯片上设置引入端。片上设置引入端。上一页 下一页返回第一
6、节第一节 中断系统中断系统每一个中断源对应一个中断请求标志位,它们设置在特殊寄每一个中断源对应一个中断请求标志位,它们设置在特殊寄存器存器TCON和和SCON中。当这些中断源请求中断时,分别由中。当这些中断源请求中断时,分别由TCON和和SCON中相应位来锁存。中断的允许和禁止是由片中相应位来锁存。中断的允许和禁止是由片内的中断允许控制寄存器内的中断允许控制寄存器IE来控制的。来控制的。上一页 下一页返回第一节第一节 中断系统中断系统TF1:定时器定时器/计数器计数器1(T1)溢出中断请求标志位。)溢出中断请求标志位。TF0:定时器定时器/计数器计数器0(T0)溢出中断请求标志位。)溢出中断请
7、求标志位。IT1:外部中断:外部中断1触发方式选择位。触发方式选择位。IE1:外部中断:外部中断1中断请求标志位。中断请求标志位。IT0:外部中断外部中断0触发方式选择位。触发方式选择位。IE0:外部中断:外部中断0中断请求标志。中断请求标志。RI:串行口接收中断请求标志位。:串行口接收中断请求标志位。TI:串行口发送中断请求标志位。:串行口发送中断请求标志位。上一页 下一页返回第一节第一节 中断系统中断系统EA:中断总允许位。:中断总允许位。EA=0,CPU禁止所有中断,屏蔽所有禁止所有中断,屏蔽所有的中断请求;的中断请求;EA=1,CPU开放中断。但每个中断源的中断开放中断。但每个中断源的
8、中断请求允许还是禁止分别由各自的允许位确定。请求允许还是禁止分别由各自的允许位确定。ET2:定时器:定时器2中断允许位。中断允许位。ET2=0,禁止定时器,禁止定时器2中断;中断;ET2=1,允许定时器,允许定时器2中断。中断。ES:串行口中断允许位。:串行口中断允许位。ES=0,禁止串行口中断;,禁止串行口中断;ES=1,允许串行口中断。允许串行口中断。上一页 下一页返回第一节第一节 中断系统中断系统ET1:定时器定时器1中断允许位。中断允许位。ET1=0,禁止定时器,禁止定时器1中断;中断;ET1=1,允许定时器,允许定时器1中断;中断;EX1:外部中断:外部中断1中断允许位。中断允许位。
9、EX1=0,禁止外部中断,禁止外部中断1中中断;断;EX1=1,允许外部中断,允许外部中断1中断。中断。ET0:定时器:定时器0中断允许位。中断允许位。ET0=0,禁止定时器,禁止定时器0中断;中断;ET0=1,允许定时器,允许定时器0中断。中断。EX0:外部中断:外部中断0中断允许位。中断允许位。EX0=0,禁止外部中断,禁止外部中断0中中断;断;EX0=01,允许外部中断,允许外部中断0中断。中断。上一页 下一页返回第一节第一节 中断系统中断系统MCS-51有两个中断允许优先级,对于每一个中断请求源可有两个中断允许优先级,对于每一个中断请求源可编程为高优先级中断或低优先级中断,可实现二级中
10、断嵌套,编程为高优先级中断或低优先级中断,可实现二级中断嵌套,一个正在执行的低优先级中断程序能被高优先级的中断源所一个正在执行的低优先级中断程序能被高优先级的中断源所中断,但不能被另一个低优先级的中断源所中断。若中断,但不能被另一个低优先级的中断源所中断。若CPU正正在执行高优先级的中断,则不能被任何中断源所中断,一直在执行高优先级的中断,则不能被任何中断源所中断,一直执行到结束,直到返回指令执行到结束,直到返回指令RETI,返回主程序后再执行一条,返回主程序后再执行一条指令后才能响应新的中断请求。以上所述可以归纳为下面两指令后才能响应新的中断请求。以上所述可以归纳为下面两条基本规则:条基本规
11、则:1)低优先级可被高优先级中断,反之不能;)低优先级可被高优先级中断,反之不能;2)任何一种中断,一旦得到响应,不会再被它的同级中断所)任何一种中断,一旦得到响应,不会再被它的同级中断所中断。中断。上一页 下一页返回第一节第一节 中断系统中断系统PT2:定时器:定时器2中断优先级设定位。中断优先级设定位。PT2=1,定时器,定时器2定义定义为高优先级中断源;为高优先级中断源;PT2=0,定时器,定时器2定义为低优先级中定义为低优先级中断源。断源。PS:串行口中断优先级设定位。:串行口中断优先级设定位。PS=1,串行口定义为高优,串行口定义为高优先级中断源;先级中断源;PS=0,串行口定义为低
12、优先级中断源;,串行口定义为低优先级中断源;PT1:定时:定时/计数器计数器1中断优先级设定位。中断优先级设定位。PT1=1,定时,定时/计计数器数器1定义为高优先级中断源;定义为高优先级中断源;PT1=0,定时,定时/计数器计数器1定定义为低优先级中断源;义为低优先级中断源;上一页 下一页返回第一节第一节 中断系统中断系统PX1:外部中断:外部中断1中断优先级设定位。中断优先级设定位。PX1=1,外部中断,外部中断1定义为高优先级中断源;定义为高优先级中断源;PX1=0,外部中断,外部中断1定义为低优定义为低优先级中断源。先级中断源。PT0:定时:定时/计数器计数器0中断优先级设定位。中断优
13、先级设定位。PT0=1,定时,定时/计计数器数器0定义为高优先级中断源;定义为高优先级中断源;PT0=0,定时,定时/计数器计数器0定定义为低优先级中断源。义为低优先级中断源。PX0:外部中断:外部中断0中断优先级设定位。中断优先级设定位。PX0=1,外部中断,外部中断0定义为高优先级中断源;定义为高优先级中断源;PX0=0,外部中断,外部中断0定义为低优先定义为低优先级中断源;级中断源;上一页 下一页返回第一节第一节 中断系统中断系统计算机中断处理过程可分为三个阶段:中断响应、中断处理计算机中断处理过程可分为三个阶段:中断响应、中断处理和中断返回。各计算机系统的中断硬件系统各有不同,中断和中
14、断返回。各计算机系统的中断硬件系统各有不同,中断的响应和方式也有所不同。对于的响应和方式也有所不同。对于MCS-51单片机,中断处理单片机,中断处理过程如下:过程如下:1.中断响应的条件中断响应的条件中断源向中断源向CPU发出中断请求,发出中断请求,CPU响应中断应满足下列条件:响应中断应满足下列条件:(1)有中断源发出中断请求;)有中断源发出中断请求;(2)中断总允许位)中断总允许位EA=1,即,即CPU开放中断;开放中断;(3)申请中断的中断源的中断允许位为)申请中断的中断源的中断允许位为1,即没有被屏蔽。,即没有被屏蔽。上一页 下一页返回第一节第一节 中断系统中断系统2.中断响应中断响应
15、如果中断响应条件满足,则如果中断响应条件满足,则CPU响应中断,在响应中断的三响应中断,在响应中断的三个周期内个周期内CPU必须做以下几件事:必须做以下几件事:(1)关闭中断:)关闭中断:CPU首先使被响应中断的相应首先使被响应中断的相应“优先级激优先级激活活”触发器置位,以阻断同级和低级的中断。触发器置位,以阻断同级和低级的中断。(2)断点保护:把中断点的地址(断点地址),也就是当前)断点保护:把中断点的地址(断点地址),也就是当前程序计数器程序计数器PC中内容压入堆栈,以便中断返回时继续原程序。中内容压入堆栈,以便中断返回时继续原程序。(3)清楚相应的中断请求标志位)清楚相应的中断请求标志
16、位IE0、IE1、TF0、TF1。(4)将对应的中断源的矢量地址装入计数器)将对应的中断源的矢量地址装入计数器PC,使程序转,使程序转至中断服务程序的入口地址。至中断服务程序的入口地址。上一页 下一页返回第一节第一节 中断系统中断系统3.中断处理中断处理在中断服务程序中,在中断服务程序中,CPU完成指定的任务。从中断服务程序完成指定的任务。从中断服务程序的第一条指令到返回指令为止,这个过程称中断处理或中断的第一条指令到返回指令为止,这个过程称中断处理或中断服务。服务。4.中断返回中断返回中断服务程序的最后一条指令必须是中断返回指令中断服务程序的最后一条指令必须是中断返回指令RETI。CPU执行这条指令时,把响应中断时置位的优先级触发器复执行这条指令时,把响应中断时置位的优先级触发器复位,再从堆栈中弹出断点地址送入程序位,再从堆栈中弹出断点地址送入程序PC,以便从断点处重,以便从断点处重新执行被中断的主程序。新执行被中断的主程序。上一页返回第二节第二节 定时器定时器/计数器及应用计数器及应用一、定时器功能概述一、定时器功能概述在工业检测、控制中,许多场合都要用到计数或定时功能。在工业检测
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1