版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、中断 MCS-51单片机的中断系统单片机的中断系统 计算机与外界的联系是通过外部设备(也称为外设、输入/输出设备或I/O设备)与外界联系的。计算机与外设之间不是直接相连的,而是通过不同的接口电路来达到彼此间的信息传送的目的。计算机与外设之间交换信息的方式计算机与外设之间交换信息的方式: (1)无条件传送方式:外设对计算机来说总是准备好的。 (2)查询传送方式:传送前计算机先查询外设的状态,若已经准备好就传送,否则就继续查询/等待。 (3)中断传送方式:外设通过申请中断的方式与计算机进行数据传送。 (4)直接存储器存取方式(DMA):传送数据的双方直接通过总线传送数据, 不经CPU中转。中断
2、的定义中断的定义 所谓“中断”,是指CPU执行正常程序时,系统中出现特殊请求,CPU暂时中止当前的程序,转去处理更紧急的事件(执行中断服务程序),处理完毕(中断服务完成)后,CPU自动返回原程序的过程。 作用:作用:采用中断技术可以提高CPU效率、解决速度矛盾、实现并行工作、分时操作、实时处理、故障处理、应付突发事件,可使多项任务共享一个资源(CPU)。 中断与子程序的最主要区别:中断与子程序的最主要区别:子程序是预先安排好的,中断是随机发生的。 中断涉及的几个环节:中断涉及的几个环节:中断源、 中断申请、开放中断、保护现场、中断服务、恢复现场、中断返回。中断的作用中断的作用 由于资源有限,面
3、对多项任务同时由于资源有限,面对多项任务同时要处理时,就会出现资源竞争的现象。要处理时,就会出现资源竞争的现象。 中断技术就是为了解决资源竞争的中断技术就是为了解决资源竞争的一个可行的方法,采用中断技术可使多一个可行的方法,采用中断技术可使多项任务共享一个资源。项任务共享一个资源。 中断的功能中断的功能o 实现实现CPU与外部设备的速度配合以及与外部设备的速度配合以及分时操作分时操作o 实现实时控制实现实时控制o 实现故障的及时发现及处理实现故障的及时发现及处理o 实现人机联系实现人机联系 中断的相关概念中断的相关概念、中断的本质、中断的本质 CPU在执行当前程序的过程中,插入了另外一段程序的
4、运行,相当在执行当前程序的过程中,插入了另外一段程序的运行,相当于调用了一个子程序。换句话说中断的本质是硬件调用子程序的过程。于调用了一个子程序。换句话说中断的本质是硬件调用子程序的过程。2、中断源、中断源 能产生中断的外部和内部事件统称为中断源。能产生中断的外部和内部事件统称为中断源。3、中断优先级、中断优先级 多个中断源同时申请中断时,或者多个中断源同时申请中断时,或者CPU正在处理某个中断源的服务正在处理某个中断源的服务程序时,又有了另一中断源申请中断,程序时,又有了另一中断源申请中断,CPU必须区分哪个中断更重要,从必须区分哪个中断更重要,从而决定优先处理哪个事件,这就是中断优先级问题
5、。而决定优先处理哪个事件,这就是中断优先级问题。4、中断的嵌套、中断的嵌套 当低优先级的中断源正在享用中断服务时,若优先级比它高的中断源当低优先级的中断源正在享用中断服务时,若优先级比它高的中断源提出申请中断,这时要求提出申请中断,这时要求CPU能够停下低优先级中断源的中断服务转而去能够停下低优先级中断源的中断服务转而去执行更高优先级别中断源的服务程序,待完成了高优先级中断的服务程序执行更高优先级别中断源的服务程序,待完成了高优先级中断的服务程序之后,再返回原程序的断点继续执行被打断的低优先级中断服务程序,这之后,再返回原程序的断点继续执行被打断的低优先级中断服务程序,这就是中断嵌套问题。就是
6、中断嵌套问题。中断执行的一般过程:中断执行的一般过程: (1) 外部设备发出脉冲信号向外部设备发出脉冲信号向CPU申请中断;申请中断; (2) CPU在每条指令执行时均检测是否有中断请求;在每条指令执行时均检测是否有中断请求; (3) 若检测到有中断申请,则根据计算机目前状态决定是否响应中断;若检测到有中断申请,则根据计算机目前状态决定是否响应中断; (4) 若要响应中断,则需判别产生中断申请的中断源;若要响应中断,则需判别产生中断申请的中断源; (5) CPU响应中断时,把程序断点处的响应中断时,把程序断点处的PC值压入堆栈保存起来,以备中断处理值压入堆栈保存起来,以备中断处理完毕后能够返回
7、程序的被中断处;完毕后能够返回程序的被中断处; (6) CPU在响应中断后,内部自动关中断,以禁止新的中断请求干扰本中断处在响应中断后,内部自动关中断,以禁止新的中断请求干扰本中断处理的进行。若要求中断过程中允许理的进行。若要求中断过程中允许 CPU 响应比它优先级别更高的中断源的中断,响应比它优先级别更高的中断源的中断,则应在保护现场之后,用软件把中断打开;则应在保护现场之后,用软件把中断打开; (7) CPU按中断源给出中断入口地址,转入被响应的中断处理子程序;按中断源给出中断入口地址,转入被响应的中断处理子程序;以上以上7步是由硬件自动完成的,以下步骤却须由中断处理程序来完成:步是由硬件
8、自动完成的,以下步骤却须由中断处理程序来完成: (8) 保护现场:为了使中断服务程序的执行不破坏被中断了的程序所使用的寄保护现场:为了使中断服务程序的执行不破坏被中断了的程序所使用的寄存器或存储单元的原有内容,要把中断服务程序将要使用而被中断的程序中仍需存器或存储单元的原有内容,要把中断服务程序将要使用而被中断的程序中仍需要继续使用的寄存器或存储单元的内容保护起来;要继续使用的寄存器或存储单元的内容保护起来; (9)执行中断服务程序:中断服务子程序是中断要求处理的具体内容;执行中断服务程序:中断服务子程序是中断要求处理的具体内容; (10)恢复现场:把保护现场时所保存起来的各寄存器或存储单元的
9、内容恢复,恢复现场:把保护现场时所保存起来的各寄存器或存储单元的内容恢复,以便返回被中断的程序后,能够正常运行;以便返回被中断的程序后,能够正常运行; (11)开中断:在返回被中断的程序之前,应该使用开中断的指令把由硬件关开中断:在返回被中断的程序之前,应该使用开中断的指令把由硬件关闭了的中断打开,以使闭了的中断打开,以使 CPU能够响应新的中断;能够响应新的中断; (12)中断返回:中断返回是把程序运行从中断处理程序转回到被中断的程序中断返回:中断返回是把程序运行从中断处理程序转回到被中断的程序中去,通过中断返回指令中去,通过中断返回指令RETI来完成,来完成,RETI除具有子程序返回指令除
10、具有子程序返回指令RET所具有所具有的全部功能之外,还有清除中断响应时被置位的优先级状态、开放较低级中断、的全部功能之外,还有清除中断响应时被置位的优先级状态、开放较低级中断、自动开中断等功能(可省去第自动开中断等功能(可省去第步骤)。步骤)。中断的控制方法中断的控制方法o 实现中断及返回实现中断及返回o 能实现优先权排队能实现优先权排队o 高优先级中断源能中断低优先级中断高优先级中断源能中断低优先级中断源的中断处理源的中断处理n MCS-51中断结构中断结构 n MCS-51的中断应用编程的中断应用编程 中断源:中断源:五个中断源,外部中断源为五个中断源,外部中断源为 、 ,可选择低电平有效
11、或下,可选择低电平有效或下降沿有效;内部中断源为降沿有效;内部中断源为T0、T1溢出中断;串行口的发送和接收部件共用一个中溢出中断;串行口的发送和接收部件共用一个中断源。断源。中断请求标志:中断请求标志:五个中断请求的标志位相应为五个中断请求的标志位相应为IE0、IE1、 TF0、 TF1、TI/RI。中断允许:中断允许:两级串联式的中断允许。两级串联式的中断允许。 EA=1时,开时,开CPU 中断;开某个中断源中中断;开某个中断源中断时,置位该中断源的中断允许位断时,置位该中断源的中断允许位EX0、 EX1、 ET0、ET1、ES。中断优先级管理:中断优先级管理:有两组优先级,即高优先级组与
12、低优先级组,同组时还由硬件有两组优先级,即高优先级组与低优先级组,同组时还由硬件规定有优先级的顺序规定有优先级的顺序(称自然优先级)(称自然优先级) 。INT0INT1P3.2 p3.3INT0INT1T0T1IT0IT1IE0IE1+EA EX0 ET0 ET1 ES EX1 PX0 PT0 PT1 PS PX1(IE) 011 0TF1TF0TI/RI(IP)TIRI高高优优先先级级中断转移中断转移入口入口低低优优先先级级中断转移中断转移入口入口(TC0N/SC0N)中断中断总允许总允许中断优先中断优先级寄存器级寄存器中断允中断允许寄存器许寄存器中断请中断请求标志求标志中断源中断源80C5
13、1中断系统结构示意图外部中断外部中断外部中断外部中断0 0( )和外部中断)和外部中断1 1( )。其中断请求信号分别由)。其中断请求信号分别由P3.2P3.2,P3.3P3.3引脚输入。可以有低电平有效的引脚输入。可以有低电平有效的电平触发电平触发、下跳沿、下跳沿 边沿触发边沿触发这两种触发方式,这两种触发方式,分别由分别由 IT0 IT0 和和 IT1 IT1 进行设置;一旦外部中断信号有效,则将进行设置;一旦外部中断信号有效,则将 TCON TCON 中的中的 IE0 IE0 或或 IE1 IE1 标志位置标志位置1 1,可向,可向CPUCPU申请中断。申请中断。定时器定时器/ /计数器
14、中断计数器中断定时器中断是定时器中断是MCS-51MCS-51单片机内部单片机内部 定时器定时器/ /计数器计数器0 0 和和 定时器定时器/ /计数器计数器1 1 定时时间定时时间到或计数值满产生溢出时,将到或计数值满产生溢出时,将 TCON TCON 中的中的 TF0 TF0 和和 TF1 TF1 置位,向置位,向CPUCPU申请中断。申请中断。串行口中断串行口中断串行口接收和发送部件共用一个中断源,当串行口接收或发送完一帧数据时,将串行口接收和发送部件共用一个中断源,当串行口接收或发送完一帧数据时,将 TCON TCON 中的中断标志位中的中断标志位 RI RI 或或 TI TI 置置1
15、 1,向,向CPUCPU申请中断。申请中断。 INT0INT1 当某个中断源的中断请求被CPU响应之后,CPU将自动把该中断源的中断入口地址(又称中断矢量地址)装入PC,中断服务程序即从该地址开始执行。 MCS-51单片机各中断源的中断矢量地址是固定的,参见表。由表可见,每个中断矢量地址只占8个单元,因此一般在此地址单元中存放一条跳转指令,跳至用户安排的中断服务程序的入口处。最低最低0023H R1或或T1串行口中断串行口中断001BH T1定时器定时器1中断中断0013H 外部中断外部中断1中断中断000BH T0定时器定时器0中断中断最高最高0003H 外部中断外部中断0中断中断同级自然优
16、先级同级自然优先级矢量地址矢量地址中断源中断源INT1INT0 与中断系统有关的特殊功能寄存器有与中断系统有关的特殊功能寄存器有: TCON :定时器定时器/计数器的控制寄存器计数器的控制寄存器 SCON :串行口控制寄存器串行口控制寄存器 IE :中断允许寄存器中断允许寄存器 IP :中断优先级管理寄存器中断优先级管理寄存器 MCS-51的中断控制通过对这的中断控制通过对这4个个SFR的操作来实现。的操作来实现。 IT0、IT1:外部中断外部中断 、 引脚电平触发方式引脚电平触发方式选择位。当为选择位。当为“0”时低电平有效;为时低电平有效;为“1”时下降沿有效。时下降沿有效。IE0、IE1
17、:外部中断的中断请求标志位。置位时表示有外部中断的中断请求标志位。置位时表示有中断请求。中断请求。TF0、TF1:定时器定时器/计数器计数溢出中断请求标志。置计数器计数溢出中断请求标志。置位时表示有中断请求,中断响应后位时表示有中断请求,中断响应后硬件自动清零硬件自动清零 。 定时器定时器/计数器控制计数器控制寄存器寄存器 TCON 结构结构TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0位地址位地址8FH8EH8DH8CH8BH8AH89H88HINT0INT1特别说明特别说明IE0、IE1复位的问题复位的问题o当外部中断是低电平触发方式时,当外部中断
18、是低电平触发方式时,CPU每个机器周期的每个机器周期的S5P2期间对期间对 引脚采样,若为低电平,则认为有中断申请,随即使其标志位置引脚采样,若为低电平,则认为有中断申请,随即使其标志位置“1”;若为高电平,则认为无中断申请或中断申请已撤除,随即清除中;若为高电平,则认为无中断申请或中断申请已撤除,随即清除中断请求标志位。所以在电平触发方式中,在中断返回前应撤消断请求标志位。所以在电平触发方式中,在中断返回前应撤消 引脚上的低电平,否则将再次中断造成出错。引脚上的低电平,否则将再次中断造成出错。o当外部中断设置为边沿触发方式时当外部中断设置为边沿触发方式时,CPU在每个机器周期的在每个机器周期
19、的S5P2期间期间采样采样 引脚,若在连续两个机器周期分别采样到(先)高、(后)引脚,若在连续两个机器周期分别采样到(先)高、(后)低不同电平,则将中断请求标志位置低不同电平,则将中断请求标志位置“1”,此标志一直保持到,此标志一直保持到CPU响响应中断时,才由应中断时,才由硬件自动清除硬件自动清除 。所以在边沿触发方式中,为保证所以在边沿触发方式中,为保证CPU在两个机器周期内检测到由高至低的负跳变,输入高电平和低电平的持在两个机器周期内检测到由高至低的负跳变,输入高电平和低电平的持续时间起码要保持续时间起码要保持12个振荡器周期即一个机器周期的时间。个振荡器周期即一个机器周期的时间。iIN
20、TiINTiINT 串行口控制串行口控制寄存器寄存器 SCON 结构结构SCOND7D6D5D4D3D2D1D0-TIRI位地址位地址 99H98H RI:接收中断标志位;接收中断标志位; CPU响应中断时不能硬件清除响应中断时不能硬件清除RI位,必须由软件清除。位,必须由软件清除。 TI:发送中断标志位。发送中断标志位。 CPU响应中断时不能硬件清除响应中断时不能硬件清除TI位,必须由软件清除。位,必须由软件清除。中断允许寄存器中断允许寄存器 IE 结构结构IED7D6D5D4D3D2D1D0EA-ESET1EX1ET0EX0位地址位地址AFH ACHABHAAHA9HA8H EA:中断总控
21、制位,中断总控制位,EA=1,CPU开放中断。开放中断。EA=0,CPU禁止所有中断。禁止所有中断。 ES:串行口中断控制位,串行口中断控制位,ES=1允许串行口中断,允许串行口中断,ES=0,屏蔽串行口中断。,屏蔽串行口中断。 ET1:定时定时/计数器计数器T1中断控制位。中断控制位。ET1=1,允许,允许T1中断,中断,ET1=0,禁止,禁止T1中断。中断。 EX1:外部中断外部中断1中断控制位,中断控制位,EX1=1,允许外中断,允许外中断1中断,中断,EX1=0,禁止外中断,禁止外中断1中断。中断。 ET0:定时定时/计数器计数器T0中断控制位。中断控制位。ET0=1,允许,允许T0中
22、断,中断,ET0=0,禁止,禁止T0中断。中断。 EX0:外部中断外部中断0中断控制位,中断控制位,EX0=1,允许外中断,允许外中断0中断,中断,EX0=0,禁止外中断,禁止外中断0中断。中断。 中断优先级管理寄存器中断优先级管理寄存器 IP 结构结构IPD7D6D5D4D3D2D1D0-PSPT1PX1PT0PX0位地址位地址 BCHBBHBAHB9HB8H PS:串行口中断口优先级控制位,串行口中断口优先级控制位,PS=1,串行口中断声明为高优先级中断,串行口中断声明为高优先级中断, PS=0,串行口定义为低优先级中断。,串行口定义为低优先级中断。 PT1:定时器定时器1优先级控制位。优
23、先级控制位。PT1=1,声明,声明T1为高优先级中断,为高优先级中断, PT1=0, 定义定时器定义定时器1为低优先级中断。为低优先级中断。 PX1:外中断外中断1优先级控制位。优先级控制位。PX=1,声明外部中断,声明外部中断1为高优先级中断,为高优先级中断, PX1=0,定义外部中断,定义外部中断1为低优先级中断。为低优先级中断。 PT0:定时器定时器0优先级控制位。优先级控制位。PT0=1,声明,声明T0为高优先级中断,为高优先级中断, PT0=0, 定义定时器定义定时器0为低优先级中断。为低优先级中断。 PX0:外中断外中断0优先级控制位。优先级控制位。PX0=1,声明外部中断,声明外
24、部中断0为高优先级中断,为高优先级中断, PX0=0,定义外中断,定义外中断0为低优先级中断。为低优先级中断。程序通过设置程序通过设置IP寄存器可按需要把各中断源的优寄存器可按需要把各中断源的优先级设置成高、低先级设置成高、低2级。它们遵循级。它们遵循2条基本原则:条基本原则:1、低优先级中断可以被高优先级中断所中低优先级中断可以被高优先级中断所中断,反之不能;断,反之不能;2、一种中断(不管是什么优先级)一旦得一种中断(不管是什么优先级)一旦得到响应,与它同级的中断不能再中断它。到响应,与它同级的中断不能再中断它。 中断系统内部包含着两个不可寻址的中断系统内部包含着两个不可寻址的“优先级激优
25、先级激活活”触发器。一个指示某高优先级的中断正在得到服务,所触发器。一个指示某高优先级的中断正在得到服务,所有后来的中断都被阻断。另一个指示某个低优先级的中断正有后来的中断都被阻断。另一个指示某个低优先级的中断正在得到服务,所有同级的中断请求都被阻断,但不阻断高优在得到服务,所有同级的中断请求都被阻断,但不阻断高优先级中断请求。先级中断请求。 o当当CPU同时收到几个同一优先级的中断请求时,哪一个的请同时收到几个同一优先级的中断请求时,哪一个的请求将优先得到服务,取决于内部的硬件查询顺序,求将优先得到服务,取决于内部的硬件查询顺序,CPU将按将按自然权优先级顺序确定响应哪个中断请求,其自然权优
26、先级自然权优先级顺序确定响应哪个中断请求,其自然权优先级由硬件形成,次序可参见表由硬件形成,次序可参见表6-1中所示中所示 CPU在每个机器周期的在每个机器周期的S5P2期间,各中断标志顺序采样相应的中期间,各中断标志顺序采样相应的中断源。在下一个机器周期的断源。在下一个机器周期的S6期间按优先级的顺序查询各中断标志,若查期间按优先级的顺序查询各中断标志,若查询到某中断标志为询到某中断标志为1,则按优先级的高低进行处理,即响应中断;,则按优先级的高低进行处理,即响应中断; 响应中断后,响应中断后,CPU首先使被响应中断的相应首先使被响应中断的相应“优先级激活优先级激活”触发器触发器置位,以阻挠
27、同级和低优先级的中断的响应。然后,执行硬件生成的长调置位,以阻挠同级和低优先级的中断的响应。然后,执行硬件生成的长调用指令用指令“LCALL”,将程序计数器,将程序计数器PC的内容压入堆栈中保护起来,断点地的内容压入堆栈中保护起来,断点地址的入栈次序是:先低位地址入栈,再高位地址入栈,堆栈指针的值被加址的入栈次序是:先低位地址入栈,再高位地址入栈,堆栈指针的值被加2; 将对应中断源的中断矢量地址装入程序计数器将对应中断源的中断矢量地址装入程序计数器PC,使程序转向该,使程序转向该中断矢量地址,去执行中断服务程序;中断矢量地址,去执行中断服务程序; 中断服务程序由中断矢量地址开始执行,直至遇到中
28、断服务程序由中断矢量地址开始执行,直至遇到RETI为止;为止; 执行执行RETI指令,从堆栈中弹出断点地址进入指令,从堆栈中弹出断点地址进入PC,先弹出高位地址,先弹出高位地址,后弹出低位地址,堆栈指针减后弹出低位地址,堆栈指针减2,恢复原程序的执行。,恢复原程序的执行。 注意!注意!CPU响应中断请求,转而执行中断服务程序,响应中断请求,转而执行中断服务程序,在执行中断返回指令在执行中断返回指令RETI前,中断请求信号前,中断请求信号必须以硬件或软件方式撤除,否则将会再次必须以硬件或软件方式撤除,否则将会再次引起中断而引起出错。引起中断而引起出错。 o同级或高优先级的中断正在进行中。同级或高
29、优先级的中断正在进行中。o现在的机器周期还不是执行指令的最后一个机器周期,即正在现在的机器周期还不是执行指令的最后一个机器周期,即正在执行的指令还没完成前,不响应任何中断。执行的指令还没完成前,不响应任何中断。o正在执行的是中断返回指令正在执行的是中断返回指令RETI或是访问专用寄存器或是访问专用寄存器IE、IP的指令。的指令。 中断系统规定:在执行完这些指令之后,不中断系统规定:在执行完这些指令之后,不会马上响应中断,至少再执行一条其它指令后才会响应。会马上响应中断,至少再执行一条其它指令后才会响应。 一般,在一般,在单级中断系统单级中断系统 中,中断的响应时间中,中断的响应时间最短为最短为
30、3个机器周期,最长个机器周期,最长为为8个机器周期。个机器周期。因为:因为:o查中断请求标志位占查中断请求标志位占1个机器周期,如果这时满足中断响应条件,下一条个机器周期,如果这时满足中断响应条件,下一条执行执行“LCLLA”指令,需指令,需2个机器周期,这样个机器周期,这样机器周期。机器周期。o如果如果正在执行的是中断返回指令正在执行的是中断返回指令RETI或是访问专用寄存器或是访问专用寄存器IE、IP的指的指令,令,占占2个机器周期;个机器周期;执行完后再继续执行一条其它指令,若该指令恰好执行完后再继续执行一条其它指令,若该指令恰好是是4个机器个机器周期的周期的指令;再加上指令;再加上执行
31、执行“LCALL”指令的指令的2个机器周期,这个机器周期,这样样机器周期。机器周期。o如果正在处理如果正在处理同级或高优先级的中断,则同级或高优先级的中断,则还需取还需取决于决于正在处理中的服务程序时间。正在处理中的服务程序时间。 IE0外部中断外部中断0 电平触发方式时电平触发方式时 边沿触发方式时边沿触发方式时 IE1外部中断外部中断1 TF0定时器定时器/计数器计数器0计数溢出中断请求标志:计数溢出中断请求标志:硬件自动清零硬件自动清零 TF1定时器定时器/计数器计数器1计数溢出中断请求标志:计数溢出中断请求标志:硬件自动清零硬件自动清零 TI/RI串行口接收和发送中断请求标志:串行口接
32、收和发送中断请求标志:必须由软件清除必须由软件清除 1、中断请求信号可以由外部设备发出,是随机、中断请求信号可以由外部设备发出,是随机的,而子程序调用是由软件编排好的。的,而子程序调用是由软件编排好的。2、中断响应后由固定的矢量地址转入中断服务、中断响应后由固定的矢量地址转入中断服务程序,而子程序地址是由软件设定的。程序,而子程序地址是由软件设定的。3、中断响应是受控的,其响应时间会受到一些、中断响应是受控的,其响应时间会受到一些因素的影响,而子程序的响应时间是固定的。因素的影响,而子程序的响应时间是固定的。INT0INT1T0T1IT0IT1IE0IE1+EA EX0 ET0 ET1 ES
33、EX1 PX0 PT0 PT1 PS PX1(IE) 011 0TF1TF0TI/RI(IP)TIRI高高优优先先级级中断转移中断转移入口入口低低优优先先级级中断转移中断转移入口入口(TC0N/SC0N)中断中断总允许总允许中断优先中断优先级寄存器级寄存器中断允中断允许寄存器许寄存器中断请中断请求标志求标志中断源中断源80C51中断系统结构示意图MCS-51的中断应用编程的中断应用编程 1、外部中断编程举例、外部中断编程举例硬件原理如图所示,将硬件原理如图所示,将 P1.4P1.7 作为输入位,作为输入位,P1.0P1.3作为输出位。希望将开作为输出位。希望将开关所设的数据读入单片机内,并关所
34、设的数据读入单片机内,并通过通过 P1.0P1.3 输出来驱动发光输出来驱动发光二极管,以检查二极管,以检查 P1.4P1.7 输入输入的电平情况(若输入为高电平则的电平情况(若输入为高电平则相应的相应的 LED 亮)。现要求采用亮)。现要求采用中断边沿触发方式,每中断一次中断边沿触发方式,每中断一次,完成一次读,完成一次读/写操作。写操作。LEDINT0 P1.7 P1.6 P1.5 P1.480C51 P1.3 P1.2 P1.1 P1.0RRLEDR+5V+5V+5V图图解:采用外部中断解:采用外部中断0,当,当 端输入脉冲有下降沿跳变时,发出中断请求,端输入脉冲有下降沿跳变时,发出中断
35、请求,中断服务程序的矢量地址为中断服务程序的矢量地址为0003H;P1.0P1.3中任何一位输出高电平中任何一位输出高电平“1”时,时,相应的发光二极管就会发光。程序清单如下:相应的发光二极管就会发光。程序清单如下: ORG 0000H AJMP MAIN ORG 0003H AJMP INSER ;转向中断服务程序;转向中断服务程序 ORG 0100H ;主程序;主程序 MAIN: SETB EX0 ;允许外部中断;允许外部中断0中断中断 SETB IT0 ;选择边沿触发方式;选择边沿触发方式 SETB EA ;CPU开中断开中断 WAIT: SJMP WAIT ;等待中断;等待中断 ORG
36、 0200H ;中断服务程序;中断服务程序 INSER:MOV A,#0F0H ANL P1,A ;设;设P1.4P1.7作为输入作为输入 MOV A,P1 ;取开关状态;取开关状态 SWAP A ;A的高、低四位互换的高、低四位互换 MOV P1,A ;输出驱动;输出驱动LED发光发光 RETI ;中断返回;中断返回 ENDINT0例题例题6-3: 硬件图见硬件图见P104. ADRESULT DATA 30H ORG 0000H SJMP MAIN ORG 0013H SJMP INT1_AD ;转向外部中断;转向外部中断1服务程序服务程序 ORG 0030H ;主程序;主程序 MAIN:
37、 SETB IT1 ;外部中断;外部中断1申请方式为下降沿有效申请方式为下降沿有效 SETB EX1 ;开外部中断;开外部中断1 SETB EA ;开总中断;开总中断 MOV DPTR, #xxxxH ;启动启动AD转换,转换,xxxxH为通道地址为通道地址 SJMP $ ;等待中断;等待中断;中断服务程序;中断服务程序 INT1_AD :MOV DPTR,#xxxxH MOVX A, DPTR ; MOV ADRESULT,A ;输出驱动;输出驱动LED发光发光 RETI ;中断返回;中断返回 例题例题6-4: 硬件图见硬件图见P105. ORG 0000H SJMP MAIN ORG 00
38、03H SJMP INT0_KEY ;转向外部中断;转向外部中断0服务程序服务程序 ORG 0030H ;主程序;主程序 MAIN: SETB IT0 ;外部中断;外部中断0申请方式为下降沿有效申请方式为下降沿有效 SETB EX0 ;开外部中断;开外部中断0 SETB EA ;开总中断;开总中断 MAIN1: MOV P1, #0F0H ;列少么先输出全为列少么先输出全为0 SJMP MAIN1;中断服务程序;中断服务程序INT0_KEY :CLR EX0; 关外部中断关外部中断0 CLR EA;关总中断;关总中断 SETB P2.0;有键按下灯闪一下;有键按下灯闪一下 ACALL DELA
39、Y ; CLR P2.0; SETB EX0 SETB EA RETI ;中断返回;中断返回DELAY: 二、单片机的定时器和计数器定时方法概述定时器/计数器的定时和计数功能 定时器/计数器的控制寄存器定时工作方式 0 定时工作方式1 定时工作方式2 定时工作方式3ALEPSENRSTEAP0口驱动器口驱动器P0口锁存器口锁存器P2口驱动器口驱动器P3口驱动器口驱动器P1口驱动器口驱动器P2口锁存器口锁存器P3口锁存器口锁存器P1口锁存器口锁存器RAM地址锁存器地址锁存器RAMEPROM/ROMACCB寄存器寄存器TMP2TMP1程序地址程序地址寄存器寄存器PSW缓冲器缓冲器PC递增器递增器P
40、CDPTROSC定时定时和和控制控制指指令令寄寄存存器器ALU中断、串行口中断、串行口和定时器等部件和定时器等部件SPP1.0P1.7 P3.0P3.7图图210 MCS-51硬件内部结构方框图硬件内部结构方框图串行输入串行输出CPU振荡器及定时电路4K字节ROM128字节RAM2个16位T/S串行口I/O总线扩展控制计数器并行I/O口控制中断中断频率基准源定时方法概述 1. 软件定时 软件定时是执行一段循环程序来进行时间延时,优点是无额外的硬件开软件定时是执行一段循环程序来进行时间延时,优点是无额外的硬件开销,时间比较精确。但牺牲了销,时间比较精确。但牺牲了CPU的时间的时间2. 硬件定时
41、硬件定时功能完全由硬件电路完成,不占用硬件定时功能完全由硬件电路完成,不占用CPU时间。但当要求改变定时间。但当要求改变定时时间时,只能通过改变电路中的元件参数来实现,很不灵活。时时间时,只能通过改变电路中的元件参数来实现,很不灵活。 3. 可编程定时器定时 通过对系统通过对系统时钟脉冲时钟脉冲的计数实现定时,计数值通过程序设定,定时的计数实现定时,计数值通过程序设定,定时准确,使用方便灵活准确,使用方便灵活定时器定时器/计数器的作用计数器的作用定时器的作用定时器的作用 定时器可构成系统的实时时钟,实现系统中硬件的定时控制和对环境的实时检测等。计数器的作用计数器的作用 微处理机系统中的计数器可
42、用于对外部事件的计数,所谓外部事件指的是被系统检测的部件所产生的脉冲通过引脚送入单片机,该跳沿或脉冲通过计数器计数后用于系统的控制决策。定时器/计数器的定时和计数功能 o 1.计数功能 对外部脉冲下降沿计数,脉冲频率不能高于振荡脉冲频率的1/24o 2. 定时功能 对内部时钟脉冲计数来实现定时,计数频率为振荡脉冲频率的1/12,(每个机器周期计数器加1) 计数器/定时器的基本核心是一个加1计数器,而给予加1计数器的脉冲有两个来源: 外部脉冲源 内部的时钟振荡器 * 定时器定时器 是对内部的时钟振荡器标准脉冲计数 * 计数器计数器 是对外部脉冲计数计数器计数器/定时器本质区别是什么?定时器本质区
43、别是什么?定时器/计数器的结构方法是一套可以对输入信号的脉冲跳变沿进行检测并能进行加法或减法计数的电路。 加法计数器方式加法计数器方式寄存器实行加法计数,每输入一个跳变沿信号寄存器内容加1,当寄存器中内容加到每一位全部为1时再输入一个跳沿,寄存器中内容变为全零并产生溢出。MCS-51采用加法计数器方式。减法计数器方式减法计数器方式寄存器实行减法计数,每输入一个跳变沿信号寄存器内容减1,当寄存器中内容减到每一位全部为0时再输入一个跳沿,寄存器中内容变成全1并产生溢出。定时器定时器/计数器的结构方法计数器的结构方法MCS-51的定时器的定时器/计数器结构特点计数器结构特点 MCS-51有两个有两个
44、16位可编程的定时器位可编程的定时器/计数器计数器 称为:定时器称为:定时器/计数器计数器0和定时器和定时器/计数器计数器1 表示为:表示为:T0和和T1每个寄存器(每个寄存器(T0,T1)都具有定时和计数功能都具有定时和计数功能 定时器/计数器T0、T1各有一个16位的数据寄存器,都由高8位、低8位两个寄存器组成,指示当前的计数值。这四个寄存器都是可读/写寄存器,任何时候都可以对它们进行读/写操作。复位后,这四个寄存器全部清“0”。它们都只能以字节方式寻址。寄存器名 称字节地址TH1T1的高8位数据寄存器8DHTL1T1的低8位数据寄存器8BHTH0T0的高8位数据寄存器8CHTL0T0的低
45、8位数据寄存器8AH定时器/计数器T0、T1的数据寄存器的字节地址3.时间寄存器时间寄存器TH、TL 符号符号寄存器寄存器名名 称称 SFR中各位地址、位标志及位功中各位地址、位标志及位功能能直接地直接地址址复位状态复位状态D7D6D5D4D3D2D1D0SP堆栈堆栈寄存器寄存器81H00HDPL数据指针数据指针低低8位位82H00HDPH数据指针数据指针高高8位位83H00HPCON电源控制电源控制寄存器寄存器SMOD - - -GF1GF0PDPL87H00000BTMOD定时器方定时器方式寄存器式寄存器GATEC/ M1M0GATE C/M1 M089H00HTL0T0低低8位位寄存器寄
46、存器8AH00HTL1T1低低8位位寄存器寄存器8BH00HTH0T0高高8位位寄存器寄存器8CH00HTH1T1高高8位位寄存器寄存器8DH00HSBUF串行口数串行口数据缓冲器据缓冲器99H*Bn表51单片机SFR中的不可位寻址寄存器TTTH18位位TL18位位TH08位位TL08位位GATEC/TM1M0TR1GATEM0M1TF1TR0振荡器12T0INT0INT1T1TF0TCON(88H)TMOD(89H)T1(16位位)T0(16位位)内部总线内部总线CPU图 MCS-51定时器逻辑结构框图C/T、 TCON(模式控制寄存器)(模式控制寄存器):用来设置定时器/计数器的操作模式;
47、 TMOD(方式寄存器)(方式寄存器):用来控制定时器的启动与停止。 TH0、TL0、TH1、TL1:两个16位加法计数器 T0 和 T1 均可分成2个独立的8位计数器,用于存放定时或计数的初值,并用作加1的计数。 与定时器/计数器相关的输入引脚有四个: T0、T1、 、INT0INT1。MCS-51定时器逻辑结构定时器逻辑结构1 402 393 384 375 366 357 348 339 8031 3210 8051 3111 8751 3012 8032 2913 8052 2814 8752 2715 2616 (DIP40) 2517 2418 2319 2220 21VCCP0.
48、0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VDDALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0T2/P1.0T2EX/P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS双列直插式的51 单片机引脚图/INT0 (P3.2) /INT1(P3.3) -用于外部中断,输入用于外部中断,输入T0(P3.4) T1(P3.5) -用于定时器,输入用于定时器,输入o MCS
49、51单片机定时/计数的核心是一个16位计数器(寄存器)。o 加1信号来源:外部计数脉冲,内部时钟脉冲o 信号来源方式:由特殊功能寄存器TMOD设置位C/T确定。o C/T=1,计数方式(外部)o C/T=0,定时方式(内部)o 定时功能和计数功能的设定和控制都是通过软件来进行的。 MCS-51定时器定时器/计数器的特殊寄存器计数器的特殊寄存器 MCS-51单片机的定时器/计数器是一种可编程的I/O部件。它的工作方式、计数初值、启停操作均要求在定时器/计数器工作之前,由CPU向它的控制端口(有关的SFR中)写入一些命令字。控制寄存器TCON是一个8位寄存器,既可以字节寻址也可以位寻址,字节地址为
50、88H,位寻址的地址为88H8FH。其格式为:TCON8FH8EH8DH8CH8BH8AH89H88H88HTF1TR1TF0TR0IE1IT1IE0IT0TF1和和TF0:分别为分别为T1和和T0的溢出标志。当定时器的溢出标志。当定时器/计数器计满产生计数器计满产生溢出时,由硬件自动置溢出时,由硬件自动置“1”,可申请中断。进入中断服务程序后,由内,可申请中断。进入中断服务程序后,由内部硬件自动清部硬件自动清“0”。这两位也可作为程序查询的标志位,在查询方式下这两位也可作为程序查询的标志位,在查询方式下应由软件来清应由软件来清0。TR1和和TR0:为定时器为定时器/计数器计数器T1和和T0的
51、启动、停止控制位。当由软的启动、停止控制位。当由软件使件使TRi=1时,启动定时器时,启动定时器/计数器计数器Ti工作;当由软件使工作;当由软件使TRi=0时,使时,使Ti停止工作;停止工作;定时器定时器/计数器的启动还与门控位和外部中断引脚有关。具体见计数器的启动还与门控位和外部中断引脚有关。具体见GATE的设置。的设置。控制寄存器控制寄存器TCON IE1和和IE0:外部中断外部中断1( )和外部中断)和外部中断0( )的中断请求标志位。当外部中断源有请求时其对应的中断的中断请求标志位。当外部中断源有请求时其对应的中断标志位置标志位置“1”。 IT1和和IT0:为外部中断为外部中断1和外部
52、中断和外部中断0的触发方式选择的触发方式选择位。位。ITi设置为设置为“0”时为电平触发方式;设置为时为电平触发方式;设置为“1”时为边时为边沿触发方式。沿触发方式。 系统复位时,系统复位时,TCON被清被清0。INT1INT0方式控制寄存器TMOD是一个8位寄存器,字节地址为89H,只能用字节传送指令来设置定时器的工作方式,系统复位时TMOD所有位均为0。其格式为:(1 1)GATE:门控位。:门控位。 GATE=1时时,定时器/计数器由外部中断引脚 和 TRi共同来启动。当 引脚为高电平时,TRi=1,启动定时器/计数器Ti ; TRi=0,定时器/计数器 Ti 停止工作。 GATE=0时
53、时,仅由TRi来启动定时器/计数器,又称为软件启动软件启动。 TRi=1,定时器/计数器Ti启动开始工作; TRi=0,定时器/计数器Ti停止工作。INTiTMODD7D6D5D4D3D2D1D089HCATEM1M0GATE M1M0T1T0方式寄存器方式寄存器TMODTC/TC/INTi(2) :功能选择位。:功能选择位。 当 =0时设置为定时器方式,计数脉冲由内部提供,计数周期等于机器周期。 当 =1时设置为计数器方式,计数脉冲为外部引脚T0或T1引入的外部脉冲信号。TC/TC/TC/a)T0或或T1用于定时方式时,计数脉冲输入信号用于定时方式时,计数脉冲输入信号是由内部时钟提供的,每一
54、个机器周期使计是由内部时钟提供的,每一个机器周期使计数器的值加数器的值加1,故计数器的计数频率为振荡器,故计数器的计数频率为振荡器频率的频率的1/12。实质上定时工作方式,就是。实质上定时工作方式,就是对单片机的机器周期数进行计数。对单片机的机器周期数进行计数。b) T0或或T1用于计数方式时,计数脉冲来自外部输入引脚用于计数方式时,计数脉冲来自外部输入引脚T0(P3.4)或)或T1(P3.5)。当外部输入脉冲信号产生由)。当外部输入脉冲信号产生由1至至0的的跳变时,计数器的值加跳变时,计数器的值加1。计数器在每个机器周期的。计数器在每个机器周期的S5P2期间,期间,对脉冲输入进行一次采样。若
55、在第一个机器周期中采样到高电平对脉冲输入进行一次采样。若在第一个机器周期中采样到高电平“1”,第二个机器周期中采样到,第二个机器周期中采样到“0”,则在下一个(第三个),则在下一个(第三个)机器周期的机器周期的S3P1期间,新的计数值装入计数器。由此,检测一期间,新的计数值装入计数器。由此,检测一个个“1”到到“0”的跳变需要两个机器周期,故最高计数频率为振的跳变需要两个机器周期,故最高计数频率为振荡频率的荡频率的1/24。为了确保电平在变化之前至少被采样一次,外。为了确保电平在变化之前至少被采样一次,外部计数脉冲的高、低电平保持时间均要求在一个机器周期以上。部计数脉冲的高、低电平保持时间均要
56、求在一个机器周期以上。(3)M1 M0方式选择位。方式选择位。 M1、M0两位可形成4种编码,对应于4种工作方式,其定义下表所示。 定时器定时器/计数器有四种工作方式计数器有四种工作方式表 定时器/计数器T0、T1的四种工作方式M1 M0工作方式工作方式计数器配置及功能简述计数器配置及功能简述0 0方式方式013位计数器,位计数器,TLi只用低只用低5位位0 1方式方式116位计数器位计数器1 0方式方式28位自动重装计数器,位自动重装计数器,THi的值在计数中不变,的值在计数中不变,TLi溢出时,溢出时,THi中的值自动装入中的值自动装入TLi中中1 1方式方式3T0分为两个独立的分为两个独
57、立的8位计数器,位计数器,T1用作波特率发生用作波特率发生器器工作方式工作方式0结构结构 TMOD中的M1=0、M0=0时,选定工作方式0。这种方式下,计数寄存器由13位组成,即TLi的高3位未用。计数时,TLi低5位溢出后向THi进位,THi溢出后将TFi置位,并向CPU申请中断。 如果中断允许,CPU响应中断并转入Ti中断服务程序,由内部硬件清TFi。TFi也可以由程序查询和清零。 当GATE=0时,A点为高电平,定时器/计数器的启动/停止由TRi决定。TRi=1,定时器/计数器启动;TRi=0,定时器/计数器停止。当GATE=1时,定时器/计数器的启动/停止由TRi和 两个条件决定。iI
58、NT方式0时,定时器/计数器T0、T1的结构简图 GATE(i=0,1)B引脚引脚申请申请中断中断A振荡器振荡器12Ti 引脚引脚.TLi(5位位)THi(8位位)TFi控控制制+INTiTRi0TC/1TC/工作方式工作方式1的结构的结构 TMOD中的M1=0、M0=1时,选定工作方式1。这种方式下,加法计数寄存器由16位组成。计数时,TLi溢出后向THi进位,THi溢出后将TFi置位,并向CPU申请中断。其它与方式0相同。 GATE振荡器振荡器12Ti 引脚引脚TLi(8位位)THi(8位位)TFi申请申请中断中断+引脚引脚TRiAB 控制控制(i=0,1) 方式1时,定时器/计数器T0、
59、T1的结构简图INTi0TC/1TC/ TMOD中的M1=1、M0=0时,选定工作方式2。 这种方式是将16位计数寄存器分为两个8位寄存器,组成一个可重装入的8位计数寄存器。 在方式2中,TLi作为8位计数计数 寄存器,THi作为8位计数初值计数初值 寄存器。当TLi计数溢出时,一方面TFi置位,并向CPU申请中断;另一方面将THi的内容重新装入TLi中,继续计数。重新装入时不影响THi的内容,所以可以多次连续再装入。 方式2对定时控制特别有用,实现每隔预定时间发出控制信号,它可用于循环重复定时计数,用户可以省去重装计数初值的程序,并可产生相当精度的定时时间,特别适用于作串行口波特率发生器。工
60、作方式工作方式2的结构的结构GATETRi 控制控制BA+TFi申请申请中断中断(i=0,1)振荡器振荡器12Ti 引脚引脚TLi(8位位)THi(8位位)重装载重装载引脚引脚方式2时,定时器/计数器T0、T1的结构简图0TC/ 1TC/INTiTMOD中的M1=1、M0=1时,选定工作方式3。 这种方式只适用于定时器/计数器T0,是将定时器/计数器T0分为一个8位定时器定时器/计数器计数器和一个8位定时器定时器。 该方式下的TL0可作定时也可作计数用,只是此时的定时器/计数器为8位计数器,它占用了定时器/计数器T0的GATE、 、TR0、T0引脚以及中断源等。 该方式下的TH0只可用作简单的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年危险化学品生产单位安全生产管理人员试题及答案
- 2026年计算机职高知识题库(含答案)
- 2026年法律法规理论知识应用考试模拟题及答案详解
- 2026年中国索具市场深度调查及行业前景研究报告
- 2026年中国超微型电子计算机行业市场供需预测研究报告
- 2026年税务副职笔试题库(含答案)
- 中小学教师职业道德知识竞赛题库(含答案)
- 卫生管理(副高)高级职称考试题库(含答案)
- 2026年材料员易错点汇模拟题及答案详解
- 2026-2030年中国汽车美容产品行业市场发展趋势与前景展望战略分析报告
- 心内科护理查房:先天性心脏病的护理要点
- 电除颤问答题
- 市政路面白改黑改造工程监理细则
- 第15课 规划与设计教学设计-2025-2026学年小学信息技术(信息科技)五年级第5册滇人版
- DBJ50T-542-2026 建筑机器人应用技术标准
- 1.2 1.2.1 命题与量词 课件-2026版高中数学人教B版必修第一册
- 2025版煤矿安全规程题库645道
- 农行笔试真题全套及答案
- 部编版初一语文七年级上册《咏雪》听评课记录(区公开课)
- 塑胶件培训课件
- 高中数学第九、十章统计与概率章节测试卷-2024-2025学年高一下学期数学人教A版(2019)必修第二册
评论
0/150
提交评论