目标
程序启动后, 8 只发光二极管先整体闪烁 3 次(即亮→暗→亮→暗→亮→暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行软件编程原理为:
- 8 只发光二极管整体闪烁 3 次亮灯:向 P2 口送入数值 0;灭灯:向 P2 口送人数值 0FFH ;闪烁 3 次:循环 3 次;闪烁快慢:由软件延时时间决定。
- 根据开关状态控制灯亮或灯灭开关控制灯:将 P3 口(即开关状态)内容送入 P2 口;无限持续:无条件循环。
所需芯片
- AT89C51
- CAP
- CAP-ELEC
- CRYSTAL
- LED-RED
- RES
- SWITCH
开始动手
流程图

仿真图

源码
汇编
    ORG     0000H
    LJMP    START
    ORG     0030H
START:
    MOV     R5, #3
SUBROUTINE:
    MOV     P2, #0
    LCALL   DELAY
    MOV     P2, #0FFH
    LCALL   DELAY
    DJNZ    R5, SUBROUTINE
DLOOP:
    MOV     P2, P3
    LJMP    DLOOP
;延时子程序,延时100毫秒
DELAY:
    MOV     R0, #100
D1:
    MOV     R1, #50
D2:
    MOV     R2, #25
    DJNZ    R2, $
    DJNZ    R1, D2
    DJNZ    R0, D1
    RET
ENDC语言代码比较简单,就不写了。
仿真结果

诗情画意
龟虽寿 曹操 神龟虽寿,犹有竟时。 腾蛇乘雾,终为土灰。 老骥伏枥,志在千里。 烈士暮年,壮心不已。 盈缩之期,不但在天; 养怡之福,可得永年。 幸甚至哉,歌以咏志。 
 
                     
                     
                        
                        