小白自学c51笔记之流水灯
开发板原理图:
由开发板原理图知:led1到8分别接P2^0到P2^7,P2口输入低电压时led亮(VCC表示高电压,P2为0时输出低电压,为1则高电压)。
可用以下两种方法表示:
1.
#include<reg52.h>
sbit led1=P2^0; //若要用其他led则改成对应的
void main()
{
led1=0;
}
#include<reg52.h>
#define led P2 //无分号
void main()
{
led=0x00; //0x表示十六进制,其他解释在下面
}
注:P大写。
下面是我写的代码:
#include "reg52.h "
#include "intrins.h"
#define led P2 //#define 为宏定义
void delay(unsigned int i) //自定义delay函数
{
while(i--);
}
void main()
{
unsigned int i=0; //定义无符号整型数i并赋值0
led=0xfe; //0xfe为十六进制:1111 1110;即只点亮第一个led
delay(20000); //调用上面的delay函数,以达到延时的目的
while(i<7) //while循环,i不满足条件时{}内循环结束
{
led=_crol_(led,1); //左移函数:led左移1位即1111 1101 ,可点亮第二个led
delay(20000);
i++; //i=i+1;
} //上面while循环可使八个led依次亮
while(i>2)
{
led=0x55; //0101 0101
delay(5000);
led=~led; //取反:1010 1010
delay(5000);
i--;
}
}
接下来小白自学c51之心情篇:
太tm激动了,离原地升天就差那么一丢丢👏