您的位置 首页 嵌入式

MCS-51单片机的中止体系(1)

在CPU与外设交换信息时,存在着一个快速的CPU与慢速的外设之间的矛盾。为解决这个问题,发展了中断的概念。单片机在某一时刻只能处

在CPU 与外设交流信息时,存在着一个快速的 CPU 与慢速的外设之间的对立。为处理这个问题,开展了中止的概念。
单片机在某一时间只能处理一个使命,当多个使命一起要求单片机处理时,这一要求应该怎样完结呢?经过中止能够完结多个使命的资源共享。
中止现象在现实生活中也会常常遇到,例如,你在看书——手机响了——你在书上作个记号——你接通电话和对方谈天——说话完毕——从书上的记号处持续看书。这便是一个中止进程。经过中止,你一个人在一特定的时间,一起完结了看书和打电话两件作业。用计算机言语来描绘,所谓的中止便是,当 CPU 正在处理某项业务的时分,假如外界或许内部发生了紧急事件,要求 CPU 暂停正在处理作业而去处理这个紧急事件,待处理完后,再回到本来中止的当地,持续履行本来被中止的程序,这个进程称作中止。
从中止的界说咱们能够看到中止应具有中止源、中止呼应、中止回来这样三个要素。中止源宣布中止请求,单片机对中止请求进行呼应,当中止呼应完结后应进行中止回来,回来被中止的当地持续履行本来被中止的程序。

MCS-51单片机中止体系

MCS-51单片机的中止源

