Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LED EQU P1.7
- TIME EQU 30H
- ;********* Ustawienie TIMERów *********
- ;TIMER 0
- T0_G EQU 0 ;GATE
- T0_C EQU 0 ;COUNTER/-TIMER
- T0_M EQU 1 ;MODE (0..3)
- TIM0 EQU T0_M+T0_C*4+T0_G*8
- ;TIMER 1
- T1_G EQU 0 ;GATE
- T1_C EQU 0 ;COUNTER/-TIMER
- T1_M EQU 1 ;MODE (0..3)
- TIM1 EQU T1_M+T1_C*4+T1_G*8
- TMOD_SET EQU TIM0+TIM1*16
- ;50[ms] = 50 000[ŠS]*(11.0592[MHz]/12) =
- ; = 46 080 cykli = 180 * 256
- TH0_SET EQU 256-180
- TL0_SET EQU 0
- ;**************************************
- LJMP START
- ;********* Przerwanie Timer 0 *********
- ORG 0BH
- PUSH PSW
- PUSH ACC
- MOV TH0,#TH0_SET ;TH0 na 50ms
- DJNZ TIME,NO_1SEK ;czy minęła 1 sek
- CPL LED ;mruganie diody TEST
- MOV TIME,#20 ;odczekaj kolejny czas
- ;20*50ms=1s
- NO_1SEK:
- POP ACC
- POP PSW
- RETI
- ;**************************************
- ORG 100H
- START:
- SETB LED ;zerowanie diody
- LCALL WAIT_KEY ;czekaj na klawisz
- CJNE A,#02H,START
- MRUGANIE:
- MOV TMOD,#TMOD_SET
- MOV TH0,#TH0_SET
- MOV TL0,#TL0_SET
- SETB TR0 ;start Timera 0
- SETB EA
- SETB ET0
- CZEKAJ:
- LCALL WAIT_KEY
- CJNE A,#01H,CZEKAJ
- CLR ET0
- CLR TR0
- LJMP START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement