使用汇编语言实现C51单片机流水灯点亮效果
P0作输出口,接8只发光二极管,编写程序实现二极管循环点亮
二极管为共阳极连接时,即二极管正极已接通电源,单片机输出接阴极,所以单片机输出为低电平有效。
所以为实现二极管轮流点亮,单片机的输出应为:0FEH,0FDH,0FBH,….0FEH,每输出一种状态,需要延时0.1us.
ORG 0000H
MOV A,#0FEH
NEXT:MOV P0,A
MOV R1,#184
DEL1:MOV R2,250
DEL2:DJNZ R2.DEL2
DJNZ R1,DEL1
RL A
STMP NEXT
END
最后在解释一下为什么需要延时:
单片机的处理速度是很快的,有的时候为了让我们便于观察需要加入延时,例如一个指示灯的亮灭,如果不加入延时是看不出来的,再有就是键盘去抖动,一般按键都有20ms左右的抖动,为了更好的检测防止干扰,也需要延时一段时间在进行判断,总之延时的作用在不同的情况下也不同。