Electgpl

8051 - Toggle GPIO mediante EXT_INT0

Jun 20th, 2017
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;-------------------------------------------------------------------------------------
  2. ;Programa que realiza el toggle de una salida cuando entra una interrupción externa
  3. ;en el canal de interrupción 0 por flanco.    
  4. ;
  5. ;                Registro IE      
  6. ; EA | -- | -- | ES | ET1 | EX1 | ET0 | EX0 |  
  7. ;  0    0    0    0     0     0     0     1  
  8. ;  
  9. ;                Registro IP      
  10. ; -- | -- | PT2 | PS | PT1 | PX1 | PT0 | PX0 |  
  11. ;  0    0     0    0     0     0     0     0    
  12. ;
  13. ;                Registro TCON      
  14. ; TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |  
  15. ;  0     0     0     0     0     0     0     1    
  16. ;                
  17. ;Archivo: toggleEXTINT0.s03
  18. ;Fecha de realización: 19/06/2017
  19. ;Autor: Sebastian Caccavallo - electgpl.blogspot.com.ar
  20. ;Modificación:
  21. ;-------------------------------------------------------------------------------------
  22.             ORG     0000H       ;Dirección del origen del programa
  23.             JMP     SETUP       ;Salta al Inicio del programa
  24. ;            
  25.             ORG     0003H       ;Dirección de interrupción externa INT0
  26.             JMP     EXT_INT0    ;Salta a subrutina de interrupción
  27. ;
  28. FLAG        EQU     50H         ;Flag donde de presencia de flanco
  29. ;            
  30. SETUP:      MOV     TCON,#01H   ;Configura IT0 externa por flanco
  31.             MOV     IE,#01H     ;Configura EX0 Interrupción Externa 0
  32.             MOV     IP,#00H     ;Des-habilita prioridad de interrupt
  33.             SETB    EA          ;Habilita interrupción global
  34.             CLR     FLAG        ;Flag a FALSE o 0
  35. ;            
  36. LOOP:       JNB     FLAG,LOOP   ;Espera a que FLAG sea TRUE
  37.             JMP     $           ;Queda aquí de forma indeterminada
  38.  
  39. EXT_INT0:   SETB    FLAG        ;Pone FLAG a TRUE al entrar en la interrupción  
  40.             CPL     P2.2        ;Toggle en la salida P2.2
  41.             RETI                ;Retorno de interrupción
  42. ;            
  43.             END                 ;Fin del programa
Advertisement
Add Comment
Please, Sign In to add comment