Advertisement
Guest User

Untitled

a guest
Nov 8th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .def tmp = r16
  2.  
  3. .cseg ;$000
  4.      rjmp reset
  5.  
  6. ; izazivanje prekida -> flag -> rcall $002 -> rjmp subrutina -> reti
  7.  
  8. .org $002
  9.         rjmp turnOn
  10.  
  11. .org $004
  12.    rjmp turnOff
  13.  
  14. reset:
  15.      ldi tmp, high(RAMEND)
  16.      out SPH, tmp
  17.      ldi tmp, low(RAMEND)
  18.      out SPL, tmp
  19.  
  20.      ldi tmp, 0xff
  21.      out DDRA, tmp
  22.      out PORTA, tmp
  23.  
  24.      ldi tmp, (1 << ISC11) | (1 << ISC10) | (1 << ISC01)
  25.      out MCUCR, tmp
  26.  
  27.      ldi tmp, (1 << INT1) | (1 << INT0)
  28.      out GICR, tmp
  29.  
  30.      sei
  31.      
  32. main:
  33.  
  34. rjmp main
  35.  
  36. turnOn:
  37.    
  38.     in tmp, PORTA
  39.    
  40.     clc
  41.     rol tmp
  42.  
  43.     out PORTA, tmp
  44.  
  45.     rcall delay
  46.  
  47. reti
  48.  
  49. turnOff:
  50.     in tmp, PORTA
  51.  
  52.     sec
  53.     ror tmp
  54.  
  55.     out PORTA, tmp
  56.  
  57.     rcall delay
  58. reti
  59.  
  60. delay:
  61.     clr r17
  62.     clr r18
  63.     ldi r19, 12
  64.  
  65.     delay_loop:
  66.         dec r17
  67.         brne delay_loop
  68.            dec r18
  69.            brne delay_loop
  70.                dec r19
  71.                brne delay_loop
  72. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement