Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- button BIT P3.0 ;przycisk ktory odpowiada za uruchomienie odliczania czasu
- timer_control BIT TR0 ;bit ktory odpowiada za kontrole zegara 0
- timer_overflow BIT TF0 ;bit przepelnienia zegara 0
- main:
- JB button, main ;czekam az uzytkownik wcisnie przycisk który pozwoli na odliczenie zadanego czasu
- set_timer: ;ustawianie zegara do odmierzania 0,05s
- MOV TH0,#76
- MOV TL0,#01
- MOV TMOD,#01
- start_timer:
- SETB timer_control ;start zegara
- count_time:
- JB button, stop_timer ;sprawdz czy zatrzymano odliczanie czasu, jezeli tak to skocz do etykiety "stop_timer"
- JNB timer_overflow, count_time ;sprawdz czy wystepuje przepelnienie, jezeli tak to skocz do etykiety "add_to_acc"
- add_to_acc:
- CLR timer_control ;zatrzymanie zegara 0
- INC A ;inkrementacja wartosci w akumulatorze
- CLR timer_overflow ;czyszczenie flagi przepelnienia
- JMP set_timer ;skok do etykiety "set_timer"
- stop_timer:
- CLR timer_control ;zatrzymanie zegara 0
- MOV R0, A ;przeniesienie wartosci akumulatora do rejestru R0
- MOV R1, A ;przeniesienie wartosci akumulatora do rejestru R1
- led_blinking:
- MOV TH0,#76
- MOV TL0,#01
- MOV TMOD,#01 ;16-bitowy timer 0
- SETB timer_control ;startujemy timer 0
- JNB timer_overflow,$ ;Jezeli TF0 nie jest ustawione to nie ma przepelnienia, przebieg jalowy
- CLR timer_overflow ;czyszczenie flagi przepelnienia
- DJNZ R1,led_blinking
- MOV A,R3
- RL A
- INC A
- MOV R3,A
- MOV P2,R3
- MOV A,R0
- MOV R1,A
- SJMP led_blinking
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement