P2
This commit is contained in:
71
Abgaben/P1/Hazinedar_3108590_ARBKVS_1.asm
Normal file
71
Abgaben/P1/Hazinedar_3108590_ARBKVS_1.asm
Normal file
@@ -0,0 +1,71 @@
|
||||
;
|
||||
; P1.asm
|
||||
;
|
||||
; Created: 12.10.2023 22:54:52
|
||||
; Author : Safak Hazinedar
|
||||
;
|
||||
|
||||
.include "m328pdef.inc"
|
||||
|
||||
.org 0x00
|
||||
rjmp init
|
||||
|
||||
init:
|
||||
ldi r16, LOW(RAMEND) ; Stack einrichten für Befehle
|
||||
out SPL, r16
|
||||
ldi r16, HIGH(RAMEND)
|
||||
out SPH, r16
|
||||
|
||||
ldi r17, 0xFF
|
||||
out DDRD, r17 ; Data direction register D (D0-D7) as output
|
||||
|
||||
ldi r18, 0x03
|
||||
out DDRB, r18 ; Data direction register B (B0-B1) as output
|
||||
|
||||
ldi r17, 0x01 ; initialize D0
|
||||
|
||||
portD_left:
|
||||
out PORTD, r17
|
||||
rcall delay
|
||||
lsl r17 ; shift left until PortD is 0x00
|
||||
cpi r17, 0x00 ;
|
||||
brne portD_left
|
||||
out PORTD, r17 ; D0-D7 = 0
|
||||
ldi r18, 0x01 ; switch to PortB
|
||||
|
||||
portB_left:
|
||||
out PORTB, r18 ; D8 = 1
|
||||
rcall delay
|
||||
lsl r18
|
||||
cpi r18, 0x02 ; length of PortB is variable
|
||||
brne portB_left
|
||||
; D9 = 1 => last LED turned on
|
||||
portB_right:
|
||||
out PORTB, r18
|
||||
rcall delay
|
||||
lsr r18 ; turn direction
|
||||
cpi r18, 0x00 ; shift right until PortB is 0x00
|
||||
brne portB_right
|
||||
out PORTB, r18 ; turn of PortB or rather D8 & D9
|
||||
ldi r17, 0x80
|
||||
|
||||
portD_right:
|
||||
out PORTD, r17 ; turn on D7
|
||||
rcall delay
|
||||
lsr r17
|
||||
cpi r17, 0x01 ; shift right until D0 is reached
|
||||
brne portD_right
|
||||
jmp portD_left ; turn direction
|
||||
|
||||
delay:
|
||||
ldi r19, 17
|
||||
ldi r20, 60
|
||||
ldi r21, 204
|
||||
|
||||
L1: dec r21
|
||||
brne L1
|
||||
dec r20
|
||||
brne L1
|
||||
dec r19
|
||||
brne L1
|
||||
ret
|
||||
Reference in New Issue
Block a user