Documente Academic
Documente Profesional
Documente Cultură
.include "m16def.inc"
.cseg
.org 0
rjmp Reset
.org $002 ;adresa pentru intreruperile pe pinul INT0
rjmp EXT_INT0
Reset:
ldi R16, HIGH(RAMEND) ;Initializam stiva
out SPH, R16
ldi R16, LOW(RAMEND)
out SPL, R16
EXT_INT0:
cli ;stergem intreruperile globale
sbis PORTC, 0 ;verificam starea pinului 0
rjmp Led
cbi PORTC, 0 ;setam 0 logic la pinul 0
Stop:
sei ;setam intreruperile globale
reti ;iesim din intrerupere
Led:
sbi PORTC, 0 ;setam 1 logic la pinul 0
rjmp Stop
2.
.include "m16def.inc"
.cseg
.org 0
rjmp Reset
.org $002 ;adresa pentru intreruperile pe pinul INT0
rjmp EXT_INT0
Reset:
ldi R16, HIGH(RAMEND) ;Initializam stiva
out SPH, R16
ldi R16, LOW(RAMEND)
out SPL, R16
EXT_INT0:
cli ;stergem intreruperile globale
rjmp Led
Stop:
sei ;setam intreruperile globale
reti ;iesim din intrerupere
Led:
sbi PORTC, 0
rcall delay
cbi PORTC, 0
rcall delay
sbic PIND, 2 ;verificam daca la pinul PD2 a fost setat 0 logic
rjmp Led
rjmp Stop
3.
.include "m16def.inc"
.cseg
.org 0
rjmp Reset
.org $002 ;adresa pentru intreruperile pe pinul INT0
rjmp EXT_INT0
Reset:
ldi R16, HIGH(RAMEND) ;Initializam stiva
out SPH, R16
ldi R16, LOW(RAMEND)
out SPL, R16
ldi R17, -1
sei
Loop: ;bucla infinita
rjmp Loop
EXT_INT0:
cli ;stergem intreruperile globale
rjmp Led
Stop:
sei ;setam intreruperile globale
reti ;iesim din intrerupere
Led:
inc R17
cpi R17, 0
breq Led1
cpi R17, 1
breq Led2
cpi R17, 2
breq Led3
cpi R17, 3
breq Led4
cpi R17, 4
breq Led5
cpi R17, 5
breq Led6
cpi R17, 6
breq Led7
cpi R17, 7
breq Led8
cpi R17, 8
brsh LedOff
Led1:
sbi PORTC, 0
rjmp Stop
Led2:
sbi PORTC, 1
rjmp Stop
Led3:
sbi PORTC, 2
rjmp Stop
Led4:
sbi PORTC, 3
rjmp Stop
Led5:
sbi PORTC, 4
rjmp Stop
Led6:
sbi PORTC, 5
rjmp Stop
Led7:
sbi PORTC, 6
rjmp Stop
Led8:
sbi PORTC, 7
rjmp Stop
LedOff:
ldi R17, 0
out PORTC, R17
ldi R17, -1
rjmp Stop