初学单片机,我使用的是仿真芯片是SST89E516RD+,写的一个流水灯的程序,为何同样的程序在89C52上显示的实际效果,和仿真器上全速执行的效果果不一样(全速时所有灯全亮,但单步执行时显示顺序又是正确的)。
#include <reg52.h>
void delay_ms(unsigned int time) //延时1毫秒程序
{
unsigned int i,j;
for(i=time;i>0;i--)
for(j=112;j>0;j--){;}
}
void main(void)
{
unsigned char move;
unsigned char loop;
while(1)
{
move=0x01;
P1=~move; //点亮P1.0口
delay_ms(100);
for(loop=0;loop<7;loop++)
{
move<<=1;
P1=~move;
delay_ms(100);
}
}
} |