为什么会出现如下情况?我是个单片机初学者,刚学习编了这个流水灯个程序,为什么mian程序中的n在for循环中n<10,而在if(n==9)才能正常使8只发光二极管成为流水运动,若换成n<9与if(n==8)或者其他数值都不正常,请高手帮忙解释一下。
电路原理图如下:
单片机源程序如下:
- #include<reg51.h>
- #define uint unsigned int
- #define uchar unsigned char
- void delay(uint x)
- {
- uchar j;
- uint y;
- for(x; x>0; x--)
- for(y=500; y>0; y--);
- }
- void main()
- {
- uchar n;
- P1 = 0xff;
- while(1)
- {
- for(n; n<10; n++)
- {
- delay(500);
- P1 = (P1<<1);
- if( n == 9)
- {
- P1 = 0xff;
- n =0;
- }
- }
- }
- }
复制代码
|