欢迎来到天天文库
浏览记录
ID:5894902
大小:27.50 KB
页数:2页
时间:2017-12-27
《外部中断源的扩展方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、外部中断源的扩展方法利用单片机的中断功能可以提高CPU效率、提高事件的实时处理能力,但80C51单片机的外部中断源只有2个,如果需要中断处理的外部事件超过2个,就需要考虑扩展外部中断源,通常扩展方法有以下2种:1、利用定时器/计数器扩展基本原理是,将定时器/计数器设置成计数器,通过外部引脚P3.4(T0)及P3.5(T1)对外部脉冲计数,初始化时设置为工作方式2,且计数初值设置为0FFH,这样在中断允许并启动计数器后,只要引脚出现一个下降沿信号,计数器加1后便产生定时器/计数器溢出中断。因此可以将引脚P3.4及P3.5作为外部中断引入端。将T0扩
2、展成外部中断的程序如下:ORG0000HLJMPMAINORG000BHAJMPDT0ORG1000HMAIN:MOVTMOD,#06H;T0,方式2,计数方式MOVTL0,#0FFH;置计数初值MOVTH0,#0FFHSETBTR0;启动T0工作SETBEA;CPU开放中断SETBET0;T0允许中断…ORG2000HDT0:…;中断服务程序2、利用中断、查询相结合扩展法通过(正体)扩展3个外部中断的硬件电路连接如图6.15。图6.15扩展3个外部中断图6.15中,3个外部中断引入端通过一个与门连接至80C51的INT1,当WZD1、WZD2、
3、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个外部中断的程序如下:ORG0000HLJMPMAINORG0013HLJMPINT1;转外部中断1服务程序ORG0100HMAIN:…CLR
4、IT1;外部中断1设置为电平触发方式SETBEASETBEX1…INT1:…JNBP1.0,WZD1;P1.0为0,转WZD1中断服务程序JNBP1.1,WZD2;P1.1为0,转WZD2中断服务程序JNBP1.2,WZD3;P1.2为0,转WZD3中断服务程序RETIWZD1:…;WZD1中断服务程序RETIWZD2:…;WZD2中断服务程序RETIWZD3:…;WZD3中断服务程序RETI利用定时器/计数器扩展外部中断源,硬件结构和软件编程都很简单,但前提是T0、T1未被使用,且最多只能扩展两个外部中断源。中断、查询相结合的扩展法,原则上可以
5、处理任意多个中断源,但是当所要处理的外部中断源的数目较多,而其响应速度又要求很快时,采用这种方法有可能满足不了时间上的要求。在需要扩展的中断源数较多,且对响应时间有要求时,可以采用外加中断扩展芯片的方法,如芯片8259A、74LS148,但这样将增加电路及编程的复杂程度。单片机设计及学习资料:http://kczx.tjpu.edu.cn/G2S/Template/View.aspx?action=view&courseType=0&courseId=178
此文档下载收益归作者所有