#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit beep=P3^6;
uchar aa;
void delay(uint z);
void main()
{
uchar i,j;
while(1)
{
aa=0xfe;
for(i=0;i<7;i++)
{
P1=aa;
beep=1;
delay(50);
aa=_crol_(aa,1);
P1=0xff;
beep=0;
delay(50);
}
aa=0x7f;
for(j=0;j<7;j++)
{
P1=aa;
beep=1;
delay(50);
aa=_cror_(aa,1);
P1=0xff;
beep=0;
delay(50);
}
}
}
void delay(uint z)
{
uint x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++);
}
学完郭天祥的视频后以为可以很快写出这种简单的程序,没想到还是花费了四十多分钟的时间,在bug的过程中一直出错,出错并不可怕但是我们要了解我们为什么会出错怎样避免下次再出现这种错误。现将错误分析如下:
第一次:将返回值弄错!原因分析过程中没有将返回值确认只是主观想象;
第二次:由第一次产生蝴蝶效应,分析过程中怀疑自己掌握的知识点,结果导致浪费大量时间
第三次:在选择for语句循环次数时再一次没有完整的考虑过程。总结:在运用循环过程时要将程序和题目的要求是否完全相合在脑袋中过一遍 !