Vous êtes sur la page 1sur 17

Ingeniería en Sistemas

Computacionales

Nombre del Profesor:

Ing. Alejandro Téllez Peña

Nombre de los alumnos:

Ríos de la Rosa Luis Alberto.

Materia:

“Interfaces” Primera Parte

Grupo: 9S21

Carrera:

Ingeniería en Sistemas Computacionales.

Introducción
Los Micro controladores

Estos pequeños dispositivos están conquistando el mundo. Están presentes


en nuestro trabajo, en nuestra casa y en nuestra vida en general. Se pueden
encontrar en el ratón y en el teclado de las computadoras, en los teléfonos,
en los hornos microondas y en los televisores de nuestro hogar.

Pero la invasión acaba de comenzar y el nacimiento del siglo XXI será testigo
de la conquista masiva de estas diminutas computadoras, que controlarán la
mayor parte de los aparatos que fabricamos y usamos los humanos.

¿Qué es un Micro controlador?

El micro controlador se emplea en aplicaciones concretas y no es universal


como el microprocesador.
Un micro controlador es un circuito integrado que contiene una Unidad
Central de Proceso (CPU) y una serie de recursos internos en un solo
encapsulado. El CPU permite que el micro controlador pueda ejecutar
instrucciones almacenadas en una memoria. Los recursos internos son
memoria RAM, memoria ROM, memoria EEPROM, puerto serie, puertos de
entrada/salida, temporizadores, comparadores, etc. Se puede decir que es
una evolución del microprocesador, al añadirle a este último las funciones
que antes era necesario situar externamente con otros circuitos. El ejemplo
típico esta en los puertos de entrada/salida y en la memoria RAM, en los
sistemas con microprocesadores es necesario desarrollar una lógica de
control y unos circuitos para implementar las funciones anteriores, con un
micro controlador no hace falta porque lo lleva todo incorporado, además en
el caso de tener que ampliar el sistema ya ofrece recursos que facilitan esto.
En resumen, un micro controlador es un circuito integrado independiente,
que no necesita memoria ni puertos externos pues los lleva en su interior,
que facilita la tarea de diseño y reduce el espacio, traduciéndose todo a una
aplicación final más económica y fiable.

Objetivo General.
Los semáforos constantes de luces de aviso a peatones (rojo y verde) y un
aviso para los vehículos (rojo, amarillo y verde) los semáforos 1 y3 se
comportan de idéntica forma. Lo mismo ocurre con el 2 y el 4. Cuando los
semáforos 1 y 3 permitan que el tráfico de vehículos por sus
correspondientes vías, los semáforos 2 y 4 deben prohibirlo y a la inversa.

La temporización de cada semáforo

La luz verde esta activa durante 25 segundos


La luz amarilla parpadea durante 5 segundos (cada ½ segundo cambia su
estado).
La luz roja se mantiene encendida durante 30 segundos.
Cuando la luz verde, o la luz amarilla se encuentran encendidas la luz roja de
los peatones deben estar activas.
Cuando la luz roja se encuentre encendida, la luz verde de paso a los
peatones debe estar activa, durante un tiempo de 10 segundos en que debe
parpadear con un periodo de un segundo.

Simulación de lo que se piensa realizar.

Material.
- Protoboard.
- 1 PIC 16F84A.
- 1 Cuarzo de Cristal 4Mhz.
- Fuente de voltaje o cargador 5v.
- 1 Regulador de Voltaje L7805cv.
- 12 o 15 resistencias de 330Ω. 1/2
- 10 resistencias de 10 K. 1/2
- Alambre para conexiones.
• Color Café para (+).
• Color Azul para (-).
- Dip de 4 pines o de 6 pines
- 6 Led’s Rojo, Verde, Amarillo.
- 2 Sensor CNY70.
- 2 Circuito integrado LM358c.
- 2 Capacitores de 22 Ω.
- 1 Capacitor de 103 kΩ.
- Potenciómetro de B 10k

Desarrollo

Diagramas Flujo. (Construcción del semáforo).

Diagrama de Flujo (Sensores).


LM358 Símbolo y Diagrama.

Este circuito integrado sirve para suministras el voltaje e alimentar, como


mandar le información al sensor CNY70 en este caso.

Regulador de Voltaje (L7805cv).

Las características de cómo fue conectado el Regulador de Voltaje con el


Pic16f84A:
- El Pin (OUTPUT): Se conectó en a la corriente negativa y este alimenta
al Pic16f84A con entrada de corriente (-).
- El Pin (GROUND): Se conectó a un capacitor con corriente negativa.
- El Pin (INPUT): Se conectó a la corriente positiva.

Programa *.asm y *.hex


list p=16F84A ; list directive to define processor
#include <p16F84A.inc> ; processor specific variable definitions

**********CP_OFF: Protección de Código Desactivada.


**********WDT_OFF: Watch Dog Deactivada.
**********PWRTE_ON: Power-up Timer Activado.
**********XT_OSC: Oscilador XT para Trabajar con un Cuarzo de Cristal o Resonador de
Alta Frecuencia, Iguales o Mayores que 4 MHZ.

___CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC___

;***** VARIABLE DEFINITIONS


w EQU 0 ; w=guardar en w
f EQU 1 ; f=guardar en el registro estado
EQU 0x03

cblock 0x0C *********Bloque de variables


PDel0
PDel1
PDel2
repeat
repeaux
endc
;*************************************************************
ORG 0x000 ; Vector de reset del Procesador
goto main ; Va al inicio del Programa
ORG 0x04 ; Vector de Interrupción

main bsf STATUS,RP0 ;Para acceder al banco 1 de registros


movlw 0x1F
movwfPORTA ;PA entradas
movlw 0x00
movwf PORTB ;PB salida
bcf STATUS,RP0 ;Para acceder al banco cero de registros

clrwdt ;Limpia el watch dog

;************************************************************
clrf PORTB ;Borra el puerto

caso0 btfsc PORTA,0 ; ****testereo de bit del puerto a del pin RA0
goto caso1 ;****si es uno dara un salto a caso1
goto tiempo0 ;****si es 0 lo dara un salto a tiemo0

caso1 btfsc PORTA,1


goto caso2
goto tiempo1

caso2 btfsc PORTA,2


goto caso3
goto tiempo2

caso3 btfsc PORTA,3


goto tiempo4
goto tiempo3

tiempo4 movlw 0x05 *********mueve 0x05 a W


movwfrepeat*********mueve W a REPEAT
goto intreci*********da un salto a intreci

tiempo0 movlw 0x01


movwfrepeat
goto intreci

tiempo1 movlw 0x02


movwfrepeat
goto intreci

tiempo2 movlw 0x03


movwfrepeat
goto intreci

tiempo3 movlw 0x04


movwfrepeat

;*************************************************************
Subrutina intreci
intreci bcf PORTB,5 ;Apaga el rojo2
bsf PORTB,0 ;Enciende el rojo1****setea 0 en el PORTB
bsf PORTB,3 ;Enciende el verde2****setea 3 en el PORTB
call PDelay
;********************************************************
call PDelay ;****cada pdelay equivale a medio segundo
call PDelay ;****de cada retardo requerido
call PDelay
;********************************************************
bcf PORTB,3 ;Apaga el verde2****limpia el bit 3 de PORTB
bsf PORTB,4 ;Enciende el Amarillo2
call DEMORA
bcf PORTB,4 ;Apaga el Amarillo2
call DEMORA

bsf PORTB,4 ;Enciende el Amarillo2


call DEMORA

bcf PORTB,4 ;Apaga el Amarillo2


call DEMORA

bsf PORTB,4 ;Enciende el Amarillo2


call DEMORA

bcf PORTB,4 ;Apaga el Amarillo2


call DEMORA

bcf PORTB,0 ;Apaga el rojo 1


bsf PORTB,2 ;Enciende el Verde1
bsf PORTB,5 ;Enciende el Rojo2
call PDelay
call PDelay
call PDelay
call PDelay

bcf PORTB,2 ;Apaga el verde1


bsf PORTB,1 ;Enciende el Amarillo1
call DEMORa*******hace una llamada ala subrutina DEMORA

bcf PORTB,1 ;Apaga el Amarillo1


call DEMORA

bsf PORTB,1 ;Enciende el Amarillo1


call DEMORA

bcf PORTB,1 ;Apaga el Amarillo1


call DEMORA

bsf PORTB,1 ;Enciende el Amarillo1


call DEMORA

bcf PORTB,1 ;Apaga el Amarillo1


call DEMORA
goto caso0
;*************************************************************

PDelaymovf repeat,w
movwf repeaux
PDelay1 movlw .239 ; 1 número determinado de repeticiones (B)
movwf PDel0 ; 1 |
PLoop1 movlw .232 ; 1 número determinado de repeticiones (A)
movwf PDel1 ; 1 |
PLoop2 clrwdt ; 1 limpia watchdog
PDelL1 goto PDelL2 ; 2 ciclos delay
PDelL2 goto PDelL3 ; 2 ciclos delay
PDelL3 clrwdt ; 1 ciclo delay
decfsz PDel1, 1 ; ***decremento P Del saltar si da 0
goto PLoop2 ; 2 no, loop
decfsz PDel0, 1 ; 1 + (1) is the time over? (B)
goto PLoop1 ; 2 no, loop
PDelL4 goto PDelL5 ; 2 cycles delay
PDelL5 goto PDelL6 ; 2 cycles delay
PDelL6 goto PDelL7 ; 2 cycles delay
PDelL7 clrwdt ;****borra o refresca el watch dog
decfsz repeaux,f
goto PDelay1
return ; 2+2 Done

