经过研究发现,前两次的点灯不成功原因是单片机有问题,新板子已到,可以玩耍咯!
这次做的是流水灯,流水灯是基于一个led灯闪烁来进行的,原理就是让每一个灯都进行闪烁将时间差拉开就可以了。经过这几次写代码,发现二进制转化十六进制尤为重要。
接下来展示代码
#include <reg52.H>
void Delay500ms() //延时函数,stc中的软件延时函数
{
unsigned char i, j, k;
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2=0xFE; //1111 1110 数字为二进制表示方法,将其转化为十六进制就可以写进代码中
Delay500ms();
P2=0xFD; //1111 1101
Delay500ms();
P2=0xFB; //1111 1011
Delay500ms();
P2=0xF7; //1111 0111
Delay500ms();
P2=0xFF; //1110 1111
Delay500ms();
P2=0xDF; //1101 1111
Delay500ms();
P2=0xBF; //1011 1111
Delay500ms();
P2=0x7F; //0111 1111
Delay500ms();
}
}
效果图展示(由于上传视频过于麻烦,在此以照片代替视频)