keil uVision4界面:
#include<reg51.h>
unsigned char t;
void delay(int x) //延时函数
{
int i,j;
for(i=x;i>0;i--)
for(j=120;j>0;j--);
}
void main() //主函数
{
P0=0X00; //正常状态8只LED全亮
TMOD=0X50; //设置定时器T1为方式1计数
TH1=0XFF; //向TH1写入初值的高8位
TL1=0XFA; //向TL1写入初值的低8位
EA=1; //总中断允许
ET1=1; //定时器T1中断允许
TR1=1; //启动定时器T1
while(1); //无穷循环,等待计数中断
}
void T1_int(void) interrupt 3 //T1中断函数
{
TH1=0XFF;
TL1=0XFC;
for(t=0;t<3;t++) //循环3次
{
P0=0Xfe; //11111110
delay(1000);
P0=0Xfd; //11111101
delay(1000);
P0=0Xfb; //11111011
delay(1000);
P0=0Xf7; //11110111
delay(1000);
P0=0Xef; //11101111
delay(1000);
P0=0Xdf; //11011111
delay(1000);
P0=0Xbf; //10111111
delay(1000);
P0=0X7f; //01111111
delay(1000);
P0=0Xff; //11111111
}
}
proteus仿真界面:
![](https://img-blog.csdnimg.cn/img_convert/4a6d629d197b6064b52107253b7cf38b.png)