Está en la página 1de 2

EJERCICIO MANEJANDO LA MEMORIA EEPROM LECTURA Y ESCRITURA EN LA MEMORIA EEPROM

Con este programa aprenderemos a escribir datos en la memoria EEPRON y respectivamente leerlos Los datos que se escriben en esta memoria estn en la direccin 0. Al comienzo del programa definimos tipo de dispositivo y etiquetas de registros que sern usados en el programa. Colocamos en el vector 0 una instruccin de salto al comienzo del programa Con ORG 5 saltamos el vector de interrupcin, situado en la posicin 4, comenzando el programa en la posicin 5. El programa comienza con un bucle de funcin. Si RA4 esta en 0 se realizara una operacin de lectura y si esta en la posicin 1 se har la operacin de lectura. Si la operacin elegida en de escritura se colocara en la posicin 0 de la memoria EEPRON los datos presentes en la puerta A, previamente una mascara para eliminar los bit de mayor peso. El valor se obtendr con los interruptores de la puerta A. Para ello configuramos la puerta A como entradas y llamamos a la rutina DATO, que coge el dato de la puerta A, y la rutina ESCRIBEE_EEPROM que lo escribe en la memoria EEPROM. La rutina de escritura coloca el dato ledo en la direccin 0. Luego del proceso de escritura se colocado que se nos indique el fin de la escritura poniendo en alto todas las salidas de la puerta B, seguidamente se entra en un bucle infinito esperando que Reset para poder leer lo escrito o volver a escribir. Si se ha elegido la funcin de lectura es llamada la rutina de LEE_EEPROM en la direccin 0 de la memoria. Una ves ledo el dato de coloca el valor en la puerta B y se entra en un bucle infinito para esperar Reset y poder leer o escribir nuevamente.

R9
10k

R10
10k

R11
10k

R12 R13
10k 10k

SW3 SW4 SW5


16 15

D1 D2 LED-RED D3 LED-GREEN U2
OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/T 0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIC16F84A 17 18 1 2 3 6 7 8 9 10 11 12 13

D4 LED-BLUE D5 LED-YELLOW R1 R2 330R R3 330R R4 330R R5 330R R6 330R R7 330R R8


330R 330R

SW6

D6 LED-GREEN D7 LED-GREEN D8 LED-GREEN


LED-GREEN

SW7

1 ESCRITURA 0 LECTURA

SW2
SW-SPST

;************************************************** ; Programa de lectura y escritura DE EEPROM list p=16f84 ;Tipo de dispositivo

; Zona de etiquetas STATUS PORTA PORTB RP0 INTCON EQU EQU EQU EQU EQU 0X03 0X05 0X06 0X05 0X0B 88h 89h 08h 09h 5 6 2 1 0 ; Registro de estado ;Puerta A ;Puerta B

EECON1 EQU EECON2 EQU EEDATA EQU EEADR EQU RP0 EEIE WREN WR RD EQU EQU EQU EQU EQU

; Etiquetas de registros ; para la eeprom

; Registros de propsito general ADRL DATO EQU EQU 0X0D 0X0E ; Registro de propsito general ; Registro de propsito general ; Vector de Reset ; Saltamos el vector interrupcin.

ORG goto ORG

0 INICIO 5

; Comienzo del programa INICIO: bsf movlw movwf clrf bcf STATUS, RP0 ; Paso al BANCO 01 b'00011111' PORTA PORTB ;Declarando Salidas PORTB STATUS, RP0 ;Paso al BANCO 00 PORTA,4 ESCRITURA LECTURA ; 1 escritura ;0 lectura

BUCLE_01 btfsc goto goto

ESCRITURA LEE_PUERTA_A bcf STATUS, RP0 movlw b'00000000' movwf EEADR movf PORTA, W movwf EEDATA ESCRIBEE_EEPROM bcf STATUS,RP0 bsf bsf movlw movwf movlw movwf bsf STATUS,RP0 EECON1,WREN h'55' EECON2 h'AA' EECON2 EECON1,WR

;SE va escribir en la dileccin ; 00000000 de la MEMORIA EEPROM ; LEENDO TODA LA PUERTA A ;REGISTRO DE DATOS A ESCRIBIR ; Banco 0 ; iniciamos la secuencia de escritura ; Banco 1 ;NEGANDO LAS INTERUPCIONES

; ordenamos la escritura ;Si regresa a cero a ACAVANDO LA ESCRITURA ;TERMINO EL PRECESO ; Banco 1

TERMINO BTFSC EECON1,WR GOTO TERMINO bCf STATUS,RP0

movlw b'11111111' ; indica la terminacin de escritura movwf PORTB goto FIN ;___________________________________________________________________________ LECTURA movlw movwf call movf movwf goto LEE_EEPROM bcf b'00000000' ADRL LEE_EEPROM DATO, W PORTB FIN ;direccin PARA SER LEIDA ;Se va leer la direccin 00000000 ;llamada a rutina de lectura ;trae el dato ledo ;muestra lo ledo en PORTB

STATUS,RP0

; Banco 0 ;direccin para ser leda ; iniciamos la secuencia de escritura ; Banco 1 ; Banco 0 ; aqu se encuentra el dato ledo

movFW ADRL movwf EEADR bsf STATUS,RP0 bsf EECON1,RD bcf STATUS,RP0 MOVFW EEDATA movwf DATO RETURN FIN:

goto FIN END ;Fin de programa ;***************************************************************

También podría gustarte