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