Advertisement
Szewo

Untitled

Apr 17th, 2021
2,424
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. button BIT P3.0         ;przycisk ktory odpowiada za uruchomienie odliczania czasu
  2. timer_control BIT TR0   ;bit ktory odpowiada za kontrole zegara 0
  3. timer_overflow BIT TF0  ;bit przepelnienia zegara 0
  4.  
  5. main:
  6.     JB button, main                     ;czekam az uzytkownik wcisnie przycisk który pozwoli na odliczenie zadanego czasu
  7.    
  8.     set_timer:                          ;ustawianie zegara do odmierzania 0,05s
  9.         MOV TH0,#76
  10.         MOV TL0,#01
  11.         MOV TMOD,#01
  12.        
  13.     start_timer:
  14.         SETB timer_control              ;start zegara
  15.    
  16.     count_time:
  17.         JB button, stop_timer           ;sprawdz czy zatrzymano odliczanie czasu, jezeli tak to skocz do etykiety "stop_timer"
  18.         JNB timer_overflow, count_time  ;sprawdz czy wystepuje przepelnienie, jezeli tak to skocz do etykiety "add_to_acc"
  19.    
  20.     add_to_acc:
  21.         CLR timer_control               ;zatrzymanie zegara 0
  22.         INC A                           ;inkrementacja wartosci w akumulatorze
  23.         CLR timer_overflow              ;czyszczenie flagi przepelnienia
  24.         JMP set_timer                   ;skok do etykiety "set_timer"
  25.        
  26.     stop_timer:
  27.         CLR timer_control               ;zatrzymanie zegara 0
  28.         MOV R0, A                       ;przeniesienie wartosci akumulatora do rejestru R0
  29.         MOV R1, A                       ;przeniesienie wartosci akumulatora do rejestru R1
  30.        
  31.     led_blinking:
  32.         MOV TH0,#76
  33.         MOV TL0,#01
  34.         MOV TMOD,#01                    ;16-bitowy timer 0
  35.         SETB timer_control              ;startujemy timer 0
  36.         JNB timer_overflow,$            ;Jezeli TF0 nie jest ustawione to nie ma przepelnienia, przebieg jalowy
  37.         CLR timer_overflow              ;czyszczenie flagi przepelnienia
  38.         DJNZ R1,led_blinking                   
  39.         MOV A,R3
  40.         RL A
  41.         INC A
  42.         MOV R3,A
  43.         MOV P2,R3
  44.         MOV A,R0
  45.         MOV R1,A
  46.         SJMP led_blinking
  47. END
  48.  
  49.  
  50.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement