SHARE
TWEET

Assembler 22_11

MSlomiany Nov 22nd, 2019 134 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         org 0000h
  2.            
  3. start1:     jnb     P0.1,s1
  4.            
  5. start2:     jnb     P0.2,s2
  6.  
  7.             jmp     start1
  8.  
  9. s1:         jnb     P0.2,s3
  10.             lcall   blink1
  11.             jmp     start1
  12. s2:         lcall   blink2
  13.             jmp     start1
  14. s3:         lcall   blink3
  15.             jmp     start1
  16.  
  17. ;funkcja opózniajaca
  18. ;pod adresem "delay"
  19. ;wywolywana poleceniem "call delay"
  20.            
  21. delay:      mov     R6,#0xFF    ;przypisz R6 FF
  22. a1:         mov     R7,#0xFF    ;przypisz R7 FF
  23. a2:         mov     R4,#0x11    ;przypisz R4 22
  24. a3:         djnz    R4,a3       ;dekrementuj R4 do 0
  25.             djnz    R7,a2       ;dekrementuj R7 o 1, dopóki nie bedzie równe 0 uzupelniaj R4
  26.             djnz    R6,a1       ;zmniejsz R6 o 1, rusz sie do A1
  27.             ret                 ;slowo kluczowe
  28.                                 ;przesuwa wskaznik do miejsca w którym nastapilo ostatnie wywolanie funkcji
  29.                
  30. ;funkcja migania dla 1 przycisku
  31.  
  32. blink1:     mov     A,#0x18
  33.             mov     P2,A
  34.             lcall   delay
  35.            
  36.             mov     A,#0x3C
  37.             mov     P2,A
  38.             lcall   delay
  39.            
  40.             mov     A,#0x7E
  41.             mov     P2,A
  42.             lcall   delay
  43.            
  44.             mov     A,#0xFF
  45.             mov     P2,A
  46.             lcall   delay
  47.  
  48.             mov     A,#0x7E
  49.             mov     P2,A
  50.             lcall   delay
  51.  
  52.             mov     A,#0x3C
  53.             mov     P2,A
  54.             lcall   delay
  55.            
  56.             mov     A,#0x18
  57.             mov     P2,A
  58.             lcall   delay
  59.            
  60.             ret
  61.  
  62. ;funkcja migania dla drugiego przycisku
  63.            
  64. blink2:     mov     A,#0x80
  65.             mov     R3,#0x08
  66. b2_a1:      mov     P3,A
  67.             lcall   delay
  68.             rr      A
  69.             djnz    R3,b2_a1
  70.             ret
  71.            
  72. ;miganie dla dwóch naraz
  73.            
  74. blink3:     mov     R3,#0x08
  75. b3_a1:      mov     A,#0xFF
  76.             mov     P1,A
  77.             lcall   delay
  78.             mov     A,#0x00
  79.             mov     P1,A
  80.             lcall   delay
  81.             djnz    R3,b3_a1
  82.             ret
  83.            
  84.        
  85. end         ;koniec
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top