Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .include "8535def.inc"
- .DSEG
- .ORG 0x60 ; La memoria dati inizia dall'indirizzo 0x60
- ; interrupt jump table
- .CSEG ; tutto ciò che segue riguarda la memoria programma
- .ORG 0x000
- rjmp RESET ;Reset Handle $000
- rjmp INT_0 ;INT0 Handle $001
- rjmp INT_1 ;INT1 Handle $002
- reti ;TIMER2 COMP Handle $003
- reti ;TIMER2 OVF Handle $004
- reti ;TIMER1 CAPT Handle $005
- reti ;TIMER1 COMPA Handle $006
- reti ;TIMER1 COMPB Handle $007
- reti ;TIMER1 OVF Handle $008
- reti ;TIMER0 OVF Handle $009
- reti ;SPI STC Handle $00A
- reti ;UART RX Handle $00B
- reti ;UART UDRE Handle $00C
- reti ;UART TX Handle $00D
- reti ;ADC Handle $00E
- reti ;EE_RDY Handle $00F
- reti ;ANA_COMP Handle $010
- ; settaggio stack pointer
- RESET:
- ldi r16, HIGH(ramend) ;carica in r16 il byte alto di ramend
- out SPL, r16 ; salva in SPL (8bit) il contenuto di r16 (store register to i/o location)
- ldi r16, LOW(ramend) ; salva in r16 il byte basso di ramend
- out SPH, r16 ; salva in SPH (8bit) il contenuto di r16
- ; stack pointer settato
- MAIN:
- sei ;setta I di SREG a 1
- ldi r17, 0x0F ;primi (da destra) 4 bit a 1 (sense interrupt control)
- out MCUCR, r17 ;setta int_0 e int_1 sul fronte di salita
- ldi r17, 0xC0 ;abilita int0 e int1
- out GIMSK, r17 ;i primi due bit a 1
- ldi r17, 0xFF ;tutti bit a 1
- out ddra, r17 ;porta A in uscita
- out porta, r17 ;tutti i bit di porta A attivi
- loop: rjmp loop
- INT_0:
- ldi r17, 0xFF
- out ddra, r17
- ldi r17, 0b00001111 ;in binario primi 4 bit
- out porta, r17
- clr r17
- reti
- INT_1:
- ldi r17, 0xFF
- out ddra, r17
- ldi r17, 0b11110000 ;in binario ultimi 4 bit
- out porta, r17
- clr r17
- reti
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement