faneGin
文章15
标签11
分类4
控制BBC开发板上的任意一LED小灯

控制BBC开发板上的任意一LED小灯

引言

上一篇我们具体控制了BBC开发板矩阵的行和列,这次我们将继续细化LED,来做到控制单个LED。

代码展示

同理上篇我们具体写了小灯的10种状态,这边我们也可以具体每个灯的具体状态。

var z=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

同上篇一样,在写完25个小灯的寄存位置后开始具体实现小灯状态。

在这里我们可以把矩阵看成一个坐标轴,而每个小灯都有他自己的坐标。

第一行第一列

function led11() //第一行第一列

​ { if(z[0]==0) {ed[0]=led[0]|(1<<4);z[0]=1;}

​ else{led[0]=led[0]&(~(1<<4)); z[0]=0; }

​ rowcol();}

第一行第二列

function led12()

​ {if(z[1]==0){led[0]=led[0]|(1<<3); z[1]=1;}

​ else{ led[0]=led[0]&(~(1<<3));z[1]=0;}

​ rowcol();}

第一行第三列

function led13()

​ { if(z[2]==0){ led[0]=led[0]|(1<<2); z[2]=1;}

​ else{led[0]=led[0]&(~(1<<2)); z[2]=0;}

​ rowcol();}

第一行第四列

function led14()

​ { if(z[3]==0){ led[0]=led[0]|(1<<1);z[3]=1;}

​ else{ led[0]=led[0]&(~(1<<1)); z[3]=0; }

​ rowcol(); }

第一行第五列

function led15()

​ {if(z[4]==0){ led[0]=led[0]|(1<<0);z[4]=1; }

​ else{ led[0]=led[0]&(~(1<<0));z[4]=0;}

​ rowcol(); }

第二行第一列

function led21() //第二行第一列

​ { if(z[5]==0) {led[1]=led[1]|(1<<4);z[5]=1; }

​ else{ led[1]=led[1]&(~(1<<4));z[5]=0; }

​ rowcol();}

第二行第二列

function led22()

​ {if(z[6]==0) {led[1]=led[1]|(1<<3); z[6]=1; }

​ else{ led[1]=led[1]&(~(1<<3)); z[6]=0;}

​ rowcol();}

第二行第三列

function led23()

​ { if(z[7]==0) { led[1]=led[1]|(1<<2);z[7]=1;}

​ else{ led[1]=led[1]&(~(1<<2)); z[7]=0;}

​ rowcol(); }

第二行第四列

function led24()

​ { if(z[8]==0){ led[1]=led[1]|(1<<1);z[8]=1;}

​ else{led[1]=led[1]&(~(1<<1)); z[8]=0; }

​ rowcol(); }

第二行第五列

function led25()

​ {if(z[9]==0){ led[1]=led[1]|(1<<0);z[9]=1;}

​ else{led[1]=led[1]&(~(1<<0)); z[9]=0; }

​ rowcol();}

第三行第一列

function led31() //第三行

​ {if(z[10]==0){led[2]=led[2]|(1<<4); z[10]=1;}

​ else{led[2]=led[2]&(~(1<<4));z[10]=0;}

​ rowcol();}

以此类推,直到完成第五行第五列。

最后在具体实现25个按钮来控制LED小灯

效果图

最后我大写了我名字的第二 X