在看《51单片机工程师师怎样炼成的》中遇到这么一个问题:
*****main.c*****
#include <reg51.h>
#include "main.h"
#include "delay.h"
void main(void)
{
uchar i = 0;
while(1)
{
for(i = 0;i < 8;i++)
{
P1 = (1<<i); //这句话弄不明白
delay_ms(100);
}
}
*****mian.h*****
#ifndef _MAIN_H_
#define _MAIN_H_
#define uint unsigned int
#define uchar unsigned char
#endif
*****delay.c*****
#include "main.h"
void delay_ms (uint timer)
{
uchar j = 0;
while(timer--)
{
for(j = 124;j < 0;j--)
{
;
}
}
}
*****delay.h*****
#ifndef _DELAY_H_
#define _DELAY_H_
void delay_ms (uint timer);
#endif
_________________________________________________________________
这个程序是关于一个跑马灯的实现,P1 = (1<<i)这个语句的语义不清晰。
个人发现了一个问题,不知道是不是对的:为这个程序开始调试的那一刻LED是不是全部亮?为什么?
求救大虾~~~
万分感谢!
} |