Advertisement
Dany1858

atmega: esercizio 2

Jul 1st, 2019
2,987
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*Si scriva un programma in cui si configuri la routine di servizio dell’interrupt associata al TIMER_1 in modo da utilizzare le 4 porte ABCD per visualizzare in formato binario i secondi trascorsi.
  2. Si configurino  interrupt e porte, tutti i registri devono restare invariati.*/
  3.  
  4. include "8535def.inc"   ;nomi registri
  5.  
  6. .CSEG           ;mem prog
  7. .ORG 0x000
  8.     rjmp    RESET       ;reset  0x000
  9.     reti                ;int0   0x001
  10.     reti                ;int1   0x002
  11.     reti                ;tim2 comp  0x003
  12.     reti                ;tim2 ovf   0x004
  13.     reti                ;tim1 capt  0x005
  14.     reti                ;tim1 compB 0x006
  15.     reti                ;tim1 compA 0x007
  16.     rjmp    TIMER_1     ;tim1 ovf   0x008
  17.     reti                ;tim0 ovf   0x009
  18.     reti                ;SPI STC    0x00A
  19.     reti                ;UART RX    0x00B
  20.     reti                ;UART UDRE  0x00C
  21.     reti                ;UART TX    0x00D
  22.     reti                ;ADC    0x00E
  23.     reti                ;EE_RDY 0x00F
  24.     reti                ;ANA_COMP   0x010
  25.  
  26. RESET:
  27.     ldi r16, LOW(RAMEND)
  28.     out SPL, r16
  29.     ldi r16, HIGH(RAMEND)
  30.     out SPH, r16
  31.  
  32. MAIN:
  33.     ldi r17, 0b01000000     ;set SE e idle mode
  34.     out MCUCR, r17
  35.     in r17, TIMSK
  36.     ori r17, 0x04           ;enable tim1 ovf
  37.     out TIMSK, r17
  38.     ldi r17, 0x04
  39.     out TCCR1B, r17         ;1 interrupt al sec: ck/64
  40.     ;configuro porte A, B, C e D in uscita
  41.     ser r17
  42.     out DDRA, r17
  43.     out DDRB, r17
  44.     out DDRC, r17
  45.     out DDRD, r17
  46.     clr r17                 ;portA
  47.     clr r18                 ;portB
  48.     clr r19                 ;portC
  49.     clr r20                 ;portD
  50.     clr r21                 ;zero
  51.     sei
  52.     loop:
  53.         sleep
  54.         rjmp loop
  55.  
  56. TIMER_1:
  57.     sec
  58.     adc r17, r21            ;portA
  59.     adc r18, r21            ;portB
  60.     adc r19, r21            ;portC
  61.     adc r20, r21            ;portD
  62.     reti
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement