几种流水灯程序.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

这样让LED灯来回流动

ORG00H

START:

MOVA,#0FFH

CLRC

MOVR1,#8

LEFT:;向左流动

RLCA

MOVP1,A

CALLDELAY

DJNZR1,LEFT

MOVR2,#7

RIGHT:;向右流动

RRCA

MOVP1,A

CALLDELAY

DJNZR2,RIGHT

JMPSTART

DELAY:;延时200毫秒

MOVR3,#20

D1:

MOVR4,#20

D2:

MOVR5,#248

DJNZR5,$

DJNZR4,D2

DJNZR3,D1

RET

END

ORG0000H

LJMPMAIN

ORG0030H

MAIN:MOVA,#0FEH;左移时〔P1.0--P1.7〕P1.0=0,低电平点亮

MOVR3,#07H;移位次数

LED_L:MOVP1,A;将移位结果赋给P1

RLA;左移

LCALLDELAY

DJNZR3,LED_L;R3=0?不为0循环,否那么顺序执行

MOVR3,#07H;为下次循环次数重新赋值

;以下为右移代码,注释同上

MOVA,#7FH

MOVR4,#07H

LED_R:MOVP1,A

RRA

LCALLDELAY

DJNZR4,LED_R

;MOVR4,#07H

SJMPLED_R

//延时子程序12M晶振1S

DELAY:MOVR0,#100

DEL2:MOVR1,#10

DEL1:MOVR2,#124

NOP

DEL0:NOP

NOP

DJNZR2,DEL0

DJNZR1,DEL1

DJNZR0,DEL2

RET

END

这样让LED灯来回流动

5只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。

;用最直接的方式实现流水灯

ORG0000H

START:MOVP1,;最下面的LED点亮

LCALLDELAY;延时60秒

LCALLDELAY;延时60秒

MOVP1,;最下面第二个的LED点亮

LCALLDELAY;延时60秒

LCALLDELAY;延时60秒

MOVP1,;最下面第三个的LED点亮〔以下省略〕

LCALLDELAY

LCALLDELAY;延时60秒

MOVP1,

LCALLDELAY

LCALLDELAY;延时60秒

MOVP1,

LCALLDELAY

LCALLDELAY;延时60秒

MOVP1,

LCALLDELAY;延时60秒

LCALLDELAY;延时60秒

LCALLDELAY;延时60秒

LCALLDELAY;延时60秒

LCALLDELAY;完成第一次循环点亮,延时约0.25秒

AJMPSTART;反复循环

;延时子程序,12M晶振延时约250毫秒

DELAY:;大约值:2us*256*256*2=260ms,也可以认为为250ms

PUSHPSW;现场保护指令(有时可以不加)

MOVR4,#240

L3:MOVR2,#00H

L1:MOVR3,#00H

L2:DJNZR3,L2;最内层循环:〔256次〕2个周期指令〔R3减一,如果比1大,那么转向L2〕

DJNZR2,L1;中层循环:256次

DJNZR4,L3;外层循环:240次

POPPSW

RET

END

随便改了一个

1357亮。2468不亮。

中间间隔一个灯

main:

movP1,#0aah

acalldelay

movP1,#55H

acalldelay

sjmpmain

delay:movr7,#

您可能关注的文档

文档评论(0)

134****8507 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档