网站大量收购独家精品文档,联系QQ:2885784924

第06章MCS-51单片机中断系统.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第06章MCS-51单片机中断系统

外部中断源的扩展 单片机仅有两个外部中断输入端. 可用三种方法扩展: 1. 定时器T0,T1。(工作在计数方式下) 2. 中断和查询结合。 3.外接中断控制芯片(如8259)进行扩展。 1.用定时器/计数器作外部中断源   MSC-51单片机有两个定时器/计数器T0和T1,它们作为计数器使用时,计数输入端T1(T0)发生负跳变时将使计数器加1。利用此特性,适当设置计数器初值,就可以把计数输入端T1(T0)作为外部中断输入端。例如,将定时器/计数器T0设置为工作方式2计数模式,计数初值设为0FFH,且允许中断。当计数输入端发生一个负跳变时,计数器加1,便发生溢出,从而产生中断。 ORG 0100H   MOV TMOD,#06H ;设置定时 器T0为工作方式2、计数模式 MOV TH0,#0FFH ;设置计数器初值 MOV TL0,#0FFH SETB IT0 ;选择跳变触发方式 SETB ET0 ;允许定时器中断  SETB EA ;CPU开中断  SETB TR0 ;启动定时器T0 初始化程序如下: 以上程序执行后,当定时器/计数器T0计数输入端发生负跳变时,TL0加1,产生溢出,标志位TF0置1,向CPU发出中断请求,同时TH0的值重新送入TL0,保证下一次中断过程的顺利进行。这样T0端相当于脉冲方式的外部中断请求输入端。同理T1也可以实现外部中断源的扩展。 注:用本方法扩展外部中断源是以占用内部定时中断为代价的。只有当定时/计数器空闲时才能使用。 2.查询方式扩展外部中断源    当外部中断源较多时,可以采用查询方式扩展外部中断源。把多个中断源通过硬件(或非门)引入外部中断源输入端(INT0或INT1),同时将中断源连接到某I/O接口。这样,每个中断源都可能引起中断,在中断服务程序中通过软件查询I/O口,便可以确定哪一个是正在申请的中断源,查询的次序则由中断源优先级决定,这样可实现多个外部中断源的扩展。    例如,通过OC门实现外部中断源扩展的基本原理如下图所示。当外部扩展中断源的任何一个中断申请信号置为低电平时,其对应的OC门输出为低,使有效,申请中断。有中断后,软件查询P1口状态,决定是哪一个中断源。查询次序决定优先级。 参考程序如下:    ORG 0003H       LJMP INTER_PRO       ORG 0100H       INTER_PRO:       JNB P1.0 ,SUB0_PRO       JNB P1.1, SUB1_PRO       ......       JNB P1.7, SUB7_PRO 3.中断控制芯片(如8259)进行扩展 当需要扩展的外部中断源比较多时,可以使用专用中断控制器8259实现。一个8259可以直接扩展8个中断源,经级联后,最多可以扩展64个中断源。 中断应用举例 【例】出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外中断(P3.2)引脚输入,行驶里程为轮胎周长×运转圈数。设轮胎周长为2m,试实时计算出租车行驶里程(单位米),数据存32H、31H、30H。 参考程序如下: ORG 0000H ;复位地址 LJMP STAT ;转初始化 ORG 0003H ;中断入口地址 LJMP INT ;转中断服务程序 ORG 0100H ;初始化程序首地址 STAT: MOV SP,#60H ;置堆栈指针 SETB ITO ;置边沿触发方式 MOV IP,#01H ;置高优先级 MOV IE,#81H ;开中断 MOV 30H,#0 ;里程计数器清0 MOV 31H,#0 MOV 32H,#0 LJMP MAIN ;转主程序,并等待中断 ORG 0200H ;中断服务子程序首地址 INT: PUSH Acc ;保护现场 PUSH PSW MOV A,30H ;读低8位计数器 ADD A,#2 ;低8位计数器加2m

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档