【发布时间】:2016-09-19 23:02:45
【问题描述】:
我必须做一个汇编程序。我应该让一个环形计数器像这样工作:-
功能,8个LED:
(0000 000X, 0000 00X0, 0000 0X00, 0000 X000, 000X 0000, 00X0 0000, 0X00 0000, X000 0000)
我制作了一个程序,但它的工作方式如下:
(0000 000x, 0000 00xx, 0000 0xxx, 0000 xxxx, 000x xxxx, 00xx xxxx,0xxx xxxx,xxxx xxxx)
谁能帮我一一做LED灯?
我的代码
.include "m2560def.inc"
ldi r20, HIGH(RAMEND) ; R20 = high part of RAMEND address
out SPH,R2 ; SPH = high part of RAMEND address
ldi R20, low(RAMEND) ; R20 = low part of RAMEND address
out SPL,R20 ; SPL = low part of RAMEND address
ldi r20, 0xFF
out DDRA, r20
ldi r20, 0b10000001
out PORTA, r20
loop_1: ; Begin a loop
rcall Delay
lsl r20
out PORTA,r20
cpi r20,0x00 ;
breq reset
jmp loop_1
Delay:
inc r16
cpi r16,0xFF
brne del_1
ret go back to loop
del_1:
inc r21
cpi r21,0xFF
brne del_1
jmp Delay
reset:
ldi r20, 0xFF
out PORTA, r20
ret
【问题讨论】:
-
如果下面的答案解决了您的问题,请接受 - 请参阅What should I do when someone answers my question?