51单片机闪烁流水灯

是51单片机的,利用定时器/计数器产生2秒定时,每当2秒到时候更换指示灯闪烁,指示灯闪烁频率为0.2秒(要用延时程序)。

原题网址:http://zhidao.baidu.com/question/424348066.html

--------

做而论道的回答:


这个题目,又要用定时器,又要用延时程序,...

其实,各种定时要求,只需使用一个定时器,就都可以解决。


;假设在 P0 口外接 8 个 LED,输出低电平时发光。

;下面程序,已经通过了实验,符合题目的流水灯闪烁要求.

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

    ORG   0000H

    LJMP  START

    ORG   000BH

    MOV   TH0, #4CH   ;[email protected]

    CPL   F0

    JNB   F0, EXIT_T0 ;不到100ms就退出.

    XRL   P0, A       ;每100ms,有一个LED亮/灭一次.

    DJNZ  R6, EXIT_T0

    MOV   R6, #20

    RL    A

EXIT_T0:

    RETI

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

START:

    MOV   TMOD, #01H  ;T0定时方式1

    MOV   TH0, #4CH   ;[email protected]

    MOV   IE, #82H    ;开T0中断.

    MOV   R6, #20

    MOV   A, #1

    SETB  TR0

    SJMP  $

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

END 

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


程序执行后,仿真截图如下:


51单片机闪烁流水灯_第1张图片


图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/cbebc79a033b5bb5d8a0656036d3d539b700bc1e.html


做而论道的回答虽然满足了题目的定时要求,并且更为简单,但是由于没有按照提问者的要求来解决,所以没有被提问者看好。

有一个比较滥的程序,被选中为满意答案。感兴趣的读者可以到原题网址去看看。



你可能感兴趣的:(流水灯)