#include<regx52.h>
#include<intrins.h>
void delay(unsigned int xms) //@11.0592MHz
{
unsigned char i, j;
while(xms--)
{
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
void mian()
{
while(1)
{
P2_0=0;
delay(100);
P2_0=1;
delay(100);
}
}
用烧录软件生成了一个1毫秒的延时函数,然后传递了一个参数,led完全没反应。
但是我用烧录软件直接生产100毫秒的延时函数直接替换掉,不传递参数,就可以完成闪烁。有大神能帮我看一下吗?
#include<regx52.h>
void delay() //@11.0592MHz
{
unsigned char i, j;
i = 180;
j = 73;
do
{
while (--j);
} while (--i);
}
void mian()
{
while(1)
{
P2_0=0;
delay();
P2_0=1;
delay();
}
}
这个程序是用STC-ISP直接生产的100毫秒的延时函数,LED灯可以正常亮灭。