缘由https://ask.csdn.net/questions/7444779?spm=1005.2025.3001.5141
#include "reg52.h"
sbit K1 = P1^5;
sbit K2 = P1^6;
sbit K3 = P1^7;
bit kk=0;
void zdsz()
{
EA=EX0=IT0=1;
}
void main()
{
unsigned char Xd=0;
unsigned int ys=4747,d1=0;
zdsz();
while(1)
{
if(!++ys){P0=255-(kk?(d1*=2)/2:(d1/=2));ys=4747;}
if(kk&&d1>=256)d1=1;
if(!kk&&d1==1)d1=256;
if(kk&&!d1)d1=1;
}
}
void zd() interrupt 0
{
kk=!kk;
}
参考资料51单片机中的外部中断有什么作用?_百度知道
51单片机外部中断使用方法:
1、51单片机的外部中断int0对应的引脚为p3.2。
2、设置寄存器,打开终端并选择中断的触发方式。
EA为整体中断允许位,首先要将EA置1,打开中断。
EX0为外部中断INT0,置1开启。
IT0寄存器:置0为低电平触发,置1为下降沿触发。
3、编写中断函数,int0的中断编号为0,这里使用中断控制led的点亮与熄灭。
中断函数格式一般为:
void 函数名称(void) interrupt 中断编号 【using 寄存器组编号】{语句;}
4、编译程序,并导入单片机对程序进行测试。