Sistemas con Microprocesadores II

1

El PIC16F628 PIC16F628 Memoria de datos EEPROM Memoria de programa FLASH Rebotes en los pulsadores Teclado matricial Display de 7 segmentos Teclado Matricial con display de 7 segmentos

2

Laminillas complementarias Memoria de datos EEPROM

Mauricio L´ opez V. (Ingenier´ ıa)

Microcontroladores PIC

Noviembre, 2016

1 / 79

El PIC16F628

PIC16F628

El PIC16F628

Mauricio L´ opez V. (Ingenier´ ıa)

El PIC16F628 . . .

Noviembre, 2016

2 / 79

El PIC16F628

Memoria de datos EEPROM

Memoria de datos EEPROM Memoria de 128 bytes (128 x 8) (PIC16F877 , PIC16F84 ). Esta es adecuada para guardar datos que deban mantenerse almacenados, inclusive a´ un si se quite la fuente de alimentaci´ on. Se pueden realizar dos tipos de operaci´ on: Operaci´ on de lectura. Operaci´ on de escritura o grabaci´ on.

Un ciclo de grabaci´ on dura unos 10 ms. Al escribir en una posici´ on de memoria ya ocupada, autom´ aticamente se borra el contenido que hab´ıa y se introduce el nuevo dato, por lo que no hay comando de borrado. Soporta un mill´ on de ciclos de escritura/borrado y guarda la informaci´ on inalterada durante m´ as de 40 a˜ nos. Mauricio L´ opez V. (Ingenier´ ıa)

Memoria EEPROM . . .

Noviembre, 2016

3 / 79

El PIC16F628

Memoria de datos EEPROM

Memoria de datos EEPROM

Esta memoria no forma parte del espacio direccionable y no es accesible de manera directa para su lectura y su escritura. Se direcciona de manera indirecta a trav´es de las registros de las funciones especiales (SFR). Hay cuatro SFR usados para la lectura y la escritura de esta memoria de datos EEPROM EECON1 (bits de control) EECON2 (no implementado f´ısicamente, usado para iniciar la lectura o la escritura) EEDATA (dato le´ıdo o para ser grabado) EEADR (direcci´ on a acceder)

Una de las aplicaciones se encuentra en los sistemas de seguridad, para poder modificar y almacenar un c´ odigo de seguridad diferente.

Mauricio L´ opez V. (Ingenier´ ıa)

Memoria EEPROM . . .

Noviembre, 2016

4 / 79

El PIC16F628

Memoria de datos EEPROM

Memoria de datos EEPROM

EEDATA (EEPROM Data Register ). Contiene los bytes que se van a escribir o que se han le´ıdo. EEADR (EEPROM Address Register ). Contiene la direcci´ on a acceder para lectura o escritura. Ocupan las direcciones de un mapa que comienza en la posici´ on 00H (termina en la FFH, 256 localidades). EECON1 (EEPROM Control Register 1 ). Sus bits definen el modo de funcionamiento de esta memoria. Los bits RD y WR indican respectivamente lectura o escritura. S´ olo se requiere ponerlos a “1”, ya que se borran autom´ aticamente cuando la operaci´ on de lectura o escritura se ha completado. EECON2 (EEPROM Control Register 2 ). No implementado f´ısicamente. Se emplea como dispositivo de seguridad durante el proceso de escritura, para evitar las interferencias en el largo intervalo de tiempo que precisa su desarrollo.

Mauricio L´ opez V. (Ingenier´ ıa)

Memoria EEPROM . . .

Noviembre, 2016

5 / 79

El PIC16F628

Memoria de datos EEPROM

Memoria de datos EEPROM

(PIC16F877 , PIC16F84 ). bit7:4 Sin implementar: Le´ıdo como un “0”. bit 3 WRERR: (EEPROM Error Flag bit). Bit se˜ nalizador de error de escritura. WRERR = 1. Una operaci´ on de escritura se ha terminado prematuramente. WRERR = 0. La operaci´ on de escritura se ha completado correctamente.

bit 2 WREN: (EEPROM Write Enable bit). Bit de permiso de escritura. WREN = 1. Permite la escritura de la EEPROM. WREN = 0. Deshabilita la escritura a la EEPROM. Mauricio L´ opez V. (Ingenier´ ıa)

Memoria EEPROM . . .

Noviembre, 2016

6 / 79

El PIC16F628

Memoria de datos EEPROM

Memoria de datos EEPROM

bit 1 WR: (Write Control bit). Bit de control para inicio de escritura. WR = 1. Iniciar un ciclo de escritura de la EEPROM. Cuando se completa el ciclo pasa a 0 autom´ aticamente. WR = 0. Un ciclo de escritura de la EEPROM se ha completado.

bit 0 RD: (Read Control bit). Bit de control para inicio de lectura. RD = 1. Iniciar una lectura de la EEPROM. Cuando se completa el ciclo pasa a 0 autom´ aticamente. RD = 0. No iniciar una lectura de la EEPROM.

Mauricio L´ opez V. (Ingenier´ ıa)

Memoria EEPROM . . .

Noviembre, 2016

7 / 79

El PIC16F628

Memoria de datos EEPROM

Pasos para la lectura de la memoria de datos EEPROM 1. Escribir la direcci´ on a acceder en el registro EEADR. 2. Poner el bit RD (EECON1) en uno para comenzar la operaci´ on de lectura. 3. En el siguiente ciclo el dato le´ıdo de la EEPROM estar´ a disponible en el registro EEDATA. Leer el dato del registro EEDATA (el dato permanecer´ a en ´el hasta que se realice una nueva lectura o escritura en la EEPROM).

Mauricio L´ opez V. (Ingenier´ ıa)

Memoria EEPROM . . .

Noviembre, 2016

8 / 79

El PIC16F628

Memoria de datos EEPROM

Ejemplo de lectura de memoria de datos EEPROM

BCF BCF MOVF

STATUS, RP1 STATUS, RP0 DATA_EE_ADDR, W

BSF MOVWF BSF MOVF BCF

STATUS, RP0 EEADR EECON1, RD EEDATA, W STATUS, RP0

PIC16F877

Mauricio L´ opez V. (Ingenier´ ıa)

; Banco 0. ; DATA_EE_ADDR contiene ; la dirección a acceder. ; Banco 1. ; Establece la dirección a leer. ; Lectura del dato en EEPROM. ; W