微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MCS-51定时/计数器

MCS-51定时/计数器

时间:11-13 来源:互联网 点击:

[2].中断处理流程

CPU响应中断请求后,就立即转入执行中断服务程序。不同的中断源、不同的中断要求可能有不同的中断处理方法,但它们的处理流程一般都如下所述。

现场保护和现场恢复

中断是在执行其它任务的过程中转去执行临时的任务,为了在执行完中断服务程序后,回头执行原先的程序时,知道程序原来在何处打断的,各有关寄存器的内容如何,就必须在转入执行中断服务程序前,将这些内容和状态进行备份——即保护现场。就象文章开头举的例子,在看书时,电话玲响需传去接电话时,必须在书本上做个记号,以便在接完电话后回来看书时,知道从哪些内容继续往下看。计算机的中断处理方法也如此,中断开始前需将个有关寄存器的内容压入堆栈进行保存,以便在恢复原来程序时使用。

中断服务程序完成后,继续执行原先的程序,就需把保存的现场内容从堆栈中弹出,恢复积存器和存储单元的原有内容,这就是现场恢复。

如果在执行中断服务时不是按上述方法进行现场保护和恢复现场,就会是程序运行紊乱,程序跑飞,自然使单片机不能正常工作。

中断打开和中断关闭

在中断处理进行过程中,可能又有新的中断请求到来,这里规定,现场保护和现场恢复的操作是不允许打扰的,否则保护和恢复的过程就可能使数据出错,为此在进行现场保护和现场恢复的过程中,必须关闭总中断,屏蔽其它所有的中断,待这个操作完成后再打开总中断,以便实现中断嵌套。

中断服务程序

既然有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容,一般以子程序的形式出现,所有的中断都要转去执行中断服务程序,进行中断服务。

中断返回

执行完中断服务程序后,必然要返回,中断返回就是被程序运行从中断服务程序转回到原工作程序上来。在MCS-51单片机中,中断返回是通过一条专门的指令实现的,自然这条指令是中断服务程序的最后一条指令。

[3].MCS-51的中断源

8051有5个中断源,它们是两个外中断INT0(P3.2)和INT1(P3.3)、两个片内定时/计数器溢出中断TF0和TF1,一个是片内串行口中断TI或RI,这几个中断源由TCON和SCON两个特殊功能寄存器进行控制。

在前一节,我们已对TCON的控制位进行了说明,现在继续对它的中断控制有关的位进行谈论。TCON寄存器的结构如下:

表1TCON寄存器结构
TCOND7D6D5D4D3D2D1D0
TF1TR1TF0TR0IE1IT1IE0IT0
位地址8FH8EH8DH8CH8BH8AH89H88H
·IE1:外部边沿触发中断1请求标志,其功能和操作类似于TF0。

·IT1:外部中断1类型控制位,通过软件设置或清楚,用于控制外中断的触发信号类型。IT1=1,边沿触发。IT=0是电平触发。

·IE0:外部边沿触发中断0请求标志,其功能和操作类似于IE1。

·IT0:外部中断0类型控制位,通过软件设置或清楚,用于控制外中断的触发信号类型。其功能和操作类似于IE1。

SCON是串行口控制寄存器,字节地址为98H,SCON的低二位是串行口的发送和接收中断标志,其格式如下:

表2SCON寄存器结构
SCOND7D6D5D4D3D2D1D0
------TIRI
位地址     99H98H
·TI:MCS-51串行口的发送中断标志,在串行口以方式0发送时,每当发送完8位数据,由硬件置位。如果以方式1、方式2或方式3发送时,在发送停止位的开始时TI被置1,TI=1表示串行发送器正向CPU发出中断请求,向串行口的数据缓冲器SBUF写入一个数据后就立即启动发送器继续发送。但是CPU响应中断请求后,转向执行中断服务程序时,并不清零TI,TI必须由用户的中断服务程序清“0”,即中断服务程序必须有“CLR TI”或“ANL SCON, #0FDH”等指令来清零TI。

·RI:串行口接收中断标志.若串行口接收器允许接收,并以方式0工作,每当接收到8位数据时,RI被置1,若以方式1、2、3方式工作,当接收到半个停止位时,TI被置1,当串行口一方式2或3方式工作,且当SM2=1时,仅当接收到第9位数据RB8为1后,同时还要在接收到半个停止位时,RI被置1。RI为1表示串行口接收器正向CPU申请中断。同样RI标志栩栩如生由用户的软件清“0”。

[4].中断的控制

对于中断控制,在上一节中我们已经对TCON和SCON进行了分析,其实它们两个寄存器也是中断的控制寄存器,负责对中断的部分功能进行控制。我们这里谈论的是另外两个控制寄存器IE和IP。

MCS-51的对中断的开放和屏蔽是由中断允许寄存器IE控制来实现的,IE的结构格式如下。

表3IE寄存器结构
IED7D6D5D4D3D2D1D0
EA--ESET1EX1ET0EX0
位地址AFH ACHABHAAHA9HA8H
下面我们对IE寄存器的各控制位进行介绍:

·EA:中断总控制位,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top