Facebook
From Wojciech, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 229
  1. .include "m32def.inc"
  2.  
  3. START:
  4. sbi PORTD, 0
  5. cbi DDRD, 0
  6. sbi PORTD, 6
  7. sbi DDRD, 6
  8. //sbi DDRD, 6 // ustawiamy jako linie wyjściową pin D6
  9. //cbi DDRD, 0 // ustawiamy jako linie wejsciowa pin D0
  10. //sbi PORTD, 0 // podciaganięcie portu D0
  11.  
  12. Petla:
  13. SBIS PIND, 0 // jeżeli przycisk jest wciśnięty pomin nastepna linie
  14. cbi PORTD, 6 // ustawia stan wysoki linii portu aby zaswiecic diode
  15. SBIS PIND, 0 // jezeli przycisk jest wcisniety pomin nastepna linie
  16. rjmp Petla // skok do Petla
  17.  
  18. SBIS PIND, 6 // jezeli dioda jest zaswiecona pomijamy nastepna linie
  19. sbi PORTD, 6 // ustawia stan wysoki linii portu aby zaswiecic diode
  20.              // delay
  21. ldi R17, 100 // załaduj 100 do R17
  22. delay:
  23. ldi R16, 249 // załaduj 249 do R16
  24. nop          // bez operacji
  25. delay2:
  26. nop
  27. dec R16 //R16=R16-1 zmniejszamy wartosc rejestru o jeden
  28. brne delay2 // jezeli ostatnia wartosc dzialania arytmetycznego
  29.             // byla rozna od 0 przeskocz do delay2
  30. dec R17 // zmniejszamy wartosc rejestru o jeden
  31. brne delay // jezeli ostatnia wartosc dzialania artymetycznego
  32.            // byla rozna od 0 przeskocz do delay
  33. SBIC PIND, 6 // jezeli dioda jest zgaszona pomijamy nastepna linie
  34. cbi PORTD, 6 // ustawia stan wysoki linii portu aby zgasić diode
  35. ldi R17,100
  36. delay3:
  37. ldi R16, 249
  38. nop
  39. delay4:
  40. nop
  41. dec R16 //R16=R16-1 zmniejszamy wartosc rejestru o jeden
  42. brne delay4 // jezeli ostatnia wartosc dzialania arytmetycznego
  43.             // byla rozna od 0 przeskocz do delay2
  44. dec R17 // zmniejszamy wartosc rejestru o jeden
  45. brne delay3 // jezeli ostatnia wartosc dzialania artymetycznego
  46.            // byla rozna od 0 przeskocz do delay
  47. rjmp Petla // skok do Petla