Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .include "m32def.inc"
  2.     .def Jeden = R16
  3.     .def Dwa = R17
  4. ; REJESTRY OPOZNIENIA
  5.     .def licznik1 = R18
  6.     .def licznik2 = R19
  7.     .def licznik3 = R20
  8.     .cseg
  9.     .org 0x0000
  10.     jmp Start
  11. Start:
  12.     ldi R30, 0
  13.     ldi Dwa, HIGH(RAMEND)
  14.     out SPH, Dwa
  15.     ldi Jeden, LOW(RAMEND)
  16.     out SPL, Jeden
  17.     ldi Dwa, 0xFF
  18.     out DDRA, Dwa
  19.     ldi Dwa, 0x00
  20.     out DDRB, Dwa
  21.     ldi Dwa, 0x03
  22.     out PORTB, Dwa
  23. Klawisz:        ; FUNKCJA REAGUJĄCA NA KLAWISZE
  24.     in Dwa, PINB
  25.     cpi Dwa, 3
  26.     breq Klawisz
  27.     cpi R30, 0
  28.     breq Ile
  29.     sbrs Dwa, 1
  30.     rjmp Iles
  31.     rjmp Ile
  32. Opoznienie2:        ; FUNKCJA OPOZNIAJACA O OK. 2s
  33.         ldi licznik3, 20
  34.     Loopa:
  35.         ldi licznik2, 10
  36.     Loopa0:
  37.         ldi licznik1, 250
  38.     Loopa1:
  39.         nop
  40.         dec licznik1
  41.         brne Loopa1     ; JEŚLI Licznik1 != 0 TO SKOCZ TO Loopa1
  42.         dec licznik2
  43.         brne Loopa0
  44.         dec licznik3
  45.         brne Loopa
  46.         ret
  47. Opoznienie1:    
  48.         ldi licznik3, 20
  49.     Loop:
  50.         ldi licznik2, 10
  51.     Loop0:
  52.         ldi licznik1, 125
  53.     Loop1:
  54.         nop
  55.         dec licznik1
  56.         brne Loop1
  57.         dec licznik2
  58.         brne Loop0
  59.         dec licznik3
  60.         brne Loop
  61.         ret
  62. Ile:                ; ZAPALANIE PO KOLEI 4 DIOD
  63.     rcall Opoznienie2  
  64.     rcall one
  65.     rcall Opoznienie2
  66.     rcall two
  67.     rcall Opoznienie2
  68.     rcall three
  69.     rcall Opoznienie2
  70.     rcall four
  71.     ldi R30, 1
  72.     rjmp Klawisz        ; SKOK DO ETYKIETY Klawisz
  73. Iles:               ; WYGASZANIE PO KOLEI 4 DIOD
  74.     rcall Opoznienie1
  75.     rcall three
  76.     rcall Opoznienie1
  77.     rcall two
  78.     rcall Opoznienie1
  79.     rcall one
  80.     rcall Opoznienie1
  81.     rcall zero
  82.     ldi Dwa, 0x0F
  83.     push Dwa        ; WRZUCENIE NA STOS WARTOŚCI REJESTRU Dwa
  84.     ldi Dwa, 0xF0
  85.     push Dwa
  86.     ldi R30, 0
  87.     rjmp Mig       
  88. zero:               ; GASZENIE WSZYSTKICH DIOD
  89.     ldi Dwa, 0
  90.     out PORTA, Dwa
  91.     ret
  92. one:                ; ZAPALANIE DIODY NR 1
  93.     ldi Dwa, 1
  94.     out PORTA, Dwa
  95.     ret
  96. two:                ; ZAPALANIE DIOD NR 1 I 2
  97.     ldi Dwa, 3
  98.     out PORTA, Dwa
  99.     ret
  100. three:          ; 1, 2, 3
  101.     ldi Dwa, 7
  102.     out PORTA, Dwa
  103.     ret
  104. four:               ; 1, 2, 3, 4
  105.     ldi Dwa, 15
  106.     out PORTA, Dwa
  107.     ret
  108. Mig:
  109.     rcall Opoznienie1
  110.     pop Dwa
  111.     out PORTA, Dwa
  112.     rcall Opoznienie1
  113.     pop Dwa
  114.     out PORTA, Dwa
  115.     rcall Opoznienie1
  116.     ldi Dwa, 0
  117.     out PORTA, Dwa
  118.     rjmp Klawisz
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement