学完有忘掉了,现在回顾一下,为学习其他准备
主要学习位操作,<< >>
#include<reg52.h>
void Delay(unsigned int t)
{
while(--t);
}
void LEDLMove() //从左到右一个一个点亮
{
unsigned char i;
P0 = 0xFE;
for(i = 0; i < 8; i++)
{
Delay(30000);
P0 <<= 1;
}
}
void LEDRMove() //从右到左一个一个点亮
{
unsigned char i;
P0 = 0x7F; //从右到左一个一个点亮
for(i = 0; i < 8; i++)
{
Delay(30000);
P0 >>= 1;
}
}
void LEDRLMove() //从左到右或从右到左移动一个点亮
{
unsigned char i;
P0 = 0xFE; //第1个LED亮
for(i = 0; i < 8; i++)
{
Delay(20000);
P0 <<= 1;
P0 |= 0x01;
}
P0 = 0x7F; //第8个LED亮
for(i = 0; i < 8; i++)
{
Delay(20000);
P0 >>= 1;
P0 |= 0x80;
}
}
main()
{
while(1)
{
LEDLMove();
Delay(20000);
LEDRMove();
Delay(20000);
LEDRLMove();
}
}