求一个1ms的单片机C语言延时程序

2024-11-18 08:11:50
推荐回答(5个)
回答1:

void delay(char x)
{
unsigned char a,b,c;
for(c=x;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
学过标准C就知道了,char 和 int 是可以相互转换的,char的取值范围是-128~+127
unsigned char 的是0~255
可以用unsigned int啊,我一般都是用char的,用unsigned int的话占的字节比较多,运行速度也没char那么快,计算机会麻烦点,建议使用char

回答2:

void delay(char x)
{
unsigned char a,;
unsigned char b;
unsigned char c;
unsigned char i;
for(c=x; c>0; c--)
{
for(b=38; b>0; b--)
{
for(a=100; a>0; a--)
{
i++;
}
}
}
}

char 是字符型没错,同时也是一个8位的数据型。所以可以给数据呀。

回答3:

采用中断准确,软件延时不靠谱
你不要用C眼光,单片机的char数据长度

回答4:

void delay(uint ms) // 毫秒级延时(AT89C52 @ 11.0592MHz)
{
uint ti;
while(ms--)
{
for(ti=0;ti<112;ti++){}//112
}
}

回答5:

delay(unsigned int x)
{
unsigned char a,b;
for(a=x*10;a>0;a--)
for(b=110;b>0;b--);
}