MCS—51单片机中断系统的扩展
MCS—51单片机中断系统的扩展 第15卷第4期张家口职业技术学院
No.4"7o1.15
.
Jo~'nalofZhangjiakouVocationalCollegeofTechnology
2002年11月
Novcmbcr,2002
l】断系统硇扩展 MCS一51单栅【
周芝田
(张家13职业技术学院电气工程系河北张家13075000) 摘要:在McS-51单片机为用户提供的有限个中断源的基础上,实现多个 外部中断源的扩展
关键词:单片机;中断;外部中断扩展
中图分类号:TP一368.1
1.引言
中断系统在计算机应用系统中起着十分重要的作用.拥有功能强大的中断系统,可 以使计算机对外界事件进行实时处理的能力得以大大提高.
随着计算机技术的发展,利用中断技术不仅解决了快速CPU与慢速外设之间数据 传送的问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
,还具有以下优点:
使用中断技术,实现分时操作.即允许多个外设与CPU同时工作,极大地提高了计 算机的利用率.
使用中断技术,实现实时处理.即使CPU能够及时处理测控系统中的随机信息,提 高了计算机处理问题的实时性和灵活性.
使用中断技术,使计算机具有处理设备故障,运算溢出,电源故障等突发事件的能 力,提高计算机系统的可靠性.
Mcs一51单片机的中断系统提供了五个中断源,两个中断优先级,可实现两级中断 服务程序的嵌套.它是八位单片机中功能较强的一类.
2.中断系统的扩展
Mcs一51单片机为用户仅提供了两个外部中断请求输入端I-"N~0和雨丽,其对应的
中断入13J~tl:为0003H和0013H.在实际应用中,如果外部断源超过两个,就要扩展系统
的外部中断请求输入端.
2.1利用定I~'1-数器扩展外部中断
Mcs一51单片机内有两个十六位定日什数器TO和T1,利用其溢出中断标志TF0 和TFI作为外部中断请求标志.具体操作如下:将T0(或T1)选择为计数器工作方式.
当外部计数使TO(或T1)输入引脚(P3.4或P3.5)有—个负跳变时,计数器就加1.当TO
(或T1)的加1计数器计满时,就会产生溢出中断,使程序转向相应的中断入13地址 收稿日期:2002—1O一2o
一
41—
(TO对应于000BH,T1对应于001BH).从而实现扩展外部中断的目的. 利用定B拊数器T1溢出中断作为外部中断,其程序如下:
MOVTMOD,#60H;设置定晰十数器T1为工作方式2
MoVTL1.#0FFH;
MOVTH1,#0FFH;设置计数器初值
MOVIE,#88H;T1允计中断,CPU开放中断
SETBTR1;启动T1计数
:
PRG001BH
LJMPEXINT
:
EXINT::1对应的中断服务程序
:
由于单片机片内仅有两个定B拊数器,利用这种方法扩展处部中断的能力是限的. 2.2采用中断和查询相结合的方法扩展外部中断
当系统有多个外部中断源时,可按其轻重缓急进行中断优先权排队.采用或门电路 接入单片机外部中断输入端(一般是丽).当这些外部中断源有一个及一个以上产生
中断请求时,则在.i引脚上产生一个有效信号,向CPU发出中断请求.当中断请求被 响应后,便使程序转向相应的中断入I::1J~tk001BH.为了能识别在-i丽引脚上是哪个中
断源发出的有效申请,通常由软件按预先设计的优先绷I颐序查询的来源.其相应的电路
和程序如下:
lR2
lR1
IR()
图1多个外部中断源的扩展
当外部中断IR0,IR1,IR2中有—个为高电平时有效.中断源优先级顺序依此 为:IR0,IR1,IR2.
其程序为:
oRG0000H
LJMPMAIN
oRGo013H
LJMPEXINT;转外部中断1中断服务程序.
:
EXINT:PUSHPSW
——
42——
l
PUSHA
JBP1.0,ExINT0
JBP1.1,ExINT1
JBP1.2.E?NT2
DoNE:POPA
PoPPSW
RETI
:
:
EXINT0::
AJMPDoNE
EXINT1::
;保护现场
;若P1.0为1,则转IR0中断服务程序. ;若P1.0为1,则转IR1中断服务程序. ;若P1.0为1,则转IR2中断服务程序. ;恢复现场
;中断返回
;IR0的中断服务程序
;IR1的中l断月艮务程序
:
AJMPDONE
EXINT2::;IR1的中断服务程序 AJMPDONE
此方法原则上可处理任意多个外部中断源. 2.3利用编码器扩展外部中断源 当外部中断源数目较多时,采用软件查询的方法进行优先权处理,由于该算法是按
优先权由高到低的顺序,由软件逐个查询,必然会产生查询时间与响应时间之间的
矛盾.
解决这一矛盾的方法是引入硬件电路,即以硬件代替软件.下面介绍由优先编码器
构成
的中断扩展电路.
T4148优先编码器的封装为DIP16.其中为输入信号端,低电平有效: s为控制端,低电平有效:为编码输出端,低电平有效;?是用于扩展编码 器功能的输出端.其真值
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
见表一.
表1T4148的真值表
输入输出一—一—一一一一——一一—一
SI.1f11s14I:{12IjI【lY2Y,Y【lYYEx
lXXXXXXXXll1ll
I)11111111111I)1
00XXXXXXX0I)I)l0
011)XXXXXX1)1)11()
I)ll0XXXXXI1lI)l0
0111I)XXXXI)111I)
I)lllI)XXXlI)I)lI)
011lll0XXlO1l0
0llllll()XllI)l0
()lll1l11()llll0
—
43—
利用其i作为中断源的输入,作为中断申请信号.
由表一可见,当io--i中有任意—个为低电平的,均为低电平就发出中断请求.由 图2可见,_?与MCS一51单片机的外部中断雨可相连,当八个中断源有有效的中断请
求且被响应后,均使CPU转入0013H.那么如何使程序转入相应的中断服务程序入口地
址呢?我们可以借助中断矢量概念,在片内RAM中某一地址单元direct中的内容
作为中
断服务程序的页地址(假设为10H).的地址与中断矢量一起构成十六位中断服务
程序
入口地址.见表二.
表2中断矢量表
-I--l-久镰入l?也.hf:t}I}{.t}I'};I}tP}I'}}I}II
lR_llI】l】lI)I】IItII】llllI】l1lJ【ll1
l】之fl2I】IIlI)2IItIllIJlI】I】lll】l】
ll之l【ll】lI)lIIIllllI】ll【】I】【】I】
1RIflI】l11I)rlI】l1I】11llI】lll】I】
l】王:{1?l{11?1I1l1l1I1l1l1?
ll2All?lI1AIlIIlllll1l1lllllI Il王lCllIIII)(,I】I1llllI】ll()lll】
l】之lI卜【lll1lI卜IIIIlllllI】lllll】
图2采用优先编码器的外部中断源扩展电路 调整与P1的连线方式,可以改变中断矢量.当中断矢量地址表确定之后,可
由软件完成相应中断服务程序十六位入口地址的构成.其程序如下:
oRG0000H
UMPMAIN
oRG0013H
UMPEXINT
一
44—
MAIN:
EXINT:PUSHA
PUSHPSW
PUSHSP
MoVA.P1
PUSHA
PUSHdirect
RET
;保护现场
;读取中断矢量
保存页地址
:
通过上面的引导程序,可使程序计数器PC获得某一中断源对应的入口地址,从而执
行相应的中断服务程序.
此方法采用不同的优先编码器,可以扩展不同数目的外部中断源.由于当外部中断 源有其中一个中断请求被响应,则其他的中断请求不能被单片机响应.因此该方法不能
实现中断嵌套.
参考文献
1.周明德编着.微型汁算机硬件软件及其应用(修订版).北京:清华大学出版社1990 2.阎石主编.数安电子电路.北京:中央广播电视大学出版社1993
3.刘国荣主编.单片微型汁算机技术.北京:机械工业出版社2000
ExpansionofInterrupt-QrientedSystemin MCS-51SimpleChipMicro-Computer ZHoUZhi-tian
(ElectricalEngineeringDepartmentofZhangjiakouVocational
CollegeofTechnology,Zhangjiakou,Hebei075000) Abstract:Expansionofmoreextemalinterrupt--sourcesisrealizedbasedontheMCS—— 51simplechipmicro—computerwhichonlyprovidesuserswithHmitedinterruptsources.
KeyWords:simplechipnficro——computer;interrupt;expansionofextemalinterrupt
——
45——