Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- org 0
- sjmp START
- org 03H ; miejsce w pamięci odpowiedzialne za zewnętrzne przerwania
- ljmp EXTP
- org 0BH ; miejsce w pamięci odpowiedzialne za przerwania zegarowe
- ljmp EXTT
- START:
- setb ex0 ; włączenie zewnętrznych przerwań
- setb et0 ; właczenie przerwań zegarowych
- setb p3.2 ; ustawienie rejestru odpowiedzialnego za manipulację migającą diodą
- setb ea ; wyłączenie innych przerwań
- setb it0 ; włączenie przerwania zewnętrznego it0
- mov tmod, #02H ; ustawienie zegara 0 w tryb 2
- mov th0, #20 ; ustawienie częstotliwości zegara 0
- setb tr0 ; włączenie zegara 0
- mov r1, #0 ; ustawienie rejestru przechowującego obecny stan 'naciśnięcia'
- mov r2, #0 ; ustawienie rejestrów które kontrolują częstotliwość zegara
- mov r3, #0 ;
- LOOP_MAIN:
- ; kod programu
- sjmp LOOP_MAIN
- EXTP:
- mov a, r1 ; zmiana stanu na rejestrze r1
- cpl a ;
- mov r1, a ;
- reti
- EXTT:
- setb tr0 ; reset stanu zegara
- mov a, r1 ; sprawdzenie stanu 'naciśnięcia'
- jz EXTEX ;
- inc r2 ; ustawienie 'migania' co ~1 sekundę
- cjne r2, #255, EXTEX ;
- mov r2, #011 ;
- inc r3 ;
- cjne r3, #17, EXTEX ;
- mov r3, #0 ;
- cpl p1.2 ; 'mignięcie' (zmiana stanu na p1.2)
- EXTEX:
- reti
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement