Departamento de Ingeniería Electrónica
Universidad de Sevilla


 Principal  Componentes  Docencia    Asignaturas    Programas    Profesores  Máster/Doctor.  Investigación  Alumnos  Enlaces  Convenios  Información  Contacto



 

Regresar

  Sistemas Electrónicos Digitales

Principal
Programa
Profesores
Descargas
Dudas(FAQ)
Notas
Noticias
Prácticas
Apuntes
Exámenes
Ejercicios
Ejemplos
Documentos
 

Prácticas de la asignatura


Fecha   Prácticas  
03-12-2011
Librerías para el PIC16F84/F88:
1. LENGUAJE C
1.0. Ficheros cabecera para el compilador C de el micro 16F84
1.0.1. pic16F84a.h
1.0.2. pic16F87.h Fichero para los micros 16F87/16F88 (29-11-2010)
1.0.3. config.c Palabra de configuración para 16f84a y 16f88
1.1. REBOTES.c: Librería para la lectura de un puerto con control de rebotes (Actualizado 15-06-2012)
1.2. TECLADO.c: Librería para gestión de un teclado de 4 filas x 3 columnas ()
1.3. I2C.c: Librería para conectar dispositivos I2C
1.4. LCD.c: Librería para gestión de un LCD 2x16
1.5. EEPROM.c: Librería para leer/escribir en la EEPROM interna
2. ENSAMBLADOR:
2.0. Fichero de cabecera en ensamblador para el micro 16F84
1.0.1. p16F84a.INC: Fichero del compilador para el 16F84
1.0.2. p16F88.INC: Fichero del compilador para el 16F88 (29-11-2010)
2.1. REBOTES.INC: Librería para la lectura de un puerto con control de rebotes
2.2. TECLADO.INC: Librería para la gestión de un teclado 4x3
2.2.1. Fichero: TECLADO_FIL(RB0-RB3)_COL(RB5-RB7).INC
2.2.2. Fichero: TECLADO_FIL(RA0-RA3)_COL(RB5-RB7).INC
2.2.3. Fichero: TECLADO_FIL(RA0-RA3)_COL(RB0-RB2).INC (Actualizado 2-11-2011)
2.3. EEPROM.INC: Librería para leer/escribir en la EEPROM interna




12-12-2011 Clase 13 (semana del 12 al 16 de diciembre)
1. Enunciado examen enero 2009 (adaptado al PIC16F88).
2. Fichero esquemático (baloncesto.DSN)+Ficheros en lenguaje C
2.1. El programa está estructurado en varios ficheros C con comentarios. Su lectura describe suficientemente el planteamiento y solución del problema.
2.2. Las librerías vienen incluidas en el paquete. Se han renombrado con extensión *.c (i2c.c y rebotes.c).
2.3. El conexionado se ha modificado un poco respecto al ejercicio visto en clase.
2.4. El programa está probado con la versión 9.70 del compilador (se puede descargar de la clase 4).




19-12-2011 Clase 12 (semana del 19 al 22 de diciembre)
1. Descripción del ejercicio
1.1. Componente I2C para gestión de 4 displays (SAA1064). Powerpoint.
2. Fichero esquemático (expendedora.DSN)
2.1. Componente I2C para gestión de 4 displays (SAA1064.dll)
3. Fichero en lenguaje C (expendedora.C). Requiere REBOTES.c e I2C.c




28-11-2011 Clase 10 (semana del 28/nov. al 2/dic.)
1. LCD de 2 líneas y 16 caracteres.
2. LCD conectado a: DATOS= [RB7:RB4], RS= RB2, E=RB3
2.1. Fichero Esquemático para el 16F84a (LCD_16F84a.DSN)
2.2. Fichero Esquemático para el 16F88 (LCD_16F88.DSN).
2.3. Fichero en lenguaje C (display.c, incluye LCD.c). Reloj a 20Mhz.
2.4. Modificación de examen: El LCD se conectará según el fichero del enlace y con un reloj de 8Mhz. Adaptar el programa en C.
3. Aplicación de LCD + Teclado
3.1. Fichero Esquemático para el 16F84a (LCD_16F84a.DSN). No puede funcionar porque no hay bastante memoria de programa. Se comprobará al compilar y ver el mensaje que genera.
3.2. Fichero Esquemático (LCD+Teclado_16F88.DSN). Utiliza reloj interno configurado a 8Mhz.
3.3. Fichero en lenguaje C (LCD+TECLADO.c) (incluye LCD.c, TELADO.c, REBOTES.c). Palabra de configuración ajustada para que trabaje con reloj interno configurado a 8Mhz.
3.4. Modificación de examen: Al pusar '*' se borrará el LCD y al pulsar '#' el cursor cambiará de línea.




