PROCESSOR 16F84
RADIX DEC
INCLUDE "P16F84.INC"
LED1 EQU 0
LED2 EQU 1
ORG 0CH
;Reset Vector
;Punto di inizio del programma al reset della CPU
;Salta al corpo principale del programma. Questo jump � necessario
;per evitare tutta la parte di codice per la gestione degli
;interrupt.
ORG 00H
goto Start
;**********************************************************************
; Interrupt handler
;**********************************************************************
;Punto di inizio per tutte le subroutine di gestione degli interrupt
ORG 04H
;Accende il LED2
;Azzera nuovamente il flag RBIF
;Ritorna al programma principale
TurnOnLED2
bsf PORTB,LED2 ;Spegne LED2
bcf INTCON,RBIF
retfie
;Spegne il LED2
;Azzera nuovamente il flag RBIF
;Ritorna al programma principale
TurnOffLED2
bcf PORTB,LED2 ;Spegne LED2
bcf INTCON,RBIF
retfie
;**********************************************************************
; Programma principale
;**********************************************************************
Start:
;Commuta sul secondo banco dei registri per accedere a TRISA e TRISB
bsf STATUS,RP0
;**********************************************************************
; Loop principale
;**********************************************************************
MainLoop
call Delay ;Ritardo software
;**********************************************************************
; Subroutine
;**********************************************************************
;Subroutine di ritardo software
Delay
clrf Count
clrf Count+1
DelayLoop
decfsz Count,1
goto DelayLoop
decfsz Count+1,1
goto DelayLoop
return
END