LED:P2表示;P2_0=0表示第一个灯亮,如果P2_0=0表示的是第一个灯灭。
其他表示有:P2=0xFE//二进制数1111 1110;
延时:用(空)语句的循环造成延迟;
流水灯:可以用延时功能;P2_0=0;P2_1=0;类推;
其中可以使用>>或者是<<使得0的位置变化
比如:0x7F//0111 1111
0x7F>>1:则是得到0011 1111(0x3F)可以用于一盏一盏点亮。
~取反:FF//1111 1111 取反以后0000 0000;直接全亮;
当0x01//0000 0001 ~(0x01)得到FE//1111 1110 点亮第一盏灯。
当位移和取反在一起有妙用,~(0x01<<1)可以得到1111 1101点亮第二盏。
Sbit 定义问题,有头文件可以直接使用。
还可以用循环与自增/自减的方式来控制其开灯顺序,
{
LED NUM=0
NUM++
P2_NUM=0也可以打开。
}
那么当我们进行编写代码的时候,应该注意有时候NUM会大于7,此时我们应该对其进行归零或者进行NUM--,这样让LED灯可以返回。请结合C语言知识与自身想象力,发挥单片机的功能。
开关问题:P3表示
值得注意的是:独立按键的从左到右第一个即P3_0=K2;P3_1=K1
同样的:我们可以用if语句还进行判断,将其与LED的开关练习在一起。
当我们P3=0时,就是我们按下开关的时候,P3=1时,是我们松开的时候(1表示高电电频,0表示第电频)
因此有简单的物理知识我们看出当摁下独立案件是,可以能出现延时,那我们怎么抵消呢?用Delay抵消掉真空期,避免重复按下独立按键而没用反应的问题。
言归正传:当我们使用if(P3_0=0)
{P2_1=0;
}
写法时,我们可以得到按下P3就可以得到P2_1灯亮,从而建立关系。
同时我们可以使用&& || 来进行更高级一些的控制。
两个独立按键控制一个灯,或两个按键均可以控制一个灯。