单片机跑马灯汇编程序详细解释

单片机跑马灯汇编程序详细解释,第1张

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

主程序开始,A中初始化成全1

CLR

C

c清零

MOV

R2,

#08H

R2左转循环计数器

LOOP:

RLC

A

<<C+A+C<<带进位循环左悔逗蚂移,A中的内容在8此循环中从0位到7位依次变0

MOV

P2,

A

送到P2,使P2从0位到7位依次点亮LED

CALL

DELAY

单片机运行很快,为了能看到灯的变化,必须延迟,把速度降下来

DJNZ

R2,

LOOP

R2每次减1后判断是否=0,8次后=0程序才会下行,否则会跳回LOOP

MOV

R2,#07H

R2右转循环计数器

LOOP1:

RRC

A

>>C+A+C>>带进位循环右移,A中的内容在8此循环中从7位到0位依次变0

MOV

P2,

A

送到P2,使P2从7位到0位依次点亮LED

CALL

DELAY

和上个循环一样,延时

DJNZ

R2,

LOOP1

R2每次减1后判断是否=0,7次后=0程序才会下行,否则会跳回LOOP1

JMP

START

跳回程序起始位置重复下一个循环

DELAY:

MOV

R3,

#20延碧埋时子程序,这个应该不用解释了吧

D1:

MOV

R4,

#200

D2:

MOV

R5,

#248

DJNZ

R5,

$

DJNZ

R4,

D2

RET

END


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存