Sunteți pe pagina 1din 11

Escuela de ingenieria Electricidad y electronica

INFORME ENCARGO

SEMAFOROS 4 VIAS EN PIC16F84A


Asignatura: Microp. Y Microcontroladores Profesor: Juan Illanes Alumnos: Hctor Chavez lvaro Alfaro

Martes, 18 de Diciembre de 2012

INDICE

Introduccin

En la vida real los semforos son dispositivos que controlan el trfico en la ciudad, resulta interesante la aplicacin del micro controlador ya que en la mayora de los casos tienen estos elementos como parte integral del control del semforo por lo que esta es una aplicacin real del micro controlador. El programa consiste en el control de un cruce de cuatro vas, este control lo realizara un programa comandado por un pic 16f84a, el cual enviar los intervalos de tiempo necesarios para intervenir cada cruce.

OBJETIVOS
Generales Se busca implementar un sistema de control de trnsito vehicular de menor escala que la real, donde al ser un sistema de control conocido . Especficos Aprender sobre la programacin de un tipo de microprocesador y su implementacin en situaciones reales (como en este caso el semforo)Realizar el proyecto de manera simulada y real realizando esta ultima a una pequea escala comparada a la implementacin real Comprobar el funcionamiento de un cruce vehicular controlado por semforos, implementando su sistema de control a travs de un circuito con microprocesadore.

DESARROLLO

A continuacin se muestra el diagrama correspondiente al semforo, el cual tiene su oscilador externo y es un cristal de cuarzo con sus debidos capacitores, una resistencia a Vcc de 10K y los LEDs (4 Rojos, 4 Verdes y 4 Amarillos) con sus debidas resistencias de 330. El circuito se alimenta a 5 volts.

DISEO EN TINA

DISEO EN PROTEUS

PROGRAMAEN MPLAB
movlw movwf movlw movwf CALL b'01001010' PORTB b'00010' PORTA RETARDO

;*************************************; ; Control de Automtico de 4 Semforos; ;*************************************; ;*Recreateoficial*********************; ;******Configurando registros*********; list p=16f84A STATUS EQU 0x03 PORTA EQU 0x05 TRISA EQU 0x05 PORTB EQU 0x06 TRISB EQU 0x06 reg1 EQU 0x0D reg2 EQU 0x0E reg3 EQU 0x0F ;-------Configuracin de puertos---------------------------; ORG 0x00 bsf STATUS,5 ; pongo rp0 a 1 y paso al banco1 clrf PORTB movlw b'00000000' ; cargo W con 00000000 movwf TRISA ; y paso el valor a trisa movlw b'00000' ; cargo W con 00000 movwf TRISB ; y paso el valor a trisb bcf STATUS,5 ; pongo rp0 a 0 y regreso al banco0 GOTO SEMA1 SEMA1 movlw b'01001001' movwf PORTB movlw b'00010' movwf PORTA CALL RETARDO movlw movwf movlw movwf CALL b'01001100' PORTB b'00010' PORTA RETARDO

;-----------movlw b'01100001' movwf PORTB movlw b'00010' movwf PORTA CALL RETARDO movlw movwf movlw movwf b'01010001' PORTB b'00010' PORTA CALL movlw movwf movlw movwf movlw movwf movlw movwf RETARDO

b'00001001' PORTB b'00011' PORTA CALL RETARDO b'10001001' PORTB b'00010' PORTA CALL RETARDO

movlw movwf movlw movwf CALL

b'01001001' PORTB b'01000' PORTA RETARDO

movlw movwf movlw movwf CALL

b'01001001' PORTB b'00100' PORTA RETARDO

GOTO SEMA1; se repite toda la secuencia RETARDO ;-----------Rutina de Retardo-----------; movlw 100 ; Carga los registros movwf reg1 ; reg1, reg2 y reg3 ; con los valores 2, 2 y 1

tres movlw 50; respectivamente movwf reg2 dos movlw 100 movwf reg3 uno decfsz reg3,1 ; Comienza a decrementar goto uno ; cuando termine decfsz reg2,1 ; regresar a la siguiente goto dos ; lnea de cdigo decfsz reg1,1 ; de donde fue llamado goto tres return ;--------Fin de la rutina de Retardo------; end

;*************************************; ; Control de Automtico de 4 Semforos; ;*************************************; ;*Recreateoficial*********************; ;******Configurando registros*********; list p=16f84A STATUS EQU 0x03 PORTA EQU 0x05 TRISA EQU 0x05 PORTB EQU 0x06 TRISB EQU 0x06 reg1 EQU 0x0D reg2 EQU 0x0E reg3 EQU 0x0F ;-------Configuracin de puertos---------------------------; ORG 0x00 bsf STATUS,5 ; pongo rp0 a 1 y paso al banco1 clrf PORTB movlw b'00000000' ; cargo W con 00000000 movwf TRISA ; y paso el valor a trisa movlw b'00000' ; cargo W con 00000 movwf TRISB ; y paso el valor a trisb bcf STATUS,5 ; pongo rp0 a 0 y regreso al banco0 GOTO SEMA1 SEMA1 movlw b'01001001' movwf PORTB movlw b'00010' movwf PORTA CALL RETARDO movlw movwf movlw movwf CALL b'01001100' PORTB b'00010' PORTA RETARDO

movlw movwf movlw movwf CALL

b'01001010' PORTB b'00010' PORTA RETARDO

;-----------movlw b'01100001' movwf PORTB movlw b'00010' movwf PORTA CALL RETARDO movlw movwf movlw movwf b'01010001' PORTB b'00010' PORTA CALL movlw movwf movlw movwf movlw movwf movlw movwf RETARDO

b'00001001' PORTB b'00011' PORTA CALL RETARDO b'10001001' PORTB b'00010' PORTA CALL RETARDO

movlw movwf movlw movwf CALL movlw movwf movlw movwf

b'01001001' PORTB b'01000' PORTA RETARDO b'01001001' PORTB b'00100' PORTA

CALL

RETARDO

GOTO SEMA1; se repite toda la secuencia RETARDO ;-----------Rutina de Retardo-----------; movlw 100 ; Carga los registros movwf reg1 ; reg1, reg2 y reg3 ; con los valores 2, 2 y 1 tres movlw 50; respectivamente movwf reg2 dos movlw 100 movwf reg3 uno decfsz reg3,1 ; Comienza a decrementar goto uno ; cuando termine decfsz reg2,1 ; regresar a la siguiente goto dos ; lnea de cdigo decfsz reg1,1 ; de donde fue llamado goto tres return ;--------Fin de la rutina de Retardo------; end

S-ar putea să vă placă și