Sei sulla pagina 1di 1

Semforo 2 Main Inicializacin general USART Inicializacin Timer 0 Interrupcin Timer 0 Interrupcin Receptor USART Tiempo y seleccin de semforo

Semforo 1

Cambio de accin

4 MHz para el cristal interno

Caracter recibido Interrupcin y bandera del TMR0 deshabilitados.


Asegurar pins RB1 y RB2 como entradas

Prescaler 1:256

Reinicializar Timer 0 en 14 decimal

Leerregistro RCREG

RA0, RA1, RA2, RA3 habilitadas como salidas RB4,RB5, RB6 habilitados como salidas RB1, RB2 como entradas Puertos digitales

Contador de recargas del Timer 0 al mximo (8) (medio segundo) Inicio luz amarilla = total - duracin luz amarilla Inicio primer parpadeo = duracin vuelta - duracin del parpadeo

Asignacin del valor 25 al registro SPBRG (9600 Bauds, 0.16% error). BRGH habilitado

Reloj interno seleccionado

Contador de medios segundos mas una unidad (valor inicial: 0) 0 medios segundos. Contador de SI segundos mas una unidad (valor inicial: 0) 0 segundos. Contador de semaforo mas una unidad (valor inicial: 0)

Antes del parpadeo?

SI

Rojo 1 apagado Amarillo 1 apagado Verde 1 encendido

Limpiar bandera de interrupcin

Rojo 2 encendido Amarillo 2 apagado Verde 2 apagado Vuelta 2 apagado

Antes del primer parpadeo?

SI

Rojo 1 encendido Amarillo 1 apagado Verde 1 apagado

Rojo 2 apagado Amarillo 2 apagado Verde 2 encendido Vuelta 2 encendido Caracter 'a': Total 20 segundos Caracter 'c': Vuelta 10 segundos Caracter 'e': Parpadeo 5 segundos Caracter 'g': Amarillo 2 segundos

NO

Inicio del Timer 0 establecido en 14 decimal 0 desbordes? Interrupcion del Timer 0 habilitada

Elcaracter ledo es elmismo que elltimo ledo ? Contador de desbordes toma el valor 8 (medio segundo)

1 segundo?

Durante el primer parpadeo?

SI

SI

Vuelta 2 toma el valor del contador de medios segundos (0 y 1, parpadea). Sin cambio en otros leds.

Caracter 'b': Total 15 segundos

Caracter 'd': Vuelta 5 segundos

Caracter 'f': Parpadeo 3 segundos

Caracter 'h': Amarillo 1 segundo

NO

NO

Inicializacin Timer 0

Configuracin como recepcin ASNCRONA. Puerto serial activado .

Cambiaraccin de acuerdo al caracter ledo Tiempo y seleccin de semforo

NO

Inicializacin del mdulo USART

30 segundos ?

SI

Inicio segundo parpadeo = Inicio luz amarilla - duracin del parpadeo

Inicializacin general Contadores de medios segundos, segundos, y semforo en 0.

Interrupcion RC habilitada (RCIE=1)

Fin

Disminuir una unidad al contador de desbordes

NO

Durante el parpadeo?

SI

Guardar caracter como ltimo ledo

Verde 1 toma el valor del contador de medios segundos (0 y 1, parpadea). Sin cambio en otros leds.

Reinicializacin (inicializacin general) Despues del primer parpadeo? SI Vuelta 2 apagado. Sin cambio en otros leds.

SI
NO Contador de semforo en 2?

SI

Contador de semforo en 0

Fin
NO

NO
Recepcin contnua habilitada NO

Habilitacin global de interrupciones

Fin

En espera

Interrupcin del Timer 0 habilitada nuevamente (T0IE = 1)

Fin

Se present error por sobrecarga del registro del receptor?

NO
Durante el segundo parpadeo? Semforo? Despues del parpadeo?

SI

Verde 1 apagado. Amarillo 1 encendido. NO

Verde 2 toma el valor del contador de medios segundos (0 y 1, parpadea). Sin cambio en otros leds.

Fin

Desactivar y volver a activar recepcin continua

Fin Fin
NO

SI 1 2

NO
NO Rutina del primer semforo Rutina del segundo semforo) Despues del segundo parpadeo?

SI

Verde 2 apagado. Amarillo 2 encendido.

Fin Fin

Potrebbero piacerti anche