标题: [求助]各位大虾,我的跑马灯已经做了两种不同的形式了,恳求第三种? [打印本页]
作者: 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 |