首页 > 代码库 > 单片机第9课:外部中断实例程序

单片机第9课:外部中断实例程序

JP3接P0口,JP5接P3口,P1口接发光二级管,当P1全部是高电平的时候,发光二级管全亮。由于外部中断0和1用法一样,这里只给外部中断0的程序。

#include<reg51.h>
/*
* 
*
*/
#define uchar unsigned char
uchar smg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void smgLight();
void delay();
void initInt0();
void main()
{
	initInt0();
	while(1)
	{
	 	smgLight();
	}
	
}

//
void outerInterrupt() interrupt 0
{
	//
	int k;
	for(k=0; k<10; k++)
	{
	 	P1 = 0x00;
		delay();
		P1 = 0xff;
		delay();
	}		
}
//
void initInt0()
{
	//ÉèÖÃÍⲿÖжϵĴ¥·¢·½Ê½,µÍµçƽ´¥·¢
	IT0 = 0;
	//¿ªÔÊÐíλ
	EX0 = 1;
	EA = 1;

}
//
void smgLight()
{
	int k;
	for(k = 0; k < 10; k++)
		{
			P0 = smg[k];
			delay();		
		}	
}
//
void delay()
{
	int i,j;
	for(i = 10000; i > 0; i--)
		for(j = 10; j > 0; j--);
}
写外部中断程序的步步骤:

1、设置外部中断的触发方式,分为低电平触发和下降沿触发

2、设置外部中断的中断源允许

3、开启CPU的总允许位

4、设置优先级,这个可以省略

5、写中断服务程序,就是你想实现的功能,注意不需要声明,也不需要调用,也没有返回值

单片机第9课:外部中断实例程序