//我用的也是C51系列,可能有个别的接口不一样,但原理我已经说清楚了
#include//我在这里面已经加进了uchar的宏定义
#include//自定义的一个延迟函数
void int0()interrupt 0 using 1
{
INT0=0; //当INT0=1时,外部中断启动
if(P1==0x00) //P1为LED控制口
P1=0xff;
P1=P1<<1; //位运算(对2进制),如101010<<1,为左移一位成010100(后面补0)
} //实在不会,去百度一下具体的教程
void main(void)
{
IT0=1;
EX0=1;
EA=1;
while(1)
{
P3=0xf0; //P3控制键盘,你可能并不了解矩阵键盘的工作方式
if(P3!=0xf0) //是否有键被按下
{
delay(10);
P3=0xf0;
if(P3!=0xf0) //确认是否真的按下了
{
INT0=1; //启动外部中断
while(P3!=0xf0) //检测键盘是否松开,缺少这一步,中断将
P3=0xf0; //不断运行
}
}
}
}