如果你要用3个按钮,那就每个实现1种
如果你用的是1个按钮,那就1个实现3种
-
单灯流水,P*口(灯的接口) 循环左移命令 _crol_
比方:led1=0xff_crol_(led1,1)P1=0xff 这样就OK
双灯:也是一样的道理,把_crol_(led1,2)改下2就可以了
注意左移命令,在头文件 intrins.h 里面
随机流水? 这点有点不明白意思,是随机亮灭,还是怎么样个随机流水呢
原理就是用RAND 产生随机数,然后付给LED灯IO口就可以了
1、单片机AT89C51的P2口接8个发光二极管,让这8个发光二极管显示闪烁功能,即八灯亮2S,熄灭3S,如此循环。参考程序:
ORG 0000H
start: MOV P1,#0H
CALL delay
MOV P1,#0FFH
CALL delay
CALL delay
LJMP start
delay:
MOV R7,#200
d2: MOV R6,#250
d1: DJNZ R6,d1
DJNZ R7,d2
RET
END
200*250次*2*1us=1000ms=1s
2、单片机AT89C51的P1口接8个发光二极管,让这8个发光二极管能够双灯左移之后再双灯右移,
形成霹雳灯的效果,如此循环5次后全灭,延时0.5S。灯右移,形成霹雳灯的效果,
如此循环5次后全灭。延时0.5S。
共阳接法。二极管阴极分别串限流电阻510欧姆接到P2口。阳极全部接5V。P2=0xfC
for(i=0i<5i++)
{
while(P2!=(0xcf))
{
delay()
P2<<=1P2+=1
}
while(P2!=(0xcf))
{
delay()
P2>>=1P2+=0x80
}
}
P2=0xff
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)