小白发帖,因为作业要求控制两盏小灯从中间往两边扩散,由于刚学的字节操作,代码过于长,经过思考,想到使用位运算符来使代码更加简便。
任务目标为: 在1~8灯中 先4,5灯亮,再扩散到两边,再扩散回中间。
代码:
#include <stc15.h> // 单片机为 c51
void delay (unsigned ms) // 定义延时函数
{
unsigned i,j;
for(i=0;i<ms;i++)
for(j=0;j<1210;j++)
;
}
void main ()
{
int x=3,y=4;
for(x=3;x>=-1;x--)
{
P1=~(1<<y | 1<<x);
delay(1500);
y++;
}
y=7;
for(x=0;x<=3;x++)
{
P1=~(1<<x | 1<<y);
delay(1500);
y--;
}