网站导航: 首页 > 设计参考 > 正文 文章搜索
MCS-51与中断有关的寄存器、中断入口地址及编号
 
文章编号:
100623155631
文章分类: 单片机 51系列
点 击:
...
关 键 词: 中断,寄存器,中断入口地址,中断编号
文章来源:
百合电子工作室(www.baiheee.com)收集整理
摘 要:
相信大家在编写中断程序总有查询手册找与中断有关寄存器,中断入口地址(编写汇程序器用常)和中断编号(编写C语言时常用),下面将与中断相关的寄存器和中断入口地址和编号列出,以方便大家快速查询

1、中断入口地址及编号

   MCS-51在每一个机器周期顺序检查每一个中断源,在机器周期的S6按优先级处理所有被激活的中断请求,此时,如果CPU没有正在处理更高或相同优先级的中断,或者现在的机器周期不是所执行指令的最后一个机器周期,或者CPU不是正在执行RETI指令或访问IE和IP的指令(因为按MCS-51中断系统的特性规定,在执行完这些指令之后,还要在继续执行一条指令,才会响应中断),CPU在下一个机器周期响应激活了的最高级中断请求。

  中断响应的主要内容就是由硬件自动生成一条长调用LCALL addr16指令,这里的addr16就是程序存储器中相应的中断区入口地址,这些中断源的服务程序入口地址如下:

  表1  5个中断源的服务程序入口地址
中断源 入口地址 中断号
外中断0 0003H 0
定时/计数器0 000BH 1
外中断1 0013H 2
定时/计数器1 001BH 3
串行口中断 0023H 4
定时/计数器T2 002BH 5

   生成LCALL指令后,CPU紧跟着便执行之.首先将PC(程序计数器)的内容压入堆栈保护断点,然后把中断入口地址赋予PC,CPU便按新的PC地址(即中断服务程序入口地址)执行程序。

  值得一提的是,各中断区只有8个单元,一般情况下(除非中断程序非常简单),都不可能安装下一个完整的中断服务程序。因此,通常是在这些入口地址区放置一条无条件转移指令,使程序按转移的实际地址去执行真正的中断服务程序。

  对于汇编,中断函数的一般形式为:

 
  1. ORG 中断入口地址       
  2.       
  3. AJMP 中断服务程序地址       
  4.       
  5. 中断服务程序地址:       
  6.       
  7. ......     

 

  对于C语言,中断函数的一般形式为:

 
  1. void FunctionName(void) interrupt 中断号 //其中“中断号”可查表1   
  2.   
  3. {    
  4.   
  5. .........    
  6.   
  7. }   

2、与中断有关的寄存器

(1) 定时器控制寄存器TCON

  表2  TCON寄存器结构
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
  • IE1:外部边沿触发中断1请求标志,其功能和操作类似于TF0。
  • IT1:外部中断1类型控制位,通过软件设置或清除,用于控制外中断的触发信号类型。IT1=1,边沿触发。IT=0是电平触发。
  • IE0:外部边沿触发中断0请求标志,其功能和操作类似于IE1。
  • IT0:外部中断0类型控制位,通过软件设置或清除,用于控制外中断的触发信号类型。其功能和操作类似于IE1。

(2) 中断允许寄存器IE

  表3  IE寄存器结构
D7 D6 D5 D4 D3 D2 D1 D0
EA - - ES ET1 EX1 ET0 EX0
  • EA:中断总控制位,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中断控制位。ET1=1,允许T0中断,ET1=0,禁止T0中断。
  • EX0:外中断0中断控制位,EX1=1,允许外中断0中断,EX1=0,禁止外中断0中断。

(3) 中断优选级控制寄存器IP

  表4  IP中断优先级控制寄存器结构
D7 D6 D5 D4 D3 D2 D1 D0
- - - PS PT1 Px1 PT0 PX0
  • PS:串行口中断口优先级控制位,PS=1,串行口中断声明为高优先级中断,PS=0,串行口定义为低优先级中断。
  • PT1:定时器1优先级控制位。PT1=1,声明定时器1为高优先级中断,PT1=0定义定时器1为低优先级中断。
  • PX1:外中断1优先级控制位。PT1=1,声明外中断1为高优先级中断,PX1=0定义外中断1为低优先级中断。
  • PT0:定时器0优先级控制位。PT1=1,声明定时器0为高优先级中断,PT1=0定义定时器0为低优先级中断。
  • PX0:外中断0优先级控制位。PT1=1,声明外中断0为高优先级中断,PX1=0定义外中断0为低优先级中断。

(4)串行通信控制寄存器SCON

  它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:

表5  串行通信控制寄存器SCON
D7 D6 D5 D4 D3 D2 D1 D0
SM0 SM1 SM2 REN TB8 RB8 TI RI
  • TI:发送中断标志位。
    方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。
  • RI:接收中断标志位。
    接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。

(5)T2状态控制寄存器T2CON

表6  T2定时器控制寄存器T2CON

B7

B6

B5

B4

B3

B2

B1

B0

TF2

EXF2

RCLK

TCLK

EXEN2

TR2

C/T2

CP/RL2

  • TF2:T2溢出中断标志。TF2必须由用户程序清“0”。当T2作为串口波特率发生器时,TF2不会被置“1”。
  • EXF2:定时器T2外部中断标志。EXEN2为1时,当T2EX(P1.1)发生负跳变时置1中断标志DXF2,EXF2必须由用户程序清“0”。
  • EXEN2:T2的外部中断充许标志。
 
相关文章:

 
最新开源项目
 
 
  查看更多...  
 
本站相关产品   淘宝网店
 




 
  查看更多...  

 

本站程序由百合电子工作室开发和维护
Copyright @ baihe electric studio
渝ICP备09006681号-4