You are on page 1of 3

WRITE+READ EEPROM

; Configuración inicial

BOTON VAR portb.3

SALIDA VAR portb.2

LED VAR portb.0

ENTRADA VAR portb.1

INDEX VAR BYTE

AUX VAR BYTE

INCLUDE "modedefs.bas"

DEFINE OSC 8

; Configuracion de Medicion Analogica

DEFINE ADC_BITS 8 ' Set number of bits in result

DEFINE ADC_CLOCK 3 ' Set clock source (rc = 3)

DEFINE ADC_SAMPLEUS 50 ' Set sampling time in microseconds

TRISA = 255 ' Set PORTA to all input

ADCON1 = 2 ' PORTA is analog

@ device pic16F819, INTRC_OSC_NOCLKOUT, WDT_OFF, PWRT_ON,


MCLR_OFF, BOD_OFF, LVP_OFF, CPD_OFF, WRT_OFF , DEBUG_OFF,
CCPMX_ON , PROTECT_OFF

ASM

bsf status.5 ;se mueve al banco del osccon

movlw 0x74 ;el acc en el código que setea el osccon a 8mhz

movwf osccon ;se pasa el acc al osscon (queda seteado)

bcf status.5 ;se vuelve al banco 0

ENDASM
;Programa

PAUSE 1000

SEROUT SALIDA,N9600,["LUEGO DE PRESIONAR UNA TECLA TIENE 2


SEGS.",10,13,"SI PRESIONA EL BOTON LEE, SI NO GRABA",10,13,"REINICIE
EL PIC CUANDO SE ENCIENDA EL LED POR 2 VEZ",10,13]

SERIN ENTRADA,N9600,[],AUX

HIGH LED

PAUSE 2000

LOW LED

IF (BOTON=0) THEN

INDEX=0

REPEAT

ADCIN 0,AUX

WRITE INDEX,AUX

INDEX=INDEX+1

PAUSE 1000

UNTIL (INDEX>10)

HIGH LED

RESET:

GOTO RESET ;El programa se atasca acá, hasta que se resetea el PIC

ELSE

INDEX=0

REPEAT

READ INDEX,AUX

SEROUT SALIDA,N9600,[#AUX,10,13]

INDEX=INDEX+1

PAUSE 50

UNTIL (INDEX>10)
HIGH LED

GOTO RESET

ENDIF

You might also like