Академический Документы
Профессиональный Документы
Культура Документы
INGENIERÍA ELECTRÓNICA
SISTEMAS MICROPROCESADOS I
INFORME DE LA PRACTICA 3
TEMPORIZADORES
INTEGRANTES:
CHRISTIAN MORALES
HENRY SUNTAXI
SISTEMAS MICROPROCESADOS I
INFORME No. 3
INTEGRANTES: CHRISTIAN MORALES
HENRY SUNTAXI
OBJETIVO: Utilizar temporizadores con el microcontrolador PIC.
DESARROLLO
Para la practica se utilizo el PIC 16F877A.
PROCEDIMIENTO PRÁCTICO
1.
SISTEMAS MICROPROCESADOS I
PROBLEMA
Utilizar el temporizador para elaborar un contador de 1 segundo, cuyo valor se observe en
un display de 7 segmentos.
ALGORITMO
Entrada: Datos hacia el microcontrolador
Proceso:
Habilito el puerto A como entrada
Habilito el puerto B como salida
Escribo un registro (Option_reg)
Defino el TMRO en este caso TMRO=0
Calculo la variable a
Salida: Visualizo en el dispaly
CÓDIGO
program TimerInterno
dim a as byte
a=0
main:
trisa=$FF 'Programa contador interno
trisb=$0
option_reg=%10000111 'El timer ascendente cuenta de 0 a 255
Intcon=$0
TMR0=0
portb=$0
lazo:
if tmr0=255 then
inc(a)
if a=38 then
inc(portb)
end if
end if
goto lazo
end.
SISTEMAS MICROPROCESADOS I
DIAGRAMA DE FLUJOS
INICIO
Defino la variable a
Defino el option_reg=
%10000111
Defino TMRO=0
TMRO NO
=255
SI
Incremento en a
NO
A=38
SI
Incremento en Puerto B
End
SISTEMAS MICROPROCESADOS I
ESQUEMÁTICO
Esquematico Ejercicio 1
2.
PROBLEMA
Realice un programa que realice las operaciones dl numeral 1 pero con TMRO = 96 y
TMRO=155.
ALGORITMO
Proceso:
Habilito el puerto A como entrada
Habilito el puerto B como salida
Escribo un registro (Option_reg)
Defino el TMRO en este caso TMRO=96
Calculo la variable a
Salida: Visualizo en el dispaly
CÓDIGO
Para TMRO=96
program TimerInterno
dim a as byte
a=0
main:
trisa=$FF 'Programa contador interno
trisb=$0
option_reg=%10000111 'El timer ascendente cuenta de 0 a 255
Intcon=$0
TMR0=96
portb=$0
lazo:
if tmr0=255 then
SISTEMAS MICROPROCESADOS I
inc(a)
if a=24 then
inc(portb)
end if
end if
goto lazo
end.
TiempodeOscilacion= 4/10MHz=400ns
T`’= (256-96)*1us*256
T’= (160)*0.000001*256
a= 1/160*0.000001*256
a= 24.41
a= 24
SISTEMAS MICROPROCESADOS I
TMRO=155
program TimerInterno
dim a as byte
a=0
main:
trisa=$FF 'Programa contador interno
trisb=$0
option_reg=%10000111 'El timer ascendente cuenta de 0 a 255
Intcon=$0
TMR0=155
portb=$0
lazo:
if tmr0=255 then
inc(a)
if a=39 then
inc(portb)
end if
TMRO=155
T`’= (256-155)*1us*256
T’= (101)*0.000001*256
a= 1/160*0.000001*256
a= 1/0.026
a= 38.67
a= 39
DIAGRAMA DE FLUJOS
INICIO
SISTEMAS MICROPROCESADOS I
Defino la variable a
Defino el option_reg=
%10000111
Defino TMRO=96
TMRO NO
=255
SI
Incremento en a
NO
A=24
SI
Incremento en Puerto B
End
ESQUEMATICO
SISTEMAS MICROPROCESADOS I
Esquematico Ejercicio 2
3.
Problema
Elabore un programa que utilice el timer externo en modo contador externo, y se visualice el
incremento en un display de 7 segmentos
Algoritmo
Entrada: Un pulso al contador externo
Proceso:
Utilizamos el registro Option, cual nos permite:
Elige el rango en el que trabaja el divisor de frecuencia.
Selecciona el tipo de reloj del TMR0 que pude ser interno o externo, a través del pin
T0CKL, también selecciona el flanco activo.
Selecciona el falco activo para la interrupción externa por RB0/INT
Activa o desactiva las resistencias de pull-up del puerto B.
El registro Option toma el valor de 1111 1111 en cualquier tipo de reset que se produzca.
DIAGRAMA DE FLUJO:
CODIGO
program practica33
main:
Trisa = $FF
Trisb =$0
Option_reg= %10100010 ‘timer externo
Intcon= $0
TMR0=0
Lazo:
PortB= TMR0
Goto Lazo
end.
ESQUEMÁTICO: PIC16F877A
SISTEMAS MICROPROCESADOS I
Simulación: PIC16F877A
3.4
PROBLEMA
Mediante un micro controlador PIC, 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 3 focos de 110 voltios (verde, amarillo, rojo),
optoacopladores, triacs, etc.
ALGORITMO
Entradas: -Código binario correspondiente a las configuraciones de luz del semáforo.
Salidas: -Código binario en pines del micro controlador que encienden las luces.
DIAGRAMA DE FLUJO:
CÓDIGO
program practicasemaforo
trisb= $0
main:
portb=0
if true then
portb.2=0
portb.0=1
delay_ms(30000)
portb.1=1
delay_ms(10000)
portb.0=0
portb.1=0
portb.2=1
SISTEMAS MICROPROCESADOS I
delay_ms(20000)
end if
goto main
end.
ESQUEMÁTICO: PIC16F877A
Simulación: PIC16F877A
CONCLUSIONES
Dependiendo del número que sea establecido en el Timer0, el contador interno será más
rápido o más lento. El valor calculado de “a” solo puede llegar al valor de 255, en tiempo
que podemos modificar es entre ms y 9 seg.
Una desventaja del uso del contador externo llega cuando utilizamos un pulsante mecánico
debido a que genera pulsos indeseados que el PIC toma con otro pulso y modifica el valor.
BIBLIOGRAFÍA
- Hojas de prácticas “temporizadores” de Sistemas Microprocesados I proporcionados por el Ing. Luis
Oñate.
- Manual de ayuda de microbasic ds
- ANGULO MARTÍNEZ IGNACIO; ROMERO YESA SUSANA; ANGULO USATEGUI
JOSÉ MARÍA MICROCONTROLADORES PIC. DISEÑO PRACTICO DE
APLICACIONES. SEGUNDA PARTE: PIC16F87XX, PIC18FXXXX. CAP. 3
ANEXOS:
SISTEMAS MICROPROCESADOS I