Está en la página 1de 13

Circuitos Digitales II 2019-I

Universidad del Cauca


CONTENIDO DE LA CLASE
Diseño Digital utilizando VHDL

Introducción a los Micro-controladores

Programación bajo nivel Micro-control. - Estructura y PINES de los Micro-controladores


- División de la memoria
- Manejo de Puertos digitales (escritura)
- Empleo de retardos en la operación
- Uso de subrutinas
- Manejo de Puertos digitales (lectura)
- Manejo de Tablas de datos
- Manejo de Interrupciones
- Diferentes tipos de interrupciones
Interrupciones por el puerto B
Interrupciones por el TIMER
ULTIMA REVISIÓN PRÁCTICA 2.
Programación alto nivel Micro-control.

Introducción tarjetas micro-controladas


Manejo de Interrupciones
Programación a bajo
nivel de micro- Cuando se produce una interrupción el micro-
controladores
controlador deja automáticamente lo que esté haciendo,
Estructura y PINES de los
Micro-controladores va directo a la dirección 04h de programa y ejecuta lo
División de la memoria que encuentre a partir de allí hasta encontrarse con la
instrucción RETFIE que le hará abandonar la
Manejo de Puertos digitales
(escritura) interrupción y volver al lugar donde se encontraba antes
Empleo de retardos en la
de producirse dicha interrupción.
operación Para que se pueda producir una interrupción, se debe
Uso de Subrutinas habilitar las interrupciones globalmente y la interrupción
en concreto que se quiere utilizar (con el
Manejo de Puertos digitales
(lectura) registro INTCON). El PIC (16F84A) tiene 4 tipos de
posibles interrupciones:
Manejo de Tablas de datos
1. Por cambio en los bits RB4-RB7,
Manejo de Interrupciones
2. Por el estado de RB0,
Diferentes tipos de
interrupciones 3. Por desbordamiento del Timer-contador,
4. Por fin de ciclo de escritura de la EEPROM de datos
Manejo de Interrupciones
Programación a bajo
nivel de micro- REGISTRO INTCON
controladores
Estructura y PINES de los
Micro-controladores

División de la memoria

Manejo de Puertos digitales


(escritura)

Empleo de retardos en la
operación

Uso de Subrutinas

Manejo de Puertos digitales


(lectura)

Manejo de Tablas de datos

Manejo de Interrupciones

Diferentes tipos de
interrupciones
Manejo de Interrupciones
Programación a bajo
nivel de micro- Diferencias manejo de interrupciones PIC16F877
controladores
Maneja las mismas causas de interrupción del PIC16F84
Estructura y PINES de los
Micro-controladores pero adicionalmente maneja las siguientes:
5. Desbordamiento del Timer1
División de la memoria
6. Desbordamiento del Timer2
Manejo de Puertos digitales
(escritura) 7. Captura o comparación en el módulo CCP1
Empleo de retardos en la
8. Captura o comparación en el módulo CCP2
operación 9. Transferencia en la puerta serie Síncrona
Uso de Subrutinas 10. Colisión de bus en la puerta serie Síncrona
Manejo de Puertos digitales 11. Fin de la transmisión en el USART
(lectura) 12. Fin de la recepción en el USART
Manejo de Tablas de datos 13. Fin de la conversión en el conversor A/D
Manejo de Interrupciones 14. Transferencia en la puerta paralela esclava

Diferentes tipos de
interrupciones
Manejo de Interrupciones
Programación a bajo
nivel de micro- Solo se van a estudiar inicialmente las interrupciones comunes
controladores en los dos tipos de PIC, es decir las cuatro iniciales.
Estructura y PINES de los
Micro-controladores
Se debe tener en cuenta que mientras se está ejecutando una
División de la memoria interrupción no se puede producir otra interrupción, el PIC no
lo permite.
Manejo de Puertos digitales
(escritura)

Empleo de retardos en la
Las acciones que debe tener en cuenta el programador al crear
operación sus programas, son las siguientes:
Uso de Subrutinas
• Cuando se produce una interrupción el bit7 GIE se pone a 0,
cuando termina la interrupción vuelve a 1
Manejo de Puertos digitales automáticamente.
(lectura)
• El valor del registro PC se guarda en la Pila (Stack) con el
Manejo de Tablas de datos valor 04h, que es el vector de interrupciones.
Manejo de Interrupciones • La rutina de atención a la interrupción, debe guardar todos
los registros que puedan ser modificados por la
Diferentes tipos de interrupción y explorar las banderas para determinar la
interrupciones
causa de la interrupción.
Manejo de Interrupciones
Programación a bajo
nivel de micro- Otras acciones que debe tener en cuenta el
controladores
programador al crear sus programas, son las siguientes:
Estructura y PINES de los
Micro-controladores
• Dependiendo de la causa (PIN RB0, o RB4-RB7 o
TIMER0), la rutina de interrupción se debe bifurcar a
División de la memoria la etiqueta correspondiente.
Manejo de Puertos digitales • Antes de volver al programa principal, se deben
(escritura)
devolver los valores originales salvados de los
Empleo de retardos en la registros anteriores a la interrupción y además
operación
limpiar (poner a 0) las banderas que indican la fuente
Uso de Subrutinas de la misma.
Manejo de Puertos digitales • Como última instrucción de la rutina de interrupción
(lectura)
usar RETFIE, que cargar el PC con el valor de Pila y el
Manejo de Tablas de datos bit GIE se pondrá automáticamente a 1.
Manejo de Interrupciones

