Advertisement
MSlomiany

Assembler 22_11

Nov 22nd, 2019
213
0
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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement