用汇编语言怎么编写跑马灯程序?

用汇编语言怎么编写跑马灯程序?,第1张

跑马灯程序用汇编是很好实现的,只要用好循环移位指令就可以,以下是程序。\x0d\x0aORG 0000H\x0d\x0aLJMP MAIN\x0d\x0aORG 0030H\x0d\x0aMAIN:\x0d\x0aMOV A,#0FEH\x0d\x0a\x0d\x0aLOOP:\x0d\x0aMOV P1,A;将控制字送端口\x0d\x0a\x0d\x0aRL A;控制字循环左移\x0d\x0a\x0d\x0aLCALL DELAY;延时\x0d\x0a\x0d\x0aSJMP LOOP\x0d\x0a\x0d\x0aDELAY:延时大概1秒\x0d\x0aMOV R2,#10\x0d\x0a\x0d\x0aDLY1:\x0d\x0aMOV R3,#200\x0d\x0aDLY2:\x0d\x0aMOV R4,#250\x0d\x0a\x0d\x0aDJNZ R4,$\x0d\x0a\x0d\x0aDJNZ R3,DLY2\x0d\x0a\x0d\x0aDJNZ R2,DLY1\x0d\x0a\x0d\x0aRET\x0d\x0a\x0d\x0aEND

跑马灯程序用汇编是很好实现的,只要用好循环移位指令就可以,以下是程序。

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:

MOV A,#0FEH

LOOP:

MOV P1,A;将控制字送端口

RL A;控制字循环左移

LCALL DELAY;延时

SJMP LOOP

DELAY:延时大概1秒

MOV R2,#10

DLY1:

MOV R3,#200

DLY2:

MOV R4,#250

DJNZ R4,$

DJNZ R3,DLY2

DJNZ R2,DLY1

RET

END

答疑解难   跑马灯程序

                   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

硬件接口电路如下:

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


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

原文地址: http://outofmemory.cn/yw/11076300.html

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

发表评论

登录后才能评论

评论列表(0条)

保存