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
这个是我写的跑马灯程序,没如返有左右振荡,自己参考参考加上去吧
ORG0000H
开机上电主程序入口
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)