Advertisement
Guest User

Untitled

a guest
Dec 7th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. org 0
  2.  sjmp START
  3. org 03H         ; miejsce w pamięci odpowiedzialne za zewnętrzne przerwania
  4.     ljmp EXTP
  5. org 0BH         ; miejsce w pamięci odpowiedzialne za przerwania zegarowe
  6.     ljmp EXTT
  7.  
  8. START:
  9.     setb ex0        ; włączenie zewnętrznych przerwań
  10.     setb et0        ; właczenie przerwań zegarowych
  11.     setb p3.2       ; ustawienie rejestru odpowiedzialnego za manipulację migającą diodą
  12.     setb ea         ; wyłączenie innych przerwań
  13.     setb it0        ; włączenie przerwania zewnętrznego it0
  14.     mov tmod, #02H  ; ustawienie zegara 0 w tryb 2
  15.     mov th0, #20    ; ustawienie częstotliwości zegara 0
  16.     setb tr0        ; włączenie zegara 0
  17.  
  18.     mov r1, #0      ; ustawienie rejestru przechowującego obecny stan 'naciśnięcia'
  19.     mov r2, #0      ; ustawienie rejestrów które kontrolują częstotliwość zegara
  20.     mov r3, #0       ;
  21.  
  22. LOOP_MAIN:
  23.     ; kod programu
  24.     sjmp LOOP_MAIN
  25.  
  26. EXTP:
  27.     mov a, r1               ; zmiana stanu na rejestrze r1
  28.     cpl a                    ;
  29.     mov r1, a                ;
  30.     reti
  31. EXTT:
  32.     setb tr0                ; reset stanu zegara
  33.     mov a, r1               ; sprawdzenie stanu 'naciśnięcia'
  34.     jz EXTEX                 ;
  35.     inc r2                  ; ustawienie 'migania' co ~1 sekundę
  36.     cjne r2, #255, EXTEX     ;
  37.     mov r2, #011             ;
  38.     inc r3                   ;
  39.     cjne r3, #17, EXTEX      ;
  40.     mov r3, #0               ;
  41.     cpl p1.2                ; 'mignięcie' (zmiana stanu na p1.2)
  42.     EXTEX:
  43.     reti
  44. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement