Sistemas con Microprocesadores II

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Sistemas con Microprocesadores II"

Transcripción

1 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ópez V. (Ingeniería) Microcontroladores PIC Noviembre, / 79

2 PIC16F628 El PIC16F628 Mauricio López V. (Ingeniería) El PIC16F Noviembre, / 79

3 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ún si se quite la fuente de alimentación. Se pueden realizar dos tipos de operación: Operación de lectura. Operación de escritura o grabación. Un ciclo de grabación dura unos 10 ms. Al escribir en una posición de memoria ya ocupada, automáticamente se borra el contenido que había y se introduce el nuevo dato, por lo que no hay comando de borrado. Soporta un millón de ciclos de escritura/borrado y guarda la información inalterada durante más de 40 años. Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

4 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és 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ón a acceder) Una de las aplicaciones se encuentra en los sistemas de seguridad, para poder modificar y almacenar un código de seguridad diferente. Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

5 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ón a acceder para lectura o escritura. Ocupan las direcciones de un mapa que comienza en la posición 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ólo se requiere ponerlos a 1, ya que se borran automáticamente cuando la operación 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ópez V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

6 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ñalizador de error de escritura. WRERR = 1. Una operación de escritura se ha terminado prematuramente. WRERR = 0. La operación 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ópez V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

7 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áticamente. 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áticamente. RD = 0. No iniciar una lectura de la EEPROM. Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

8 Memoria de datos EEPROM Pasos para la lectura de la memoria de datos EEPROM 1. Escribir la dirección a acceder en el registro EEADR. 2. Poner el bit RD (EECON1<RD>) en uno para comenzar la operación de lectura. 3. En el siguiente ciclo el dato leído de la EEPROM estará disponible en el registro EEDATA. Leer el dato del registro EEDATA (el dato permanecerá en él hasta que se realice una nueva lectura o escritura en la EEPROM). Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

9 Memoria de datos EEPROM Ejemplo de lectura de memoria de datos EEPROM BCF STATUS, RP1 BCF STATUS, RP0 ; Banco 0. MOVF DATA_EE_ADDR, W ; DATA_EE_ADDR contiene ; la dirección a acceder. BSF STATUS, RP0 ; Banco 1. MOVWF EEADR ; Establece la dirección a leer. BSF EECON1, RD ; Lectura del dato en EEPROM. MOVF EEDATA, W ; W <-- EEDATA. BCF STATUS, RP0 ; Banco 0. PIC16F877 PIC16F84 Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

10 Memoria de datos EEPROM Pasos para la escritura de la memoria de datos EEPROM Escritura de la memoria de datos EEPROM: 1. Si no se implementa el paso 10, debe verificar el bit WR para comprobar si está en proceso una escritura. 2. Escribir la dirección a acceder en el registro EEADR. 3. Escribir el dato de 8 bits en el registro EEDATA. 4. Poner el bit WREN en uno para habilitar la operación de escritura. 5. Deshabilitar las interrupciones (si han sido habilitadas). Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

11 Memoria de datos EEPROM Pasos para la escritura de la memoria de datos EEPROM 6. Ejecutar la siguiente secuencia para iniciar la escritura de cada byte. - Escribir 55h en EECON2. - Escribir AAh en EECON2. - Poner el bit WR en uno. 7. Habilitar las interrupciones si se están empleando. 8. Limpiar el bit WREN para deshabilitar las operaciones de escritura. 9. Cuando se contempla el ciclo de escritura, el bit WR se pone a 0 y la bandera de interrupción EEIF se pone a 1 (EEIF debe borrarse por programa). Si no se ha implementado el paso 1, el programa debe verificar si el bit EEIF está a 1 o si el bit WR está a 0, lo que indica el fin del proceso de escritura. Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

12 Memoria de datos EEPROM Ejemplo de escritura de memoria de datos EEPROM Secuencia Requerida BCF STATUS, RP1 BSF STATUS, RP0 ; Banco 1. BTFSC EECON1, WR ; Espera a que el proceso de GOTO $-1 ; escrituras se complete. BCF STATUS,RP0 ; Banco 0. MOVF DATA_EE_ADDR, W ; DATA_EE_ADDR contiene ; la dirección a acceder. BSF STATUS,RP0 ; Banco 1. MOVWF EEADR ; Establece la dirección a escribir. BCF STATUS,RP0 ; Banco 0. MOVF DATA_EE_DATA, W ; DATA_EE_DATA contiene el ; dato a escribir en memoria. BSF STATUS,RP0 ; Banco 1. MOVWF EEDATA ; Establece el dato a escribir. BSF EECON1, WREN ; Habilita permiso para escritura. BCF INTCON,GIE ; De habilita interrupciones. MOVLW 55h ; Debe mandarse el valor 55h a MOVWF EECON2 ; EECON2 para iniciar la ; secuencia de escritura. MOVLW AAh MOVWF EECON2 ; Escribe AAh. BSF EECON1, WR ; WR <-- 1. Comienza la escritura. BSF INTCON,GIE ; Habilita interrupciones. BCF EECON1, WREN ; Deshabilita escritura. PIC16F877 PIC16F84 Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

13 Memoria de datos EEPROM Notas para la escritura de memoria de datos EEPROM En el proceso de escritura Microchip recomienda deshabilitar las interrupciones. El bit WREN debe ser puesto a 1 para habilitar la escritura. Este mecanismo evita escrituras accidentales. El usuario debe controlar que el bit WREN esté siempre en 0 salvo en el momento de la escritura, ya que este bit no se borra automáticamente. Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

14 Memoria de programa FLASH Memoria de programa FLASH En los microcontroladores PIC16F877, no sólo es posible leer y escribir la memoria de datos EEPROM, sino que también en la memoria de programa. Debido a la posibilidad de escribir en la memoria de programa FLASH, que tiene un tamaño de 14 bits, hasta un total de 8Kbytes, se requiere de: - un par de registros que contenga los 14 bits del dato a leer o escribir en la memoria, EEDATH: EEDATA y - un par de registros que contenga los 13 bits de la dirección a acceder en la memoria, EEADRH:EEADR. Los registros involucrados en estas operaciones son seis: - EECON1 (bits de control) - EECON2 (no implementado físicamente, usado para iniciar la lectura o la escritura) - EEDATA (almacena el byte de datos para su lectura o escritura) - EEDATH (almacena los 6 bits de mayor peso cuando se trabaja sobre la memoria FLASH) - EEADR (almacena la dirección de la posición EEPROM a acceder) - EEADRH (almacena los 5 bits de mayor peso de la dirección cuando se trabaja sobre la memoria FLASH.) Mauricio López V. (Ingeniería) Memoria de programa... Noviembre, / 79

15 Memoria de programa FLASH Memoria de programa FLASH En los microcontroladores PIC16F877, no sólo es posible leer y escribir la memoria de datos EEPROM, sino que también en la memoria de programa. Debido a la posibilidad de escribir en la memoria de programa FLASH, que tiene un tamaño de 14 bits, hasta un total de 8Kbytes, se requiere de: - un par de registros que contenga los 14 bits del dato a leer o escribir en la memoria, EEDATH: EEDATA y - un par de registros que contenga los 13 bits de la dirección a acceder en la memoria, EEADRH:EEADR. Los registros involucrados en estas operaciones son seis: - EECON1 (bits de control) - EECON2 (no implementado físicamente, usado para iniciar la lectura o la escritura) - EEDATA (almacena el byte de datos para su lectura o escritura) - EEDATH (almacena los 6 bits de mayor peso cuando se trabaja sobre la memoria FLASH) - EEADR (almacena la dirección de la posición EEPROM a acceder) - EEADRH (almacena los 5 bits de mayor peso de la dirección cuando se trabaja sobre la memoria FLASH.) Mauricio López V. (Ingeniería) Memoria de programa... Noviembre, / 79

16 Memoria de programa FLASH Pasos para la lectura de la memoria de programa FLASH 1. Escribir la dirección en EEADRH:EEADR. Asegurarse de que no sea mayor que el tamaño de la memoria de programa del dispositivo. 2. Poner el bit EEPGD en uno para apuntar a la memoria de programa FLASH. 3. Poner el bit RD en uno para que se inicie la operación de lectura. 4. Ejecutar dos instrucciones NOP, para dar tiempo a que el microcontrolador extraiga los datos de la memoria de programa a los registros EEDATH: EEDATA. Mauricio López V. (Ingeniería) Memoria de programa... Noviembre, / 79

17 Memoria de programa FLASH Ejemplo de lectura de memoria de programa FLASH BSF STATUS, RP1 BCF STATUS, RP0 ; Banco 2 MOVLW EE_ADDR_H ; Valor alto de la dirección a leer, EE_ADDR_H. MOVWF EEADRH ; Configura dirección de memoria parte alta. MOVLW EE_ADDR_L ; Valor bajo de la dirección a leer, EE_ADDR_L. MOVWF EEADR ; Configura dirección de memoria parte baja. BSF STATUS, RP1 BSF STATUS, RP0 ; Banco 3 BSF EECON1, EEPGD ; Apunta a la memoria de programa, FLASH. BSF EECON1, RD ; Inicia operación de lectura. ; NOP NOP ; Cualquier instrucción será ignorada aquí, ya ; que la memoria de programa es leída en el ; segundo ciclo después BSF EECON1, RD. ; BCF STATUS, RP0 ; Banco 2 MOVF EEDATA, W ; Resguarda el byte leído bajo. MOVWF DATAL ; DATAL <--- EEDATA. MOVF EEDATH, W ; Resguarda el byte leído alto. MOVWF DATAH ; DATAH <--- EEDATH. Mauricio López V. (Ingeniería) Memoria de programa... Noviembre, / 79

18 Memoria de programa FLASH Pasos para la escritura de la memoria de programa FLASH 1. Escribir la dirección en EEADRH:EEADR. Asegurarse de que no sea mayor que el tamaño de la memoria de programa del dispositivo. 2. Escribir el dato de 14 bits que debe ser grabado en los registros EEDATH:EEDATA. 3. Poner el bit EEPGD en uno para apuntar a la memoria de programa FLASH. 4. Poner el bit WREN en uno para habilitar la operación de escritura. 5. Deshabilitar las interrupciones (si han sido habilitadas). 6. Ejecutar la siguiente secuencia para iniciar la escritura de cada byte. - Escribir 55h en EECON2. - Escribir AAh en EECON2. - Poner el bit WR en uno. 7. Ejecutar dos instrucciones NOP, para permitir que el microcontrolador se configure para la operación de escritura. 8. Habilitar las interrupciones si se están empleando. Mauricio López V. (Ingeniería) Memoria de programa... Noviembre, / 79

19 Memoria de programa FLASH Notas para la escritura de memoria de programa FLASH Durante la escritura de la memoria FLASH, el microcontrolador no ejecuta instrucción. El oscilador y todos los periféricos continúan funcionando. Cuando la operación de escritura finaliza, el microcontrolador continúa ejecutando el código en el que se quedó. Si el bit WRT de la palabra de configuración está a 0 impide cualquier escritura de la memoria FLASH. Mauricio López V. (Ingeniería) Memoria de programa... Noviembre, / 79

20 Memoria de programa FLASH Ejemplo de escritura de memoria de programa FLASH BSF STATUS, RP1 BCF STATUS, RP0 ; Banco 2 ; Escribe dirección a leer en EEADRH:EEADR. MOVF ADDRH, W ; Dato alto de la dirección a escribir, ADDRH. MOVWF EEADRH ; Establece dirección de memoria parte alta. MOVF ADDRL, W ; Dato bajo de la dirección a escribir, ADDRL. MOVWF EEADR ; Establece dirección de memoria parte baja. ; Escribe valor del dato a leer en EEDATH:EEDATA. MOVF DatoH, W ; Dato alto del valor a escribir, ADDRH. MOVWF EEDATH ; Configura palabra parte alta. MOVF DatoL, W ; Dato bajo del valor a escribir, ADDRL. MOVWF EEDATA ; Configura palabra parte baja, los 6 MSB. BSF STATUS, RP1 BSF STATUS, RP0 ; Banco 3 BSF EECON1, EEPGD ; Apunta a la memoria de programa, FLASH. BSF EECON1, WREN ; Habilita permiso para escritura. BCF INTCON, GIE ; Deshabilita interrupciones. MOVLW 55h ; Debe mandarse el valor 55h a EECON2 MOVWF EECON2 ; para iniciar la secuencia de escritura. MOVLW AAh MOVWF EECON2 ; Escribe AAh. BSF EECON1, WR ; WR <-- 1. Comienza la escritura. NOP ; Cualquier instrucción será ignorada aquí, ya ; que el procesador se detiene para iniciar la NOP ; secuencia de escritura, manteniéndose en ; este estado hasta completar la escritura, al ; finalizar continua con la 3ra instrucción. BTFSC EECON1, WR ; Espera a que el proceso de GOTO $-1 ; escrituras se complete. BSF INTCON,GIE ; Habilita interrupciones. BCF EECON1, WREN ; Deshabilita escritura. Mauricio López V. (Ingeniería) Memoria de programa... Noviembre, / 79

21 Memoria de programa FLASH Ejemplo de escritura de 4 datos en memoria de programa FLASH ; Esta rutina asume que: ; 1. Una dirección válida de inicio (los bits menos significativos = $'00'$) se carga en los ; registros ADDRH:ADDRL. ; 2. La dirección donde inicia la ubicación de los 8 bytes de datos (4 datos de 16 bits) que ; serán cargados en memoria esta establecida por DATADDR. ; 3. Los registros de usuario ADDRH, ADDRL y DATADDR se encuentran ubicados ; dentro del área 0x70-0x7f de la memoria de datos. ; BSF STATUS, RP1 BCF STATUS, RP0 ; Banco 2. ; Escribe dirección a leer en EEADRH:EEADR. MOVF ADDRH, W ; Dato alto de la dirección a escribir, ADDRH. MOVWF EEADRH ; Establece dirección de memoria parte alta. MOVF ADDRL, W ; Dato bajo de la dirección a escribir, ADDRL. MOVWF EEADR ; Establece dirección de memoria parte baja. MOVF DATAADDR, W ; Se carga la dirección inicial de la ubicación ; de los datos, para ser accedidos de manera ; indirecta.. MOVWF FSR ; FSR <-- DATAADDR. LOOP MOVF INDF, W ; Carga el primer dato en la parte baja del par MOVWF EEDATA ; de registros EEDATH: EEDATA. INCF FSR, F ; Incrementa FSR para acceder al siguiente ; byte. MOVF INDF, W ; Carga el segundo dato en la parte alta del MOVWF EEDATH ; par de registros EEDATH: EEDATA. INCF FSR, F ; Incrementa FSR para acceder al siguiente ; byte. Mauricio López V. (Ingeniería) Memoria de programa... Noviembre, / 79

22 Memoria de programa FLASH Ejemplo de escritura de 4 datos en memoria de programa FLASH BSF STATUS, RP1 BSF STATUS, RP0 ; Banco 3. BSF EECON1, EEPGD ; Apunta a la memoria de programa, FLASH. BSF EECON1, WREN ; Habilita permiso para escritura. BCF INTCON, GIE ; Deshabilita interrupciones. MOVLW 55h ; Debe mandarse el valor 55h a EECON2 MOVWF EECON2 ; para iniciar la secuencia de escritura. MOVLW AAh MOVWF EECON2 ; Escribe AAh. BSF EECON1, WR ; WR <-- 1. Comienza la escritura. NOP ; Cualquier instrucción será ignorada aquí, ya ; que el procesador se detiene para iniciar la NOP ; secuencia de escritura, manteniéndose en ; este estado hasta completar la escritura, al ; finalizar continua con la 3ra instrucción. BCF EECON1, WREN ; Deshabilita escritura. BSF INTCON, GIE ; Habilita interrupciones. BSF STATUS, RP1 BCF STATUS, RP0 ; Banco 2. INCF EEADR, F ; Incrementa apuntado de dirección de ; memoria de programa. MOVF EEADR, W ; Verifica si los dos bits menos significativos ; son '00'. ANDLW 0x03 ; Indica cuando las cuatro palabras han sido XORLW 0x03 ; programadas. BTFSC STATUS, Z ; Termina para más de cuatro palabras. GOTO LOOP ; Continúa si es menos de cuatro palabras. Mauricio López V. (Ingeniería) Memoria de programa... Noviembre, / 79

23 Rebotes en los pulsadores Rebotes en los pulsadores El comportamiento de los microcontroladores dependen a menudo de la actuación de sus entradas. Entre los dispositivo más usuales que generan una entrada binaria se encuentran los interruptores (switches), pulsadores (push-buttons) y los teclados matriciales de tecla. Los pulsadores se pueden encuadrar en dos grupos - Los normalmente abiertos (NA), que producen el cierre de los contactos cuando se presionan, y - Los normalmente cerrado (NC), que abren los contactos al presionarse. Mauricio López V. (Ingeniería) Pulsadores... Noviembre, / 79

24 Rebotes en los pulsadores Rebotes en los pulsadores Señal producida por el pulsador: Cuando no se actúa sobre le pulsador la tensión en el punto de salida es + 5V. Cuando el pulsador es presionado los contactos se cierran y la tensión en el punto de salida es 0V. Ejemplo de pulsador normalmente abierto Mauricio López V. (Ingeniería) Pulsadores... Noviembre, / 79

25 Rebotes en los pulsadores Rebotes en los pulsadores Un problema común con interruptores mecánicos es que la forma de onda de la señal de salida aparece con una serie de rebotes (unos cuantos micro o milisegundos). De manera que cuando el pulsador se presiona, el circuito responderá como si fuesen aplicadas señales múltiples. Estos rebotes se pueden eliminar utilizando circuitos o añadiendo un pequeño retardo en el programa cada vez que se detecta un cambio de posición en el pulsador. Mauricio López V. (Ingeniería) Pulsadores... Noviembre, / 79

26 Rebotes en los pulsadores Rebotes en los pulsadores El problema de rebotes se puede solucionar fácilmente conectando un circuito RC para suprimir los cambios rápidos de voltaje. Ya que el intervalo de los rebotes no está definido, los valores de las componentes no se pueden determinar con precisión. En la mayoría de los casos se recomienda usar los valores mostrados Mauricio López V. (Ingeniería) Pulsadores... Noviembre, / 79

27 Rebotes en los pulsadores Rebotes en los pulsadores Si se desea una completa estabilidad se puede incluir un circuito flip-flop RS, éste cambiara su estado lógico solo después de detectar al primer pulso. Esta solución es más cara, pero el problema es definitivamente solucionado. Mauricio López V. (Ingeniería) Pulsadores... Noviembre, / 79

28 Rebotes en los pulsadores Rebotes en los pulsadores Además de estas soluciones de hardware, hay también una solución de software. Cuando un programa encuesta el estado de algún pin de entrada y detecta algún cambio, la verificación se debería llevar a cabo después de un cierto tiempo. Si el programa confirma el cambio, esto significa que un switch/push-button ha cambiado su posición. Las ventajas de este tipo de solución es que no hay que invertir en hardware. Ejemplo: #DEFINE pulsador PORTA, 4 espera BTFSC GOTO CALL BTFSC GOTO pulsador espera ret_20ms pulsador espera Mauricio López V. (Ingeniería) Pulsadores... Noviembre, / 79

29 Teclado matricial Teclado matricial Los teclados matriciales son muy utilizados con los microcontroladores ya que permite desarrollar aplicaciones interesentes F E D A 0 B C A B C * 0 # D Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

30 Teclado matricial Teclado matricial Este tipo de teclados están configurados como una matriz filas-columnas con la intención de reducir el número de líneas de entrada salida para conectar con el microcontrolador F Teclado Hexadecimal E D A 0 B C Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

31 Teclado matricial Teclado matricial En un teclado no matricial cada tecla necesita una línea de entrada. El teclado matricial está organizado de tal forma que cada tecla se conecta a una fila y una columna. El número de líneas necesarias conectadas al microcontrolador para la matriza del teclado es igual a la suma de columnas y filas. El número de teclas que puede conectarse a la matriz es el producto de las filas por las columnas. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

32 Teclado matricial Teclado matricial La técnica de programación usada para gobernar una matriz de teclas necesita tanto entradas como salidas. Las filas están conectadas a los pin de salida y las columnas a las de entrada. Orden de las teclas Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

