#include<reg51.h>
#define uchar unsigned char
uchar cnt=0;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
EA=1;
ET0=1;
P1=0x00;
while(1);
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt>=40)
{
cnt=0;
P1=~P1;
}
}
这是我自己敲的。但无法实现效果
改进版代码如下:
#define uchar unsigned charuchar cnt=0;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
EA=1;
ET0=1;
P1=0x00;
while(1);
}
void timer0() interrupt 1{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TF0=0;
cnt++;
if(cnt>=40)
{
cnt=0;
P1=~P1;
}
while(!P1_0); //等待P1.0端口取反操作完成}