使用汇编语言实现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左右的抖动,为了更好的检测防止干扰,也需要延时一段时间在进行判断,总之延时的作用在不同的情况下也不同。
物联沃分享整理
物联沃-IOTWORD物联网 » 使用汇编语言实现C51单片机流水灯点亮效果

发表回复