33 Teclado matricial Teclado matricial Se comienza colocando a 0 la primera fila y las restantes a 1. Si una tecla es pulsada en la columna 0, el 0 lógico aparece en la intersección fila columna. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

34 Teclado matricial Teclado matricial Las columnas son exploradas de forma secuencial comprobando si hay un 0. Si no se encuentra un 0, se pone a 0 la fila siguiente y la anterior a 1, pasando a comprobar nuevamente las columnas. Conexión del teclado matricial al puerto A, con su disposición interna en filas y columnas. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

35 Teclado matricial Criterios para decodificar una tecla Asignación de códigos a las terminales (filas y columnas). Ejemplo: La tecla con el número 9 es el resultado de la suma del código asignado a la tercera fila (8) más el código asignado a la segunda columna (1). Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

36 Teclado matricial Asignación de códigos a las columnas Observaciones: Si el valor de la entrada (nibble alto del puerto B) 1110 (detección de un 0 en la primera columna) se complementa se obtiene 0001 (01h). Si el valor de la entrada 1101 (detección de un 0 en la segunda columna) se complementa se obtiene 0010 (02h). Si el valor de la entrada 1011 (detección de un 0 en la tercera columna) se complementa se obtiene 0100 (04h). Si el valor de la entrada 0111 (detección de un 0 en la cuarta columna) se complementa se obtiene 1000 (08h). Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

37 Teclado matricial Asignación de códigos a las columnas ; ; Subrutina para identificar la tecla presionada ; Subrutina: tbcolum ; tbcolum ADDWF PCL, 1 ; PCL <-- w + PCL NOP RETLW H'00' ; Primera columna, viene como un uno, se le asigna 00. RETLW H'01' ; Segunda columna, viene como un dos, se le asigna 01. NOP RETLW H'02' ; Tercera columna, viene como un cuatro, se le asigna 02. NOP NOP NOP RETLW H'03' ; Cuarta columna, viene como un ocho, se le asigna 03. NOP NOP NOP NOP NOP NOP NOP RETLW H'00' ; De proteccion. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

38 Teclado matricial Asignación de códigos a las filas Observaciones: Si el valor de la salida (nibble bajo del puerto B) 1110 (selección de la primera fila al colocar un 0 ) se complementa se obtiene 0001 (01h). Si el valor de la salida 1101 (selección de la segunda fila al colocar un 0 ) se complementa se obtiene 0010 (02h). Si el valor de la salida 1011 (selección de la tercera fila al colocar un 0 ) se complementa se obtiene 0100 (04h). Si el valor de la salida 0111 (selección de la cuarta fila al colocar un 0 ) se complementa se obtiene 1000 (08h). Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

39 Teclado matricial Asignación de códigos a las filas ; ; Subrutina para identificar la tecla presionada ; Subrutina: tbfila ; tbfila ADDWF PCL, 1 ; PCL <-- w + PCL NOP RETLW H'00' ; Primera columna, viene como un uno, se le asigna 00. RETLW H'04' ; Segunda columna, viene como un dos, se le asigna 04. NOP RETLW H'08' ; Tercera columna, viene como un cuatro, se le asigna 08. NOP NOP NOP RETLW H'0C' ; Cuarta columna, viene como un ocho, se le asigna 0C. NOP NOP NOP NOP NOP NOP NOP RETLW H'00' ; De proteccion. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

40 Teclado matricial Diagrama de conexión Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

41 Display de 7 segmentos Diagrama del display de 7 segmentos XDUG14A4-A a Dig1 Dig2 Dig3 a f b a a f g e b c f g e b c f g e b c f g e b c d p d p d p d p Dig1 Dig2 Dig3 Dig4 Display XDUG14A4-A e d p c g a Dig4 Transistor BC557 transistor BC557 (pnp) Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

42 Display de 7 segmentos Diagrama de conexión con el display de 7 segmentos Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

43 Teclado Matricial con display de 7 segmentos Teclado Matricial con display de 7 segmentos Problema: Se desea desarrollar un programa que capture datos de un teclado matricial, los almacena en la memoria de datos EEPROM interna del PIC y los despliegue en cuatro display de 7 segmentos. Criterios de diseño: Cada entrada de teclado representa un número. Este número se almacena en la localidad menos significativa de la memoria de datos de la EEPROM. A su vez el número se despliega en los display. Además, se lleva a cabo un corrimiento de los datos en la memoria de EEPROM hacia los más significativos y también en los display. El despliegue se realiza como si se estuviera desplazando hacia la izquierda. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

44 Teclado Matricial con display de 7 segmentos Criterios particulares de diseño Refrescar cada 4 milisegundos a uno de los display de 7 segmentos. Para llevar el conteo utilice interrupciones, de manera que la interrupción sea generada por el tiempo requerido para refrescar un display de 7 segmentos. Cada vez que se refrescan los display de 7 segmentos, actualizar el valor de la fila seleccionada (0, 4, 8 y C). Usar una bandera para identificar tecla presionada. Usar la EEPROM para almacenar la tecla presionadan actual y las tres anteriores. Recorrer los datos a la izquierda en la memoria EEPROM cuando se tiene una nueva tecla presionada. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

45 Teclado Matricial con display de 7 segmentos Criterios particulares de diseño Recuperar los datos de la EEPROM en 4 registros de propósito general. Utilizar el contenido de los 4 registros de propósito general para refrescar cada display de 7 segmentos. Usar el mismo nibble en la selección de las filas para el teclado y la habilitación de los display de 7 segmentos. La lectura de la tecla presionada se debe llevar a cabo dentro de la rutina de interrupción e inmediatamente después de refrescar a uno de los display de 7 segmentos. Cada que termina de lee una tecla esperar 200milisegundos antes de recibir otra teca. No recibir nueva tecla hasta atender la actual tecla. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

46 Teclado Matricial con display de 7 segmentos Criterios de diseño El valor de la tecla presionada se muestra en el primer display de 7 segmentos y el contenido de éste debe desplazar a la izquierda, igual que los valores de las teclas anteriores (desplazar contenido de las memorias de datos EEPROM). Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

47 Teclado Matricial con display de 7 segmentos Diagrama de conexión Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

48 Teclado Matricial con display de 7 segmentos Diagrama de flujo INICIO Inicialización Configuración del PIC (puertos) refini #include #include <P16f877a.inc>; Definicion de los registros ; SFR y sus bits. <macros.asm> ; Declaracion de macros. banco1 ; Pasa al banco 1. CLRF TRISX ; Puerto X. banco0 ; Pasa al banco 0. Inicia apuntador de direccionamiento indirecto de los registros de la RAM. Inicializa registro de barrido: rgbarr. apaga Apaga todos los segmentos de los LED. TEKLA <-- FFh Inicializa registros donde se almacena la tecla presionada. regx <-- 0 Limpia bandera indicadora que no hay tecla presionada. INTCON <-- A0h Configuración del INTCON: Interrupciones. TMR0 <-- 06h 4 mseg. refresco a los display de 7 segmentos (1:16 prescaler). 4000/16 = 250 ; = 06. T0IF <-- 0 Limpia bandera de sobreflujo del TMR0. 1 Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

49 Teclado Matricial con display de 7 segmentos Diagrama de flujo 1 NO regx = 1? SI W <-- 02h Hay tecla presionada? Para seleccionar la localidad de memoria '2'. eep_lec Lee memoria EEPROM. W <-- EEDATA. WTEMP <-- W Almacena temporalmente el dato leído. W <-- 03h Para seleccionar la localidad de memoria '3'. eep_esc Escribe en la memoria EEPROM. EEDATA <-- WTEMP. W <-- 01h Para seleccionar la localidad de memoria '1'. eep_lec Lee memoria EEPROM. W <-- EEDATA. 2 Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

50 Teclado Matricial con display de 7 segmentos Diagrama de flujo 2 WTEMP <-- W Almacena temporalmente el dato leído. W <-- 02h Para seleccionar la localidad de memoria '2'. eep_esc Escribe en la memoria EEPROM. EEDATA <-- WTEMP. W <-- 00h Para seleccionar la localidad de memoria '0'. eep_lec Lee memoria EEPROM. W <-- EEDATA. WTEMP <-- W Almacena temporalmente el dato leído. W <-- 01h Para seleccionar la localidad de memoria '1'. eep_esc Escribe en la memoria EEPROM. EEDATA <-- WTEMP. 3 Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

51 Teclado Matricial con display de 7 segmentos Diagrama de flujo 3 W <-- TEKLA tabla Para determinar el valor que se desplegara en el display de 7 segmentos. Tabla que establece el valor a desplegar en el display de 7 segmentos. WTEMP <-- W Almacena temporalmente el dato leído. W <-- 00h Para seleccionar la localidad de memoria '0'. eep_esc Escribe en la memoria EEPROM. EEDATA <-- WTEMP. W <-- 00h Para seleccionar la localidad de memoria '0'. eep_lec disly0 <-- W Lee memoria EEPROM. W <-- EEDATA. Almacena dato leído en memoria RAM. disly0 <-- W. W <-- 01h Para seleccionar la localidad de memoria '1'. 4 Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

52 Teclado Matricial con display de 7 segmentos Diagrama de flujo 4 eep_lec disly1 <-- W Lee memoria EEPROM. W <-- EEDATA. Almacena dato leído en memoria RAM. disly1 <-- W. W <-- 02h Para seleccionar la localidad de memoria '2'. eep_lec disly2 <-- W Lee memoria EEPROM. W <-- EEDATA. Almacena dato leído en memoria RAM. disly2 <-- W. W <-- 03h Para seleccionar la localidad de memoria '3'. eep_lec disly3 <-- W Lee memoria EEPROM. W <-- EEDATA. Almacena dato leído en memoria RAM. disly3 <-- W. 5 Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

53 Teclado Matricial con display de 7 segmentos Diagrama de flujo 5 rt200m Retardo de 200 milisegundos. regx <-- 0 Limpia bandera indicadora que no hay tecla presionada. 1 Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

54 Teclado Matricial con display de 7 segmentos Diagrama de flujo ISR Rutina de interrupción. STORW <-- W STRST <-- STATUS Resguarda registro de trabajo, W. Resguarda registro de Estados, STATUS. T0IF <-- 0 Limpia bandera del TMR0. TMR0 <-- 06h Inicializa TMR0. refrec Rutina que refresca un display. SI regx = 1? NO lec_tec Hay tecla presionada? Lectura de la tecla (teclado matricial). W <-- STORW STATUS <-- STRST Restablece registro de trabajo, W. Restablece registro de Estados, STATUS. Sale Termina rutina de interrupción. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

55 Teclado Matricial con display de 7 segmentos Diagrama de flujo refrec Subrutina de refresco de un display de 7 segmentos. W <-- rgbarr W <-- W.OR. F0h Identifica la fila del teclado accionada y obtiene el código real asignado a esa fila. Pasa por la mascara y el complemento. W <-- W.XOR. FFh tbfila Obtiene el código real asignado a la fila del teclado. FILA <-- W Resguarda el valor leído en la variable FILA. W <-- rgbarr Establece el valor que selecciona la fila del teclado. W <-- W.OR. F0h TRISA <-- W PORTA <-- 0 Selecciona la fila del teclado. Usa la combinación del TRIS y del PORT. 6 Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

56 Teclado Matricial con display de 7 segmentos Diagrama de flujo 6 PORTC <-- 00h Apaga los segmentos del display correspondientes. PORTC <-- (FSR) Manda el dato a desplegar al display correspondiente. FSR <-- FSR + 1 Incrementa FSR para el direccionamiento indirecto. C <-- 1 rgbarr <-- RotIzq(rgbarr) Establece el Carry del STATUS como alimentador de registro. Rotación, para seleccionar la siguiente posición de la fila en la próxima iteración. Sale NO regbarr<4> = 0? Ya recorrió todos los display que se deben prender? SI refini Inicializa apuntadores de direccionamiento y el registro de barrido: rgbarr. Sale Termina rutina de refresco de un display de 7 segmentos. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

57 Teclado Matricial con display de 7 segmentos Diagrama de flujo refini Rutina que inicia apuntador de direccionamiento indirecto de los registros de la RAM. Inicializa registro de barrido: rgbarr. FSR <-- (disly0) Actualiza el apuntador con la dirección disly0. rgbarr <-- FEh Inicializa a la primera posición de la fila del teclado y del display de 7 segmentos. Sale Termina rutina de inicialización de apuntador y registro. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

58 Teclado Matricial con display de 7 segmentos Diagrama de flujo apaga Inicializa los registros que refrescan los display de 7 segmentos. disly0 <-- FFh disly1 <-- FFh disly2 <-- FFh disly3 <-- FFh Inicializa cada registro: disly0, disly1, disly2 y disly3. refrec Rutina que refresca un display. Sale Termina rutina de registros que refrescan los display. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

59 Teclado Matricial con display de 7 segmentos Diagrama de flujo lee_tec Rutina encargada de leer la tecla presionada. reta250 Espera 250 microsegundos. W <-- SWAP(PORTB) Los 4 bits de las columnas (teclado matricial) se pasan al nibble bajo. W <-- W.OR. F0h Para verificar si hay una tecla presionada. W <-- W.XOR. FFh 7 SI Z = 1 Sin tecla presionada? NO ret2mg Espera 2 milisegundos. W <-- SWAP(PORTB) Los 4 bits de las columnas (teclado matricial) se pasan al nibble bajo. 8 Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

60 Teclado Matricial con display de 7 segmentos Diagrama de flujo 8 W <-- W.OR. F0h Para verificar si hay una tecla presionada. W <-- W.XOR. FFh 7 SI Z = 1 Sin tecla presionada? NO tbcolm Obtiene el código real asignado a la columna del teclado. W <-- W + FILA Suma el valor del código de la columna con el de la fila. TEKAL <-- W Almacena en número de la tecla presionada. regx <-- 1 Prende bandera indicadora que hay tecla presionada. Sale Termina rutina de lectura de la tecla. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

61 Teclado Matricial con display de 7 segmentos Diagrama de flujo 7 regx <-- 0 Limpia bandera indicando que no hay tecla presionada. TEKLA <-- FFh Inicializa registro donde se almacena la tecla presionada. Sale Termina rutina de lectura de la tecla. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

62 Teclado Matricial con display de 7 segmentos Diagrama de flujo eep_lec Rutina que leer una localidad de memoria EEPROM. Entrada: dirección de la memoria en W, y salida de dato en W. EEADR <-- W Selecciona la localidad de memoria establecida por W. EECON1 <-- 01h EEPGD <-- 0. Apunta a la memoria EEPROM de datos. RD <-- 1. Lectura del dato en EEPROM. 3 NOPs Espera 3 NOP. W <-- EEDATA Resguarda dato leído de memoria. Sale Termina rutina que leer una localidad de memoria EEPROM. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

63 Teclado Matricial con display de 7 segmentos Diagrama de flujo eep_esc Rutina que escribe a una localidad de memoria EEPROM. Entrada: dirección de la memoria en W. EEADR <-- W Selecciona la localidad de memoria, establecida por W. EEDATA <-- WTEMP Establece el dato a escribir en memoria. EECON1<EEPGD> <-- 0 Apunta a la memoria EEPROM de datos. EECON1<WREN> <-- 1 Habilita permiso para escritura. INTCON1<GIE> <-- 0 Deshabilita interrupciones. EECON2 <-- 55h EECON2 <-- AAh Secuencia para iniciar la escritura. EECON1<WR> <-- 1 WR <-- 1. Comienza la escritura. INTCON1<GIE> <-- 1 Habilita interrupciones. 9 Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

64 Teclado Matricial con display de 7 segmentos Diagrama de flujo 9 etqepw NO PIR1<EEIF> = 1? SI Ya termino el proceso de escritura a la EEPROM? EECON1 <-- 00h Termina escritura y limpia todos los registros de EECON1. Sale Termina rutina que escribe una localidad de memoria EEPROM. Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

65 Laminillas complementarias Laminillas complementarias Laminillas complementarias Mauricio López V. (Ingeniería) Teclado matricial... Noviembre, / 79

66 Laminillas complementarias Memoria de datos EEPROM Memoria de datos EEPROM PIC16F877: Memoria de 256 bytes (256 x 8). PIC16F84: Memoria de 64 bytes (64 x 8). return Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

67 Laminillas complementarias Memoria de datos EEPROM Memoria de datos EEPROM (PIC16F877) bit 7 EEPGD: (Program/Data EEPROM Select bit). Bit de acceso a la memoria de programa (FLASH) o a la EEPROM de datos. EEPGD = 1. Acceso a la memoria de programa (FLASH). EEPGD = 0. Acceso a la memoria de datos (EEPROM). bit6:4 Sin implementar: Leído como un 0. bit 3 WRERR: (EEPROM Error Flag bit). Bit señalizador de error de escritura. WRERR = 1. Una operación de escritura se ha terminado prematuramente. WRERR = 0. La operación de escritura se ha completado correctamente. Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

68 Laminillas complementarias Memoria de datos EEPROM Memoria de datos EEPROM (PIC16F877) 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. 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áticamente. 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áticamente. RD = 0. No iniciar una lectura de la EEPROM. return Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

69 Laminillas complementarias Memoria de datos EEPROM Memoria de datos EEPROM (PIC16F84) bit7:5 Sin implementar: Leído como un 0. bit 4 EEIF: (EEPROM Write Operation Interrupt Flag bit). Bandera de operación interrupción de escritura en la EEPROM. EEIF = 1. La operación de escritura ha terminado (debe ser limpiado por software). EEIF = 0. La operación de escritura no se ha terminado o no se ha iniciado. bit 3 WRERR: (EEPROM Error Flag bit). Bit señalizador de error de escritura. WRERR = 1. Una operación de escritura se ha terminado prematuramente. WRERR = 0. La operación de escritura se ha completado correctamente. Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

70 Laminillas complementarias Memoria de datos EEPROM Memoria de datos EEPROM (PIC16F84) 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. 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áticamente. 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áticamente. RD = 0. No iniciar una lectura de la EEPROM. return Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

71 Laminillas complementarias Memoria de datos EEPROM Pasos lectura de la memoria EEPROM (PIC16F877) 1. Escribir la dirección a acceder en el registro EEADR. 2. Limpiar el bit EEPGD para apuntar a la memoria de datos EEPROM. 3. Poner el bit RD (EECON1<RD>) en uno para comenzar la operación de lectura. 4. En el siguiente ciclo el dato leído de la EEPROM estará disponible en el registro EEDATA. Leer el dato del registro EEDATA (el dato permanecerá en él hasta que se realice una nueva lectura o escritura en la EEPROM). Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

72 Laminillas complementarias Memoria de datos EEPROM Ejemplo de lectura de memoria de datos EEPROM (PIC16F877) BCF STATUS, RP1 BCF STATUS, RP0 ; Banco 0. MOVF DATA_EE_ADDR, W ; DATA_EE_ADDR contiene ; la dirección a acceder. BSF STATUS, RP1 BCF STATUS, RP0 ; Banco 2. MOVWF EEADR ; Establece la dirección a leer. BSF STATUS, RP1 BSF STATUS, RP0 ; Banco 3. BCF EECON1, EEPGD ; Apunta a la memoria EEPROM ; de datos. BSF EECON1, RD ; Lectura del dato en EEPROM. BSF STATUS, RP1 BCF STATUS, RP0 ; Banco 2. MOVF EEDATA, W ; W <-- EEDATA. BCF STATUS, RP1 BCF STATUS, RP0 ; Banco 0. return Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

73 Laminillas complementarias Memoria de datos EEPROM Pasos para la lectura de la memoria de datos EEPROM (PIC16F84) 1. Escribir la dirección a acceder en el registro EEADR. 2. Poner el bit RD (EECON1<RD>) en uno para comenzar la operación de lectura. 3. En el siguiente ciclo el dato leído de la EEPROM estará disponible en el registro EEDATA. Leer el dato del registro EEDATA (el dato permanecerá en él hasta que se realice una nueva lectura o escritura en la EEPROM). Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

74 Laminillas complementarias Memoria de datos EEPROM Ejemplo de lectura de memoria de datos EEPROM (PIC16F84) BCF STATUS, RP1 BCF STATUS, RP0 ; Banco 0. MOVF DATA_EE_ADDR, W ; DATA_EE_ADDR contiene ; la dirección a acceder. MOVWF EEADR ; Establece la dirección a leer. BSF STATUS, RP0 ; Banco 1. BSF EECON1, RD ; Lectura del dato en EEPROM. BCF STATUS, RP0 ; Banco 0. MOVF EEDATA, W ; W <-- EEDATA. return Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

75 Laminillas complementarias Memoria de datos EEPROM Pasos para la escritura de la memoria de datos EEPROM (PIC16F877) 1. Si no se implementa el paso 10, debe verificar el bit WR para comprobar si está en proceso una escritura. 2. Escribir la dirección a acceder en el registro EEADR. 3. Escribir el dato de 8 bits en el registro EEDATA. 4. Limpiar el bit EEPGD para apuntar a la memoria de datos EEPROM. 5. Poner el bit WREN en uno para habilitar la operación de escritura. 6. Deshabilitar las interrupciones (si han sido habilitadas). Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

76 Laminillas complementarias Memoria de datos EEPROM Pasos para la escritura de la memoria de datos EEPROM (PIC16F877) 7. Ejecutar la siguiente secuencia para iniciar la escritura de cada byte. - Escribir 55h en EECON2. - Escribir AAh en EECON2. - Poner el bit WR en uno. 8. Habilitar las interrupciones si se están empleando. 9. Limpiar el bit WREN para deshabilitar las operaciones de escritura. 10. Cuando se contempla el ciclo de escritura, el bit WR se pone a 0 y la bandera de interrupción EEIF se pone a 1 (EEIF debe borrarse por programa). Si no se ha implementado el paso 1, el programa debe verificar si el bit EEIF está a 1 o si el bit WR está a 0, lo que indica el fin del proceso de escritura. Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

77 Laminillas complementarias Memoria de datos EEPROM Ejemplo de escritura de memoria de datos EEPROM (PIC16F877) Secuencia Requerida BSF STATUS, RP1 BSF STATUS, RP0 ; Banco 3. BTFSC EECON1, WR ; Espera a que el proceso de GOTO $-1 ; escrituras se complete. BCF STATUS, RP1 BCF STATUS, RP0 ; Banco 0. MOVF DATA_EE_ADDR, W ; DATA_EE_ADDR contiene ; la dirección a acceder. BSF STATUS, RP1 BCF STATUS, RP0 ; Banco 2. MOVWF EEADR ; Establece la dirección a escribir. BCF STATUS, RP1 BCF STATUS, RP0 ; Banco 0. MOVF DATA_EE_DATA, W ; DATA_EE_DATA contiene ; el dato a escribir en memoria. BSF STATUS, RP1 BCF STATUS, RP0 ; Banco 2. MOVWF EEDATA ; Establece el dato a escribir. BSF STATUS, RP1 BSF STATUS, RP0 ; Banco 3. BCF EECON1, EEPGD ; Apunta a la memoria EEPROM ; de datos. BSF EECON1, WREN ; Habilita permiso para escritura. BCF INTCON, GIE ; De habilita interrupciones. MOVLW 55h ; Debe mandarse el valor 55h a MOVWF EECON2 ; EECON2 para iniciar la ; secuencia de escritura. MOVLW AAh MOVWF EECON2 ; Escribe AAh. BSF EECON1, WR ; WR <-- 1. Comienza la escritura. BSF INTCON, GIE ; Habilita interrupciones. BCF EECON1, WREN ; Deshabilita escritura. return Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

78 Laminillas complementarias Memoria de datos EEPROM Pasos para la escritura de la memoria de datos EEPROM (PIC16F84) Escritura de la memoria de datos EEPROM: 1. Si no se implementa el paso 10, debe verificar el bit WR para comprobar si está en proceso una escritura. 2. Escribir la dirección a acceder en el registro EEADR. 3. Escribir el dato de 8 bits en el registro EEDATA. 4. Poner el bit WREN en uno para habilitar la operación de escritura. 5. Deshabilitar las interrupciones (si han sido habilitadas). Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

79 Laminillas complementarias Memoria de datos EEPROM Pasos para la escritura de la memoria de datos EEPROM (PIC16F84) 6. Ejecutar la siguiente secuencia para iniciar la escritura de cada byte. - Escribir 55h en EECON2. - Escribir AAh en EECON2. - Poner el bit WR en uno. 7. Habilitar las interrupciones si se están empleando. 8. Limpiar el bit WREN para deshabilitar las operaciones de escritura. 9. Cuando se contempla el ciclo de escritura, el bit WR se pone a 0 y la bandera de interrupción EEIF se pone a 1 (EEIF debe borrarse por programa). Si no se ha implementado el paso 1, el programa debe verificar si el bit EEIF está a 1 o si el bit WR está a 0, lo que indica el fin del proceso de escritura. Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

80 Laminillas complementarias Memoria de datos EEPROM Ejemplo de escritura de memoria de datos EEPROM (PIC16F84) Secuencia Requerida BCF STATUS, RP1 BSF STATUS, RP0 ; Banco 1. BTFSC EECON1, WR ; Espera a que el proceso de GOTO $-1 ; escrituras se complete. BCF STATUS, RP0 ; Banco 0. MOVF DATA_EE_ADDR, W ; DATA_EE_ADDR contiene ; la dirección a acceder. MOVWF EEADR ; Establece la dirección a escribir. BSF STATUS, RP0 ; Banco 1. BSF EECON1, WREN ; Habilita permiso para escritura. BCF INTCON,GIE ; De habilita interrupciones. MOVLW 55h ; Debe mandarse el valor 55h a MOVWF EECON2 ; EECON2 para iniciar la ; secuencia de escritura. MOVLW AAh MOVWF EECON2 ; Escribe AAh. BSF EECON1, WR ; WR <-- 1. Comienza la escritura. BSF INTCON, GIE ; Habilita interrupciones. BCF EECON1, WREN ; Deshabilita escritura. return Mauricio López V. (Ingeniería) Memoria EEPROM... Noviembre, / 79

Alarma con Interfaz DTMF de Línea Telefónica basado en PIC16F84

Alarma con Interfaz DTMF de Línea Telefónica basado en PIC16F84 Alarma con Interfaz DTMF de Línea Telefónica basado en PIC16F84 Propósito En toda aplicación donde normalmente se requiera el establecimiento de una conexión telefónica se hace necesario el diseño de una

Más detalles

RECURSOS FUNDAMENTALES

RECURSOS FUNDAMENTALES RECURSOS FUNDAMENTALES Los recursos que se considerarán son : Temporizadores Puertos de E/S La Palabra de Configuración EEPROM de datos 1 TEMPORIZADORES Una labor habitual en los programas de control suele

Más detalles

Registros SFR vistos hasta ahora: Microcontroladores PIC

Registros SFR vistos hasta ahora: Microcontroladores PIC Registros SFR vistos hasta ahora: Microcontroladores PIC Microcontroladores PIC: Timer Características del Timer TMR0: Cumple básicamente la función de contador de eventos (o divisor de frecuencia). El

Más detalles

TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1

TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1 TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1 Estructura De La Memoria Ram (1) La memoria de datos RAM está dividida en dos partes diferenciadas: 1.- Zona SFR o zona de Registros

Más detalles

Practica de PIC 16F84

Practica de PIC 16F84 Practica de PIC 16F84 Los PIC son circuitos que pueden controlar dispositivos y diferentes sistemas, son como los PLC (controles lógico programable), además debo decir que es un circuito que tiene todas

Más detalles

PIC MICRO ESTUDIO Reloj en tiempo real RTCU2 Clave: 719 www.electronicaestudio.com

PIC MICRO ESTUDIO Reloj en tiempo real RTCU2 Clave: 719 www.electronicaestudio.com PIC MICRO ESTUDIO Reloj en tiempo real RTCU2 Clave: 719 www.electronicaestudio.com Guía de Operación Reloj en tiempo real Modulo: RTCU2iempo real Clave: 719 El modulo 719 Reloj en tiempo real- utiliza

Más detalles

Capítulo VIII: PROGRAMACIÓN DEL PIC 16F876A

Capítulo VIII: PROGRAMACIÓN DEL PIC 16F876A Capítulo VIII: PROGRAMACIÓN DEL PIC 16F876A Proyecto Fin de Carrera 95 Antonio Andújar Caballero 8. PROGRAMACIÓN DEL PIC 16F876A. A la hora de realizar el programa de control para nuestro ecualizador,

Más detalles

MICROCONTROLADORES PIC EEPROM. Memoria de programa Características

MICROCONTROLADORES PIC EEPROM. Memoria de programa Características EEPROM. Memoria de programa Características Algunos dispositivos pueden leer la memoria de programa. Leer checksums, calibración de datos, tablas. 14-bits de datos comparados con los 8 de retlw 0xnn Accesibles

Más detalles

Instrucciones para programar el PIC16F877

Instrucciones para programar el PIC16F877 Instrucciones para programar el PIC16F877 2 Estos microcontroladores responden a una serie de instrucciones o códigos que se deben grabar en su memoria de programa, en total son 35. A continuación se encuentra

Más detalles

Programación en PIC Los primeros pasos

Programación en PIC Los primeros pasos Capítulo V Programación en PIC Los primeros pasos Encender y apagar un LED Secuenciador con cuatro LED's Leer los pulsadores y encender el LED correspondiente Programa avanzado utilizando el entrenador

Más detalles

Proyectos con el PIC16F84

Proyectos con el PIC16F84 Capítulo 2 Proyectos con el PIC6F84 Conexión de LED y dipswitch Manejo de un display de siete segmentos Multiplexaje de teclados y displays Conexión de memorias seriales al PIC Manejo de un módulo LCD

Más detalles

Energía fotovoltaica y su aplicación rural

Energía fotovoltaica y su aplicación rural Energía fotovoltaica y su aplicación rural Antonio Blanco Solsona, Francisco García Trobat [email protected] [email protected] INTRODUCCIÓN En las fincas rurales aisladas es cada vez más necesario

Más detalles

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O Interfaz con Dispositivos I/O Interfaz con Dispositivos de Salida y Salida Unidad 4, Segunda Parte Port Mapped Memory mapped 1 2 Ejecución de la Instrucción OUT Ejecución de la instrucción OUT Dirección

Más detalles

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez Estructura de Microprocesadores PIC 18F4550 Administración de la memoria Profesor Ing. Johan Carvajal Godínez Contenidos Organización de la memoria del MCU Administración de la memoria de programa (Flash)

Más detalles

Programa del PIC 16F877A

Programa del PIC 16F877A APÉNDICE B Programa del PIC 16F877A ;* "CONTROL AUTOMÁTICO DE VELOCIDAD VEHICULAR". * ;* EL PRESENTE PROGRAMA TIENE COMO FINALIDAD CONTROLAR LA VELOCIDAD DEL * ;* VEHÍCULO, DEPENDIENDO DE LA SEÑAL RECIBIDA

Más detalles

Pines de entrada/salida (I/O) de propósito general. Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos.

Pines de entrada/salida (I/O) de propósito general. Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos. 1 Pines de entrada/salida (I/O) de propósito general Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos. Para añadir flexibilidad al micro, muchos de sus pines de entrada/salida

Más detalles

Tema: Utilización del módulo ADC en los microcontroladores PIC.

Tema: Utilización del módulo ADC en los microcontroladores PIC. 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Microcontroladores Lugar de ejecución: Laboratorio de microprocesadores, Edif. 3 Electrónica. Tema: Utilización del módulo ADC en los microcontroladores

Más detalles

;*****************************************PROGRAMA*******************************************

;*****************************************PROGRAMA******************************************* 176 ;*****************************************PROGRAMA******************************************* LIST p=16f628a ; Procesador utilizado INCLUDE "P16F628A.INC" ; Definición de los registros del Pic CONFIG

Más detalles

Microcontrolador PIC 16F84

Microcontrolador PIC 16F84 PROGRAMACIÓN PIC (II) Microcontrolador PIC 16F84 mail : enric.serra 0 - INTRODUCCIÓN. Este documento es una continuación al documento de programación del PIC 16f84. Este documento se puede copiar y utilizar

Más detalles

Características Técnicas del PIC 16F84

Características Técnicas del PIC 16F84 Características Técnicas del PIC 16F84 Repertorio de 35 Instrucciones. Todas las instrucciones se ejecutan en un solo ciclo excepto las de salto que necesitan dos. Versiones de 4 MHz (PIC16F84-04) y 10

Más detalles

Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador

Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador Jesús Alberto Díaz Carmona Ingeniería en Informática. Curso 2005/06. Diseño de Sistemas Basados en Microprocesador Descripción El proyecto se trata de un sistema de cámaras de vigilancia en circuito cerrado,

Más detalles

Las Instrucciones. A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro.

Las Instrucciones. A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro. Las Instrucciones A continuación vamos a presentar el conjunto de instrucciones básico de los Microcontroladores Picmicro. En general la instrucciones de los microcontroladores pueden clasificarse como:

Más detalles

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario.

El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario. 1 LENGUAJE ENSAMBLADOR El único lenguaje que entienden los microcontroladores es el código máquina formado por ceros y unos del sistema binario. El lenguaje ensamblador expresa las instrucciones de una

Más detalles

Rutinas de programación

Rutinas de programación Capítulo VI Rutinas de programación La suma La resta La rotación La multiplicación La división Conversión binario a BCD Suma BCD Conexión de displays al PIC Curso Básico de Microcontroladores PIC 79 80

Más detalles

Práctica 1. Introducción al laboratorio y al ensamblador del PIC. 1. Objetivos. 2. Introducción. 2.1 Ensamblar y simular

Práctica 1. Introducción al laboratorio y al ensamblador del PIC. 1. Objetivos. 2. Introducción. 2.1 Ensamblar y simular Práctica Introducción al laboratorio y al ensamblador del PIC Práctica Introducción al laboratorio y al ensamblador del PIC. Objetivos El objetivo de esta primera sesión es que el alumno aprenda el manejo

Más detalles

Tema 14. Interrupciones. Las. C. F. G.S. D.P.E. Módulo de Proyectos 1

Tema 14. Interrupciones. Las. C. F. G.S. D.P.E. Módulo de Proyectos 1 Tema 14 Las Interrupciones C. F. G.S. D.P.E. Módulo de Proyectos 1 Los PIC de la familia 16F8X poseen 4 fuentes de interrupción: Interrupción externa a través del pin RB0/INT Interrupción por overflow

Más detalles

UNIVERSIDAD DON BOSCO

UNIVERSIDAD DON BOSCO CICLO 02 2013 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACIÓN DE ELECTRÓNICA GUÍA DE LABORATORIO Nº 03 ASIGNATURA: Control Digital NOMBRE DE LA PRACTICA: Configuración de los Puertos

Más detalles

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA UNIDAD CULHUACAN INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN LABORATORIO DE CIRCUITOS DIGITALES

Más detalles

DISPLAY LCD MICROPROCESADORES

DISPLAY LCD MICROPROCESADORES Módulo LCD HD4478 de de Hitachi Módulo LCD HD4478 de de Hitachi E R / W D-D7 D-D7 VDD Vo Vss Controlador Controlador del del LCD LCD HD4478 HD4478 Manejador Manejador Del Del LCD LCD Manejador Manejador

Más detalles

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III APUNTE DEL 8155 ELECTRÓNICA DIGITAL III Revisión 1.1 Marzo, 2011 Interfaz a periférico 8155 Descripción general El chip 8155 es un dispositivo introducido por Intel en 1977. Contiene memoria RAM (SRAM)

Más detalles

EDUPIC Módulo 16F628 Manual del Usuario

EDUPIC Módulo 16F628 Manual del Usuario 1 EDUPIC Módulo 16F628 Manual del Usuario Indice : 1. Introducción 2 2. Descripción general 2 3. Definición de los pines en el 16F628 4 4. Programador de la memoria FLASH 5 5. Oscilador 5 6. Arquitectura

Más detalles

b) Las teclas pueden generar varios impulsos tanto al pulsar como al soltar (rebotes durante t < 100 ms, p. ej.). El usuario pulsa la tecla así

b) Las teclas pueden generar varios impulsos tanto al pulsar como al soltar (rebotes durante t < 100 ms, p. ej.). El usuario pulsa la tecla así . Control de un teclado matricial En esta práctica se genera el código adecuado para poder utilizar un teclado matricial. El programa debe convertir cada pulsación sobre el teclado, en un carácter ASCII

Más detalles

El módulo LCD Ejemplos de funcionamiento

El módulo LCD Ejemplos de funcionamiento SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 7: El módulo LCD El módulo LCD Ejemplos de funcionamiento - 1 - 1. Objetivos: - Conocer el funcionamiento y programación

Más detalles

TECLADO TACTIL CAPACITIVO SIGMA ELECTRONICA

TECLADO TACTIL CAPACITIVO SIGMA ELECTRONICA TECLADO TACTIL CAPACITIVO SIGMA ELECTRONICA Imagen 1: Teclado Táctil Capacitivo. 1 DESCRIPCION. Teclado táctil capacitivo basado en la tecnología QMatrix de Atmel. El usuario debe disponer de 6 líneas

Más detalles

Transmisión de datos por Radio Frecuencia

Transmisión de datos por Radio Frecuencia Transmisión de datos por Radio Frecuencia Diseño de Sistemas Basados en Microcontrolador Universidad de Las Palmas de Gran Canaria 2003-04 José Carlos Ruiz Luque Francisco García Rodríguez 1 CONTENIDOS

Más detalles

TEMA 20 EL CONVERSOR A/D

TEMA 20 EL CONVERSOR A/D TEMA 20 EL CONVERSOR A/D Introducción Al Conversor Analógico/Digital Los microcontroladores PIC de la familia 16F78x, poseen un conversor A/D de 10 bits de resolución, y con 5 entradas para los dispositivos

Más detalles

PIC 18F45XX EL TIMER 0

PIC 18F45XX EL TIMER 0 PIC 18F45XX EL TIMER 0 1. Hardware asociado 2. Características Se puede configurar como temporizador o contador de 8/16 bits. Se puede leer o escribir en él a través del registro TMR0. Dispone de un preescaler

Más detalles

Programación de Microcontroladores PIC-Microchip

Programación de Microcontroladores PIC-Microchip 69 Instituto Politécnico Nacional Escuela Superior de Cómputo Departamento de Programación y Desarrollo de Sistemas Academia de Algoritmia y Programación Programación de Microcontroladores PIC-Microchip

Más detalles

Controlador de Interrupciones (Versión programable) Manual de Usuario

Controlador de Interrupciones (Versión programable) Manual de Usuario Controlador de Interrupciones (Versión programable) Manual de Usuario Índice de contenido 1. Características...2 2.Descripción general...3 3.Descripción funcional...3 4.Estructura Interna...4 4.1 Bloque

Más detalles

1. ÍNDICE. Índice de contenido 2. INTRODUCCIÓN 3. CONTENIDO 1. OBJETIVOS DEL PROYECTO

1. ÍNDICE. Índice de contenido 2. INTRODUCCIÓN 3. CONTENIDO 1. OBJETIVOS DEL PROYECTO ULPGC, Universidad de Las Palmas de Gran Canarias. Facultad de Informática. Asignatura: Diseño de Sistemas Basados en Microprocesadores Profesor: Ricardo Pérez García. Regador Automático ACOSTA PADRÓN,

Más detalles

MICROCONTROLADORES PIC

MICROCONTROLADORES PIC MICROCONTROLADORES PIC LOS TIMER DE LOS 16F87x TEMA EL TIMER 1 CCFF D.P.E. MÓDULO DE PROYECTOS 1 Diagrama de Bloques del TIMER1 CCFF D.P.E. MÓDULO DE PROYECTOS 2 INTRODUCCIÓN El módulo TIMER1 es un temporizador/contador

Más detalles

Ing. Jose Luis Apaza Gutierrez MEMORIAS. Un elemento de memoria es aquel elemento capaz de almacenar un estado durante un tiempo determinado.

Ing. Jose Luis Apaza Gutierrez MEMORIAS. Un elemento de memoria es aquel elemento capaz de almacenar un estado durante un tiempo determinado. LABORATORIO # 9 Realización: MEMORIAS 1. OBJETIVOS Comprender la función del bus de datos, direcciones y las líneas de control lectura(read), escritura(write) y selección de chip (CS) en una menoria RAM.

Más detalles

PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628

PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628 Los Bits de Configuración del PIC16F628 44 PRÁCTICA 4 LOS BITS DE CONFIGURACIÓN DEL PIC16F628 OBJETIVOS Identificar cada uno de los bits de configuración que rigen el funcionamiento del PIC16F628. Verificar

Más detalles

Taller de Firmware. Introducción al PIC16F877. Facultad de Ingeniería Instituto de Com putación

Taller de Firmware. Introducción al PIC16F877. Facultad de Ingeniería Instituto de Com putación Taller de Firmware Introducción al PIC16F877 Facultad de Ingeniería Instituto de Com putación Contenido Introducción a los microcontroladores PIC. Presentación del PIC 16F877. Introducción a los microcontroladores

Más detalles

Modulo LCD MODULO LCD

Modulo LCD MODULO LCD MODULO LCD Las pantallas de cristal líquido LCD o display LCD (Liquid Cristal Display) consta de una matriz de caracteres (normalmente de 5x7 o 5x8 puntos) distribuidos en una, dos, tres o cuatro líneas

Más detalles

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Tutoría 2. Banco de memoria de 8 y 16 bits (8086) Tutoría 2. Banco de memoria de 8 y 16 bits (8086) RESUMEN Cuando el procesador opera en modo mínimo, éste genera las señales de control para la memoria y los dispositivos de E/S. [1, pág. 292]. Para utilizar

Más detalles

ITT-327-T Microprocesadores

ITT-327-T Microprocesadores ITT-327-T Microprocesadores Temporizador Programable (PIT) 8254. Temporizador/Contador Programable (PIT) 8254. Es un contador/temporizador programable diseñado para trabajar con los sistemas de microcomputadores.

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega [email protected] Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles

Guía rápida para gestionar el puerto paralelo del PC

Guía rápida para gestionar el puerto paralelo del PC Guía rápida para gestionar el puerto paralelo del PC Descarga desde: http://eii.unex.es/profesores/jisuarez/descargas/ip/guia_rapida_pp.pdf José Ignacio Suárez Marcelo Universidad de Extremadura Escuela

Más detalles

CALCULADORA DE FUNCIONES BÁSICAS Oscar Gregorio Pérez Macías [email protected]

CALCULADORA DE FUNCIONES BÁSICAS Oscar Gregorio Pérez Macías mummy007_02@hotmail.com CALCULADORA DE FUNCIONES BÁSICAS Oscar Gregorio Pérez Macías [email protected] RESUMEN La función de la calculadora de funciones básicas, es realizar las operaciones tales como: suma, resta y multiplicación

Más detalles

Introducción a BMP085 Versión 1.0

Introducción a BMP085 Versión 1.0 1. [ BMP085 - Barómetro ] El kit incluye el sensor de presión y temperatura BMP085 de la marca Bosch, el mismo es normalmente utilizado en plataformas electrónicas como Arduino, por lo que fácilmente se

Más detalles

LCD. Las pantallas de cristal líquido o módulos LCD, como. Módulo. con interface serial

LCD. Las pantallas de cristal líquido o módulos LCD, como. Módulo. con interface serial Módulo Módulo LCD con interface serial LCD con interface serial EDISON DUQUE C. Este módulo permite mostrar, en una pantalla de cristal líquido, los mensajes que son enviados desde una computadora o un

Más detalles

MICROCONTROLADORES PIC

MICROCONTROLADORES PIC EL TECLADO MATRICIAL MANEJO DE INTERRUPCIONES MICROCONTROLADORES PIC EJERCICIOS TECLADO HEXADECIMAL.03B CCFF D.P.E. MÓDULO DE PROYECTOS 1 EL TECLADO MATRICIAL 4X4 Y LA INTERRUPCIÓN RBIF Manejo Del Teclado

Más detalles

Manejo LCD Gráfico DSM

Manejo LCD Gráfico DSM Manejo LCD Gráfico DSM Christopher Orihuela Sosa 10/09/07 Índice Introducción...1 Hardware...2 LCD...3 patillaje...4 tabla de instrucciones...5 Timings...6 Organización de la pantalla...8 Circuito completo...9

Más detalles

Laboratorio 2.6.1: Orientación de topología y creación de una red pequeña

Laboratorio 2.6.1: Orientación de topología y creación de una red pequeña Laboratorio 2.6.1: Orientación de topología y creación de una red pequeña Diagrama de topología Red punto a punto Redes conmutadas Objetivos de aprendizaje Al completar esta práctica de laboratorio, usted

Más detalles

CONEXIÓN DE UNA PANTALLA LCD A UN MICROCONTROLADOR

CONEXIÓN DE UNA PANTALLA LCD A UN MICROCONTROLADOR CONEXIÓN DE UNA PANTALLA LCD A UN MICROCONTROLADOR ALUMNOS: José Hipólito Pascual José Luis Fernández Enrique Silvestre Mario Pozo José Ignacio Seguí 1 INDICE 1-Introducción 2- Qué es un LCD? 2.1-Los caracteres

Más detalles

Indice. Escrito por Administrator Martes, 02 de Septiembre de 2008 17:45 - Actualizado Domingo, 20 de Septiembre de 2009 07:45 1 / 15

Indice. Escrito por Administrator Martes, 02 de Septiembre de 2008 17:45 - Actualizado Domingo, 20 de Septiembre de 2009 07:45 1 / 15 1 / 15 El contenido del libro " MICROCONTROLADOR PIC16F84. Desarrollo de proyectos " de la Editorial Ra CAPÍTULOS: 1. MICROCONTROLADOR PIC16F84 2. PERIFÉRICOS BÁSICOS 3. GRABACIÓN DE MICROCONTROLADORES

Más detalles

Conceptos de Arquitectura de Computadoras Curso 2015

Conceptos de Arquitectura de Computadoras Curso 2015 PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.

Más detalles

}Transparencias de clase en

}Transparencias de clase en Sistemas de memoria Conceptos básicos Jerarquía de memoria Memoria caché }Transparencias de clase en campusvirtual.udc.es Memoria principal Memoria virtual Memoria principal Antiguamente: Matriz de pequeños

Más detalles

CONTEXTO DE LA MEMORIA EN UN SISTEMA DE CÓMPUTO M E M O R I A S

CONTEXTO DE LA MEMORIA EN UN SISTEMA DE CÓMPUTO M E M O R I A S 152 CONTEXTO DE LA MEMORIA EN UN SISTEMA DE CÓMPUTO M E M O R I A S La manipulación la información binaria en la mayoría de los procesos lógicos en electrónica digital y en general en los sistemas de cómputo,

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

MODBus RTU en los registradores CAMRegis

MODBus RTU en los registradores CAMRegis 157FHF1 E MODBus RTU en los registradores CAMRegis 1. INTRODUCCIÓN Este documento está orientado a describir al usuario el funcionamiento del protocolo serie de comunicaciones MODBus RTU implementado por

Más detalles

Tema 6: Microcontroladores

Tema 6: Microcontroladores Tema 6: Microcontroladores Carlos Garre del Olmo 1 Microcontroladores Contenidos Introducción a los microcontroladores. Principales familias y sus características. La familia PIC16. Programación de microcontroladores.

Más detalles

Sistema de seguridad con emisión de mensaje SMS

Sistema de seguridad con emisión de mensaje SMS Sistema de seguridad con emisión de mensaje SMS INDICE 1.- INTRODUCCIÓN Pág. 1 2.- ELEMENTOS HARDWARE EMPLEADOS. Pág. 1 3.- COMUNICACIÓN SERIE (Comandos at)... Pág. 4 4.- EXPLICACIÓN DEL PROGRAMA... Pág.

Más detalles

Tema: Comunicación serie entre PIC y PC.

Tema: Comunicación serie entre PIC y PC. 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Microcontroladores Lugar de ejecución: Laboratorio de microprocesadores, Edif. 3 Electrónica. Tema: Comunicación serie entre PIC y PC. Objetivo general

Más detalles

Electrónica Digital II

Electrónica Digital II Electrónica Digital II TIPOS DE MEMORIAS MEMORIA DDR MEMORIA DDR2 MEMORIA DDR3 COMPARACIÓN TIEMPOS DE ACCESO TIPOS DE LATENCIAS RAS CAS ACTIVIDAD PRECARGA TIPOS DE CONFIGURACIONES SINGLE CHANNEL DUAL CHANNEL

Más detalles

PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS

PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS 1. CARACTERISTCAS Suministro de voltaje de funcionamiento 2.5 a 6 V Bajo consumo de corriente de espera (standby) de 10 ma máximo. Expansor I²C a puerto paralelo.

Más detalles

4.2 Servicio de exploración de E/S

4.2 Servicio de exploración de E/S 4.2 Servicio de exploración de E/S Acerca de esta sección En esta sección se presentan algunas funciones, características y opciones de configuración del servicio de exploración de E/S. Contenido de esta

Más detalles

Mapeo en el P 8086 de Intel

Mapeo en el P 8086 de Intel Mapeo en el P 8086 de Intel Ing. Silvia Domizi Ing. Diego Alegrecci Mapeo Microprocesador 8086 1 Introducción Mapeo Microprocesador 8086 2 Mapeo Mapear un dispositivo, es asignarle un intervalo definido

Más detalles

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas Tema 5. Soluciones a los problemas impares Estructura de Computadores I. T. Informática de Gestión / Sistemas Curso 28-29 Tema 5 Hoja: 2 / 36 Tema 5 Hoja: 3 / 36 Base teórica La memoria es el lugar en

Más detalles

ESTRUCTURA BÁSICA DE UN ORDENADOR

ESTRUCTURA BÁSICA DE UN ORDENADOR ESTRUCTURA BÁSICA DE UN ORDENADOR QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... Qué son los

Más detalles

DISPLAYS DE CRISTAL LIQUIDO

DISPLAYS DE CRISTAL LIQUIDO DISPLAYS DE CRISTAL LIQUIDO INDICE MANUAL DE REFERENCIA DEL LCD 1.- INTRODUCCION 2.- CARACTERISTICAS DEL DISPLAY 2.1.- Aspecto físico 2.2.- Alimentación 2.3.- Los caracteres del LCD 2.4.- La memoria del

Más detalles

INGENIERIA EN MICROCONTROLADORES. Maquinas de Estado. Introducción

INGENIERIA EN MICROCONTROLADORES. Maquinas de Estado. Introducción INGENIERIA EN MICROCONTROLADORES Maquinas de Estado Introducción MAQUINA DE ESTADOS www.i-micro.com Ingeniería en Microcontroladores Teléfono 044 55 11 29 55 05 E-mail: [email protected] [email protected]

Más detalles

La familia PIC18 USB posee 4 timers: Timer0, Timer1, Timer2 y Timer3, cada uno de los cuales tiene sus características únicas.

La familia PIC18 USB posee 4 timers: Timer0, Timer1, Timer2 y Timer3, cada uno de los cuales tiene sus características únicas. 59 5 TIMERS Todos los microcontroladores poseen circuitos temporizadores (timers), los cuales son útiles para: Programar tareas con alta precisión. Contar pulsos externos. Medir intervalos de tiempo. etc.

Más detalles

W4IKS MANUAL DEL USUARIO

W4IKS MANUAL DEL USUARIO W4IKS MANUAL DEL USUARIO Introducción El controlador 170 es una mini computadora diseñada para controlar señales de transito. El hardware esta compuesto por el procesador, memoria (RAM y EPROM), una interfase

Más detalles

Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC.

Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC. Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC. 1. Introducción... 1 2. Funcionamiento del Timer0... 1 2.1. Estructura general del Timer0...2 2.2. Entrada de reloj del modulo Timer0...2

Más detalles

Interrupciones Fuentes de Interrupciones para el PIC16F1787

Interrupciones Fuentes de Interrupciones para el PIC16F1787 Fuentes de para el PIC16F1787 Interrupción externa a través del pin RB0/INT Interrupción por cambio de nivel Interrupción por escritura en la EEPROM Interrupción por desbordamiento del TMR0 Interrupción

Más detalles

CICLOS DEL PROCESADOR

CICLOS DEL PROCESADOR UNIDAD DE CONTROL CICLOS DEL PROCESADOR Qué es un ciclo de búsqueda? Para qué sirve estudiar los ciclos de instrucción de una CPU? Para comprender el funcionamiento de la ejecución de instrucciones del

Más detalles

El Microcontrolador PIC16F877. Resumen de hoja de datos

El Microcontrolador PIC16F877. Resumen de hoja de datos El Microcontrolador PIC16F877 Resumen de hoja de datos 2 El PIC16F877 es un microcontrolador con memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su

Más detalles

configuración de tu equipo. Rellena la siguiente tabla y contesta a las siguientes preguntas:

configuración de tu equipo. Rellena la siguiente tabla y contesta a las siguientes preguntas: 1) Abre la consola de MS-DOS y teclea el comando ipconfig/all para consultar la configuración de tu equipo. Rellena la siguiente tabla y contesta a las siguientes preguntas: ADAPTADOR ETHERNET CONEXIÓN

Más detalles

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal. MEMORIAS CACHE Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal. Tiempo ciclo memoria > tiempo de ciclo del procesador la CPU debe esperar a la memoria

Más detalles

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011 1 ontenido 2 UNIDAD 5 EL LENGUAJE DE ENSAMBLADOR DEL Z80 onjunto de instrucciones Tipos de instrucciones Modos de direccionamiento El ensamblador del Z80 El simulador AVOET Implementación de un sistema

Más detalles

Control de pantallas de cristal líquido mediante PIC

Control de pantallas de cristal líquido mediante PIC INGENIERÍA Control de pantallas de cristal líquido mediante PIC Ejemplo práctico de interconexión y control de una pantalla de cristal líquido (LCD) por un microcontrolador PIC CELESTINO BENÍTEZ VÁZQUEZ

Más detalles

MANUAL DEL USUARIO BALANZA ELECTRÓNICA PROGRAMABLE MX8F MIXER VERSION C-1.7

MANUAL DEL USUARIO BALANZA ELECTRÓNICA PROGRAMABLE MX8F MIXER VERSION C-1.7 MANUAL DEL USUARIO BALANZA ELECTRÓNICA PROGRAMABLE MX8F MIXER VERSION C-1.7 BÁSCULAS MAGRIS - J. B. JUSTO 957 - (6100) RUFINO - SANTA FE T.E. (03382) 429043 INDUSTRIA ARGENTINA NOTA MUY IMPORTANTE: ANTES

Más detalles

Centro Universitario de Ciencias Exactas e Ingenierías DIVISION DE ELECTRONICA Y COMPUTACION

Centro Universitario de Ciencias Exactas e Ingenierías DIVISION DE ELECTRONICA Y COMPUTACION SISTEMA DE SEGURIDAD PARA CASA HABITACION González Padilla Carlos Efraín, Hernández García Edgar Aureliano, López Seda Celia Cristina, Vázquez Domínguez Armando. e-mail: [email protected], [email protected],

Más detalles

4. Escribe con palabras lo que significan las siguientes letras y di cuántos bytes hay aproximadamente: a) 1 Gb? b) 1 Mb? C) 1 Kb?

4. Escribe con palabras lo que significan las siguientes letras y di cuántos bytes hay aproximadamente: a) 1 Gb? b) 1 Mb? C) 1 Kb? 1. Qué es un bit? 2. Qué valores puede tener un bit? 3. Cuántos bits hay en 1 byte? 4. Escribe con palabras lo que significan las siguientes letras y di cuántos bytes hay aproximadamente: a) 1 Gb? b) 1

Más detalles

Microcontroladores PIC de Microchip: generalidades

Microcontroladores PIC de Microchip: generalidades Microcontroladores PIC de Microchip: generalidades PIC significa Peripheral Interface Controller Los fabrica ARIZONA MICROCHIP TECHNOLOGY. Fábrica principal: Chandler (Arizona). Otras en Tender (Arizona),

Más detalles

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila VOCABULARIO DEL HARDWARE Docente Yeni Ávila HARDWARE El Hardware Básico: son las piezas fundamentales e imprescindibles para que la computadora funcione como son: Placa base, monitor, teclado y ratón.

Más detalles

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012 Taller de Sistemas Operativos Direccionamiento de Memoria 2012 TSO Direccionamiento de Memoria - 2010 Agenda Arquitectura de memoria en x86 (IA-32). Direccionamiento en Linux. Arquitectura de memoria en

Más detalles

JVC CAM Control (para ipad) Guía de Usuario

JVC CAM Control (para ipad) Guía de Usuario JVC CAM Control (para ipad) Guía de Usuario Español Este es el manual de instrucciones para el software (para ipad) Live Streaming Camera GV-LS2/GV-LS1 de JVC KENWOOD Corporation. Los modelos compatibles

Más detalles

Definición de Memoria

Definición de Memoria Arquitectura de Ordenadores Representación de Datos en Memoria Abelardo Pardo [email protected] Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Definición de Memoria DRM-1 La memoria

Más detalles

Dependiendo del dispositivo usado, se tienen hasta 5 puertos de entrada/salida disponibles: PORTA PORTB PORTC PORTD PORTE

Dependiendo del dispositivo usado, se tienen hasta 5 puertos de entrada/salida disponibles: PORTA PORTB PORTC PORTD PORTE 25 3 ENTRADA / SALIDA Dependiendo del dispositivo usado, se tienen hasta 5 puertos de entrada/salida disponibles: PORTA PORTB PORTC PORTD PORTE Cada uno de estos puertos es de 8 bits, sin embargo no todos

Más detalles

Todos los sistemas basados en procesadores tienen dos tipos de memorias:

Todos los sistemas basados en procesadores tienen dos tipos de memorias: Todos los sistemas basados en procesadores tienen dos tipos de memorias: Memorias ROM (Read Only Memory) Contienen el programa y datos permanentes del sistema. Memorias RAM (Random Access Memory) Contienen

Más detalles

Dentro del PIC16F877 se distinguen tres bloques de memoria.

Dentro del PIC16F877 se distinguen tres bloques de memoria. 1 ORGANIZACIÓN de la MEMORIA Dentro del PIC16F877 se distinguen tres bloques de memoria. Memoria de programa En sus 8192 posiciones (8Kx14bits) contiene el programa con las instrucciones que gobiernan

Más detalles

BALANZA ELECTRONICA SOLO PESO

BALANZA ELECTRONICA SOLO PESO MIX M 1500g BALANZA ELECTRONICA SOLO PESO MANUAL DEL USUARIO 1. Características Plato rectangular en acero inoxidable de 18.5 x 14 cm. Display de cristal líquido (LCD) retroiluminado de alta visibilidad

Más detalles

MINI GUIA: CONEXIÓN SEPAM CON USB WINDOWS - XP

MINI GUIA: CONEXIÓN SEPAM CON USB WINDOWS - XP MINI GUIA: CONEXIÓN SEPAM CON USB 1 Actualmente los equipos SEPAM se suministran con puerto USB en el panel frontal. ------------------------ 2 Es obligatorio el uso de SFT2841 en su versión 14.0 o superior.

Más detalles

REEA. Conexión de un S con WinCC RT Advanced V.12

REEA. Conexión de un S con WinCC RT Advanced V.12 Conexión de un S7-1200 con WinCC RT Advanced V.12 Objetivo Conexión entre un autómata Siemens S7-1200 y el Scada WinCC Advanced V.12 en modo Runtime para PC. Hardware y software a utilizar Hardware: PC

Más detalles

Actualizaciones de software Guía del usuario

Actualizaciones de software Guía del usuario Actualizaciones de software Guía del usuario Copyright 2008, 2009 Hewlett-Packard Development Company, L.P. Windows es una marca comercial registrada de Microsoft Corporation en los Estados Unidos. Aviso

Más detalles

Características generales en el PIC16F877

Características generales en el PIC16F877 Módulo de Conversión / TEUniversidad de Oviedo 1 Módulo de Conversión / Características generales en el PIC16F877 Ocho canales de conversión. Cinco pines de PORT y los tres de PORTE. Convierte la señal

Más detalles