标题: [求助]各位大虾,我的跑马灯已经做了两种不同的形式了,恳求第三种? [打印本页]

作者: city    时间: 2008-6-13 23:26
标题: [求助]各位大虾,我的跑马灯已经做了两种不同的形式了,恳求第三种?

各位大虾:
      小妹,我好不容易弄来了两种跑马灯,还差一种从两面到中间或者中间到两面的,请各位大虾帮我接着写下去吧~~~最好附带注释的,想学一下  ^ ^ 谢谢.
  
 

  ORG 0000h
      ljmp 0030h
      org 0030h
START: MOV A,#0FEH
LOOP:  MOV R0,#7
LOOPL: MOV P1,A
       RL A
       CALL DELAY
       DJNZ  R0,LOOPL
       MOV R0,#7
LOOPR: mov r1,#7
       MOV P1,A
       RR  A
       CALL DELAY
       DJNZ r1,LOOPR
       LJMP LOOP
DELAY: MOV R7,#200
D1:    MOV R6,#250
       DJNZ R6,$
       DJNZ R7,D1
       RET
       END

     此致
   敬      礼

 


                                                                                 菜鸟小妹(上)
作者: city    时间: 2008-6-14 18:23

哪位大虾行行好啊~~~~~复一下贴啊````


作者: xb_crazyman    时间: 2008-6-14 23:29

c语言的要不?


作者: yysmcu    时间: 2008-6-15 10:09
从两边到中间亮灯程序如下,从中间到两边只要把顺序依次反过来就行了。
ORG     0000H
AJMP    START                  
ORG     0030H    
START: MOV     P1,#7EH    ;点亮LED0和LED7
            ACALL    DELAY     ;延时亮一定时间
            MOV    P1,#0BDH
            ACALL    DELAY
            MOV    P1,#0DBH
            ACALL    DELAY
            MOV    P1,#0E7H   ;点亮LED3和LED4
            ACALL    DELAY
            AJMP     START
DELAY: MOV R7,#100
DEL1: MOV     R6,#200
         DJNZ     R6,$
         DJNZ     R7,DEL1
         RET
         END

方法不止一种,仅供参考。

作者: yysmcu    时间: 2008-6-15 10:17

如果要实现从两边到中间接着又从中间到两边的话,就可以建立一个TABLE,用查表的方法来实现,LZ认真想想不难的,或你直接在亮完中间两灯后继续反过来向外依次亮灯也能实现。


作者: city    时间: 2008-6-15 12:28
 TO  xb_crazyman   
C语言的不行啊,还没学到  .呵~~~

