52单片机的T2的优先级与dsp 中断优先级使能没设置吗

单片机原理与接口网络课程
第5章AT89S52中断系统及应用
本章要点:
&O了解中断的基本概念、中断的作用及中断请求方式
&O掌握AT89S52单片机中断结构
&O掌握AT89S52单片机6个中断源的中断请求、中断屏蔽、优先级设置等初始化编程方法
&O掌握非接触式IC卡门禁系统的中断应用方法
为了提高的工作效率以及对实时系统的快速响应,产生了中断控制方式的信息交换。
在日常生活中广泛存在着中断的例子。例如一个人正在看书,这时电话铃响了,于是他将书放下去接电话。为了在接完电话后继续看书,他必须记下当时的页号,接完电话后,将书取回,从刚才被打断的位置继续往下阅读。由此可见,中断是一个过程。计算机是这样处理的,当有随机中断请求后,暂停执行现行程序,转去执行中断处理程序,为相应的随机事件服务,处理完毕后恢复执行被暂停的现行程序。
在这个过程中,应注意如下几方面:
ü外部或内部的中断请求是随机的,若当前程序允许处理应立即响应;
ü在内存中必须有处理该中断的处理程序;
ü系统怎样能正确地由现行程序转去执行中断处理程序;
ü当中断处理程序执行完毕后怎样能正确地返回。
现在再从另一方面分析,整个中断的处理过程就像子程序调用,但是本质的差异是调用的时间是随机的,调用的形式是不同的。因此,是否可以认为处理中断的过程是一种特殊的子程序调用。如图5.1和 图5.2 所示。
中断有两个重要特征:程序切换(控制权的转移)和随机性。
图子程序调用过程
图中断的执行过程
中断源与中断向量地址
中断源就是向CPU发出中断请求的来源。AT89S52共有六个中断源:2个外部中断(INT0和INT1)、3个定时器中断(定时器0、1和2)和1个串行中断。如图5.3所示。
外部中断包括外部中断0和外部中断1。它们的中断请求信号分别由单片机引脚/P3.2和/P3.3输入。
外部中断请求有两种信号方式:电平方式和脉冲方式。电平方式的中断请求信号是低电平有效,即只要在或引脚上出现低电平时,就激活外部中断标志。脉冲方式的中断请求信号则是脉冲的负跳变有效。在这种方式下,在两个相邻机器周期内,或引脚电平状态发生变化,即在第一个机器周期内位为高电平,第二个机器周期内为低电平,就激活外部中断标志。
单片机芯片内部有三个定时器/计数器,对脉冲信号进行计数。若脉冲信号为内部振荡器输出的脉冲(机器周期信号),
则计数脉冲的个数反映了时间的长短,称为定时方式。若脉冲信号为来自T0/P3.4、T1/P3.5、T2/P1.0的外部脉冲信号,则计数脉冲的个数仅仅反映外部脉冲输入的多少,称为计数方式。
当定时器/计数器发生溢出(计算器状态由FFFFH再加1,变为0000H状态),CPU查询到单片机内部硬件自动设置的一个溢出标志位为1时,便激活中断。
定时方式中断由单片机芯片内部发生,不需要在芯片外部设置引入端。计数方式中断外部输入脉冲(负跳变)引起,脉冲加在引脚T0/P3.4、T1/P3.5、T2/P1.0端。
串行中断是为串行通信的而需要设置的。当串行口发送完或接收完一帧信息时,单片机内部硬件便自动串行发送或接收中断标志位置1。当CPU查询到这些标志位为1时,便激活串行中断。串行中断是由单片机内部自动发生的,不需要在芯片外设置引入脚。
中断源发出请求,CPU响应中断后便转向中断服务程序。中断源引起的中断服务程序入口地址即为中断矢量地址。中断向量地址是固定的,用户不可改变。中断服务入口地址如表5.1所示。
表5.1& 中断源及其对应的矢量地址&&
中断标志位
中断矢量地址
外部中断0()
定时器0(T0)中断
外部中断1()
定时器1(T1)中断
串行口中断
定时器1(T1)中断
T2溢出中断
由于两个相邻的中断服务程序入口地址间隔仅为8字节,一般的中断服务程序是容纳不下的。通常是在相应的中断服务程序入口地址中放一条长跳转指令LJMP,这样就可以转到64KB的任何可用区域了。若在2KB范围内转移,则可存放AJMP指令。
由于BH是中断矢量地址区,因此,单片机应在程序入口地址0000H处放一条无条件转移指令(如LJMP
XXXXH),转到指定的主程序地址。
要实现中断,首先中断源要提出中断申请,而中断请求的过程是单片机内部特殊功能寄存器TCON和SCON相关状态位―中断请求标志位置1的过程,当CPU响应中断时,中断请求标志位才由硬件或软件清0。
TCON主要用于寄存外部中断请求标志、定时器溢出标志、和外部中断触发方式的选择。该寄存器的字节地址是88H,可以位寻址;位地址是88H~8FH。其格式如下:
其中与中断有关的控制位共6位:
IE0和IE1:外部中断中断请求标志。当CPU采样到(或)端出现有效中断请求(低电平或脉冲下降沿)时,IE0(或IE1)位由片内硬件自动置1;当中断响应完成转向中断服务程序时,由片内硬件自动清0。
IT0和ITl:外部中断请求信号触发方式控制标志。
IT0(或IT1)=1,(或)信号为脉冲触发方式,脉冲负跳沿有效;
IT0(或IT1)=0,(或)信号电平触发方式,低电平有效。
IT0(或IT1)位可由用户软件置1或清0
TF0和TFl:定时器/计数器溢出中断请求标志。当定时器0(或定时器1)产生计数溢出时,TF0(或TF1)由片内硬件自动置1;当中断响应完成转向中断服务程序时,由片内硬件自动清0。
该标志位也可用于查询方式,即用户程序查询该位状态,判断是否应转向对应的处理程序段。待转如处理程序后,必须由软件清0。
SCON的字节地址是98H,可以位寻址;位地址是98H~9FH。其格式如下:
其中与中断有关的控制位共2位:
TI:串行口发送中断请求标志。当串行口发送完一帧信号后,由片内硬件自动置1。但CPU响应中断时,并不清除TI,必须在中断服务程序中由软件对TI清0。
RI:串行口接收中断请求标志。当串行口接收完一帧信号后,由片内硬件自动置1。但CPU响应中断时,并不清除RI,必须在中断服务程序中由软件对其清0。
应当指出,AT89S52系统复位后,TCON和SCON中各位被复位成“0”状态,应用时要注意各位的初始状态。
CPU对中断源的开放和屏蔽,以及每个中断源是否被允许中断,都受中断允许寄存器IE控制。
中断允许控制寄存器IE对中断的开放和关闭实行两级控制。即有一个总中断位EA。5个中断源还有各自的控制位进行控制。
IE寄存器的字节地址是A8H,可以位寻址;位地址是A8H~AFH。其格式如下:
其中与中断有关的控制位共7位:
中断允许总控制位。
EA=0时,中断总禁止,禁止一切中断;
EA=1时,中断总允许,而每个中断源允许与禁止,分别由各自的允许位确定。
EX0和EX1:外部中断允许控制位。
EX0(或EX1)=0,禁止外部中断(或);
EX0(或EX1)=1,允许外部中断(或)。
ET0和ET1:定时器中断允许控制位。
ET0(ET1)=0,禁止定时器0(或定时器1)中断;
ET0(ET1)=1,允许定时器0(或定时器1)中断。
串行中断允许控制位。
ES=0,禁止串行(TI或RI)中断;
ES=1,允许串行(TI或RI)中断。
定时器2中断允许控制位。
ET2=0,禁止定时器2(TF2或EXF2)中断;
ET2=0,禁止定时器2(TF2或EXF2)中断;
在单片机复位后,IE各位被复位成“0”状态,CPU处于关闭所有中断的状态。所以,在单片机复位以后,用户必须通过程序中的指令来开放所需中断。
AT89S52单片机具有高、低2个中断优先级。高优先级用“1”表示,低优先级用“0”表示。各中断源的优先级由中断优先级寄存器IP进行设定。IP寄存器字节地址为B8H,可以位寻址;位地址为0BFH~0B8H。寄存器的内容及位地址表示如下:
其中与中断有关的控制位共6位:
PX0:外部中断0()中断优先级控制位;
PT0:定时器0(T0)中断优先级控制位;
PX1:外部中断1()中断优先级控制位;
PT1:定时器1(T1)中断优先级控制位;
PS: 串行口中断优先级控制位;
PT2:定时器2(T2)中断优先级控制位。
各中断优先级的设定,可用软件对IP的各位置1或清0,为1时是高优先级,为0时是低优先级。
当系统复位后,IP各位均为0,所有中断源设置为低优先级中断。
例如:CPU开中断可由以下两条指令来实现:
&&&&&& SETB&
0AFH&&&&&& ;EA置1
或 0RL &&IE,#80H&&&&&&
;按位“或”,EA置1
CPU关中断可由以下两条指令来实现:
CLR &0AFH&&&&&&& ;EA清0
或& ANL &IE,#7FH&&& ;按位“与”,EA清0
又如设置外部中断源为高优先级,外部中断源为低优先级,可由下面指令来实现:
&&&&& SETB &0B8H&&&&&&&&&&&&&&
&&&&& CLR& &0BAH&&&&&&&&&&
&&&&;PXl清0
或& MOV& IP,#000××0×1B&& &&&;PX0置1,PXl清0
中断优先级只有高低两级,所以在工作过程中必然会有两个或两个以上中断源处于同一中断优先级。若出现这种情况,内部中断系统对各中断源的处理遵循以下两条基本原则:
1.低优先级中断可以被高优先级中断所中断,反之不能;
2.一种中断(不管是什么优先级)一旦得到响应,与它同级的中断不能再中断它。
当CPU同时收到几个同一优先级的中断请求时,CPU将按自然优先级顺序确定应该响应哪个中断请求。其自然优先级排列如下:
中断源&&&&&&&&&&
同级自然优先级
外部中断0&&&&&&&&&&
定时器0中断&&&&&&&&&&
外部中断1&&&&&&&&&&&&
定时器1中断&&&&&&&&&&&
串行口中断&&&&&&&&&
定时器2中断& &&&&&&&最低级
【例5.1】设AT89S52的片外中断为高优先级,片内中断为低优先级。试设置IP相应值。
解:(a) 用字节操作指令&&&
MOV& IP,#05H&&&&
&&&& 或&& MOV& 0B8H,#05H&&&
(b) 用位操作指令&
SETB& PX1&
AT89S52中断系统是可以通过4个与中断有关的特殊功能寄存器TCON、SCON、IE和IP进行统一管理的。中断系统初始化是指用户对这些特殊功能寄存器中的各控制位进行赋值。
中断系统初始化步骤如下:
(1) CPU开中断或关中断;
(2) 某中断源中断请求的允许或禁止(屏蔽);
(3) 设定所用中断的中断优先级;
(4) 若为外部中断,则应规定低电平还是负边沿的中断触发方式。
【例5.2】请写出为低电平触发的中断系统初始化程序。
解:(1)采用位操作指令
SETB EA&&&&&&&&& ;CPU开中断
SETB EXl&&&&&&&& ;开中断
SETB PXl&&&&&&&& ;令为高优先级
CLR& ITl&&&&&&&& ;令为电平触发
(2)采用字节型指令
MOV& IE,#84H&&& ;开中断
ORL& IP,#04H&&& ;令为高优先级
ANL& TCON,#0FBH& ;令为电平触发
显然,采用位操作指令进行中断系统初始化比较简单,因为用户不必记住各控制位在寄存器中的确切位置,而控制名称比较容易记忆。
中断管理与控制程序一般包含在主程序中,根据需要通过几条指令来实现,例如CPU开中断,可用指令“SETB EA”或“ORL IE,#80H”来实现,关中断可用指令“CLR EA”,或“ANL
IE,#7FH”来实现。
中断服务程序的一般格式如下:
ORG& ADDRESS
AJMP INTVS
INTVS :CLR&
EA&&&&&& ;关中断
PUSH PSW&&&&& ;保护现场
SETB& EA&&&&& ;开中断,允许CPU响应高级中断
CLR& EA&&&&&& ;关中断
POP& A&&&&&&& ;恢复现场
POP& PSW&&&&& ;
SETB& EA&&&&& ;开中断
RETI&&&&&&&&& ;中断返回&&&
其中ADDRESS为AT89S52单片机的中断入口地址。INTVS为与中断入口地址相应的中断服务程序首地址。
编写此程序应注意以下几点:
(1) 为了要跳到用户设计的中断服务程序,在相应入口地址安排一条跳转指令;
(2) 在中断服务程序的末尾,安排一条返回指令RETI;
(3) 由于在响应中断时,CPU只自动保护断点,所以CPU的其他现场(如寄存器A、B状态,状态字PSW,通用寄存器R0、R1等)的保护和恢复也必须由用户在中断服务程序中安排;
(4) 在此多级中断的中断服务程序中,保护现场之后的开中断(SETB EA)是为了允许有更高级中断打断此中断服务程序,恢复现场和保护现场之前的关中断(CLR EA)是为了保证在恢复和保护现场时,CPU不响应新的中断请求,从而使现场数据不受到破坏或者造成混乱;
(5) 当把程序中保护现场之后的&SETB EA&和恢复现场之前的&CLR EA&删除,就是一个单级中断服务程序。
【例5.3】使用一个按键控制图5.4所示的流水灯,每按一次按键流水灯的流动方向改变一次,要求使用中断技术处理按键。
解:如图5.4所示,按键接在P3.3,因此采用外部中断1,中断申请从输入路。每按一次按键,产生一次中断,流水灯流动方向便改变一次。当开关SA17闭合时,发出中断请求。中断服务程序的矢量地址为000BH。
图5.4& 方向可控流水灯
程序如下:
ORG& 0000H &&&&&&&&
;定义下一条指令的地址
START&&&&&&& ;转向主程序
ORG& & 0013H &&&&&&&
;安排外部中断1处理程序的第一条指令
SJMP:KEYS &&&&&&&&&&&&&&
;直接转移到中断处理程序
START:&& &&&&&&&&&&&&&&&&&&
;主程序起点
SP, #40H &&&&&& ;设置堆栈栈底指针
IT1 &&&&&&&&&设置外部中断1的中断方式为下降沿中断
SETB & EX1& &&&&&&&&&
;开放外部中断1
EA& &&&&&&&&&
;开放总中断
#01H &&&&&& ;#01H送累加器A
MOV & P2, A &&&&&&&&& ;累加器A中内容送P2口
R7, #0FFH &&&&&
L3:&& MOV &
R6, #0FFH &&&&&
DJNZ & R6, L2&&&&&&&&&
DJNZ& R7, L3&&
L4&&&&&&&& ;FX=0时转移到L4(FX是流水灯流动方向标志)
A&&&&&&&&&&&&累加器A中内容左移一位
L5&&&&&&&&&&
&& ;转移至L5
L4:&& RR&&&
A&&&&&&&&&&&& & ;累加器A中内容右移一位
L5:&& SJMP&
L1&&&&&&&&&&& & ;转移至L1
;=================================================
;按键中断程序
;入口:外部中断1
;功能:确认按键后改变方向标志FX的状态
KEYS:&&&&&&&&&&&&
;中断处理程序入口
#20H&&首先延时去抖
K1:&& MOV &&
KEY ,K2&& ;延时完成后再检测按键
& FX&&&&&&确认按键按下,改变方向标志位状态
K2:&& RETI&&&&&&&&&&&&
& ;中断结束返回
KEY& BIT&&&
& P3.3& &&&&& ;定义按键变量
FX && BIT&&&&
00H&&&&&&定义位变量,用于判断方向
END& &&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
小组负责人姓名
小组成员姓名
设计一流水灯电路。要求P1口接8个LED,在第12脚()和第13()脚各接一个按键,用中断方式控制,使8个LED闪烁。
INT0控制的中断要求:使P1口的8个LED做一个灯的左移右移3次。
INT1控制的中断要求:使P1口的8个LED做二个灯的左移右移3次。
中断的用法
为了提高单片机的工作效率,计算机中常采用中断技术处理一些问题。本训练通过制作一个高效率的流水灯来介绍如何使用中断技术处理按键。
一、目的要求
1.掌握单片机中中断系统的结构。
2.掌握中断源的控制方法。
3.掌握中断处理程序的组成以及中断向量的概念。
4.练习单片机系统简单故障的分析方法。
二、任务目标
使用一个按键控制流水灯,电路见本教材中第五章的图5.4。每按一次按键流水灯的流动方向改变一次,要求使用中断技术处理按键。
通过本技能训练的练习,掌握单片机中中断的处理方法。
三、工具器材
直流电源5V/500、 面包板、跳线、元器件、编程器等。
四、实训环节
1.组装用户板。&&&&&&&&&&&&&&&&&&&&&&&&&&&&
2.输入并调试程序,再将程序传送到用户板中。 40分
3.运行程序观察流水灯效果,按下按键开关观察显示变化。10分
4.修改程序,将延时程序段使用子程序实现。10分
5.分析。30分
A.如果89S51第21脚始终为高电位,会出现什么现象?
B.如果89S51第28脚状态正常(有高、低电位变化),但D8始终不亮,可能会有哪些原因?如何进一步检测?
C.如果按下按键开关SA17后,显示流动方向不发生变化,应当如何判断是CPU外部故障还是内部程序故障?
五、成绩评定
六、参考程序见例题5.3。
&版权所有&天津电子职业技术学院52单片机T2计数器的T2MOD怎么设置数值?_百度知道
52单片机T2计数器的T2MOD怎么设置数值?
我现在想要在52单片机上用T2设计一个计数器程序,但是一直没看懂设置计数器中断程序中怎么去设置T2MOD的数值?
T2MOD 只有0和1位有意义,前6位是保留未使用的。其中D0是DCEN是递减计数使能位,D1是T2OE是定时器2输出使能位
其他类似问题
计数器的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁第5章单片机的中断系统及仿真_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
第5章单片机的中断系统及仿真
单​片​机​教​程
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:454.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢模块5_单片机的中断系统_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
模块5_单片机的中断系统
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:740.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢52单片机T2用法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
52单片机T2用法
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢}

我要回帖

更多关于 dsp 中断优先级 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信