中断0和中断1的应用
2016-03-11 23:01
190 查看
仿真图:
源程序:
#include
#define LED P1
void delay(int x);
void left(int x);
void right(int x);
void main()
{
IE=0x85;
IP=0x01;
TCON=0x05;
LED=0x00;
while(1)
{
LED=~LED;
delay(200);
}
}
void delay(int x)
{
int i,j;
for(i=0;i
for(j=0;j<120;j++);
}
void my_int0() interrupt 0
{
char saveLED;
saveLED=LED;
left(3);
LED=saveLED;
}
void my_int1() interrupt 2
{
char saveLED;
saveLED=LED;
right(3);
LED=saveLED;
}
void left(int x)
{
int i,j;
for(i=0;i
{
LED=0xfe;
for(j=0;j<7;j++)
{
delay(1000);
LED=(LED<<1)|0x01;
}
delay(1000);
}
}
void right(int x)
{
int i,j;
for(i=0;i
{
LED=0x7f;
for(j=0;j<7;j++)
{
delay(1000);
LED=(LED>>1)|0x80;
}
delay(1000);
}
}
源程序:
#include
#define LED P1
void delay(int x);
void left(int x);
void right(int x);
void main()
{
IE=0x85;
IP=0x01;
TCON=0x05;
LED=0x00;
while(1)
{
LED=~LED;
delay(200);
}
}
void delay(int x)
{
int i,j;
for(i=0;i
for(j=0;j<120;j++);
}
void my_int0() interrupt 0
{
char saveLED;
saveLED=LED;
left(3);
LED=saveLED;
}
void my_int1() interrupt 2
{
char saveLED;
saveLED=LED;
right(3);
LED=saveLED;
}
void left(int x)
{
int i,j;
for(i=0;i
{
LED=0xfe;
for(j=0;j<7;j++)
{
delay(1000);
LED=(LED<<1)|0x01;
}
delay(1000);
}
}
void right(int x)
{
int i,j;
for(i=0;i
{
LED=0x7f;
for(j=0;j<7;j++)
{
delay(1000);
LED=(LED>>1)|0x80;
}
delay(1000);
}
}