📄 int01.c
字号:
/*=========================================
**** ************
**** INT0中断实验 ************/
//=======声明区============================
#include<reg51.h>
#define LED P2
void delay(int);
void left(int x);
void right(int x);
//=====主程序===============================
main()
{ IE=0x85;
IP=0x01;
TCON=0x05;
LED=0x00;
while(1)
{delay(500000);
LED=~LED;
}
}
//===子程序部分==============================
/*INT0的中断子程序,单灯左移3圈*/
void int0(void) interrupt 0
{ unsigned saveLED=LED;
left(2);
LED=saveLED;
}
/*INT1的中断子程序,单灯右移3圈*/
void int1(void) interrupt 2
{ unsigned saveLED=LED;
right(2);
LED=saveLED;
}
/*延迟函数,延迟约x*1ms*/
void delay(int x)
{ int i,j;
for(i=0;i<x;i++)
for(j=1;j<120;j++);
}
/*单灯左移函数,执行x圈*/
void left(int x)
{ int i,j;
for(i=0;i<x;i++)
{ LED=0xfe;
for(j=0;j<7;j++)
{ delay(25000);
LED=(LED<<1)|0x01;//左移1位后LSB设为1
}
delay(2500);
}
}
/*单灯右移函数,执行x圈*/
void right(int x)
{ int i,j;
for(i=0;i<x;i++)
{ LED=0x7f;
for(j=0;j<7;j++)
{ delay(25000);
LED=(LED>>1)|0x80;//右移1位后MSB设为1
}
delay(2500);
}
}
//==================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -