Sie sind auf Seite 1von 13

UNIVERSIDAD POLITECNICA

SALESIANA

SISTEMAS MICROPROCESADOS I

PRACTICA Nº8
MEMORIAS

ERIKA ABRIL
VINICIO DAVILA
REMIN ZAMBRANO

SEXTO SEMESTRE

1
TEMA: Memorias
OBJETIVO: Manejar memorias internas y externas con el
microcontrolador PIC
Los datos utilizados por el microcontrolador se guardan en la
memoria RAM, siempre que haya una fuente de
alimentación actual. Si tenemos que mantener los datos
para su uso posterior, tiene que ser almacenado en una
memoria permanente. Una EEPROM (E2PROM), o
programable eléctricamente borrable-memoria solo de
lectura no es un chip de almacenamiento de uso común con
microcontroladores pic para este fin. Una EEPROM puede ser
programada y borrada en múltiples ocasiones
eléctricamente se puede borrar y programar un número
determinado de veces que van desde 100000 a 1000000
pero se puede leer un número ilimitado de veces.
EJERCICIO 1:
En el siguiente ejemplo vamos a escribir una secuencia de
numeros a los sucesivos lugares de EEPROM. Despues
vamos a leer estos y salida a PORTB para verificar el
proceso.
CODIGO:
program eeprom_test
dim a as byte
dim j as byte
main:
trisb=0
for i=0 to 20
EEPROM_Write(i,i+6)
next i
delay_ms(30)
for I =0 to 20
portb= EEPROM_Read(i)
for j=0 to 200
delay_us(500)
next j
next i
end.

2
CODIGO EN MICROBASIC:

ESQUEMATICO:

ALGORITMO:
ENTRADAS:
1. Datos almacenados en EEPROM
SALIDAS:
2. Datos que serán observados en los leds (números del 1 al
20) .
PROCESOS:
1. Definir variables tipo byte
2. Configurar puerto b
3. Inicia el lazo for
4. Escribo en la EEPROM del 0 al 20
5. Retardo
3
6. Leo la EEPROM
7. Retardo
8. Regreso a la lectura
9. Regreso a la escritura
10. Fin.
DIAGRAMA DE FLUJO:

4
5
EJERCICIO 2: Escritura lectura en una memoria I2C.

Si

6
7
CODIGO DEL PROGRAMA
8
program memoriai2c
dim EE_adr, EE_data, k as byte
dim jj as word
main:
I2C_Init(100000)
TRISD=0
PORTD=$FF
I2C_Start
I2C_Wr($A2)
EE_adr=2
I2C_Wr(EE_adr)
EE_data=$AA
I2C_Wr(EE_data)
I2C_Stop
for jj=0 to 65500
nop
next jj
I2C_Start
I2C_Wr($A2)
EE_adr=2
I2C_Wr(EE_adr)
I2C_Repeated_Start
I2C_Wr($A3)
k=I2C_Rd(1)
I2C_Stop
PORTD=k
while true
nop
wend
end.

9
10
ALGORITMO:
ENTRADAS:
1. Bytes enviados a las direcciones de la memoria.
SALIDAS:
2. Visualización en leds.
PROCESOS:
1. Defino variables.
2. Inicializa en modo maestro.
3. Configuro puerto de salida
4. Inicializo el puerto
5. Señal de inicio
6. Envío de byte a 24C02
7. Direcciono la memoria
8. Envío datos a escribir
9. transmisión a memoria
10. Pausa para escribir datos.
11. Lee datos
12. señal de parada
11
13. Muestra datos en el puerto D.
14. Cierra lazo
15. fin
DIAGRAMA DE FLUJO-:

12
13

Das könnte Ihnen auch gefallen