外部中断源的扩展方法.doc_第1页
外部中断源的扩展方法.doc_第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

外部中断源的扩展方法利用单片机的中断功能可以提高CPU效率、提高事件的实时处理能力,但80C51单片机的外部中断源只有2个,如果需要中断处理的外部事件超过2个,就需要考虑扩展外部中断源,通常扩展方法有以下2种:1、利用定时器/计数器扩展基本原理是,将定时器/计数器设置成计数器,通过外部引脚P3.4(T0)及P3.5(T1)对外部脉冲计数,初始化时设置为工作方式2,且计数初值设置为0FFH,这样在中断允许并启动计数器后,只要引脚出现一个下降沿信号, 计数器加1后便产生定时器/计数器溢出中断。因此可以将引脚P3.4及P3.5作为外部中断引入端。将T0扩展成外部中断的程序如下:ORG 0000HLJMP MAINORG 000BHAJMP DT0ORG 1000HMAIN:MOV TMOD, # 06H ; T0,方式2,计数方式MOV TL0, # 0FFH ; 置计数初值MOV TH 0, # 0FFHSETB TR0; 启动T0工作SETB EA ; CPU 开放中断SETB ET0 ; T0允许中断ORG2000HDT0: ;中断服务程序2、利用中断、查询相结合扩展法通过(正体)扩展3个外部中断的硬件电路连接如图6.15。图6.15扩展3个外部中断图6.15中,3个外部中断引入端通过一个与门连接至80C51的INT1,当WZD1、WZD2、WZD3全部为高时,与门输出高,没有中断申请,当WZD1、WZD2、WZD3中任何一个由高变低时,与门输出将由高变低,产生中断申请信号,CPU即可以响应中断,在中断服务程序中,首先就要判断是WZD1、WZD2、WZD3中的哪个引起的中断,确定中断源。电路上WZD1、WZD2、WZD3分别连接至P1.0、P1.1、P1.2,所以通过查询P1.0、P1.1、P1.2三个引脚,就可以找到中断源。通过INT1扩展3个外部中断的程序如下:ORG 0000HLJMP MAINORG 0013HLJMP INT1 ; 转外部中断1服务程序ORG 0100HMAIN: CLR IT1 ; 外部中断1设置为电平触发方式SETBEASETBEX1INT1:JNB P1. 0, WZD1 ; P1. 0为0, 转WZD1中断服务程序JNB P1. 1, WZD2 ; P1. 1为0, 转WZD2中断服务程序JNB P1. 2, WZD3 ; P1. 2为0, 转WZD3中断服务程序RETIWZD1:; WZD1中断服务程序RETIWZD2: ; WZD2中断服务程序RETIWZD3: ; WZD3中断服务程序RETI利用定时器/计数器扩展外部中断源, 硬件结构和软件编程都很简单, 但前提是T0、T1未被使用, 且最多只能扩展两个外部中断源。中断、查询相结合的扩展法, 原则上可以处理任意多个中断源, 但是当所要处理的外部中断源的数目较多,而其响应速度又要求很快时, 采用这种方法有可能满足不了时间上的要求。在需要扩展的中断源数较多,且对响应时间有要求时,可以采用外加中断扩展芯片的方法,如芯片8259A、74LS148,但这样将增加电路及编程的复杂程度。单片机设计及学习资料:http:/kczx.tjp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论