您的位置:首页 > 其它

51单片机闪烁流水灯

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

原题网址:http://zhidao.baidu.com/question/424348066.html
--------
做而论道的回答:

这个题目,又要用定时器,又要用延时程序,...
其实,各种定时要求,只需使用一个定时器,就都可以解决。

;假设在 P0 口外接 8 个 LED,输出低电平时发光。
;下面程序,已经通过了实验,符合题目的流水灯闪烁要求.
;------------------------------------------
    ORG   0000H
    LJMP  START
    ORG   000BH
    MOV   TH0, #4CH   ;50ms@11.0592MHz
    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   ;50ms@11.0592MHz
    MOV   IE, #82H    ;开T0中断.
    MOV   R6, #20
    MOV   A, #1
    SETB  TR0
    SJMP  $
;------------------------------------------
END 
;------------------------------------------

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



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

做而论道的回答虽然满足了题目的定时要求,并且更为简单,但是由于没有按照提问者的要求来解决,所以没有被提问者看好。
有一个比较滥的程序,被选中为满意答案。感兴趣的读者可以到原题网址去看看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: