单片机的一些开发技巧(一)
上曾介绍了一种扩展外部中断源的方法,但是需增加硬件开销(见图5)。经或非门引入外中断源输入端(/INT0或/INT1),同时又连到某I/0口。这样,每个“源”都可能引起中断,在中断服务程序中通过软件查询便可确定哪一个是正在申请的中断源,其查询的次序则由中断源优先级决定,这就可实现多个外部中断源的扩展。
图5
这种方法尽管扩展了外部中断源,但也有不尽人意之处,如设计一个具有8个中断源的电路,则需一个8输入端的或非门(或门),显然,对体积与成本都不利。这里介绍笔者设计的扩展外部中断源的方法,由纯软件实现,不添加一个元件(见图6)。
图6
#include 《 P》
static unsigned char data m;//m为全局变量
/*-------延时子程序-------*/
void delay(unsigned int k)
{
unsigned int i,j;
for(i=0;i
for(j=0;j《121;j++)
{;}}
}
/*---外部中断INT0子程序---*/
void init0()interrupt 0
{
delay(10);//延时10mS抗抖动干扰
if(P3_2==0)

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码