随着前面的讲解说明,缘缘想信你已经对LED的控制了如指掌了吧,那么现在就跟缘缘一起,来玩点动感的吧,想念你肯定会喜欢的!为了方便讲解,我们就以P0口为例进行说明,P0口接8个LED!
可以看到,我们的程序没有任何问题,那还等什么,烧录看看吧,如果时间太大或是太短,我们就调节yanshi(200);这句语句中的值就行了,是不是有奇妙的情况发生了,缘缘看着那组灯在一个个地闪,心情好激动啊;
把这个程序烧写到单片机执行时,你会发现,灯一个个地被点亮了,然后除第一个外,其它的都灭了,又从第1个开始慢慢地点亮,依次循环,通过这个例程,你应该明白了左移是怎么回事,在这个程序中,while和for循环,我们看到,for除了用作延时外还用于和程序的循环处理,对于for,我们前一章就讲了,不明白的可以看看前面的那一章哦。
看了这张图你是不是明白一些了,那么我们来说说这个程序该怎么写,首先,我们得写上#include < intrins.h="">,这是关于循环位移专用的头文件,不写它,咱们的循环位移函数没能执行,下一步,随便定义个变量,然后先给这个变量赋个值,再让这个数进行循环位移,然后把值赋给P0,让它输出,下面是循环左移程序的书规则:
位移名称(参考变量,位移数),位移名称crol是左移,cror就是右移了,参考变量就是位移是以那个数为准的,位移数就是一次移动几位,好了,说了这么多,我们就写个程序看看这个结果吧:
烧写单片机看看效果吧,是不是很神奇呢,那么对于LED控制就算是说完了,其实LED对于单片实验是很重要的,主要用于端口检测,这个缘缘以后告诉你怎么用吧,我们刚才一直用左移或是循环左移在做,现在,亲们,自己弄成右移的吧,不难的哦!
9、当固定好位置,再不更改时,我们把LED的正极全部接到一起,然后引一根线与单片机的电源正极相连,所有的负极都与电阻相连,然后用导线把电阻按标记的P口分类地接在下面的排针上,这样,我们就完了心型LED的硬件制作,缘缘建议为了好看点,把导线、电阻放在板子的下面,焊接完成后,四个P口插在单片机小系统对应的四个P口,这时,我们就用下面的程序编译烧写,看看那动感的效果吧!对于程序,相信你已经能够看出明白了。
#include< reg52.h="">
#include< intrins.h="">//这个头文件对左移或是右移函数有用,本程序无用
unsigned int x,y;
void delayms(unsigned int z)
{
unsigned int i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void offall();//函数声明
void onall();
void ls();
void fxls();
void bsb();
void fbsb();
void ss(y);
void zxsz();
void fxsz();
void main()//这是主函数,一个程序中一定要有个主函数,
//主函数之后的为分函数,一定要在主函数前面声明,也可以写在主函数之前不声明
{
offall();
delayms(50);
onall();
delayms(50);
while(1)
{
ls();//等时流水灯【这里对声明的函数进行引用】
fxls();//反向等时流水灯
bsb();//半双边流水 由上至下
fbsb();//半双边流水 由下至上
ss(200);//这是你说的显示的时间,按自己的需要改里面的数值【闪烁(y为闪烁间隔时间)】
zxsz();//正向生长
fxsz();//反向生长
}
}
void offall()//开启所有灯
{
P0=0xff;P1=0x00;P2=0x00;P3=0x00;
}
void onall()//关闭所有灯
{P0=0x00;P1=0xff;P2=0xff;P3=0xff;}
void ls()//等时流水灯
{
P0=0xff;
P0=0xfe;delayms(50);
P0=0xfd;delayms(50);
P0=0xfb;delayms(50);
P0=0xf7;delayms(50);
P0=0xef;delayms(50);
P0=0xdf;delayms(50);
P0=0xbf;delayms(50);
P0=0x7f;delayms(50);
P0=0xff;
P2=0x00;
P2=0x80;delayms(50);
P2=0x40;delayms(50);
P2=0x20;delayms(50);
P2=0x10;delayms(50);
P2=0x08;delayms(50);
P2=0x04;delayms(50);
P2=0x02;delayms(50);
P2=0x01;delayms(50);
P2=0x00;
P3=0x00;
P3=0x80;delayms(50);
P3=0x40;delayms(50);
P3=0x20;delayms(50);
P3=0x10;delayms(50);
P3=0x08;delayms(50);
P3=0x04;delayms(50);
P3=0x02;delayms(50);
P3=0x01;delayms(50);
P3=0x00;
P1=0x00;
P1=0x80;delayms(50);
P1=0x40;delayms(50);
P1=0x20;delayms(50);
P1=0x10;delayms(50);
P1=0x08;delayms(50);
P1=0x04;delayms(50);
P1=0x02;delayms(50);
P1=0x01;delayms(50);
P1=0x00;
P0=0xfe;delayms(50);
P0=0xff;
}
void fxls()//反向等时流水灯
{
P0=0xff;
P0=0xfe;delayms(50);
P0=0xff;
P1=0x00;
P1=0x01;delayms(50);
P1=0x02;delayms(50);
P1=0x04;delayms(50);
P1=0x08;delayms(50);
P1=0x10;delayms(50);
P1=0x20;delayms(50);
P1=0x40;delayms(50);
P1=0x80;delayms(50);
P1=0x00;
P3=0x00;
P3=0x01;delayms(50);
P3=0x02;delayms(50);
P3=0x04;delayms(50);
P3=0x08;delayms(50);
P3=0x10;delayms(50);
P3=0x20;delayms(50);
P3=0x40;delayms(50);
P3=0x80;delayms(50);
P3=0x00;
P2=0x00;
P2=0x01;delayms(50);
P2=0x02;delayms(50);
P2=0x04;delayms(50);
P2=0x08;delayms(50);
P2=0x10;delayms(50);
P2=0x20;delayms(50);
P2=0x40;delayms(50);
P2=0x80;delayms(50);
P2=0x00;
P0=0xff;
P0=0x7f;delayms(50);
P0=0xbf;delayms(50);
P0=0xdf;delayms(50);
P0=0xef;delayms(50);
P0=0xf7;delayms(50);
P0=0xfb;delayms(50);
P0=0xfd;delayms(50);
P0=0xfe;delayms(50);
P0=0xff;
}
void bsb()//半双边流水 由上至下
{
offall();
P0=0xfe;delayms(50);
P0=0xfd;P1=0x01;delayms(50);
P0=0xfb;P1=0x02;delayms(50);
P0=0xf7;P1=0x04;delayms(50);
P0=0xef;P1=0x08;delayms(50);
P0=0xdf;P1=0x10;delayms(50);
P0=0xbf;P1=0x20;delayms(50);
P0=0x7f;P1=0x40;delayms(50);
P0=0xff;
P2=0x80;P1=0x80;delayms(50);P1=0x00;
P2=0x40;P3=0x01;delayms(50);
P2=0x20;P3=0x02;delayms(50);
P2=0x10;P3=0x04;delayms(50);
P2=0x08;P3=0x08;delayms(50);
P2=0x04;P3=0x10;delayms(50);
P2=0x02;P3=0x20;delayms(50);
P2=0x01;P3=0x40;delayms(50);
P2=0x80;delayms(50);
offall();
}
void fbsb()//半双边流水 由下至上
{
offall();
P3=0x80;delayms(50);
P2=0x01;P3=0x40;delayms(50);
P2=0x02;P3=0x20;delayms(50);
P2=0x04;P3=0x10;delayms(50);
P2=0x08;P3=0x08;delayms(50);
P2=0x10;P3=0x04;delayms(50);
P2=0x20;P3=0x02;delayms(50);
P2=0x40;P3=0x01;delayms(50);
offall();
P2=0x80;P1=0x80;delayms(50);
offall();
P0=0x7f;P1=0x40;delayms(50);
P0=0xbf;P1=0x20;delayms(50);
P0=0xdf;P1=0x10;delayms(50);
P0=0xef;P1=0x08;delayms(50);
P0=0xf7;P1=0x04;delayms(50);
P0=0xfb;P1=0x02;delayms(50);
P0=0xfd;P1=0x01;delayms(50);
offall();
P0=0xfe;
offall();
}
void ss(y)//闪烁(y为闪烁间隔时间)
{
offall();
delayms(y);
onall();
delayms(y);
}
void zxsz()//正向生长
{
offall();
P0=0xfe;delayms(50);
P0=0xfc;delayms(50);
P0=0xf8;delayms(50);
P0=0xf0;delayms(50);
P0=0xe0;delayms(50);
P0=0xc0;delayms(50);
P0=0x80;delayms(50);
P0=0x00;delayms(50);
P2=0x80;delayms(50);
P2=0xc0;delayms(50);
P2=0xe0;delayms(50);
P2=0xf0;delayms(50);
P2=0xf8;delayms(50);
P2=0xfc;delayms(50);
P2=0xfe;delayms(50);
P2=0xff;delayms(50);
P3=0x80;delayms(50);
P3=0xc0;delayms(50);
P3=0xe0;delayms(50);
P3=0xf0;delayms(50);
P3=0xf8;delayms(50);
P3=0xfc;delayms(50);
P3=0xfe;delayms(50);
P3=0xff;delayms(50);
P1=0x80;delayms(50);
P1=0xc0;delayms(50);
P1=0xe0;delayms(50);
P1=0xf0;delayms(50);
P1=0xf8;delayms(50);
P1=0xfc;delayms(50);
P1=0xfe;delayms(50);
P1=0xff;delayms(50);
}
void fxsz() //反向生长
{
offall();
P0=0xfe;delayms(50);
P1=0x01;delayms(50);
P1=0x03;delayms(50);
P1=0x07;delayms(50);
P1=0x0f;delayms(50);
P1=0x1f;delayms(50);
P1=0x3f;delayms(50);
P1=0x7f;delayms(50);
P1=0xff;delayms(50);
P3=0x01;delayms(50);
P3=0x03;delayms(50);
P3=0x07;delayms(50);
P3=0x0f;delayms(50);
P3=0x1f;delayms(50);
P3=0x3f;delayms(50);
P3=0x7f;delayms(50);
P3=0xff;delayms(50);
P2=0x01;delayms(50);
P2=0x03;delayms(50);
P2=0x07;delayms(50);
P2=0x0f;delayms(50);
P2=0x1f;delayms(50);
P2=0x3f;delayms(50);
P2=0x7f;delayms(50);
P2=0xff;delayms(50);
P0=0x7e;delayms(50);
P0=0x3e;delayms(50);
P0=0x1e;delayms(50);
P0=0x0e;delayms(50);
P0=0x06;delayms(50);
P0=0x02;delayms(50);
P0=0x00;delayms(50);
}
使用4组I/O控制心形流水灯,花样多种。已经通过硬件测试,效果不错。
(硬件:用32个led做成一个 爱心 ,直接用4组I/O控制)
#include< reg51.h="">
#include < intrins.h="">//包含单片机寄存器的头文件
char code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,};//P0123向下合拢
char code table1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,};//P0123向下合拢
char code table2[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,};//P0123向上收回
char code table3[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,};//P0123向上收回
char code table4[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,};//P0123 一个灯走动
char code table5[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,};//P0123 两个灯走动
char code table6[]={0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,};//P0123 三个灯走动
char code table7[]={0xf0,0xe1,0xc3,0x87,0x0f,};//P0123 四个灯走动
char code table8[]={0xe0,0xc1,0x83,0x07,};//P0123 五个灯走动
char code table9[]={0xc0,0x81,0x03,};//P0123 六个灯走动
char code table10[]={0x80,0x01,};//P0123 七个灯走动
/***************************** 函数功能:延时一段时间 *****************************/
void delay(unsigned int z)
{
unsigned int n,k;
for(n=0;n<>
for(k=0;k ;
}
/***************************** 函数功能:主函数 *****************************/
void main(void)
{
char i,j,k;
while(1)
{
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(i=0;i<8;i++)>8;i++)>
{ P0=P0>>1;
P1=P1>>1;
P2=P2>>1;
P3=P3>>1;
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(k=0;k<8;k++)>8;k++)>
{ P0=P0<>
P1=P1<>
P2=P2<>
P3=P3<>
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<8;j++)>8;j++)>
{ P0=table[j];
P1=table1[j];
delay(5);
}
for(j=0;j<8;j++)>8;j++)>
{ P2=table[j];
P3=table1[j];
delay(5);
}
for(j=0;j<8;j++)>8;j++)>
{ P2=table2[j];
P3=table3[j];
delay(5);
}
P2=0xff;P3=0xff;
for(j=0;j<8;j++)>8;j++)>
{ P0=table2[j];
P1=table3[j];
delay(5);
}
for(j=0;j<10;j++)>10;j++)>
{ P0=0xaa;
P1=0xaa;
P2=0xaa;
P3=0xaa;
delay(10);
P0=0x55;
P1=0x55;
P2=0x55;
P3=0x55;
delay(10);
}
for(j=0;j<3;j++) p0123="">3;j++)>
{ P0=0x00;
P1=0xff;
P2=0xff;
P3=0x00;
delay(10);
P0=0xff;
P1=0x00;
P2=0x00;
P3=0xff;
delay(10);
}
for(j=0;j<3;j++)>3;j++)>
{ P0=0x00;
P1=0x00;
P2=0xff;
P3=0xff;
delay(10);
P0=0xff;
P1=0xff;
P2=0x00;
P3=0x00;
delay(10);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(i=0;i<8;i++)>8;i++)>
{ P0=P0<>
delay(5);
}P0=0x00;
for(i=0;i<8;i++)>8;i++)>
{ P2=P2<>
delay(5);
}P2=0x00;
for(i=0;i<8;i++)>8;i++)>
{ P3=P3<>
delay(5);
}P3=0x00;
for(i=0;i<8;i++)>8;i++)>
{ P1=P1<>
delay(5);
}P1=0x00;
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(i=0;i<8;i++)>8;i++)>
{ P1=P1>>1;
delay(5);
}P1=0x00;
for(i=0;i<8;i++)>8;i++)>
{ P3=P3>>1;
delay(5);
}P3=0x00;
for(i=0;i<8;i++)>8;i++)>
{ P2=P2>>1;
delay(5);
}P2=0x00;
for(i=0;i<8;i++)>8;i++)>
{ P0=P0>>1;
delay(5);
}P0=0x00;
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<8;j++) p0123="">8;j++)>
{ P0=table4[j];
P1=table4[j];
P2=table4[j];
P3=table4[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<7;j++) p0123="">7;j++)>
{ P0=table5[j];
P1=table5[j];
P2=table5[j];
P3=table5[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<6;j++) p0123="">6;j++)>
{ P0=table6[j];
P1=table6[j];
P2=table6[j];
P3=table6[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<5;j++) p0123="">5;j++)>
{ P0=table7[j];
P1=table7[j];
P2=table7[j];
P3=table7[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<4;j++) p0123="">4;j++)>
{ P0=table8[j];
P1=table8[j];
P2=table8[j];
P3=table8[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<3;j++) p0123="">3;j++)>
{ P0=table9[j];
P1=table9[j];
P2=table9[j];
P3=table9[j];
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<2;j++) p0123="">2;j++)>
{ P0=table10[j];
P1=table10[j];
P2=table10[j];
P3=table10[j];
delay(5);
} P0=0x00;P1=0x00;P2=0x00;P3=0x00;delay(5);
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(j=0;j<8;j++) p0123="">8;j++)>
{ P0=table4[j];
delay(5);
} P0=0xff;
for(j=0;j<8;j++) p0123="">8;j++)>
{ P2=table4[j];
delay(5);
} P2=0xff;
for(j=0;j<8;j++) p0123="">8;j++)>
{ P3=table4[j];
delay(5);
} P3=0xff;
for(j=0;j<8;j++) p0123="">8;j++)>
{ P1=table4[j];
delay(5);
} P1=0xff;
for(j=0;j<7;j++) p0123="">7;j++)>
{ P0=table5[j];
delay(5);
} P0=0x7f;P2=0xfe;delay(5);P0=0xff;
for(j=1;j<7;j++) p0123="">7;j++)>
{ P2=table5[j];
delay(5);
} P2=0x7f;P3=0xfe;delay(5);P2=0xff;
for(j=1;j<7;j++) p0123="">7;j++)>
{ P3=table5[j];
delay(5);
} P3=0x7f;P1=0xfe;delay(5);P3=0xff;
for(j=1;j<7;j++) p0123="">7;j++)>
{ P1=table5[j];
delay(5);
} P1=0xff;
for(j=0;j<6;j++) p0123="">6;j++)>
{ P0=table6[j];
delay(5);
} P0=0x3f;P2=0xfe;delay(5);P0=0x7f;P2=0xfc;delay(5);P0=0xff;
for(j=0;j<6;j++) p0123="">6;j++)>
{ P2=table6[j];
delay(5);
}P2=0x3f;P3=0xfe;delay(5);P2=0x7f;P3=0xfc;delay(5);P2=0xff;
for(j=0;j<6;j++) p0123="">6;j++)>
{ P3=table6[j];
delay(5);
} P3=0x3f;P1=0xfe;delay(5);P3=0x7f;P1=0xfc;delay(5);P3=0xff;
for(j=0;j<6;j++) p0123="">6;j++)>
{ P1=table6[j];
delay(5);
}P1=0x3f;P0=0xfe;delay(5);P1=0x7f;P0=0xfc;delay(5);P1=0xff;
P0=0xf8;delay(5);
for(j=0;j<5;j++) p0123="">5;j++)>
{ P0=table7[j];
delay(5);
} P0=0x1f;P2=0xfe;delay(5);P0=0x3f;P2=0xfc;delay(5);P0=0x7f;
P2=0xf8;delay(5);P0=0xff;
for(j=0;j<5;j++) p0123="">5;j++)>
{ P2=table7[j];
delay(5);
} P2=0x1f;P3=0xfe;delay(5);P2=0x3f;P3=0xfc;delay(5);P2=0x7f;
P3=0xf8;delay(5);P2=0xff;
for(j=0;j<5;j++) p0123="">5;j++)>
{ P3=table7[j];
delay(5);
} P3=0x1f;P1=0xfe;delay(5);P3=0x3f;P1=0xfc;delay(5);P3=0x7f;
P1=0xf8;delay(5);P3=0xff;
for(j=0;j<5;j++) p0123="">5;j++)>
{ P1=table7[j];
delay(5);
}P1=0x1f;P0=0xfe;delay(5);P1=0x3f;P0=0xfc;delay(5);P1=0x7f;
P0=0xf8;delay(5);P1=0xff;P0=0xf0;delay(5);
for(j=0;j<4;j++) p0123="">4;j++)>
{ P0=table8[j];
delay(5);
} P0=0x0f;P2=0xfe;delay(5);P0=0x1f;P2=0xfc;delay(5);P0=0x3f;
P2=0xf8;delay(5);P0=0x7f;P2=0xf0;delay(5);P0=0xff;
for(j=0;j<4;j++) p0123="">4;j++)>
{ P2=table8[j];
delay(5);
} P2=0x0f;P3=0xfe;delay(5);P2=0x1f;P3=0xfc;delay(5);P2=0x3f;
P3=0xf8;delay(5);P2=0x7f;P3=0xf0;delay(5);P2=0xff;
for(j=0;j<4;j++) p0123="">4;j++)>
{ P3=table8[j];
delay(5);
} P3=0x0f;P1=0xfe;delay(5);P3=0x1f;P1=0xfc;delay(5);P3=0x3f;
P1=0xf8;delay(5);P3=0x7f;P1=0xf0;delay(5);P3=0xff;
for(j=0;j<4;j++) p0123="">4;j++)>
{ P1=table8[j];
delay(5);
} P1=0x0f;P0=0xfe;delay(5);P1=0x1f;P0=0xfc;delay(5);P1=0x3f;
P0=0xf8;delay(5);P1=0x7f;P0=0xf0;delay(5);P1=0xff;
for(j=0;j<3;j++) p0123="">3;j++)>
{ P0=table9[j];
delay(5);
}P0=0x07;P2=0xfe;delay(5);P0=0x0f;P2=0xfc;delay(5);P0=0x1f;P2=0xf8;delay(5);
P0=0x3f;P2=0xf0;delay(5);P0=0x7f;P2=0xe0;delay(5);P0=0xff;
for(j=0;j<3;j++) p0123="">3;j++)>
{ P2=table9[j];
delay(5);
} P2=0x07;P3=0xfe;delay(5);P2=0x0f;P3=0xfc;delay(5);P2=0x1f;P3=0xf8;delay(5);
P2=0x3f;P3=0xf0;delay(5);P2=0x7f;P3=0xe0;delay(5);P2=0xff;
for(j=0;j<3;j++) p0123="">3;j++)>
{ P3=table9[j];
delay(5);
} P3=0x07;P1=0xfe;delay(5);P3=0x0f;P1=0xfc;delay(5);P3=0x1f;P1=0xf8;delay(5);
P3=0x3f;P1=0xf0;delay(5);P3=0x7f;P1=0xe0;delay(5);P3=0xff;
for(j=0;j<3;j++) p0123="">3;j++)>
{ P1=table9[j];
delay(5);
} P1=0x07;P0=0xfe;delay(5);P1=0x0f;P0=0xfc;delay(5);P1=0x1f;P0=0xf8;delay(5);
P1=0x3f;P0=0xf0;delay(5);P1=0x7f;P0=0xe0;delay(5);P1=0xff;
for(j=0;j<2;j++) p0123="">2;j++)>
{ P0=table10[j];
delay(5);
} P0=0x03;P2=0xfe;delay(5); P0=0x07;P2=0xfc;delay(5);
P0=0x0f;P2=0xf8;delay(5);P0=0x1f;P2=0xf0;delay(5);
P0=0x3f;P2=0xe0;delay(5);P0=0x7f;P2=0xc0;delay(5);P0=0xff;
for(j=0;j<2;j++) p0123="">2;j++)>
{ P2=table10[j];
delay(5);
} P2=0x03;P3=0xfe;delay(5); P2=0x07;P3=0xfc;delay(5);
P2=0x0f;P3=0xf8;delay(5);P2=0x1f;P3=0xf0;delay(5);
P2=0x3f;P3=0xe0;delay(5);P2=0x7f;P3=0xc0;delay(5);P2=0xff;
for(j=0;j<2;j++) p0123="">2;j++)>
{ P3=table10[j];
delay(5);
} P3=0x03;P1=0xfe;delay(5); P3=0x07;P1=0xfc;delay(5);
P3=0x0f;P1=0xf8;delay(5);P3=0x1f;P1=0xf0;delay(5);
P3=0x3f;P1=0xe0;delay(5);P3=0x7f;P1=0xc0;delay(5);P3=0xff;
for(j=0;j<2;j++) p0123="">2;j++)>
{ P1=table10[j];
delay(5);
} P1=0xff;
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(i=0;i<8;i++)>8;i++)>
{ P0=P0<>
P1=P1>>1;
P2=P2>>1;
P3=P3<>
delay(5);
}
P0=0xff;P1=0xff;P2=0xff;P3=0xff;
for(k=0;k<8;k++)>8;k++)>
{ P0=P0>>1;
P1=P1<>
P2=P2<>
P3=P3>>1;
delay(5);
}
}
}
关于LED,缘缘就说完了,对于上面两个程序,通过前面的内容我们已经不难理解了,只不过是多用了几个延时,for循环,总线法控制LED等这些程序,所以看这个程序时,我们要分开来一条条地看,去看看它们都代表着啥意思,缘缘祝大家学得愉快,下节我们将进军数码管,这个可与LED也有关系哦!
关于code table的问题:这就是无符号字符型表,存储在程序存储器(rom)中,不占用随机存储器(ram),这样用是因为令一些不用修改的常值不占用宝贵的ram。若将第一个值赋给i,就写i=table[0];,和普通的表的用法是一样的。所以我们要看的就是table[0]{}后面括号中的数值是多少,中括号里面的数字表示后面布大括号中的第几个数值,打个比方:i=table[2]{5,7,9,11,15};那么通过分析,我们得知,这时的i就是table大括号中的第三个数值,因为在C语言中,0表示第一位,所以2就是第三位了,那么我们可以看到,第三位是9,所以i=table[2]{5,7,9,11,15}这条语句的最后含义就是i=9.