作者: city    时间: 2008-6-15 12:29
TO yysmcu
     太感谢拉,等我试一下先```

作者: admin    时间: 2008-6-15 12:35
http://www.51hei.com/mcu/537.html  这里还有一个
作者: city    时间: 2008-6-15 14:22
 TO  admin
    谢谢,向左向右的我有了

作者: city    时间: 2008-6-15 14:32
 TO 各位:
    我在运行时,显示有错误,但是读不懂它的错误指令,请帮忙我看一下
error A9 :syntax error
error A9 :syntax error
error a3: illegal character
error a3: illegal character
error a3: illegal character

                   是这条程序出什么问题了吗??
                START:      MOV     P1,#7EH 
[此贴子已经被作者于2008-6-15 14:36:11编辑过]

作者: admin    时间: 2008-6-15 14:49
city先生,,我在如下帖子中解答了你的问题。
http://www.51hei.com/bbs/dpj-171-1.html
[此贴子已经被作者于2008-6-15 14:50:08编辑过]

作者: city    时间: 2008-6-16 13:33
我已经把两个程序合并好了,然后为了演示方便,需要开关,想请教一下各位,应该怎么加开关?

程序如下:
  ORG 0000h
      ljmp 0030h
      org 0030h
START: MOV A,#0FEH
LOOP:  MOV R0,#7
LOOPL: MOV P1,A
       RL A
       CALL DELAY
       DJNZ  R0,LOOPL
       MOV R0,#7
LOOPR: mov r1,#7
       MOV P1,A
       RR  A
       CALL DELAY
       DJNZ r1,LOOPR
       LJMP LOOP
       ORG     0000H
       AJMP    main                                
main: mov p1,#7eh
       acall delay
       mov p1,#0bdh
       acall delay
       mov p1,#0dbh
       acall delay
       mov p1,#0e7h
       acall delay
       ajmp start
delay: mov r7,#100
 del1:mov r6,#200
       djnz  r6,$
       djnz r7,del1
       ret
       end

作者: city    时间: 2008-6-16 13:34

再麻烦各位指点一下了 


作者: admin    时间: 2008-6-16 16:15

开关加在电源上撒


作者: city    时间: 2008-6-16 18:58
TO admin
   
 
在程序上不用反映出来吗?

作者: yysmcu    时间: 2008-6-16 23:29

ORG     0000h
AJMP    START
ORG     0030h
START:JNB    P3.2,LOOP  ;该按钮按下执行左右移流水灯

           JNB    P3.3,main   ;该按钮按下执行两边到中间的流水灯

           SJMP    START
LOOP:MOV     A,#0FEH
         MOV      R0,#7
         JNB    P3.3,main
LOOPL:MOV     P1,A
          RL     A
          ACALL     DELAY
          DJNZ     R0,LOOPL
          MOV     R1,#7
LOOPR:MOV     P1,A
           RR       A
           CALL    DELAY
           DJNZ    R1,LOOPR
           LJMP LOOP
main:JNB    P3.2,LOOP
        mov p1,#7eh
        acall delay
        mov p1,#0bdh
        acall delay
        mov p1,#0dbh
        acall delay
        mov p1,#0e7h
        acall delay
        ajmp main
delay: mov r7,#100
del1:mov r6,#200
       djnz  r6,$
       djnz r7,del1
       ret
       end

[此贴子已经被作者于2008-6-16 23:32:27编辑过]

作者: yysmcu    时间: 2008-6-16 23:35
注意实验时上面程序最好全部用大写字母编程,以免编译出错
作者: city    时间: 2008-6-17 12:43

 TO yysmcu
      
       是的,,明白了,等我烧进去试一下.


作者: city    时间: 2008-6-18 13:11
TO 各位大虾
   以上程序都已经烧进芯片了,但是实际运行有问题,它只有左边连续的三盏灯会亮,而且好像还不会动?是不是晶振有问题?听说晶振都很脆弱的。麻烦各位帮我看一下,可能出什么问题了。
作者: yysmcu    时间: 2008-6-18 14:33

你先测测是不是LED烧了?
还有可以在Keil C 中模拟单步运行,看看IO口状态变化情况啊


作者: city    时间: 2008-6-18 19:06

TO yysmcu
   知道拉,原来是有连接芯片底座的焊点没有焊好,现在可以亮了,也可以走了,但是它的走法不是我程序所编的那样,好像由左到右,它是亮一盏,然后左移一格连续两盏同时亮,再一盏一盏亮下去.
  我发现P2.6(A789S52芯片的输出口)和P2.5;P2.1和P2.0总时同时亮同时灭,看上去又不像是短路喔.
    这又是什么问题拉,请教,请教?


作者: city    时间: 2008-6-20 19:48
to 各位
   我的跑马灯已经制作出来了,可能是有点虚焊,电路有点不稳定.不过程序总算能用.谢谢各位的帮助,尤其是回过我帖子的各位大虾.
         谢谢

            本贴完!

作者: fzh520520    时间: 2008-7-21 15:03
!!!!!
作者: 单片机万岁    时间: 2008-8-16 16:23
跑马等挺好玩的~~~
作者: CHAOWU6636    时间: 2008-9-24 20:08

我燒了,運行OK,就延時不夠。LED閃的太快!


作者: admin    时间: 2009-6-3 02:59

大家继续做新的出来啊


作者: j183048114    时间: 2010-12-14 08:59
路过拿走




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1