单片机流水灯闪烁问题

呵呵,又是一个流水灯的问题 !要求如下:
利用51单片机的定时器/计数器产生2秒定时,每到2秒时就更换指示灯闪烁;
指示灯闪烁频率为0.2秒,要用延时程序。
----
分析:
又要用定时器,又要用延时程序,这有些浪费资源。
况且,还要求做到它们的时间是整数倍的关系,这也是很难弄准确的。
其实,多个时间控制的问题,只用一个定时器,就都可以解决。

;假设在 P0 口外接 8 个 LED,P0 输出低电平时发光。
;下面程序,已经通过了实验,符合题目的流水灯闪烁要求。

    ORG   0000H
    LJMP  START
    ORG   000BH
    MOV   TH0, #4CH   ;50ms@11.0592MHz
    CPL   F0
    JNB   F0, END_T0  ;不到100ms就退出.
    XRL   P0, A       ;每隔100ms,有一个LED亮/灭一次.
    DJNZ  R6, END_T0
    MOV   R6, #20
    RL    A
END_T0:
    RETI

START:
    MOV   TMOD, #01H  ;T0定时方式1
    MOV   TH0, #4CH   ;50ms@11.0592MHz
    MOV   IE, #82H    ;开T0中断.
    MOV   R6, #20
    MOV   A, #1       ;仅有一个LED需要闪烁.
    SETB  TR0         ;启动T0
    SJMP  $

END
-----------------
回答者:做而论道  2012-5-16 23:38
题目网址:http://zhidao.baidu.com/question/424348066.html
-----------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值