定时顺序控制程序  -51单片机

这是我们的考试题,单片机高手速进来,....谢谢!!!!!

题目:采用80c51单片机和四只发光二极管,要求使四只发光二极管每秒亮一只,依次发光。
然后在第五秒全亮,第六秒全灭。以此顺序循环。要求采用T1计时功能方式一。
要汇编语言的,其他我就不多说咯,要完整的程序,我压上咯我仅有的家当咯!!!~~~谢谢!
很急~~~~高手请来~~~

悬赏分:30 - 解决时间:2009-12-22 16:21
;==========================
最佳答案:
;--------------------------
;程序如下:

      ORG   0000H
      SJMP  START
      ORG   001BH
      SJMP  INT_T1
;--------------------------
START:
      MOV  TMOD, #10H      ;T1定时
      MOV  TH1, #3CH
      MOV  TL1, #0B0H      ; 50ms @ 12MHz
      SETB TR1
      SETB ET1
      SETB EA
      MOV  R2, #0
      MOV  R3, #20
      CLR  PSW.5
;--------------------------
_0_:  JNB  PSW.5, $        ;不到1s,原地转移,等待
      CLR  PSW.5           ;清除标志
_1_:  CJNE R2, #1, _2_     ;R2不等于1,转移
      CLR  P1.0            ;此处编写“第一秒”,应该执行的程序
      SJMP _0_
_2_:  CJNE R2, #2, _3_     ;R2不等于2,转移
      CLR  P1.1            ;此处编写“第二秒”,应该执行的程序
      SJMP _0_
_3_:  CJNE R2, #3, _4_
      CLR  P1.2
      SJMP _0_
_4_:  CJNE R2, #4, _5_
      CLR  P1.3
      SJMP _0_
_5_:  CJNE R2, #5, _6_
      CLR  P1.4
      SJMP _0_
_6_:  CJNE R2, #6, _7_
      MOV  P1, #0          ;到了第六秒,全亮
      SJMP _0_
_7_:  MOV  P1, #255        ;到了第七秒,全灭
      MOV  R2, #0          ;秒计数器清零,下次从“第一秒”重新开始
      SJMP _0_
;--------------------------
INT_T1:                    ; 50ms中断一次
      MOV  TH1, #3CH
      MOV  TL1, #0B0H      ; 50ms @ 12MHz
      DJNZ R3, _EXIT_      ;不够20次,退出
      MOV  R3, #20
      SETB PSW.5           ;设置“到了1s”的标志位
      INC  R2              ;秒数加一
_EXIT_:
      RETI
END
;==========================

回答者:    做而论道 - 十一级   2009-12-21 23:55
提问者对于答案的评价:他的回答,非常准确!!!很合题意!!!在程序上可以看出有很高的造诣~~~而且思路也很清晰!!!

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

发布了532 篇原创文章 · 获赞 358 · 访问量 130万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览