20-11-2011 Clase 9 (semana del 21 al 25 de noviembre)
1. Gestión de 4 displays compartiendo líneas
pptx
1.0. Esquema para ver como se realiza la rotación
1.1. Rotación con una Frecuencia Configurable aproximada(100ms,50ms,25ms,8ms,4ms)
1.1.1. Esquemático para PIC16F84a (displays_16F84a.dsn)
1.1.1a. Fichero con componente de 4 displays juntos
1.1.2. Fichero en lenguaje C (displays_rotacion.c)
1.1.4. Modificación de examen: Cambiar en el esquema el PIC16F84a por el PIC16F88. Modificar el código para que funcione con el reloj interno del 16F88 a 8Mhz. Cada displays rotará con un periodo fijo de 8ms.
1.3. Modificación de examen: La entrada analógica procedente de AN4 se convertirá a digital y el número resultante se mostrará en los 4 displays de 7 segmentos. Rotará con un T=8ms y Reloj externo de 8Mhz.
2. Bus I2C. Aplicación con el PCF8574.
2.1. Fichero esquemático (I2C_PCF8574.DSN)
2.3. Fichero lenguaje C (PCF8574.c, incluye I2C.c)




11-11-2011 Clase 8 (semana del 14 al 18 de noviembre)
4. Entrada analógica por el pin RA1/AN1 (micro PIC16F88)
1.1. Fichero esquemático (adc.DSN)
1.2. Fichero en ensamblador (adc.asm). Comprobar la dificultad de trabajar con diferentes bancos de registros.
1.3. Fichero en lenguaje C (adc.c)
1.3.1. El diodo led se encenderá cuando la señal analógico supere los 2.5V
1.3.2. Se pretende activar un pin del puerto B dependiendo del valor analógico de la señal que entra por el pin RA1/AN1.
1.3.3. Se activará el pin del punto anterior y los que le preceden.
1.4. Fichero en lenguaje C resuelto con interrupciones (adc_interrup.c)
2. Filtro digital (filtrará una señal de 50hz que tiene un ruido de 2khz)
2.1. Fichero esquemático (filtro.DSN)
2.2. Fichero en lenguaje C con flotantes (no puede funcionar).
2.3. Fichero en lenguaje C con enteros.




05-11-2011 Clase 7 (semana del 7 al 11 de noviembre, solo el micro 16F88)
1. El TMR0 como contador: Interrupción al desbordar TMR0 (pasar de 255 a 0)
1.1. El displays se incrementará cada 3 flancos de subida de la entrada RA4/T0CKI.
1.1.1. Fichero esquemático (TMRxContador10.DSN)
1.1.2. Fichero ensamblador (contador3pulsos.asm)
1.1.3. Ejercicio: Fichero en lenguaje C (contador3pulsos.c) a partir del fichero contador10TMR0.c
2. Contador módulo 10 de 1hz (seleccionando uno de los 3 temporizadores).
Se utilizará el cristal interno que pulsa a 8Mhz.
TMR0    Tiempo= 4.Tosc.(256 -TMR0).Preescalador
TMR1    Tiempo= 4.Tosc.(65536-TMR1).Preescalador
TMR2    Tiempo= PostDivisor*( 4.Tosc.(PR2+1).Preescalador )
2.1. Fichero en lenguaje C (TMRxContador10.c)
2.2. Fichero EXCEL para calcular Frecuencias múltiplos de 1hz.
3. Ejercicio con PWM
3.1. Fichero esquemático (pwm.DSN)
3.2. Fichero en lenguaje C (pwm.c)




