打印

51单片机 变速流水灯

[复制链接]
2456|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mengdie_1985|  楼主 | 2011-5-30 12:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大虾:
    小弟是刚学的51单片机(STC89C52RC),自己写个变速流水灯的程序,下载单片机功能实现了;但是我自己想这个程序不是我想要的。自己想写个精简的,带RL或RR的。问题:不知如何在延时子程序实现变速?
      以是我写的变速流水灯程序,在各位面前献丑了!还麻烦大虾们。师兄,师姐们多多指点!小弟,在这里谢谢你们!

;************************************************************************
;让P1口实现流水灯,延时子函数为50MS,R0参数;        
;第一个状态P1口的延时时间为400MS,
;第二个状态P1口的延时时间为350MS                       
;第三个状态P1口的延时时间为300M..........                                                         
;最后一个状态P1口的延时时间为50MS                                                                                                                  
;************************************************************************
  ORG 0000H
LJMP START
ORG 0030H
START:
MOv P1 ,#0FEH
MOV R0 ,#8
L0:
LCALL F_DELAY
DJNZ R0 ,L0
MOV P1 ,#0FDH
MOV R0 ,#7
L1:
LCALL F_DELAY
DJNZ R0 ,L1
MOV P1 ,#0FBH
MOV R0 ,#6
L2:
LCALL F_DELAY
DJNZ R0 ,L2
MOV P1 ,#0F7H
MOV R0 ,#5
L3:
LCALL F_DELAY
DJNZ R0 ,L3
MOV P1 ,#0EFH
MOV R0 ,#4
L4:
LCALL F_DELAY
DJNZ R0 ,L4
MOV P1 ,#0DFH
MOV R0 ,#3
L5:
LCALL F_DELAY
DJNZ R0 ,L5
MOV P1 ,#0BFH
MOV R0 ,#2
L6:
LCALL F_DELAY
DJNZ R0 ,L6   
MOV P1 ,#07FH
MOV R0 ,#1
L7:
LCALL F_DELAY
DJNZ R0 ,L7
LJMP START
;-----------------------------------------------------
F_DELAY:                                    
MOV R3 ,#5         ;延时时间为50MS
D1: MOV R4 ,#20
D2: MOV R5 ,#248
DJNZ R5 ,$
DJNZ R4 ,D2
DJNZ R3 ,D1
RET
;-----------------------------------------------------
END

相关帖子

沙发
ygzjyh| | 2011-5-30 13:50 | 只看该作者
程序如下修改,是否满足楼主需要:
       ORG      0000H
       LJMP     START
       ORG      0030H
START: MOV      R2,#0FEH
       MOV      R7,#8
L2:    MOV      A,R2
       MOV      P1,A
       RL       A
       MOV      R2,A
       MOV      A,R7
       MOV      R1,A
L1:    LCALL    F_DELAY
       DJNZ     R1,L1
       DJNZ     R7,L2
       AJMP     START
;-----------------------------------------------------
F_DELAY:
MOV R3 ,#5         ;延时时间为50MS
D1: MOV R4 ,#20
D2: MOV R5 ,#248
DJNZ R5 ,$
DJNZ R4 ,D2
DJNZ R3 ,D1
RET
;-----------------------------------------------------
END

使用特权

评论回复
板凳
mengdie_1985|  楼主 | 2011-6-7 14:05 | 只看该作者
谢谢你2楼,正学习中

使用特权

评论回复
地板
mengdie_1985|  楼主 | 2011-6-7 14:35 | 只看该作者
好像不是这样子哦
              ORG             0000H
                     LJMP            MAIN
                     ORG             0030H
MAIN:           MOV      A,#0FEH
                     MOV      R0,#8
                     RL         A
L:                  LCALL  F_DELAY
                     MOV     P1,A
                     DJNZ    R0,#L
                     CJNE   A,#07FH,MAIN
                     LJMP      MAIN
        这是我自己看到你发给我的程序做了简单的修改。不知道能否能实现这个效果?
      还请你多多指教!
     谢谢你!

使用特权

评论回复
5
mengdie_1985|  楼主 | 2011-6-7 14:37 | 只看该作者
ORG             0000H
                     LJMP            MAIN
                     ORG             0030H
MAIN:            MOV      A,#0FEH
                     MOV      R0,#8
                     RL         A
L:                  LCALL  F_DELAY
                     MOV     P1,A
                     DJNZ    R0,#L
                     CJNE   A,#07FH,MAIN
                     LJMP      MAIN
;-----------------------------------------------------
F_DELAY:
                   MOV R3 ,#5         ;延时时间为50MS
D1:             MOV R4 ,#20
D2:             MOV R5 ,#248
                   DJNZ R5 ,$
                   DJNZ R4 ,D2
                   DJNZ R3 ,D1
                   RET
;-----------------------------------------------------
                  END
        这是我自己看到你发给我的程序做了简单的修改。不知道能否能实现这个效果?
      还请你多多指教!
     谢谢你!

使用特权

评论回复
6
ygzjyh| | 2011-6-7 15:29 | 只看该作者
你修改的这个程序应该无法实现变速的功能吧,另外DJNZ    R0,#L这条语句有语法错误,应该没有#吧

使用特权

评论回复
7
NE5532| | 2011-6-7 20:39 | 只看该作者
不要一来就埋头于代码,先想一下宏观上怎么实现。

使用特权

评论回复
8
ygzjyh| | 2011-6-8 10:00 | 只看该作者
呵呵,NE5532对我们新人要求太高了,我们新人只能先埋头代码,熟悉指令,宏观上考虑只能放在以后,现在即时是想宏观也宏观不了啊。

使用特权

评论回复
9
NE5532| | 2011-6-8 22:11 | 只看该作者
呵呵,NE5532对我们新人要求太高了,我们新人只能先埋头代码,熟悉指令,宏观上考虑只能放在以后,现在即时是想宏观也宏观不了啊。
ygzjyh 发表于 2011-6-8 10:00


呵呵,都不知道要干嘛,写程序何用,你说对吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

38

帖子

1

粉丝