码迷,mamicode.com
首页 > 其他好文 > 详细

51单片机中断系统

时间:2016-12-18 17:31:53      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:order   允许   堆栈   标志位   技术分享   高电平   第一条   span   val   

51中断系统

1.什么是中断

中断是CPU在执行程序是不需要管中断源的状态,当中断源满足中断触发条件时CPU再去进行终端处理

2.中断源

80C51共五个中断源分别是两个外部中断源:INT0、INT1,两个定时中断源T0、T1,一个串行口中断源

每个中断源对应着一个中断入口地址

中断源

入口地址

外部中断源INT0

0003H

定时器T0

000BH

外部中断源INT1

0013H

定时器T1

001BH

串行口中断

0023H

 

3.中断控制

3.1.     定时控制寄存器TCON

控制对象

T1

T0

INT1

INT0

位序

D7

D6

D5

D4

D3

D2

D1

D0

位名

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

TF 定时器溢出标志

TR 定时器运行控制位

IE 中断请求标志

IT 中断触发方式:1时下降沿触发,0时低电平触发

3.2.     串行控制寄存器SCON

D0 位名为RI 发送中断标志

D1位名是TI 接受中断标志

接收或发送完一桢数据时相应的D0或D1置1,且需要在中断服务程序中进行复位

3.3.     中断允许控制寄存器IE

位序

D7

D6

D5

D4

D3

D2

D1

D0

位名

EA

/

/

ES

ET1

EX1

ET0

EX0

EA   cpu中断总允许位

ES 串行口中断允许位

ET1定时器1中断允许位

EX1外部中断1允许位

3.4.     中断优先级控制寄存器

位序

D7

D6

D5

D4

D3

D2

D1

D0

位名

/

/

/

PS

PT1

PX1

PT0

PX0

PS 串行口中断优先级

PT 定时器中断优先级

PX外部中断优先级

值为1则为高优先级

值为0则为低优先级

4.中断处理过程

4.1.     采样

中断采样发生在每个机器中期的S5P2期间,对INT0 INT1引脚进行检测,根据检测结果设置IE0、IE1

若为下降沿有效的中断则其高电平和低电平的时间都不得小于一个机器周期

若为电平触发则有效信号不小于一个机器周期

4.2.     查询

在每个机器周期的S6期间按先后顺序对各个中断标志位进行查询,若有中断则按中断优先级在下一个机器周期进行中断处理(装入中断矢量),

中断查询顺序:IE0->TF0->IE1->TF1->RI和TI

4.3.     响应

4.3.1     响应条件

中断源发出中断请求,CPU开中断EA=1

相应的中断使能位开启ES,ET1ET0,EX1,EX0

无同级或更高级的终端服务,当前机器周期不是当前指令的最后一个周期

4.3.2.        响应

包括两个部分:断点保护和转向中断程序服务入口。

断点保护:把断点位置的PC压入堆栈

把中断矢量赋给PC

全部由硬件自动完成

4.3.3.        处理

处理过程如图:

 技术分享

4.3.4.        响应时间

从中断请求标志位置位到CPU执行终端服务程序的第一条指令所持续的时间

4.4.     返回

中断返回指令是RETI 

用在中断子程序结束时,不能和RET混淆

5.中断请求的撤销

5.1.      定时计数器CPU自动撤销,不需要再处理

5.2.      串行口中断请求需要再中断程序服务里面撤销:如CLR TI    CLR RI

5.3.      外部中断请求的撤销

  脉冲触发的中断不必考虑

  电平出发的中断则需要使用外部硬件撤销请求信号

51单片机中断系统

标签:order   允许   堆栈   标志位   技术分享   高电平   第一条   span   val   

原文地址:http://www.cnblogs.com/scarecrowlxb/p/6194634.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!