中易网

关于keil仿真问题

答案:2  悬赏:0  
解决时间 2021-11-13 20:03
#include
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()循环了多少次来计算,只是用延时时需用你测试时的那个延时函数(用于测试的可能要在循环里增加一条自增语句),这样接近你需要的值。
全部回答
lz这样的程序,出现这样的状况是完全正常的。因为这里的p1^0完全没有定义。 lz需要明确p0的地址是0x80,p1的地址是0x90 如果想在p0口上keil软件仿真,那么需要这样写: sfr p0 = 0x80; sbit p0_1 = 0x80; 如果想在p1口上keil软件仿真,那么需要这样写: sfr p1 = 0x90; sbit p1_1 = 0x90; 另外变量或常量的名称最好是“顾名思义”的,这样读的时候比较好读一些。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
杨公桥 到观音桥步行街 怎么坐公交车
从 石景山金顶街 到 官园宠物市场 怎么走?
滚筒自动炒菜机器有卖的吗
梦见飞龙是什么意思?好不好呢?
怎么退出征婚交友网
鑫来网吧地址在什么地方,我要处理点事
同心僇力的意思?成语怎么解释?
如用M表示摩尔质量,m表示一个分子质量,v1表
09考生证件查证如何查寻
企业办公用房属于什么性质?
辽源什么地方的麻辣烫好吃啊,多少钱啊
打豆浆过滤后的豆渣怎样吃才好吃?
肉眼泡究竟是什么
Houdini插件OpenVDB怎么安装?
大众宝来车的首保超过了半年4s店是要收费的吗
推荐资讯
灵指神探出过第三季吗?(别告诉我被砍了,就
怀孕脉象是什么?
银利汽贸商行地址有知道的么?有点事想过去
拔智齿大概要多少费用?
对中医学基本观点,整体观念的认识怎么写?
6个月宝宝爱听啥歌?
济南哪里治咖啡斑好
羽绒被的好处有哪些
我今天买了海藻颗粒面膜,我想知道怎样分辨真
全责方有20%的责任免赔率,同责为15%,无责为
犀鳳的意思是什么?犀鳳的释义是什么啊?
小孩玩电脑,眼睛干涩怎么办?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?