Advertisement
ervinne

Interrupt

Oct 17th, 2012
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MPASM 1.41 KB | None | 0 0
  1.     #INCLUDE "P16F84A.INC"
  2.  
  3.     __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
  4.  
  5.     ERRORLEVEL -302
  6.  
  7.     ;----------------------------------------------------------
  8.     ;   variable declaration
  9.     COUNTERA    EQU H'10'
  10.     COUNTERB    EQU H'11'
  11.     COUNTER     EQU H'12'
  12.  
  13.     ORG     0x00
  14.     GOTO    START
  15.  
  16.     ORG     0x04
  17.     GOTO    ON_INT
  18.  
  19. START
  20.     ;----------------------------------------------------------
  21.     ;   register configurations
  22.     BSF     STATUS, RP0
  23.     MOVLW   0x00
  24.     MOVWF   TRISA
  25.  
  26.     MOVLW   B'00000001'
  27.     MOVWF   TRISB
  28.  
  29.     MOVLW   0x07
  30.     MOVWF   OPTION_REG
  31.  
  32.     BCF     STATUS, RP0
  33.     BSF     INTCON, GIE
  34.     BSF     INTCON, INTE
  35.  
  36.     CLRF    PORTA
  37.     CLRF    PORTB
  38.  
  39. RESTART
  40.     MOVLW   0x00
  41.     MOVWF   PORTA
  42.     CALL    DELAY
  43.  
  44.     MOVLW   0x09
  45.     MOVWF   COUNTER
  46.  
  47. COUNT
  48.     ;---------------------------------------------------------
  49.     ;   loop of the program
  50.     MOVF    COUNTER, W
  51.     MOVWF   PORTA
  52.     CALL    DELAY
  53.  
  54.     DECFSZ  COUNTER, F
  55.     GOTO    COUNT
  56.     GOTO    RESTART
  57.  
  58. DELAY
  59.     ;---------------------------------------------------------
  60.     ;   create a delay
  61.     MOVLW D'1'
  62.     MOVWF COUNTERA
  63.  
  64. LOOPA
  65.     CALL DELAYA
  66.     DECFSZ COUNTERA, 1
  67.     GOTO LOOPA
  68.     RETLW 0x00
  69.  
  70. DELAYA
  71.     MOVLW D'15'
  72.     MOVWF COUNTERB
  73.  
  74. LOOPB
  75.     CALL DELAYB
  76.     DECFSZ COUNTERB, 1
  77.     GOTO LOOPB
  78.     RETLW 0x00
  79.  
  80. DELAYB
  81.     CLRF TMR0
  82.     BCF INTCON, T0IF
  83. LOOPC
  84.     BTFSS INTCON, T0IF
  85.     GOTO LOOPC
  86.     RETLW 0x00
  87.  
  88. ON_INT
  89.     ;CALL   DELAY
  90.     ;CALL   DELAY
  91.     BCF     INTCON, INTF
  92. INT_LOOP
  93.     MOVF    COUNTER, W
  94.     MOVWF   PORTA
  95.     BTFSS   PORTB, 0
  96.     GOTO    INT_LOOP
  97.     GOTO    COUNT
  98.    
  99.     END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement