经过研究发现,前两次的点灯不成功原因是单片机有问题,新板子已到,可以玩耍咯!
这次做的是流水灯,流水灯是基于一个led灯闪烁来进行的,原理就是让每一个灯都进行闪烁将时间差拉开就可以了。经过这几次写代码,发现二进制转化十六进制尤为重要。
接下来展示代码
#includevoid 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(); } }
效果图展示(由于上传视频过于麻烦,在此以照片代替视频)



