您的位置 首页 嵌入式

51单片机的中止,有些乱

几个与中断有关的寄存器:1TCON:中断标志寄存器,内容为TF1TR1TF0TR0IE1IT1IE0IT02SCON:串行口控制寄存器,内容为SM

几个与中止有关的寄存器:

1. TCON:中止标志寄存器,内容为
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
2. SCON:串行口操控寄存器,内容为
SM0 SM1 SM2 REN TB8 RB8 TI RI
TI:发送数据前应复位,发完一帧数据时,由硬件置位。
RI:接纳中止标志,与TI相似
中止呼应后,RI和TI不能主动铲除,须由软件来铲除。
IT0,1:外部中止的触发方法,=1时为下降沿有用
IE0,1:外部中止中止请求标志位
TF0,1:定时器溢出中止请求
3. IP:中止优先级操控寄存器
天然优先级的摆放次序(由高到低):外部中止0(INT0)、定时器T0、外部中止1(INT1)、定时器T1、串口中止。
寄存器内容(D7、D6未用):PT2 PS PT1 PX1 PT0 PX0
PT2:定时器T2(52系列单片机才有T2)的优先级操控位,=1时,设定T2为高优先级,=0时为低优先级;
PS:串口的优先级操控位;
PT1:定时器T1的优先级操控位;
PX1:外部中止1的优先级操控位;
PT0:定时器T0的;
PX0:外部中止0的。
假如一起有几个设定为高优先级的,则按照自解优先级的次序排队。
4. IE:中止答应操控寄存器
其内容:EA 空 ET2 ES ET1 EX1 ET0 EX0
EA: CPU中止的总答应位,=1时敞开中止,=0时屏蔽一切中止,即俗称的关中止;
ES: 串口中止答应位,=1时答应;
ET1:T1的
EX1:外部中止1的
ET0:T0的
EX0:外部中止0的
选用中止处理的程序结构:
main()
….
设置 中止答应操控寄器IE
设置 中止优先级寄存器IP
假如是外部中止源,还要设置中止请求的触发方法IT0或IT1(在TCON中),以决议选用电平触发仍是跳变触发
….
中止服务程序(对照前面的定时器处理程序就理解了。。。)
函数类型 函数名(参数表) [interrupt 中止号] [using N]
{
….
}
中止号能够取值0-31(C51编译器答应32个中止,0-4为51的规范中止源,0外部中止0,1是定时器0,2是外部中止1,3是
定时器1,4是串口中止)using后的N表明第N组寄存器(8051有4组寄存器)。以下是有关寄存器组的问题:
1. 运用using指定与主函数不同的寄存器组(主函数一般运用寄存器组0);
2. 中止优先级相同的中止处理函数(ISR)可用using指定相同的寄存器组(由于它们不会一起被调用),但优先级不
同的ISR有必要运用不同的寄存器组,在ISR中被调用的函数也要运用using指定与中止函数相同的寄存器组;
3. 假如不必using,C51默许挑选寄存器组0,这意味着程序将切换寄存器组,而要运用很多的PUSH和POP操作,指定寄
存器组的结果是节约了以上维护现场的操作,能够节约RAM空间及削减MCU的耗费;但这样简单引起过错,必定要注意
,特别是在程序中进行直接内存拜访时。
4. 能够这样设定:主程序运用bank 0,低中止优先级的一切中止运用bank 1,高中止优先级的一切中止运用bank 2。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/260511.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部