led跑马灯程序请写出每行代码的含义是什么

led跑马灯程序请写出每行代码的含义是什么,第1张

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

参考:>

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

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

电路:

一般的单片机 和 TTL集成电路芯片,都是灌电流能力强,拉电流能力极弱。

为此,应该用输出低电平,来带动负载。

而你的电路,是用高电平带动LED发光的,仿真,也许还行;实际的电路,LED是不会亮的。

以上就是关于led跑马灯程序请写出每行代码的含义是什么全部的内容,包括:led跑马灯程序请写出每行代码的含义是什么、求一个跑马灯的C语言编程、用汇编语言怎么编写跑马灯程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9820939.html

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

发表评论

登录后才能评论

评论列表(0条)

保存