Kod: Markera allt
.include "8515def.inc"
.org $001
rjmp reset
.org INT0
rjmp select
.org INT1
rjmp doit
.org $007
rjmp sweep
Edit: Hittade namnet på vektorn.
Kod: Markera allt
.include "8515def.inc"
.org $001
rjmp reset
.org INT0
rjmp select
.org INT1
rjmp doit
.org $007
rjmp sweep
Kod: Markera allt
.include "8515def.inc"
.cseg
.org $0000
rjmp reset
;.org INT0
; rjmp select
;.org INT1
; rjmp doit
.org ovf0ADDR
rjmp sweep
.def temp=r16
.def eeadr=r17
.def delay=r18
.def baseee=r19
.def temp2=r20
.def temp3=r21
.def teckenh=r22
.def teckenl=r23
Reset:
ldi r16,high(RAMEND);RAM Stack init
out SPH,r16
ldi r16,low(RAMEND)
out SPL,r16
;Speca outputs
ser temp
out ddra, temp
out ddrb, temp
out ddrc, temp
ldi temp, 240 ;fyra övre bitarna ut
out ddrd, temp
;Init UART
ldi temp, 47
out UBRR, temp
sbi UCR, TXEN
sbi UCR, RXEN
clr temp
out portc, temp
clr eeadr
out EEARL, eeadr
;Init interrupts
ldi temp, 192
out GIMSK, temp
;Init timer0
ldi temp, 0b00000100
out TCCR0, temp
ldi temp2, 128
ldi temp3, 128
rjmp main
sei
main:
sbis pind, 3
rcall doit
sbis pind, 2
rcall select
in temp, UDR
cpi temp, 1
--> breq prog
rjmp main
sweep:
mov eeadr, baseee
clr temp
out TCNT0, temp
ldi temp2, 128
ldi temp3, 128
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portc, temp2
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
cbi pinc, 0
out portd, temp3
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portd, temp3
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portd, temp3
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
out portd, temp3
out porta, teckenh
out portb, teckenl
ror temp2
rcall loadtecken
reti
prog:
cli
in temp, UDR
cpi temp, 4
--> breq main
out EEARL, baseee
mov eeadr, baseee
sbi EECR, EEMWE
out EEDR, temp
sbi EECR, EEWE
inc eeadr
nop
nop
nop
rjmp prog
Select:
rcall delay
sbis pind, 2
rcall delay
sbis pind, 2
rjmp select
;härunder
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
inc baseee
ret
Doit:
rcall delay
sbis pind, 3
rjmp doit
rcall delay
;härunder
ret
delay:
inc delay
cpi delay, 255
brne delay
clr delay
ret
loadtecken:
sbi EECR, EERE
in teckenh, EEDR
inc eeadr
out EEARL, eeadr
sbi EECR, EERE
in teckenl, EEDR
inc eeadr
out EEARL, eeadr
ret
Kod: Markera allt
-->breq prog
rjmp main
kan bytas ut mot
brne main
rjmp prog
Kod: Markera allt
delay:
inc delay
cpi delay, 255
brne delay
clr delay
ret
Kod: Markera allt
delay:
dec delay
brne delay
ret
Kod: Markera allt
delay:
ser delay ; 255
dly:
dec delay
brne dly
ret
Kod: Markera allt
.include "8515def.inc"
.def temp=r16
.def rtcdat=r17
.def cnt=r18
.def temp2=r19
.CSEG
.org ovf0ADDR
rcall sweep
reset:
;initiera stackpekaren
ldi temp, HIGH(RAMEND)
out SPH, temp
ldi temp, LOW(RAMEND)
out SPL, temp
;Sätt upp portar
ser temp
out ddra, temp
out ddrb, temp
out ddrc, temp
ldi temp, 0b11111000
out ddrd, temp
;Init interrupts
ldi temp, 0b00000010
out timsk, temp
sei
;Init timer0
ldi temp, 0b00000100
out TCCR0, temp
rjmp main
main:
nop
rjmp main
sweep:
push temp
in temp, sreg
push temp
inc temp2
out porta, temp
pop temp
out sreg, temp
pop temp
reti