; *************************************************
LIST P=18F2520 ; Directiva para definir el procesador
#include <P18F2520.INC> ; Definicion de SFRs para el procesador
; *************************************************
; Bits de Configuracion
; Microchip ha cambiado el formato para definir los bits de configuracion, por favor
; revisar el archivo P18F4550.INC para informacion adicional de la notacion
; Abajo hay algunos ejemplos
; ******** Configuracion del Oscilador **********
CONFIG OSC = INTIO67
CONFIG WDT = OFF
CONFIG PBADEN = OFF
CONFIG MCLRE = OFF
CONFIG LVP = OFF
CONFIG DEBUG = OFF
; ********* Otros bits de configuracion **********
CONFIG PWRT = ON ; PWRT habilitado
; ********* Bits de proteccion ******************
CONFIG CP0 = OFF ; los bloques del codigo de programa
CONFIG CP1 = OFF ; no estan protegidos
CONFIG CP2 = OFF
CONFIG CP3 = OFF
CONFIG CPB = OFF ; Sector Boot no esta protegido
CONFIG CPD = OFF ; La EEPROM no esta protegida
; *************************************************
; Definicion de variables
; Estas variables son necesarias solo si las interrupciones de baja prioridad son usadas.
; Mas variables podrian se necesarias para almacenar otros SFRs usados en las rutinas de
; interrupcion.
CBLOCK 0x00
DatoRx
ENDC
; *************************************************
; Vector de Reset.
ORG 0x0000
bra Inicio ; Se va al inicio del codigo principal
; *************************************************
; Vector de interrupcion de alta prioridad
ORG 0x0008
bra Inter ;
;
; *************************************************
;
Inter:
; ********* El codigo de la interrupcion de baja prioridad va aqui ***
btfss PIR1,RCIF ; No => interupcion de recepcion?
RETFIE, FAST
movf RCREG, W ; Guardamos el caracter
movwf DatoRx
movwf PORTB
RETFIE, FAST
; *************************************************
; Comienzo del programa principal
Inicio:
bsf OSCCON, IRCF0 ; Seleccion de reloj
bsf OSCCON, IRCF1 ; Interno de 8 MHz.
bsf OSCCON, IRCF2 ; ...
movlw B'00001111'
movwf ADCON1 ; Todos los pines como I/O digitales
; ********* Configuracion del EUSART ************
clrf PORTA ; Initializa PORTA a
clrf LATA ; todas como salida.
clrf TRISA ; ...
clrf PORTB ; Initializa PORTB a
clrf LATB ; todas como salida.
clrf TRISB ; ...
movlw D'0' ; Cargamos los registros SPBRGH:SPBRG con los
movwf SPBRGH ; valores de la tabla 1 para la velocidad deseada
movlw D'25'
movwf SPBRG
BSF TXSTA, BRGH ; Activo alta velocidad
movlw B'10010000' ; Habilitamos el puerto seria (Bit 7), modo 8 bits
movwf RCSTA ;(bit 6), y habilitamos el receptor (Bit 4).
bsf PIE1, RCIE ; Habilitamos la interrupcion de recepcion
bsf INTCON, GIE
bsf INTCON, PEIE ; Habilitamos las interrupciones para los perifericos
Espera:
bra Espera
; *************************************************
END