用51单片机(汇编语言写)写一个跑马灯程序??知道的帮个忙写写。

用51单片机(汇编语言写)写一个跑马灯程序??知道的帮个忙写写。,第1张

答疑解难   跑马灯程序

                   ORG     0000H

                   LJMP     MAIN

                   ORG     0100H

MAIN:            JB          P0.7,MAIN  ;等待开始键按下

                   LCALL    YS             ;按键延时

                    JB         P0.7,MAIN

                    MOV     A,#7FH       ;是开始键按下  则跑马灯开始运行

LL:                 MOV     P1,A

                    LCALL    YS           ;显示延时

                    RR          A             ;循环右移一位

                    JB         P0.6, LL     ;没有按下停止键  则继续跑马

                    LCALL    YS            ;按键延时

                    JB          P0.6,LL         ;按下停止键 则停止跑马;否则继续跑马

                    MOV      A,#0FFH

                    MOV      P1,A

                    SJMP     MAIN            ;转到程序开始处,等待开始键的按下

YS:                MOV    R7,#150          ;延时子程序

YL:                MOV    R6,#200

YY:                NOP

                   DJNZ    R6,YY

                   DJNZ    R7,YL

                   RET

                   END

硬件接口电路如下:

      哈哈   还满意吗   就请给俺选择(满意选项)吧

ORG

0000H

SJMP

START

ORG

0030H

START:

MOV

A,

#0FEH

先让第一个发光二极管点亮

LOOP:

MOV

P1,

A

从P1口输出到发光二极管

MOV

R1,

#100

延时0.5秒

DEL1:

MOV

R2,

#200

DEL2:

MOV

R3,

#7

DEL3:

DJNZ

R3,

DEL3

DJNZ

R2,

DEL2

DJNZ

R1,

DEL1

RL

A

左移一位,点亮下一个发光二极管

LJMP

LOOP

END

这个是我写的跑马灯程序,没有左右振荡,自己参考参考加上去吧

org 0000h

ajmp start

org 0030h

start:

mov a,#0ffh

clr c

mov r2,#08h 循环八次。

loop: rlc a 带进位左移。

mov p1,a 输出到P1口。

call delay 延时一段时间

djnz r2,loop 反复循环

mov r2,#07h 再往回循环。

loop1: rrc a 带进位右移

mov p1,a 输出到P1口。

call delay 延时一段时间

djnz r2,loop1 反复循环

jmp start 重新开始

delay: mov r3,#20 延时子程序

d1: mov r4,#20

d2: mov r5,#248

djnz r5,$

djnz r4,d2

djnz r3,d1

ret

end


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11351327.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存