Diferentes tipos de
interrupciones
Manejo de Interrupciones
Programación a bajo
nivel de micro- El bit7 GIE, es el encargado de la activación global que
controladores
habilita las interrupciones al ponerse a 1 y al reconocer
Estructura y PINES de los una interrupción se pone a 0 de forma automática,
Micro-controladores
evitando se produzca otra interrupción mientras se
División de la memoria atienda la actual.
Manejo de Puertos digitales
(escritura)
El bit GIE se pone de nuevo a 1 al retornar de la atención
Empleo de retardos en la a la interrupción al encontrar una instrucción RETFIE.
operación
Para el resto de los bits (banderas o flags) no está
Uso de Subrutinas previsto ningún tratamiento de puesta a cero, por lo que
Manejo de Puertos digitales es el propio programa de atención a la interrupción, el
(lectura) que le corresponde tratarla y las banderas (flags) que
Manejo de Tablas de datos indican la interrupción, debe ponerlas a 0 (cero).
Manejo de Interrupciones

Diferentes tipos de
interrupciones
Manejo de Interrupciones
Programación a bajo
nivel de micro- Si bien cada bandera cambia o se pone a 1 al producirse
controladores
una interrupción, es tarea del propio programador,
Estructura y PINES de los borrarla o ponerla a cero nuevamente, ya que si no lo
Micro-controladores
hace, el micro siempre permanecerá interrumpido o lo
División de la memoria que es lo mismo, creerá que la interrupción se está
Manejo de Puertos digitales
produciendo continuamente.
(escritura)

Empleo de retardos en la
operación

Uso de Subrutinas

Manejo de Puertos digitales


(lectura)

Manejo de Tablas de datos

Manejo de Interrupciones

Diferentes tipos de
interrupciones
Diferentes tipos de Interrupciones
Programación a bajo
nivel de micro- Interrupciones por el puerto B
controladores
Interrupciones por el puerto RB0
Estructura y PINES de los
Micro-controladores • Requiere habilitar el bit 7 de INTCON denominado GIE.
División de la memoria
• Requiere habilitar el bit 4 de INTCON denominado INTE.
• Requiere determinar con el bit 6 del registro OPTION, si
Manejo de Puertos digitales
(escritura) la interrupción es de flanco de bajada o subida.
• Requiere el adecuado manejo de la bandera, bit 1 de
Empleo de retardos en la
operación INTCON, denominado INTF, ponerla a 0 en el código de
interrupción.
Uso de Subrutinas
Interrupciones por los puertos RB4-RB7
Manejo de Puertos digitales
(lectura) • Requiere habilitar el bit 7 de INTCON denominado GIE.
Manejo de Tablas de datos
• Requiere habilitar el bit 3 de INTCON denominado RBIE.
• Requiere el adecuado manejo de la bandera, bit 1 de
Manejo de Interrupciones
INTCON, denominada RBIF, ponerla a 0 en el código de
Diferentes tipos de interrupción.
interrupciones
Diferentes tipos de Interrupciones
Programación a bajo
nivel de micro- Interrupciones por el puerto B
controladores
Registros importantes para el manejo de
Estructura y PINES de los
Micro-controladores interrupciones, adicionales al INTCON.
División de la memoria Registro STATUS y Registro W, requieren ser
almacenado su valor al inicio del código de
Manejo de Puertos digitales
(escritura) interrupción (para evitar que se pierda algún conteo
Empleo de retardos en la
o valor importante del programa principal).
operación

Uso de Subrutinas

Manejo de Puertos digitales


(lectura)

Manejo de Tablas de datos

Manejo de Interrupciones

Diferentes tipos de
interrupciones
Diferentes tipos de Interrupciones
Programación a bajo
nivel de micro- Interrupciones por el puerto B
controladores
Registros importantes para el manejo de
Estructura y PINES de los
Micro-controladores interrupciones, adicionales al INTCON.
División de la memoria Registro OPTION u OPTION_REG, se requiere (bit 6)
en el tipo de interrupciones por RB0, para
Manejo de Puertos digitales
(escritura) determinar el flanco (bajada o subida).
Empleo de retardos en la
operación

Uso de Subrutinas

Manejo de Puertos digitales


(lectura)

Manejo de Tablas de datos

Manejo de Interrupciones

Diferentes tipos de
interrupciones
Diferentes tipos de Interrupciones
Programación a bajo
nivel de micro- Interrupciones por el puerto B
controladores
Estructura y PINES de los
Micro-controladores Ejercicios
División de la memoria Revisar ejercicio 1
Manejo de Puertos digitales Presentar ejercicio 2
(escritura)
Realizar ejercicio 3.
Empleo de retardos en la
operación

Uso de Subrutinas

Manejo de Puertos digitales


(lectura)

Manejo de Tablas de datos

Manejo de Interrupciones

Diferentes tipos de
interrupciones

También podría gustarte