SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

CONTADOR BINARIO 8 BITS
CONTADOR BINARIO 8 BITSCONTADOR BINARIO 8 BITS
CONTADOR BINARIO 8 BITSlalo martinez
 
Unidad III procedimientos
Unidad III procedimientosUnidad III procedimientos
Unidad III procedimientosaaronastorga4
 
Diseño de mapas de memoria
Diseño de mapas de memoriaDiseño de mapas de memoria
Diseño de mapas de memoriaEduardo Abalo
 
Set de 35 instrucciones para pic16f877A programación en assembler
Set de 35 instrucciones para pic16f877A programación en assembler Set de 35 instrucciones para pic16f877A programación en assembler
Set de 35 instrucciones para pic16f877A programación en assembler Anllel Cardenas Yllanes
 
Mis proyectos con Arduino
Mis proyectos con ArduinoMis proyectos con Arduino
Mis proyectos con ArduinoJomicast
 
Programacion en WinCupl
Programacion en WinCuplProgramacion en WinCupl
Programacion en WinCuplGilbert_28
 
ENRUTAMIENTO ESTADO ENLACE
ENRUTAMIENTO ESTADO ENLACEENRUTAMIENTO ESTADO ENLACE
ENRUTAMIENTO ESTADO ENLACECecy Hernandez
 
Latches y flip flops
Latches y flip flopsLatches y flip flops
Latches y flip flopsJimmy Osores
 
Programación de microcontrolador
Programación de microcontroladorProgramación de microcontrolador
Programación de microcontroladorVannesa Salazar
 
Microcontroladores pic14f84a
Microcontroladores pic14f84aMicrocontroladores pic14f84a
Microcontroladores pic14f84adanqueas
 
PROFIBUS
PROFIBUSPROFIBUS
PROFIBUSmisatav
 
Transistor como conmutador
Transistor como conmutadorTransistor como conmutador
Transistor como conmutadorGoogle
 
Configuración básica de un router y switch
Configuración básica de un router y switchConfiguración básica de un router y switch
Configuración básica de un router y switchAlex Yungan
 
Electrónica: El SCR (rectificador controlado de silicio)
Electrónica: El SCR (rectificador controlado de silicio)Electrónica: El SCR (rectificador controlado de silicio)
Electrónica: El SCR (rectificador controlado de silicio)SANTIAGO PABLO ALBERTO
 
Von neumann vs harvard
Von neumann vs harvardVon neumann vs harvard
Von neumann vs harvardManzelot
 

Was ist angesagt? (20)

CONTADOR BINARIO 8 BITS
CONTADOR BINARIO 8 BITSCONTADOR BINARIO 8 BITS
CONTADOR BINARIO 8 BITS
 
Clasificacion de Interpretes
Clasificacion de InterpretesClasificacion de Interpretes
Clasificacion de Interpretes
 
Unidad III procedimientos
Unidad III procedimientosUnidad III procedimientos
Unidad III procedimientos
 
Historia de los plc
Historia de los plcHistoria de los plc
Historia de los plc
 
Diseño de mapas de memoria
Diseño de mapas de memoriaDiseño de mapas de memoria
Diseño de mapas de memoria
 
Set de 35 instrucciones para pic16f877A programación en assembler
Set de 35 instrucciones para pic16f877A programación en assembler Set de 35 instrucciones para pic16f877A programación en assembler
Set de 35 instrucciones para pic16f877A programación en assembler
 
Mis proyectos con Arduino
Mis proyectos con ArduinoMis proyectos con Arduino
Mis proyectos con Arduino
 
Programacion en WinCupl
Programacion en WinCuplProgramacion en WinCupl
Programacion en WinCupl
 
ENRUTAMIENTO ESTADO ENLACE
ENRUTAMIENTO ESTADO ENLACEENRUTAMIENTO ESTADO ENLACE
ENRUTAMIENTO ESTADO ENLACE
 
Latches y flip flops
Latches y flip flopsLatches y flip flops
Latches y flip flops
 
8 2 convertidor-analogico_-digital
8 2 convertidor-analogico_-digital8 2 convertidor-analogico_-digital
8 2 convertidor-analogico_-digital
 
Programación de microcontrolador
Programación de microcontroladorProgramación de microcontrolador
Programación de microcontrolador
 
Microcontroladores pic14f84a
Microcontroladores pic14f84aMicrocontroladores pic14f84a
Microcontroladores pic14f84a
 
Comparador de magnitud (7485)
Comparador de magnitud (7485)Comparador de magnitud (7485)
Comparador de magnitud (7485)
 
PROFIBUS
PROFIBUSPROFIBUS
PROFIBUS
 
Transistor como conmutador
Transistor como conmutadorTransistor como conmutador
Transistor como conmutador
 
Configuración básica de un router y switch
Configuración básica de un router y switchConfiguración básica de un router y switch
Configuración básica de un router y switch
 
Electrónica: El SCR (rectificador controlado de silicio)
Electrónica: El SCR (rectificador controlado de silicio)Electrónica: El SCR (rectificador controlado de silicio)
Electrónica: El SCR (rectificador controlado de silicio)
 
TTL-CMOS
TTL-CMOSTTL-CMOS
TTL-CMOS
 
Von neumann vs harvard
Von neumann vs harvardVon neumann vs harvard
Von neumann vs harvard
 

Andere mochten auch (20)

Mecanismo de-semáforos
Mecanismo de-semáforosMecanismo de-semáforos
Mecanismo de-semáforos
 
Hackaton Urbano- Medidor de accidentes en semáforos
Hackaton Urbano- Medidor de accidentes en semáforosHackaton Urbano- Medidor de accidentes en semáforos
Hackaton Urbano- Medidor de accidentes en semáforos
 
