每分钟改变一次方向的流水灯

来源:互联网 发布:电子表格相同数据排序 编辑:程序博客网 时间:2024/05/16 11:18

;设计一个流水灯控制电路(汇编语言,定时器延时),系统晶振为12MHz。

;编程实现第1 min 8灯从左至右轮流闪烁,每盏点亮时间为1 s,

;第2 min 8灯从右至左闪烁,第3 min再从左至右,周期交替。


电路如下:


每分钟改变一次方向的流水灯 - 非著名博主 - 电子信息角落

图片链接:

http://xiangce.baidu.com/picture/detail/22c9dadf59e9f34bd9ec3a72efcf7fd6dd2a907c


汇编语言程序如下:


;P0 外接 8 个 LED

;流水灯, 每秒流动一位

;每分钟, 换一次方向

;用定时器控制延时


    ORG   0000H

    JMP   MAIN

;----------------------------------

MAIN:              ;初始化

    MOV   TMOD, #01H

    MOV   TH0, #(65536 - 62500) / 256

    MOV   TL0, #(65536 - 62500) MOD 256

    SETB  TR0

    MOV   A, #127

;----------------------------------

M_LOOP:            ;循环

    MOV   R3, #0

OUT:

    MOV   P0, A

    INC   R3

    CJNE  R3, #60, NEXT ;不到60, 就去流水

    CPL   F0       ;到了, 就改变方向

    SJMP  M_LOOP   ;从头开始

;----------------------------------

NEXT:              ;下面是等待一秒钟

    MOV   R2, #8   ;16

WAIT:

    JNB   TF0, $

    MOV   TH0, #(65536 - 62500) / 256

    MOV   TL0, #(65536 - 62500) MOD 256

    CLR   TF0

    DJNZ  R2, WAIT ;不到一秒就转移

    JB    F0, LLL  ;选择左右方向

    RR    A

    SJMP  OUT

LLL:

    RL    A

    SJMP  OUT

;----------------------------------

END


题目网址:http://zhidao.baidu.com/question/541087764.html

提问者评价:谢谢!


0 0
原创粉丝点击