MCS-51与中断有关的寄存器、中断入口地址及编号

发布者:CreativeDreamer最新更新时间:2018-11-23 来源: eefocus关键字:MCS-51  中断  寄存器  中断入口地址 手机看文章 扫描二维码
随时随地手机看文章

 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的外部中断充许标志


关键字:MCS-51  中断  寄存器  中断入口地址 引用地址:MCS-51与中断有关的寄存器、中断入口地址及编号

上一篇:8051/89C51的21个专用寄存器介绍
下一篇:超详细!51单片机寄存器功能一览表

推荐阅读最新更新时间:2024-03-16 16:18

stm8s中UART的用法(四种UART中断)
一、应用实例 1.1系统功能 使用STM8的USART进行自发自收(将发送引脚RXD短接到接收引脚TXD),发出数据:0,1,2。。。数据,能接收到自己发出的数据:0,1,2。。。使用LED作出简单指示! 1.2硬件设计 LED控制电路原理图 UART电路原理图 1.2软件设计 /********************************************************************* 目标系统: 基于STM8单片机 应用软件: *********************************************************************/
[单片机]
stm8s中UART的用法(四种UART<font color='red'>中断</font>)
飞思卡尔中断的使用
对于飞思卡尔codewarrior的中断使用,一般有3种方法: 1.把#pragma TRAP_PROC放在中断程序前面,并把中断向量表放到*.prm。 例如: #pragma TRAP_PROC void PIT1(void) { //your code } 2.或者使用关键词interrupt,并把向量表加入*.prm。 例如: interrupt void intPIT1(void) { //your code } 向量表的首地址放入*.prm 例如: //VECTOR ADDRESS 0xFFEA Int_ico2 //输入捕捉中断 pt2,pt3
[单片机]
LPC2378上用ST16C2550扩展串口使用GPIO中断
LPC2378外部中断管脚P2.10~P2.13可用为外部中断,也可以用为GPIO中断。 在LPC2378上用ST16C2550芯片扩展串口时,两种中断都可以用,但看LPC2378文档时,外部中断那块讲的比较晦涩,GPIO中断倒是很明白,我就用GPIO中断去操作,非常好,中断收发通信成功。代码如下,供大家参考: /*********************中断处理函数************************/ void ST16_Handler (void) __irq { BYTE status; IENABLE; /* handles nested interrupt */
[单片机]
STM32F103x RCC寄存器配置
rcc reset and clock control 复位及时钟控制 主要是设置时钟树中的内容,如下图所示: 具体在RCC_Configuration函数中的体现。 第一步:系统时钟选择哪个,HSE、HSI还是PLLCLK。 RCC_HSEConfig(RCC_HSE_ON); //使用HSE 如果HSE时钟已经稳定,硬件会将RCC_CR的HSERDY位置1。 第二步:判断HSE时钟是否稳定 if (RCC_WaitForHSEStartUp() == SUCCESS) 第三步:使能FLASH的预取址缓冲区,并设置FLASH的等待状态。(具体功能见FLASH部分)
[单片机]
STM32F103x RCC<font color='red'>寄存器</font>配置
DS26303短程线路接口单元与IDT82V2048的比较
概述   本文比较了DS26303和IDT82V2048的不同,特别阐述了如何在已有的IDT82V2048应用中使用DS26303。DS26303是一个单3.3V供电的8通道E1/T1/J1短程线路接口单元(LIU)。不需要更改软件就可以支持IDT82V2048的功能,并提供附加的特性。不需要改变PCB,DS26303就可以用在现有的IDT82V2048应用中,仅仅需要根据应用改变外围元器件值。   特性的区别分为三个不同部分:表1为DS26303具备而IDT82V2048不具备的一些特性;表2为IDT82V2048具备而DS26303不具备的一些特性。表3为DS26303和IDT82V2048共有但是在两个器件上实现不同
[应用]
利用MCS-51单片机数据采集器的实时在线环境监测系统设计
1 引言 基于GPRS和MCS-51单片机的数据采集器是一种实时在线环境监测系统,它采用分组无线业务GPRS将实时在线检测到的环境状况通过Internet传到环保部门监测信息处理中心,监测信息实时处理软件通过对采集来的数据进行整理分析,使环保机关足不出户即能掌握辖区监测点和污染源的监测指标信息,从而使环保机关的管理在机制上实现从人工化向信息化的转变,克服了过去对各项环境指标的检测主要靠环保人员到现场手工取样,带回实验室分析后再作出结论的周期长、效率低的问题;还可以提高对环境的监测频次,克服过去由于监测频次低,总结出来的环境质量和污染源监测信息可信度较低的问题。 2 监测系统的工作过程 整个系统的具体工作过程见图1。数据采集
[单片机]
利用<font color='red'>MCS-51</font>单片机数据采集器的实时在线环境监测系统设计
STM8S学习笔记-时钟控制2
今天把时钟系统的最后部分,时钟安全系统(CSS)和时钟输出功能(CCO),做一个简答的说明。 1.时钟安全系统(以下简称CSS) CSS功能很简单,就是监控HSE是否实效(如果系统使用HSE作为主时钟源),而自动切换到HSI/8作为主时钟源,从而避免系统停止运行。 如果使能CSSIEN,当主时钟失效,切换到HSI/8后可产生一个中断,这时可以改变HSI的分频,从而系统继续正常工作。 如果系统主时钟源不是HSE,则不用关心CSS。 2.时钟输出功能(以下简称CCO) CCO是MCU向外提供系统时钟的一种机制。可选择六种时钟源之一作为时钟输出信号源。此功能也可以用于测试系统时钟是否正常。 注意:配置时钟输出,需配置
[单片机]
mcs-51单片机P1端口的结构及工作原理
P1口的结构最简单,用途也单一,仅作为数据输入/输出端口使用。输出的信息有锁存,输入有读引脚和读锁存器之分。P1端口的一位结构见下图1. 由图1可见,P1端口与P0端口的主要差别在于,P1端口用内部上拉电阻R代替了P0端口的场效应管T1,并且输出的信息仅来自内部总线。由内部总线输出的数据经锁存器反相和场效应管反相后,锁存在端口线上,所以,P1端口是具有输出锁存的静态口。 由上图可见,要正确地从引脚上读入外部信息,必须先使场效应管关断,以便由外部输入的信息确定引脚的状态。为此,在作引脚读入前,必须先对该端口写入l。具有这种操作特点的输入/输出端口,称为准双向I/O口。8051单片机的P1、P2、P3都是准双向口。P0端口由
[单片机]
<font color='red'>mcs-51</font>单片机P1端口的结构及工作原理
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved