C51单片机LED灯的控制

2019-04-15 19:26发布

点亮流水灯共有三种方式https://blog.csdn.net/qq_41379312/article/details/788353941、一盏一盏的操作:即先令第一盏灯亮,延时,再令它熄灭,延时,再让下一盏灯重复操作即可;(略)2、利用数组方法点亮:先定义一个数组,其中存入相应8盏灯亮的数字(即0xfe,0xfd,0xfb,0xf7,0xef,oxdf,0xbf,0x7f:依次代表只有第一盏灯,第二盏灯....亮),再利总线,按顺序点亮八盏灯;(后面对数码管的控制将用类似的方法)
3、利用移位方法点亮(这种方法,程序看起来简单些,但实质上还是一个一个的控制)。下面是位移方法的程序共阳,P2端控制。下面的代码是两种灯得控制:#include typedef unsigned char uchar; typedef unsigned int uint; void delay(uint num) { uint x=110; for(num;num>0;num--) for(x;x>0;x--); } void LED1()//LED共阳接法,接在P2端,流水灯 { uint i; uchar led; led=0xfe; for(i=1;i<=8;i++) { P2=led; delay(10000); led<<=1; } } void LED2()//LED共阳接法,接在P2端,灯间隔亮 { uint i; uchar led; led=0xff; led=0x01; for(i=1;i<=8;i++) { P2=~led; delay(5000); led<<=1; } } void main() { //LED1(); LED2(); }