#include <reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED1=P2^0;
sbit LED2=P2^1;
sbit LED3=P2^2;
sbit LED4=P2^3;
sbit LED5=P2^4;
sbit LED6=P2^5;
sbit LED7=P2^6;
sbit LED8=P2^7;
sbit KEY4=P3^3; //T1 优先级更高
sbit KEY3=P3^2; // T0
sbit LT0 = TCON^0;
sbit LT1 = TCON^2;
void delay(uint x)//延时
{
char i;
while(x--) for(i=0;i<120;i++);
}
void init()
{
LT0=1;
LT1=1;
EX0=1;
EX1=1;
PX0=0;
PX1=1;
EA=1;
}
void main()
{
uint j;
init();
while(1)
{
for(j=0;j<8;j++)
{
P2=~(0x01<<j);
delay(600);
}
}
}
void int0() interrupt 0
{
delay(10);
if(KEY3==0)
{
uchar b,flag;
flag=P^2; //记录数据
for(b=0;b<5;b++)
{
P2=0x0f;
delay(300);
P2=0xff;
delay(300);
}
P2=flag; //恢复数据
}
}
void int1() interrupt 2
{
uchar a;
delay(10);
if(KEY4==0)
{
for(a=0;a<5;a++)
{
P2=0xff;
delay(500);
P2=0x00;
delay(500);
}
P2=0xfe;
}
}
单片机中断控制1
最新推荐文章于 2024-04-25 17:45:03 发布