关于keil仿真问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:28:06
#include <reg51.h>
unsigned int i,j,k;
unsigned char temp;
delay()
{ for(i=0;i<300;i++)
for(j=0;j<200;j++);
}
void main()
{ while(1)
{ temp=0x01;
for(k=0;k<8;k++)
{
P1=~temp;
delay();
temp=temp<<1;
}
temp=0x80;
for(k=0;k<8;k++)

{
P1=~temp;
delay();
temp=temp>>1;
}
}
} 流水灯的程序,我想改变delay()延迟函数延迟的时间为10s,在keil仿真中我不知道怎么看延迟的时间, 请教高手,知不知道怎么设置,在哪里看时间,谢谢!
我的意思是两个灯之间的延迟是10s.
你写的delay()函数没有参数,调用了也没效果。是什么意思,我们学的C语言书上没有把参数写在()里的,都是写在外面的,我刚学,不是很懂,请赐教。

1.好像keil中测不到,而且仿真的速度远远比不上硬件上的运行速度,毕竟是仿真而已,受软件本身,计算机系统等许多因素的影响。
2.你写的delay()函数没有参数,调用了也没效果。而且10s相对于程序运行来说不是一个短时间,用这个延时函数的话不知要调用多少次,这么长的时间建议用定时。
3.如果非要测delay()延时了多少,只能用示波器测个大概,你可以试一下。或者结合单片机的定时器,定时一定时间比如10ms,然后去看delay()循环了多少次来计算,只是用延时时需用你测试时的那个延时函数(用于测试的可能要在循环里增加一条自增语句),这样接近你需要的值。