课程设计报告 样板 联系客服

发布时间 : 星期日 文章课程设计报告 样板更新完毕开始阅读

第三章 汉明码编解码系统 16

1)中断系统

基本的8051支持6个中断源,两个外部中断、两个定时/计数器中断、一个串行口输入/输出中断,中断,发生后处理器转到将五个中断入口处之一执行中断处理程序。中断向量位于代码段的最低地址处(串行口输入,输出中断共用一个中断向量)。中断服务程序必须在中断入口处或通过跳转,分支转移到别处。

8051/8052的中断向量表如下表3.1所示:

表3.1 8051/8052的中断向量表

中断源 上电复位 外部中断0 定时器0溢出 外部中断1 定时器1溢出 串行口中断 定时器2 溢出 中断向量 0000H 0003H 000BH 0013H 001BH 0023H 002BH 8051支持两个中断优先级,有标准的中断机制,低优先级的中断只能被高优先级的中断所中断,而高优先级的中断不能被中断。

2)中断优先级寄存器

每个中断源都可通过设置中断优先级寄存器IP来单独设置中断优先级。如果每个中断源的相应位被置位,则该中断源的优先级为高。如果相应的位被复位,则该中断源的优先级为低,IP寄存器的各位此寄存器可位寻址。

IP 寄存器(可位寻址) --- --- --- 保留 --- 保留

PT2:定时器2中断优先级

PT2 PS PT1 PX1 PT0 PX0 第三章 汉明码编解码系统 17

PS:串行通信中断优先级 PT1:定时器1中断优先级 PX1:外部中断1优先级 PT0:定时器0中断优先级 PX0:外部中断0优先级 3) 中断使能寄存器

通过设置中断使能寄存器IE的EA位,使能所有中断。每个中断源都有单独的使能位,可通过软件设置IE中相应的使能位在任何时候使能或禁能中断。中断使能寄存器IE的各位如下所示。

中断使能寄存器IE(可位寻址) EA --- ET2 ES ET1 EX1 ET0 EX0 EA:使能标志位置位则所有中断使能复位则禁止所有中断 ---:保留

ET2:定时器2 中断使能 ES:串行通信中断使能 ET1:定时器1 中断使能 EX1:外部中断1 使能 ET0:定时器0 中断使能 EX0:外部中断0 使能 4) 中断延迟

8051在每个处理周期查询中断标志,确定是否有中断请求。当发生中断时,置位相应的标志,处理器将在下个周期查询到中断标志位,这样,从发生中断到确认中断之间有一个指令周期的延时。这时,处理器将用两个周期的时间来调用中断服务程序,总共要花3个时钟周期。在理想情况下,处理器将在3 个指令周期内响应中断,这使得用户能很快响应系统事件。

不可避免地系统有可能在3个处理周期能不能响应中断请求,特别是当有同级或

第三章 汉明码编解码系统 18

更高级的中断服务程序正在执行的时候。因此,中断的延迟主要取决于正在执行的程序。

另外一种大于3 个周期的中断延迟是,程序正在执行一条多周期指令,要等到当前的指令执行完后,处理器才会处理中断事件,这将在原来的基础上至少增加一个周期的延时(假设在执行完多周期指令的第一个周期后发现中断)。除被其它中断所阻的情况,中断不被响应的最长延时为6 个处理周期(3 个周期的多周期指令执行时间,3个周期的指令响应时间4)。 3.3.2.2 单片机的定时器系统 1) 定时器的相应寄存器

标准的8051有两个定时/计数器,每个定时器有16 位。定时/计数器既可用来作为定时器(对机器周期计数),也可用来对相应I/0 口(T0、T1)上从高到低的跳变脉冲计数。当用作计数器时,脉冲频率不应高于指令的执行频率的1/2, 因为每周期检测一次引脚电平,而判断一次脉冲跳变需要两个指令周期。如果需要的话,当脉冲计数溢出时,可以产生一个中断。

TCON特殊功能寄存器用来控制定时器的工作起停和溢出标志位。通过改变定时器运行位TR0 和TR1来启动和停止定时器的工作。TCON中还包括了定时器T0和T1 的溢出中断标志位。当定时器溢出时,相应的标志位被置位,当程序检测到标志位从0 到1 的跳变时,如果中断是使能的,将产生一个中断。注意,中断标志位可在任何时候置位和清除,因此,可通过软件产生和阻止定时器中断。

定时器控制寄存器(TCON 可位寻址) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF1:定时器1溢出中断标志,响应中断后由处理器清零

TR1:定时器1控制位,置位时定时器1工作,复位时定时器1停止工作 TF0:定时器0溢出标志位.定时器0 溢出时置位,处理器响应中断后清除该位 TR0:定时器0控制位,置位时定时器0工作,复位时定时器0 停止工作

IE1:外部中断1触发标志位,当检测到P3.3 有从高到低的跳变电平时置位,处理器

第三章 汉明码编解码系统 19

响应中断后,由硬件清除该位。

IT1:中断1触发方式控制位,置位时为跳变触发,复位时为低电平触发 IE0:外部中断1触发标志位,当检测到P3.3 有从高到低的跳变电平时置位,处

理器响应中断后,由硬件清除该位。

IT0:中断1 触发方式控制位,置位时为跳变触发,复位时为低电平触发。定时

器的工作方式由特殊功能寄存器TMOD 来设置。通过改变TMOD ,软件可控制两个定时器的工作方式和时钟源(是I/0 口的触发电平还是处理器的时钟脉冲)。TMOD 的高四位控制定时器1,低四位控制定时器0 。 TMOD 的结构如下:

定时器控制寄存器 GATE C/T M1 M0 GATE C/T M1 M0 GATE:当GATE 置位时,定时器仅当TR=1 并且INT=1 时才工作,如果GATE=0,

置位TR 定时器就开始工作。

C/T:定时器方式选择.如果C/T=1,定时器以计数方式工作,C/T=0 时,以定时方式

工作。 M1:模式选择位高位 M0:模式选择位低位

可通过C/T位的设置来选择定时器的时钟源。C/T=1,定时器以计数方式工作(对I/0引脚脉冲计数),C/T=0 时,以定时方式工作(对内部时钟脉冲计数)。当定时器用来对内部时钟脉冲计数时,可通过硬件或软件来控制。GATE=0 为软件控制,置位TR 定时器就开始工作,GATE=1为硬件控制,当TR=1并且INT=1 时定时器才工作。当INT脚给出低电平时,定时器将停止工作。这在测量INT 脚的脉冲宽度时十分有用,当然INT 脚不作为外部中断使用。 2) 定时器工作方式0 和方式1

定时器通过软件控制有四种工作方式。方式0为十三位定时/计数器方式,定时器溢出时置位TF0 或TF1,并产生中断。方式1 将以十六位定时/计数器方式工作,除此