为什么我的程序在单片机上和proteus只是一直执行第一个while,而不转如下一个while语句啊

#include <reg51.h>
#include <intrins.h>
unsigned char i;
void delayms(unsigned char ms) // 延时子程序
{
while(ms--)
{
for(i = 0; i < 120; i++);
}
}

void main()
{
unsigned char LED;
LED = 0xfe;
i=3;
while(i)
{
P2=0xfe;
delayms(150);
P2=0xff;
delayms(150);
i--;
}
i=3;
while(i)
{
P2=0x7f;
delayms(150);
P2=0xff;
delayms(150);
i--;
}

}

第1个回答  2012-02-13
单从程序上看,出了main函数的里面的LED,被赋值了但是根本没有用到,设置了全局变量unsigned char。在proteus下仿真的时候,把选项设置好不过貌似你的主函数里面的没有使用死循环结构,这样你的程序运行运行一遍就停止了。
第2个回答  2012-02-13
有没有搞错啊,楼主的主函数里有个i,延时函数里面还有一个i,两个数值不一样啊!!!!!,主函数里的i换成其他的字母就可以了…………KEIL里debug一下不就可以了本回答被提问者采纳
第3个回答  2012-02-13
void main()
是开始执行的开始,unsigned char LED;
LED = 0xfe;
i=3;
while(i)
{
P2=0xfe;
delayms(150);
P2=0xff;
delayms(150);
i--;
}
i=3;】不理解,把图贴出来

为什么我的程序在单片机上和proteus只是一直执行第一个while,而不转如 ...
单从程序上看,出了main函数的里面的LED,被赋值了但是根本没有用到,设置了全局变量unsigned char。在proteus下仿真的时候,把选项设置好不过貌似你的主函数里面的没有使用死循环结构,这样你的程序运行运行一遍就停止了。

用proteus7.5仿真51单片机为啥我的for循环退不出来d1始终闪烁d2不亮
在程序的末尾加上一个while(1);就可以了。单片机程序的运行机制,你MAIN函数运行最后一条后,没有给它停住。单片机是会一直无限的循环整个ROM空间,也就会一直重复执行你的程序。这个用文字表达也不好说清楚。

proteus 仿真好像单片机根本没有加载我写的程序。
一般不会,proteus仿真是循环运行单片机中的程序,可能是你程序加载错误吧。如果你不确定,就在你程序后加一行while(1),这样单片机就一直运行啦。

点开始,proteus会不断循环仿真试验,如何设置让它点开始只运行一次仿真...
如果你的PROTEUS线路中有单片机,则它按单片机的程序运行,如果没有单片机,则它按你的线路情况运行,如果你没有任何可操作的元件,或者你不对它进行干预,它就一直运行,就是实际中的情况,这个线路接上电后,它就是一直运行,除非你把电源去掉。如果你不想运行那么久,你点击停止就可以了。当然,你可...

proteus单片机为什么没有加载我写的程序?
一般不会,proteus仿真是循环运行单片机中的程序,可能是你程序加载错误吧。如果你不确定,就在你程序后加一行while(1),这样单片机就一直运行啦。

keilC和proteus联调后,用proteus执行仿真的时候出现这个问题,不能用...
1、P0_0,应该是没有的,除非是你自己定义的。P0^0是p0口的第0个端口,这两个值你都可以在观察里看到,p0^0可以直接在i\/o中看到的。2、你的意思理解是正解的,方便 2.5、因为P0^0你没有定义,你必须这样才能用 sbit 一个符号=P0^0,因为在reg51.h库中只定义了P0口是可以位变量 3、...

51单片机数码管显示的问题?
不加while(1) ,CPU就会继续往下执行。继续往下执行到,没有编写程序的程序空间,出现不可意料的结果。--- 下到板子上时,旁边有两个数码管也亮了,亮度也很弱,谁能告诉我为什么这样?这就是:出现不可意料的结果。

为什么我的程序在 proteus仿真中 不会跑?程序和模型如下
首先,你的程序要用keil c编译出HEX代码文件,然后把HEX文件加载到仿真图中的单片 机。最后要点仿真开始按钮才运行,见下图,画红圈的那个铵钮。另外,看一下,仿真图可以这样画,晶振电路和复位电路都可以省略的。看见了吗,那发光二极管是亮的,单片机的引脚上有红块,这才是动行。

请问protues仿真的同时要看到程序执行的步骤怎么看呀??
Proteus本身是无法仿真的,要配合上keil,因为需要将程序写入芯片。我现在也在用他仿真,我使用的是Proteus 7.2(因为6.9以上需要一个联调软件,在此特意提一下版本)和keil 7.2;具体步骤你自己看吧,我如下做出来是可以仿真的。另外给我个邮箱,我把更具体的资料给你吧。下面的一到五步骤,是别人...

一个单片机流水灯程序,但用Proteus仿真时所有灯都不亮,程序如下
没有任何问题 如果你是第一次用proteus,那么我有理由怀疑你是LED用错了 那个带箭头的发光LED是不会发光的,要用RGB那三种LED 如图:用你的程序仿真的,能跑

相似回答
大家正在搜