麻烦大家帮我分析一下以下的程序,开发板为什么输出的是循环显示,而keil4仿真却是固定不变的?

程序如下:
#include<reg51.h>
#include<stdio.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--); //2s延时程序
}
uint a;
void main()
{
a=0xaa;
P1=a;
delayms(2000);
a=_crol_(a,1);//将P1口左移一位
P1=a; //P1口左移一位后输出
delayms(2000);
}

主程序缺主循环体。实际运行时不断复位,看起来就像循环显示。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-07
没有循环体,当程序运行完后,芯片不知道要干什么了,就自己一直复位复位。所以在程序的最后加while(1);就OK了