水电电工知识
电工文库|单片机中断源系统的设计
2016-03-09  浏览:47
水电之家讯:在AT89S52单片机中,只有两个外部中断请求输入端INT0和INT1。而实际应用系统中往往会出现两个以上的外部中断源,因此必须对外中断源进行扩展。其方法主要有:用定时器/计数器T0、T1扩展;采用中断和查询相结合的方法扩展;用串行口的中断扩展;用优先权编码器扩展等方法。这里重点介绍前两种方法。

一、用定时器/计数器作为中断源

AT89S52单片机的两个定时器/计数器T0、T1可工作在计数方式,计数初值一般设定为满量程(即定时器的最大技术值),则它们的计数输入端P3.4或P3.5引脚上发生负跳变时,T0或T1计数器就加l,产生溢出中断。利用此特性,可以把P3.4、P3.5作为外部中断请求输入线,而计数器的溢出中断作为外部中断请求标志。

设T0为方式2(自动装入常数)外部计数方式,时间常数为0FFH,允许中断,CPU开放中断。其初始化程序为:

ORG 0000H ;跳到初始化程序

MOV TMOD, #06H ; T0为方式2,计数器方式工作

MOV TL0, #0FFH ; 计数初值为满量程

MOV TH0, #0FFH; 计数初值为满量程

SETB TR0; 置TR0为1,启动T0

MOV IE, #82H; 置中断允许,IE中的EA位为1,ET0位为1

当接在P3.4引脚上的外部中断请求输入线发生负跳变时,TL0加1溢出,TF0被置1,向CPU发出中断请求。同时TH0的内容自动送入TL0,使TL0恢复初始值0FFH。这样,P3.4引脚上的每次负跳变都将TF0置位1,向CPU发出中断请求,CPU响应中断请求时,程序计数器PC转到000BH执行外部中断服务程序,此时P3.4相当于边沿触发的外中断源输入线。同理,也可以把P3.5引脚作类似的处理。

二、采用中断与查询相结合的方法

中断与查询相结合的方法是把系统中多个外部中断源按它们的重要程度进行排序,把其中最高级别的中断源接到MCS-51的一个外部中断源输入端(例如接到脚),其余的中断源用线“或”的方法连接到另一个外部中断输入端(),并同时接到一个I/O口,如图4-5中所示接到P1口。中断请求由硬件电路产生,而中断源的识别由程序查询来处理,查询顺序由中断源的优先级决定。图为五个外部中断源的连接电路,其中设备1~4经OC门与连接,并连接到P1.0~P1.3,均采用电平触发方式。设备0为最高级中断源,单独作为外部中断0的输入信号。这种办法扩展比较简单,但是当外部中断扩展的数量较多时,查询的时间比较长,导致程序的执行效率较低。

图 多个外部中断源系统设计 外部中断1的中断服务程序如下:

ORG 1000H

LJMP INTR

INTR: PUSHPSW; 保护现场

PUSHA

JNBP1.0, IR1; P1.0引脚为0,转至设备1中断服务程序

JNBP1.1, IR2; P1.1引脚为0,转至设备2中断服务程序

JNBP1.2, IR3; P1.2引脚为0,转至设备3中断服务程序

JNBP1.3, IR4; P1.3引脚为0,转至设备4中断服务程序

INTR1:POPA; 恢复现场

POPPSW

RETI; 中断返回

IR1:……; 设备1中断服务程序入口

AJMPINTR1; 跳转到INTR1所指示的指令

IR2:……; 设备2中断服务程序入口

AJMPINTR1; 跳转到INTR1

IR3:……; 设备3中断服务程序入口

AJMPINTR1; 跳转到INTR1

IR4:……; 设备4中断服务程序入口

AJMPINTR1; 跳转到INTR1

水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 管件 的产品:
  • 水电电工资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 BYBC.CN SYSTEM All Rights Reserved