下面的程式我已經除錯過了,你可以直接使用,但是一秒閃爍次數t的最大為2000,如果要大於這個數,你必須改小dalay1ms ()內的j值,就可以改大t
#include
sbit LED0=P1^0;
unsigned int t=0,k;
void dalay1ms (unsigned int i) //晶振選用11.0592
{
unsigned int j;
for(i;i>0;i--)
for(j=922;j>0;j--);
}
void main ()
EA=1;
ES=1;
TMOD=0x20; //定時器T1方式為2
TH1=0xfa; //波特率設定為9600
TL1=0xfa;
while(1)
if(t!=0)
k=2000/t;
dalay1ms (k) ;
LED0=!LED0;
if(t==0)
LED0=0;
void counter4(void) interrupt 4
while(RI==0);
RI = 0;
t= SBUF;
下面的程式我已經除錯過了,你可以直接使用,但是一秒閃爍次數t的最大為2000,如果要大於這個數,你必須改小dalay1ms ()內的j值,就可以改大t
#include
sbit LED0=P1^0;
unsigned int t=0,k;
void dalay1ms (unsigned int i) //晶振選用11.0592
{
unsigned int j;
for(i;i>0;i--)
for(j=922;j>0;j--);
}
void main ()
{
EA=1;
ES=1;
TMOD=0x20; //定時器T1方式為2
TH1=0xfa; //波特率設定為9600
TL1=0xfa;
while(1)
{
if(t!=0)
{
k=2000/t;
dalay1ms (k) ;
LED0=!LED0;
}
if(t==0)
LED0=0;
}
}
void counter4(void) interrupt 4
{
while(RI==0);
RI = 0;
t= SBUF;
}