UNIVERSIDAD POLITÉCNICA SALESIANA
INGENIERÍA ELECTRÓNICA SISTEMAS MICROPROCESADOS
TEMA: TEMPORIZADORES
INFORME Nº 3
INTEGRANTES:
ERIKA ABRIL VINICIO DAVILA REMIN ZAMBRANO
1
OBJETIVO: •
Utilizar temporizadores con el microcontrolador pic.
• EJERCICIO 1: Utilizar el temporizador para elaborar un contador de 1 segundo, cuyo valor se observa en un display de 7 segmentos. CÓDIGO DEL PROGRAMA: program timerinterno dim a as byte a=0 trisa=$FF trisb=$0 option_reg=%10000111 Intcon=$0 TMR0=155 portb=$0 lazo: if tmr0=255 then inc(a) if a=38 then inc(portb) 2
end if end if goto lazo end. ALGORITMO: Entradas: Datos que ingresan al microcontrolador pic. Salidas: Datos que se mostrarán en el display. Procesos: 1. Definir el puerto b como entrada de datos (trisb=$0). 2. Almacenar en el puerto a el dato de activación del contador en el circuito (trisa=$ff). 3. Configurar el registro según la operación a realizarse (option_reg). 4. Controlar el lazo de funcionamiento del programa para que el timer sea ascendente y cuente desde 0 a 255. 5. Mostrar los datos que ingresaran al microcontrolador pic en el display.
3
DIAGRAMA DE FLUJO: Configuración de registros y variables
NO
SI
c
4
EJERCICIO 2: Elabore un programa que realice las operaciones del numeral 1, pero con TMR0=96, TMR0=155. CODIGO DEL PROGRAMA: program temporizadordos dim a as byte a=0 trisa=$FF trisb=$0 option_reg=%10000111 Intcon=$0 TMR0=155 portb=$0 lazo: if tmr0=255 then inc(a) if a=38 then inc(portb) end if end if goto lazo end. 5
DIAGRAMA DE FLUJO: Configuración de registros y variables
6
EJERCICIO 3: Elabore un programa que utilice el timer en modo contador externo, y visualice el incremento en un display de 7 segmentos. CODIGO DEL PROGRAMA: program timerexterno main: trisa=$ff trisb=$0 option_reg=%10100010 intcon=$0 tmr0=0 lazo: portb=tmr0 goto lazo end. ALGORITMO: Entradas: Datos que ingresan al microcontrolador pic. Salidas: Datos que se mostrarán en el display. Procesos: 1. Definir el puerto b como entrada de datos (trisb=$0). 7
2. Almacenar en el puerto a el dato de activación del contador en el circuito (trisa=$ff). 3. Configurar el registro según la operación a realizarse (option_reg). 4. Controlar el lazo de funcionamiento del programa para que el timer sea ascendente y cuente desde 0 a 255. 5. Mostrar los datos que ingresaran al microcontrolador pic en el display.
8
DIAGRAMA DE FLUJO:
9
EJERCICIO 4: Mediante un microcontrolador pic de la familia 12fxx, diseñar un semáforo según el siguiente diagrama secuencial. El sistema es cíclico, es decir luego de 60 segundos vuelve a repetirse la secuencia con tiempos idénticos, utilizar tres focos de 110 voltios (verde, amarrillo, rojo) optoacopladores y triacs. CODIGO DEL PROGRAMA: program semaforo1 main: trisb.0=0 trisb.1=0 trisb.2=0 portb.0=0 portb.1=0 portb.2=0 inicio: portb.0=1 portb.1=0 portb.2=0 delay_ms(20000) delay_ms(10000) portb.0=1 portb.1=1 portb.2=0 10
delay_ms(10000) portb.0=0 portb.1=0 portb.2=1 delay_ms(20000) goto inicio end. ALGORITMO: Entradas: Datos que ingresan al microcontrolador pic. Salidas: Datos que se mostrarán en la secuencia de focos. Procesos: 1. Habilitar el puerto b como entrada de datos (trisb=$0). 2. Configurar en el puerto b para poder ver los datos ingresados (port.0=0, portb.1=0, portb.2=0). 3. Programar las salidas de los puertos según el ejercicio propuesto. 4. Controlar los tiempos de espera entre encendido y apagado de los focos, mediante retardos. 5. Mostrar los datos que ingresaran al microcontrolador pic en la secuencia de los focos. 6. Regresar al lazo.
11
DIAGRAMA DE FLUJO:
12
ANEXOS:
Fig1: Timer interno
Fig2: timer externo
13
Fig3: semáforo
Fig4: semaforo
14