将你的程序改成定时器0中断了:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
uchar code LEDp[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar a,b;
void delay(uchar x) //延时程序
{
uchar i,j;
{
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
}
void main() // 主程序
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
IT0=0;
TR0=1;
ET0=1;
EA=1;
P2=0xff;
while (1)
{
if(b==20)
{
b=0;
for(a=0;a<8;a++)
{
delay(500);
P2=LEDp[a];
delay(500);
}
}
}
}
//外中断0
void int0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
b++;
}
|