Hackaton Urbano- Ciclo-inclusion
Hackaton Urbano- Ciclo-inclusionHackaton Urbano- Ciclo-inclusion
Hackaton Urbano- Ciclo-inclusion
 
A quién se le ocurrieron los colores de los semáforos
A quién se le ocurrieron los colores de los semáforosA quién se le ocurrieron los colores de los semáforos
A quién se le ocurrieron los colores de los semáforos
 
Los semáforos
Los semáforosLos semáforos
Los semáforos
 
Semaforos
SemaforosSemaforos
Semaforos
 
Semaforos
SemaforosSemaforos
Semaforos
 
Senales cnsv
Senales cnsvSenales cnsv
Senales cnsv
 
Semaforos
SemaforosSemaforos
Semaforos
 
Sem plc
Sem plcSem plc
Sem plc
 
Semaforos 3
Semaforos 3Semaforos 3
Semaforos 3
 
semaforos
semaforossemaforos
semaforos
 
Nuevas tecnologías energéticas
Nuevas tecnologías energéticasNuevas tecnologías energéticas
Nuevas tecnologías energéticas
 
Semaforo inteligante
Semaforo inteliganteSemaforo inteligante
Semaforo inteligante
 
Semaforos
SemaforosSemaforos
Semaforos
 
Capitulo7 semaforos
Capitulo7 semaforosCapitulo7 semaforos
Capitulo7 semaforos
 
Semáforos
SemáforosSemáforos
Semáforos
 
Semaforos 2
Semaforos 2Semaforos 2
Semaforos 2
 
JUEGOS PARA REALIZAR CON NIÑOS CON AUTISMO
JUEGOS PARA REALIZAR CON NIÑOS CON AUTISMOJUEGOS PARA REALIZAR CON NIÑOS CON AUTISMO
JUEGOS PARA REALIZAR CON NIÑOS CON AUTISMO
 
El semaforo
El semaforoEl semaforo
El semaforo
 

Ähnlich wie Sistemas Computacionales Semáforos Microcontrolador

Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Luis Zurita
 
Ejemplo varias interrupciones
Ejemplo varias interrupcionesEjemplo varias interrupciones
Ejemplo varias interrupcionesLuis Zurita
 
Examen micros t1_06_solucion
Examen micros t1_06_solucionExamen micros t1_06_solucion
Examen micros t1_06_solucionJair BG
 
Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorLuis Zurita
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Luis Zurita
 
Laboratorio de Microcomputadoras - Práctica 03
 Laboratorio de Microcomputadoras - Práctica 03 Laboratorio de Microcomputadoras - Práctica 03
Laboratorio de Microcomputadoras - Práctica 03Cristian Ortiz Gómez
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2Luis Zurita
 
Puertos de entrada diapositivas
Puertos de entrada diapositivasPuertos de entrada diapositivas
Puertos de entrada diapositivastecautind
 
Puertos de entrada/salida
Puertos de entrada/salidaPuertos de entrada/salida
Puertos de entrada/salidatecautind
 
Ejemplos De Timer E Interrupcion
Ejemplos De Timer E InterrupcionEjemplos De Timer E Interrupcion
Ejemplos De Timer E InterrupcionLuis Zurita
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_solucJair BG
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_solucJair BG
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 solucJair BG
 

Ähnlich wie Sistemas Computacionales Semáforos Microcontrolador (20)

Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4
 
Ejemplo varias interrupciones
Ejemplo varias interrupcionesEjemplo varias interrupciones
Ejemplo varias interrupciones
 
Examen micros t1_06_solucion
Examen micros t1_06_solucionExamen micros t1_06_solucion
Examen micros t1_06_solucion
 
Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensamblador
 
Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
In terrupciones pic
In terrupciones picIn terrupciones pic
In terrupciones pic
 
Programa pic.asm
Programa pic.asmPrograma pic.asm
Programa pic.asm
 
Uso del tmr0
Uso del tmr0Uso del tmr0
Uso del tmr0
 
Subrutinas pic
Subrutinas picSubrutinas pic
Subrutinas pic
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2
 
Laboratorio de Microcomputadoras - Práctica 03
 Laboratorio de Microcomputadoras - Práctica 03 Laboratorio de Microcomputadoras - Práctica 03
Laboratorio de Microcomputadoras - Práctica 03
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
Tarea final
Tarea finalTarea final
Tarea final
 
Puertos de entrada diapositivas
Puertos de entrada diapositivasPuertos de entrada diapositivas
Puertos de entrada diapositivas
 
Puertos de entrada/salida
Puertos de entrada/salidaPuertos de entrada/salida
Puertos de entrada/salida
 
Tutorial - Nota: 1233
Tutorial - Nota: 1233Tutorial - Nota: 1233
Tutorial - Nota: 1233
 
Ejemplos De Timer E Interrupcion
Ejemplos De Timer E InterrupcionEjemplos De Timer E Interrupcion
Ejemplos De Timer E Interrupcion
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
 
Micc final feb14_2009_soluc
Micc final feb14_2009_solucMicc final feb14_2009_soluc
Micc final feb14_2009_soluc
 
Micc final sept05 2009 soluc
Micc final sept05 2009 solucMicc final sept05 2009 soluc
Micc final sept05 2009 soluc
 

Sistemas Computacionales Semáforos Microcontrolador

  • 1. 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
  • 2. 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.
  • 3. 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.
  • 4. - 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).
  • 5. 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:
  • 6. - 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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.
  • 11. 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.
  • 12. 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.
  • 13. 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.
  • 15. 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
  • 16. 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.
  • 17. 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