51单片机 编译一条延时500ms的程序 要求fosc=6MHZ

如题所述

void Delay500ms() //@6.000MHz

{

unsigned char i, j, k;

i = 12;

j = 103;

k = 57;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}

追问

简单的,深的不懂

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-02
void delay(void)
{
unsigned char a,b,c;
for(c=11;c>0;c--)
for(b=92;b>0;b--)
for(a=122;a>0;a--);
}
其实网上有个程序,可以帮你计算延时,定时器/计数器设置、串口波特率、中断控制字设置。

我这个就很简单啊,三个循环嵌套。
第2个回答  2012-04-02
DL500MS 延时时间的说明,可见:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/95d6b8376e6bc6d7a2cc2bd5.html

针对6MHz,可以自己计算循环次数。
如果算不出来,你百度一下,单片机小助手。