//假設晶振12MHZ,P1控制8個LED低電平亮
#include
"reg51.h"
unsigned
int
YSJS=0;
signed
char
LED=0XFE;
void
main(void)
{
TMOD
|=
0X10;
//定時器1工作於方式1,16位定時器
TH1
=
0XFE;
//定時器1定時時間=500uS
TL1
=
0X0C;
ET1
=
1;
//使能定時器1中斷
EA
=1;
//開總中斷
P1
=
LED;
while(1)
{
}
}
void
TIMER1(void)
interrupt
3
//定時器1中斷函數使用默認寄存器組
{
TH1
=
0XFE;
//定時器1定時時間=500us
TL1
=
0X0C;
YSJS++;
if(YSJS==1000)
//500uS*1000=500000us=0.5s,可調整
{
P1
=
LED;
LED=LED<<1
LED=LED
|
1
if(LED==0XFF)LED=0XFE;
YSJS
=
0
}
}