29-10-2011 Clase 6 (semana del 31/oct. al 4 de noviembre)
1. Interrupción externa (INTF, pin RB0)
1.1. Fichero esquematico (interrup.DSN)
1.2. Fichero ensamblador (interrup.asm)
1.2.1. Registros 16F84 y 16F88. Ubicación variables
1.3. Fichero en lenguaje C (interrup.c) Palabra de configuración para 16F88
1.4. Fichero esquemático para PIC16F88 (interrup_16F88.DSN)
1.5. Modificación de examen: cambiar el diseño en C y ASM para que el flanco de subida de RB0 incremente el valor del display y el cambio de un pin (flanco de subida o de bajada) de RB4-RB7 decremente el valor del display.
2. El TMR0 como temporizador: Tiempo= 4.Tosc.(256-TMR0).(divisor)
2.1. Ejemplo: Contador de 1 hz
2.1.1. Esquemático para el PIC16F84a
2.1.2. Fichero ensamblador (contador10tmr0.asm)
2.1.3. Fichero en lenguaje C (contador10tmr0.c)
2.1.4. Esquemático para el PIC16F88 (contador10tmr0_16f88.DSN)
2.2. TMR0.xls: Hoja de cálculo que contiene la fórmula para diferentes valores del divisor de frecuencias. La frecuencia de reloj (oscilación) es configurable.




14-10-2011 Clase 5 (semana del 24 al 28 de octubre)
1. Gestión de dos o más procesos usando estados
1.1. Fichero esquemático (dosProcesos.DSN)
1.2. Fichero ensamblador (dosProcesos.asm)
1.3. Fichero lenguaje C (dosProcesos.c)
2. Librería para la gestión de un teclado
2.1. Algoritmo para la gestión de un teclado (gestionTeclado.PDF)
3. Aplicación de la librería del teclado: Mostrar la tecla pulsada en un display de 7 segmentos
3.1. Fichero ensamblador (TECLADO_FIL(RB0-RB3)_COL(RB5-RB7).asm)
3.1.1. Incluye dos librerías: REBOTES.INC y TECLADO_FIL(RB0-RB3)_COL(RB5-RB7).INC
3.2. Fichero lenguaje C (teclado_opcion_1.c)
3.2.1. Incluye librerías: REBOTES.h y TECLADO.h
3.3. Fichero proteus con el componente teclado y con botones (TECLADO_FIL(RB0-RB3)_COL(RB5-RB7).DSN)
3.5. Modificación de examen: Conectar las filas del teclado a los pines [RA0:RA3] y los del display a los pines [RB3:RB0]. Modificar el esquemático así como el programa.
3.6. Modificación de examen: Filas: RA0:RA3, Columnas RB0:RB2, display: RB4:RB7
3.6.1. Esquemático (para 16f84a)
3.6.2. Ensamblador
3.6.3. Fichero en C




14-10-2011 Clase 4 (semana del 17 al 21 de octubre)
1. Programación utilizando estados (un solo proceso) (actualizado el 30-10-2010)
1.1. Fichero de simulación (estados.DSN)
1.2. Fichero ensamblador (estados.asm)
1.3. Fichero en lenguaje C (estados.c)
1.3.1. Configuración del simulador para el lenguaje C.
1.3.2. Compilador C v9.70 (6Mb. Seleccionar opción LITE al instalarlo)
2. Control de rebotes (Rebotes.PDF)
2.1. Ficheros de librería (REBOTES.INC ó REBOTES.h)
2.2. Fichero de simulación (estados.DSN)
2.3. Fichero ensamblador (estados_rebotes.asm, incluye rebotes.inc)
2.4. Fichero lenguaje C (estadoRebotes.c, incluye rebotes.c)
3. Ejercicio de un contador que lleva control de rebotes (botón CRECIENTE).
3.1. Fichero proteus (contador.dsn)
3.2. Fichero ensamblador (contador.asm)
3.3. Modificación de examen: El contador contará de forma decreciente con el otro botón que aparece en el esquemático.
3.4. Solución al ejemplo anterior
4. Periféricos básicos (perifericosBasicos.PDF)




