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