marți, 15 ianuarie 2013
seriala
mov TMOD, #20H
clr SM0
setb SM1
setb REN
setb TR1
mov SBUF, #03H
ASTEAPTA_TX: jnb TI, ASTEAPTA_TX
END
intrerupere_led_1s
org 0000H
jmp MAIN
org 000BH
djnz R0, RETURN
jmp ISR_TIMER0
org 0030H
MAIN:
mov A, #01H
mov R0, #14H
mov TMOD , #01H
setb ET0
setb EA
setb TR0
jmp $
ISR_TIMER0: mov P0, A
rl A
mov R0, #14H
RETURN: reti
end
int_ext_schimbare_sens_led
org 0000H
jmp MAIN
org 000BH
djnz R0, RETURN
jmp ISR_TIMER0
org 0003H
jmp INT_SRV
org 0030H
MAIN:
mov A, #01H
mov R0, #14H
mov TMOD , #01H ;setare mod de lucru timer
setb ET0
setb EA
setb TR0
setb EX0 ;setare flag intrerupere
clr 00H
jmp $
ISR_TIMER0: jb 00H, ROTATE_RIGHT
rl A
mov P0, A
mov R0, #14H
reti
ROTATE_RIGHT: rr A
mov P0, A
mov R0, #14H
reti
INT_SRV: cpl 00H ;setare flag propriu intrare intrerupere
reti
RETURN: reti
end
intrerupere_ext_led
org 0000H
jmp MAIN
org 000BH
djnz R0, RETURN
jmp ISR_TIMER0
org 0003H
jmp INT_SRV
org 0030H
MAIN:
mov A, #01H
mov R0, #14H
mov TMOD , #01H ;setare mod de lucru timer
setb ET0
setb EA
setb TR0
setb EX0 ;setare flag intrerupere
clr 00H
jmp $
ISR_TIMER0: jb 00H, ROTATE_RIGHT
rl A
mov P0, A
mov R0, #14H
reti
ROTATE_RIGHT: rr A
mov P0, A
mov R0, #14H
reti
INT_SRV: setb 00H ;setare flag propriu intrare intrerupere
reti
RETURN: reti
end
aplicatie_intreruperi
org 0000H
jmp MAIN
org 000BH
jmp ISR_TIMER0
org 0030H
MAIN: mov A, #01H
mov TMOD , #01H
setb ET0
setb EA
setb TR0
jmp $
ISR_TIMER0: mov P0, A
rl A
reti
end
aplicatie_leduri
mov TMOD , #01H
mov 30H , #01H
mov 31H , #02H
mov 32H , #04H
mov 33H , #08H
mov 34H , #0FFH
led: mov R1 , #0FEH
mov 35H , R1
mov P0 , 35H
call DELAY
djnz R1, led
mov R0, #80H
mov @R0 , #10H
mov R0, #81H
mov @R0 , #20H
mov R0, #82H
mov @R0 , #40H
mov R0, #83H
mov @R0 , #80H
START_LED: mov P0 , 30H
call DELAY
mov P0 , 34H
call DELAY
mov P0 , 31H
call DELAY
mov P0 , 34H
call DELAY
mov P0 , 32H
call DELAY
mov P0 , 34H
call DELAY
mov P0 , 33H
call DELAY
mov P0 , 34H
call DELAY
mov R0, #80H
mov p0, @R0
call DELAY
mov P0 , 34H
call DELAY
mov R0, #81H
mov p0, @R0
call DELAY
mov P0 , 34H
call DELAY
mov R0, #82H
mov p0, @R0
call DELAY
mov P0 , 34H
call DELAY
mov R0, #83H
mov p0, @R0
call DELAY
mov P0 , 34H
call DELAY
call led
jmp START_LED
DELAY: mov TH0 , #00H
mov TL0 , #00H
mov A , #14H
setb TR0
WAIT_TF0: jnb TF0 , $
clr TF0
dec A
jnz WAIT_TF0
clr TR0
ret
END
Abonați-vă la:
Postări (Atom)