09-10-2011 Clase 3 (semana del 10 al 14 de octubre)
1. Datos básicos del PIC16f84
1.1. Encapsulado (pines)
1.2. Arquitectura interna (Harvard, puertos, 1 temporizador, memorias)
1.3. Juego de instrucciones
1.3.1. Instrucciones: codificación, tamaño en binario, tiempo de ejecución y banderas a las que afecta
1.4. Características de catálogo para consulta
2. Primeros conceptos de un programa en ensamblador
2.0. Esquema básico (se diseñará con Proteus)
2.0.1. Fichero ensamblador (instr_01.asm)
2.0.2. Fichero de cabecera con lista de registros (pic16f84a.inc)
2.1 Directiva ORG: ubicación del código en memoria (conviene indentarla)
2.2. Bucle infinito: La CPU está continuamente ejecutando instrucciones (no para).
2.3. Comprobar que un resultado 0 activa Z='1' del registro STATUS
2.4. Comprobar que un resultado negativo se almacena en complemento a dos.
2.5. Esquema básico en Proteus (en el caso de que no funcione el diseñado)
3. Otros conceptos de la programación en ensamblador
3.1. Fichero led.asm para hacer parpadear un led indefinidamente
3.2. Paginación de memoria accesible con RP0. Ejemplo: registro PORTB y TRISB.
3.3. Declaración de variables (a partir de la posición 0x0C)
3.4. Utilización de las instrucciones de asignación de bit: BSF y BCF
3.5. Utilización de las instrucciones de salto si llega a 0: DECFSZ y INCFSZ
3.6. Uso de la PILA: llamadas a subrutinas.
4. Introducción a la programación en lenguaje C
4.1. Fichero en lenguaje C: led.c (parpadea indefinidamente)
5. Ejemplo: contador módulo 10 por software (para casa)
5.1. Esquema del circuito
5.2. Fichero ensamblador: contador10.asm
5.2.1. Ejemplo de cómo comparar una variable con un valor en ensamblador.
5.3. Fichero en lenguaje C: contador10.c
5.4. Fichero Proteus: contador10pic.DSN (para consultar)
6. Lectura/Escritura en la EEPROM interna
6.1. Fichero memoria.DSN
6.2. Fichero ensamblador: memoria.asm
- comentarios en formato lenguaje C
- incluye al fichero EEPROM.INC (bajarlo de las librerías)
6.3. Fichero en lenguaje C: eeprom.c
7. Manual para simulación del PIC16f84 con Proteus (fichero nuevo 05-11-2010)




04-10-2011 Clase 2 (semana del 6 al 7 de octubre). En el Centro de Cálculo se arrancará el windows llamado "PROTEUS"
1. Biestable activo por flanco de subida y con reset asíncrono
1.1. Fichero del diseño de un biestable sin reset.
1.2. Estímulos para un biestable sin reset
2. Simulación de un contador Módulo 10 (cuenta de 0 a 9)
2.1. Fichero de diseño: contador10.vhd (incompleto)
2.2. Fichero de diseño completo: contador10_completo.vhd
2.3. Fichero de estímulos
2.4. Simulación del contador en Proteus:
2.4.1. Esquema del contador
2.4.2 Fichero Proteus: contador10.DSN
2.4.3. Fichero de fusibles: contador10.jed (PALCE22V10-7PC)
2.4.4. Esquema de una PAL22V10
2.4.5. Guía básica genérica para diseño con Proteus
3. Simulación de una Máquina de Estados : Control de un paso a nivel
3.1. Fichero del diseño: tren.vhd
3.2. Fichero 1 de estímulos (para un tren corto): trenCorto_tb.vhd
3.3. Fichero 2 de estímulos (para un tren largo): trenLargo_tb.vhd
3.4. Simulación del tren con Proteus:
3.4.1. Fichero de fusibles: tren.jed
3.4.2. Fichero Proteus: tren.DSN
3.4. Fichero de simulación con Proteus: tren.DSN
4. Diseño del esquemático de un contador módulo 10 en Proteus
4.2. Esquema del contador
4.3. Fichero de fusibles para una PALCE22V10-7PC: contador10.jed




© 2005, R. Millán (Departamento de Ingeniería Electrónica, Universidad de Sevilla)