MCS-51单片机的中止源共有两类,它们分别是:外部中止和内部中止
1. 外部中止源
外部中止0(#INT0):来自P3.2引脚,收集到低电平或许下降沿时,发生中止请求。
外部中止1(#INT1):来自#P3.3引脚,收集到低电平或许下降沿时,发生中止请求。
2. 内部中止源
守时器∕计数器0(T0):守时功用时,计数脉冲来自片内;计数功用时,计数脉冲来自片外P3.4引脚。发生溢出时,发生中止请求。
守时器∕计数器1(T1):守时功用时,计数脉冲来自片内;计数功用时,计数脉冲来自片外P3.5引脚。发生溢出时,发生中止请求。
串行口:为完结串行数据传送而设置。单片机完结承受或发送一组数据时,发生中止请求。

中止操控的专用寄存器

MCS-51单片机为用户供给了四个专用寄存器,来操控单片机的中止体系。

1. 守时器操控寄存器(TCON)
该寄存器用于保存外部中止请求以及守时器的计数溢出。进行字节操作时,寄存器地址为88H。按位操作时,各位的地址为88H~8FH。寄存器的内容及位地址表明如下:

位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H
位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0


IT0 和IT1——外部中止请求触发方法操控位
IT0 (IT1)=1 脉冲触发方法,下降沿有用
IT0 (IT1)=0 电平触发方法,低电平有用
IE0和IE1——外中止请求标志位
当CPU采样到#INT0(或#INT1)端呈现有用中止请求时,IE0(IE1)位由硬件置“ 1”。当中止呼应完结转向中止服务程序时,由硬件把IE (或IE )清零。
TR0 和TR1——守时器运转操控位
TR0 (TR1 )=0 守时器/计数器不作业
TR0 (TR1 )=1 守时器/计数器开端作业
TF0和TF1——计数溢出标志位
当计数器发生计数溢出时,相应的溢出标志位由硬件置“1”。当转向中止服务时,再由硬件主动清“0”。计数溢出标志位的运用有两种状况:选用中止方法时,作中止请求标志位来运用;选用查询方法时,作查询状况位来运用。

2. 串行口操控寄存器(SCON)
进行字节操作时,寄存器地址为98H。按位操作时,各位的地址为98H~9FH。寄存器的内容及位地址表明如下:

位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
位符号 SM0 SM1 SM2 REN TB8 RB8 TI RI



其间与中止有关的操控位共2位:
TI——串行口发送中止请求标志位
当发送完一帧串行数据后,由硬件置“1”;在转向中止服务程序后,用软件清“0”。
RI——串行口接纳中止请求标志位
当接纳完一帧串行数据后,由硬件置“1”;在转向中止服务程序后,用软件清“0”。串行中止请求由TI和RI的逻辑或得到。便是说,无论是发送标志仍是接纳标志,都会发生串行中止请求。

3. 中止答应操控寄存器(IE)
进行字节操作时,寄存器地址为0A8H。按位操作时,各位的地址为0A8H~0AFH。寄存器的内容及位地址表明如下:

位地址 0AFH 0AEH 0ADH 0ACH 0ABH 0AAH 0A9H 0A8H
位符号 EA / / ES ET1 EX1 ET0 EX0

其间与中止有关的操控位共6位:
EA——中止答应总操控位
EA=0 中止总制止,制止一切中止
EA=1 中止总答应,总答应后中止的制止或答应由各中止源的中止答应操控位进行设置。
EX0和EX1——外部中止答应操控位
EX0(EX1)=0 制止外部中止
EX0(EX1)=1 答应外部中止
ET0和ET1——守时器/计数器中止答应操控位
ET0(ET1)=0 制止守时器/计数器中止
ET0(ET1)=0 答应守时器/计数器中止
ES——串行中止答应操控位
ES=0 制止串行中止
ES=1 答应串行中止
可见,MCS-51单片机经过中止答应操控寄存器对中止的答应(敞开)实施两级操控。即以EA位作为总操控位,以各中止源的中止答应位作为分操控位。当总操控位为制止时,封闭整个中止体系,不论分操控为状况怎么,整个中止体系为制止状况;当总操控位为答应时,敞开中止体系,这时才干由各分操控位设置各自中止的答应与制止。
MCS-51单片机复位后(IE)=00H,因而中止体系处于制止状况。单片机在中止呼应后不会主动封闭中止。因而在转中止服务程序后,应根据需求运用有关指令制止中止,即以软件方法封闭中止。

4. 中止优先级操控寄存器(IP)
MCS-51单片机的中止优先级操控比较简单,由于体系只界说了高、低2个优先级。高优先级用“1”表明,低优先级用“0”表明。各中止源的优先级由中止优先级寄存器(IP)进行设定。IP寄存器地址0B8H,位地址为0BFH~0B8H。寄存器的内容及位地址表明如下:

位地址 0BFH 0BEH 0BDH 0BCH 0BBH 0BAH 0B9H 0B8H
位符号 / / / PS PT1 PX1 PT0 PX0

其间:
PX0——外部中止0优先级设定位;
PT0——守时中止0优先级设定位;
PX1——外部中止1优先级设定位;
PT1——守时中止1优先级设定位;
PS——串行中止优先级设定位。
以上各位设置为“0”时,则相应的中止源为低优先级;设置为“1”时,则相应的中止源为高优先级。
优先级的操控原则是:
低优先级中止请求不能打断高优先级的中止服务;但高优先级中止请求能够打断低优先级的中止服务,然后完结中止嵌套。
假如一个中止请求已被呼应,则同级的其它中止服务将被制止。即同级不能嵌套。
假如同级的多个中止一起呈现,则按CPU查询次第确认哪个中止请求被呼应。其查询次第为:外部中止0→守时中止→外部中止→守时中止→串行中止。
中止优先级操控,除了中止优先级操控寄存器之外,还有两个不行寻址的优先级状况触发器。其间一个用于指示某一高优先级中止正在进行服务,然后屏蔽其它高优先级中止;另一个用于指示某一低优先级中止正在进行服务,然后屏蔽其它低优先级中止,但不能屏蔽高优先级的中止。此外,关于同级的多个中止请求查询的次第组织,也是经过专门的内部逻辑完结的。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部