;**************Subrutina demora**************

DEMORA movlw .14 ; 1 set numero de repeticion (C)


movwf PDel0 ;1|
PLoop01 movlw .72 ; 1 set numero de repeticion (B)
movwf PDel1 ;1|
PLoop11 movlw .247 ; 1 set numero de repeticion (A)
movwf PDel2 ;
PLoop21 clrwdt ; 1 limpia el watchdog
decfsz PDel2, 1
goto PLoop21
decfsz PDel1, 1
goto PLoop11
decfsz PDel0, 1
goto PLoop01
PDelL11 goto PDelL21
PDelL21 clrwdt
return
end

Cargando el PIC 16F84A.


Para hacer la acción de cargar el PIC 16F84A tenemos que tener los siguientes
programas y hacer las siguientes acciones:

-Bloc de notas

Aquí en el bloc de notas escribiremos nuestro código de programa que será


cargado a nuestro PIC 16F84A, el cual una vez acabado se guarda con la
extensión .asm

- MPASM

Este programa nos va a servir para ensamblar nuestro programa en el cual se


guarda con “.asm” necesitamos que el programa se ejecute en MPASM y si
en caso de marcar error tendríamos que encontrar en donde está, si no
marca automáticamente aparece un 100% en color verde que el código del
programa es correcto.
En este programa nos crea un archivo con la extensión .HEX el cual es el
archivo que se cargara en el Pic 16F84A, el cual ara que funcionen los
semáforos de dicho proyecto.

-Una vez obtenido el archivo

y Este archivo que nos ha creado nos va a servir para el


grabador del PIC.

- Cargador de PIC

- Winpic800

Este es el grabador del PIC donde lo abrimos y en el buscamos nuestra


carpeta con la extensión .HEX del cual si el código es correcto nos lo grabara y
si en caso que este mal conectado nuestro grabador, o este mal colocado
nuestro PIC no nos podrá dejar hacer la acción de grabado.
Así nos aparecen las pantallas cuando el PIC ha sido correctamente cargado.

Ya que está cargado es momento en que lo pongamos ahora si en nuestro


circuito de la protoboard para que empiece a funcionar nuestro carro.
Anexos.

-Datasheet PIC 16F84A.


Partes del PIC16F84A

♠ CPU es el circuito encargado de leer, decodificar y ejecutar las instrucciones


del programa.
♠ MEMORIA DE PROGRAMA contiene las instrucciones del programa del pic.
♠ MEMORIA DE DATOS aloja las variables temporales que aloja el cpu.
♠ CONTADOR DE PROGRAMA es un registro que evoluciona para indicar cuál
será la siguiente instrucción que deberá ejecutar el cpu.
♠ PILA O STACK es una memoria limitada que solo guarda el valor del
contador de programa cuando sea necesario.
♠ PERIFERICOS DEL PIC son elementos que se pueden usar para una
determinada tarea: por ejemplo el timer0 sirve para temporizaciones.
♠ PUERTOS DE ENTRADA Y SALIDA son líneas hacia afuera donde se pueden
conectar los dispositivos a controlar, cono leds, transistores, etc.

Elaboración del código de programa


Antes que nada bajamos nuestra librería de retardos en la página
www.galeon.com/gnh/practica.htm

Y la pegamos en la carpeta destinada para nuestro proyecto que debe de


estar guardada en la unidad C: de nuestro equipo.

Ajustamos al igual la librería del PIC compilándolo en la carpeta PIC y


pegándolo en la carpeta “sim”

Ya teniendo nuestras librerías pegadas en nuestro equipo, procedemos a


abrir un bloc de notas para comenzar a escribir nuestro código programa.
Análisis de los resultados

Al tener por completo el proyecto terminado de los semáforos peatonales


como vehiculares lo cual resuelve el problema planteado, su funcionamiento
es correcto aunque ha habido problemas con el color verde no se alcanza a
percibir por su baja iluminación que tiene este.

Conclusiones

Como conclusión tenemos que por medio de este proyecto se puede tener un
mejor control en las avenidas por medio de semáforos para que tanto
personas como carros tengan un mejor ordenamiento al momento de circular
y pasar por la calle para que este sea más seguro.

Bibliografías

Micro Controlador PIC 16F84A, Desarrollo de proyectos, Editorial RA-MA


También se usaron páginas de internet:

http://es.scribd.com/doc/19417100/Manual-Pic16f84a
http://www.galeon.com/gnh/practica.htm

Vous aimerez peut-être aussi