Advertisement
Guest User

Untitled

a guest
Oct 15th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. .include "m32def.inc" ;deklaracja biblioteki
  2. ldi R16, HIGH(RAMEND) ;załadowanie adresu końca pamięci[stała RAMEND - zdefiniowana w pliku m32def.inc](starszej jego część)
  3. out SPH, R16 ;załadowanie zawartości rejestru R16 do SPH(starszej części)
  4. ldi R16, LOW(RAMEND) ;załadowanie (mlodszej czesci) adresu konca pamieci sram do R16
  5. out SPL, R16 ;przepisanie R16 do SPL - rejestru który przechowuje wskażnik końca stosu(młodszej czesci)
  6.  
  7. sbi DDRD, 7 ;ustawienie DDR7 jako port wyjsciowy
  8. sbi PORTD, 7 ;ustawienie stanu wysokiego na PORTD7 (dioda wl)
  9.  
  10. cbi DDRB, 0 ;ustawienie DDR0 jako port wejsciowy
  11. sbi PORTD, 0 ;podciągnięcie linii wejściowej
  12.  
  13. petla: ;etykieta glowna (petla nieskonczona)
  14. sbic PIND, 0 ;sprawdzenie czy bit 0 jest wyzerowany (wcisniety przycisk), jesli nie to pomin kolejna instrukcje
  15. rjmp nb ;skocz do nb
  16. sbi PORTD, 7 ;ustawienie stanu wysokiego na PORTD7 (dioda wl)
  17. rjmp petla
  18.  
  19. nb:
  20. cbi PORTD, 7 ;ustawienie stanu niskiego na PORTD7 (dioda wyl)
  21. rcall delay ;skok względny do etykiety delay
  22. sbi PORTD, 7 ;ustawienie stanu wysokiego na PORTD7 (dioda wl)
  23. rcall delay
  24. rjmp petla
  25.  
  26. delay: ;etykieta, ktorej zawartosc ma na celu opoznienie kolejnych instrukcji o 250 ms
  27. ldi R16, $A7
  28. WGLOOP0:
  29. ldi R17, $02
  30. WGLOOP1:
  31. ldi R18, $F8
  32. WGLOOP2:
  33. dec R18 ;pomniejsz o 1
  34. brne WGLOOP2 ;skocz jesli nie jest rowne
  35. dec R17
  36. brne WGLOOP1
  37. dec R16
  38. brne WGLOOP0
  39.  
  40. nop ;nic nie rob (ostatnie przejscie petli)
  41. ret ;powrot do miejsca z ktorego nastapil skok
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement