Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Un palazzetto ha un automatismo conta posti a 12 bit
- la parte bassa viene rappresentata sulla porta B
- la parte alta sulla porta A
- si predisponga il conteggio ad un solo contatore ma con due pulsanti,
- ingresso monte e ingresso valle.
- Si utilizzi INT0 e INT1 attivi bassi
- raggiunto l overflow disabilitare le interrupt e visualizzare 0xFF su porta C e D*/
- .include "8535def.inc" ;nomi registri
- .CSEG ;memoria programma
- .ORG 0x000
- rjmp RESET ;0x000
- rjmp INT_0 ;0x001
- rjmp INT_1 ;0x002
- reti ;0x003
- reti ;0x004
- reti ;0x005
- reti ;0x006
- reti ;0x007
- reti ;0x008
- reti ;0x009
- reti ;0x00A
- reti ;0x00B
- reti ;0x00C
- reti ;0x00D
- reti ;0x00E
- reti ;0x00F
- reti ;0x010
- RESET:
- ldi r16, LOW(RAMEND)
- out SPL, r16
- ldi r16, HIGH(RAMEND)
- out SPH, r16
- MAIN:
- ldi r17, 0x40 ;solo bit 6 attivo
- out MCUCR, r17 ;abilito SE, sleep mode idle e ex int down
- ldi r17, 0xC0 ;abilito int0 e int1
- out GIMSK, r17
- ser r17 ;tutti bit a 1
- out DDRA, r17
- out DDRB, r17 ;porte impostate in uscita
- clr r17 ;contB
- clr r18 ;contA
- clr r19 ;aux
- sei
- end:
- sleep
- rjmp end
- INT_0:
- rcall incrementa
- reti
- INT_1:
- rcall incrementa
- reti
- incrementa:
- sec ;carry a 1
- adc r17, r19 ;inc B
- adc r18, r19 ;inc A
- cpi r18, 0x10 ;overflow (12 bit soli)
- breq pieno
- out PORTB, r17
- out PORTA, r18
- ret
- pieno:
- clr r17
- out GIMSK, r17 ;disabilito int0 e int1
- ser r17
- out DDRC, r17
- out DDRD, r17
- out PORTC, r17
- out PORTD, r17
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement