Vargas Karabelas Micro Informe1

16
Universidad de Carabobo Facultad de Ingeniería Escuela de Ingeniería Eléctrica Departamento de Automatización Microprocesadores PRÁCTICA Nº 1 (Semana 1 y 2) Integrantes: Vargas Andrea C.I: 24554231 Karabelas Efstatios C.I: 24942073 Naguanagua 11 de Junio del 2015

description

Micro

Transcript of Vargas Karabelas Micro Informe1

  • Universidad de Carabobo

    Facultad de Ingeniera

    Escuela de Ingeniera Elctrica

    Departamento de Automatizacin

    Microprocesadores

    PRCTICA N 1

    (Semana 1 y 2)

    Integrantes:

    Vargas Andrea C.I: 24554231

    Karabelas Efstatios C.I: 24942073

    Naguanagua 11 de Junio del 2015

  • Laboratorio de Microprocesadores

    PRCTICA N 1

    MANIPULACIN DE ENTRADAS Y SALIDAS DIGITALES

    Objetivo General:

    Disear programas en lenguaje ensamblador para manipular entradas y

    salidas digitales del microcontrolador, que se relacionen con la resolucin de un

    algoritmo, mediante la ayuda de los conceptos bsicos que se han visto en la

    materia terica para ponerlo en prctica en este laboratorio.

    Objetivos Especficos:

    - Verificar los procedimientos para el desarrollo de aplicaciones con

    microcontroladores.

    - Manipular salidas digitales con el microcontrolador.

    - Procesar entradas digitales con el microcontrolador.

    - Conectar perifricos digitales (pulsadores, interruptores, leds) con el

    microcontrolador.

    Semana 1

    Descripcin Funcional:

    Se mand elaborar una aplicacin con el PIC16F887 que decremento un

    contador la cual llamaremos como variable Cont de doce (12) a cero (0), de

    una forma cclica con la caracterstica de que cuando llegue al nmero cero (0),

    debe retornar al nmero doce (12) y continuar de forma cclica sucesivamente.

    Este ciclo de decremento de dicha variable que llamamos Cont se

    efectuara despus que el usuario active con un cero lgico Como nos pide la

    prctica un interruptor S tambin se tendr un pulsador P para que dicho

    usuario cuando lo presiona, la cuenta se detendr, es decir no habr ms

    decremento a dicha variable llamada Cont, dicho valor de la variable lo

  • Laboratorio de Microprocesadores

    mostraremos en los puertos C especficos de dicho PIC, los cuales estarn

    desde el RC5 hasta el RC2, en pocas palabras un numero de 4 bits, y tambin

    se tendr un Led que se debe encender cuando se tenga un resultado en la

    salida de dichos puertos, este led estar ubicado en el mismo puerto C pero

    especficamente en el pin RC1.

    Las variables de entradas se ubicaron de la siguiente manera como nos

    especific la prctica: Interruptor S se ubicara en el pin RA5 y el pulsador P

    estar ubicado en el pin RA0,

    Hay que tener en cuenta que al volver al valor original del Interruptor S

    debe apagarse todos los leds para que vuelva a otra posicin el Interruptor S y

    comience de nuevo la cuenta.

    Diagrama de Flujo:

    Para la elaboracin de esta prctica, se pas a elaborar un diagrama de

    flujos para especificar ms o menos paso a paso que se tiene, que queremos y

    como se logra todo el proceso de la aplicacin a elaborar.

  • Laboratorio de Microprocesadores

    Cdigo Fuente:

    Despus de elaborar el diagrama de flujo, pasamos a usar el Bloc de

    Notas para elaborar el cdigo fuente para dicha aplicacin que nos pide,

    teniendo en cuenta que para este cdigo, ser necesario despus guardarlo en

    formato .ASM para copilar la informacin guardada y generar el archivo .Hex

    con el programa MPLAB IDE v8.92, este archivo nos ayudara en la parte de

    simulacin de este programa y de otro programa que usaremos que ser el

    Proteus ISIS 7 Professional

    El siguiente Cdigo que se Copilo y se envi a la profesora con xito de

    ejecucin y verificado en el saln de clase el primer da fue el siguiente:

    ------------------------------------------------------------------------------

    list p=16F887

    #include

    Cont EQU 0x20

    ORG 0x00

    GOTO INICIO

    ORG 0x05

    INICIO

    BSF STATUS,RP0

    MOVLW 0xFF

    MOVWF TRISA

    MOVLW b'00000000'

    MOVWF TRISC

    BSF STATUS,RP1

    CLRF ANSEL

    BCF STATUS,RP1

    BCF STATUS,RP0

    BCF INTCON,GIE

    CLRF PORTC

    COMENZAR

    CLRF PORTC

    BTFSC PORTA,5

  • Laboratorio de Microprocesadores

    GOTO COMENZAR

    CARGA

    MOVLW b'00001100'

    MOVWF Cont

    CONTADOR

    BTFSS PORTA,0

    GOTO mostrar

    MOVF Cont,0

    BTFSC STATUS,Z

    GOTO CARGA

    DECF Cont,1

    GOTO CONTADOR

    MOSTRAR

    BTFSC PORTA,0

    GOTO MOSTRAR

    BCF STATUS,C

    RLF Cont,1

    RLF Cont,0

    MOVWF PORTC

    BSF PORTC,1

    RRF Cont,1

    RRF Cont,1

    PARAR

    BTFSC PORTA,5

    GOTO COMENZAR

    GOTO PARAR

    END

    ------------------------------------------------------------------------------

    Simulaciones en los Programas MPLAB y Proteus

    Recordando anteriormente de lo que se dijo con los archivos .ASM y la

    compilacin para generar el archivo .Hex, este dicho archivo nos ayudara ha

    simular dicha aplicacin que creamos en tiempo real y ver paso a paso lo que

  • Laboratorio de Microprocesadores

    sucede, teniendo en cuenta que en un programa se ver especficamente todo

    detallada mente y en otro se ver por encima la parte circuital.

    A continuacin, explicaremos detalladamente el funcionamiento de la

    simulacin de la aplicacin que elaboramos en el programa MPLAB IDE v8.92

    MPLAB:

    En este dicho programa, se copilo la informacin dicha anterior mente,

    generando un archivo .Hex que nos ayudara a simular lo creado.

    Pasamos ha elegir el tipo de simulacin lo cual nos iremos a la pestaa

    Debugger y elegimos Select Tool y pasamos a elegir la opcin 5 MPLAB

    SIM, esto nos ayudara a simular desde el mismo programa.

    Para ver exactamente que podemos observar en la simulacin, usaremos

    la ventana Watch y Stimulus, los cual nos ayudara para ver qu valor tiene

    las entradas y salidas y poder editar las entradas para cualquier situacin, como

    se puede observar en la siguiente imagen:

    Para comenzar con la simulacin, tendremos que hacer lo siguiente, el

    pulsador L tendr que tener el valor de 1 Ya que como su nombre dice, es un

    pulsador, en este caso seria RA0 = 1, y para comenzar el ciclo a contar, el

    interruptor S tendr que estar en RA5 =0 para que comience a contar, en

    este caso, se puede observar en la siguiente imagen:

  • Laboratorio de Microprocesadores

    Podemos darnos cuenta como WREG, comienza en 12 como se indic

    en el cdigo que comenzara a contar, se puede ver como en el PORTA tiene el

    valor de 1, que sera el valor del pulsador P como debe estar, y fijarnos como

    en el PORTC se tiene el valor de 0 ya que se limpi las entradas y salidas.

    Para obtener lo que ya venamos hablando de que hacia esta prctica,

    pasamos ha modificar el valor del pulsador, es decir pararemos el contador en

    un nmero, en este caso en el nmero cuatro (4).

    Modificando el Valor del Button o pulsador.

    Como se puede observar en el registro W, se detuvo e contador en el

    valor de cuatro (4), y si esperamos a que pase el ciclo, el programa dar

    resultado como el valor en donde se detuvo el contador, arrojando el mismo

    nmero como se puede ver a continuacin.

    Como se puede observar, el valor del PORTC es de 0x12 en

    hexadecimal o de 00010010 en binario, si nos damos cuenta de que el resultado

  • Laboratorio de Microprocesadores

    sera desde el RC2 hasta RC5, el resultado que dice dicho puerto es el nmero

    cuatro en binario, teniendo cuenta que esta encendido el Led del pin RC1 como

    se debera indicar cuando arroja un nmero.

    Si volvemos a pasar el interruptor S a 1 y despus a 0, el contador

    volver hacer su trabajo y los leds de salida se apagaran, es decir, sera un botn

    de reseteo de forma manual.

    Ahora pasamos a simular con el otro Programa llamador Proteus:

    Proteus:

    Con este programa, la parte de simulacin para los datos no se ve ms

    en cdigo si no en demostracin, se ve los leds y se interacta con los

    interruptores o pulsadores y muchas cosas ms, como podremos ver a

    continuacin, el archivo .hex ya est en dicho programa y est en simulacin

    con el RA5 en 0, es decir, el programa est contando mas no podemos ver que

    numero va contando.

    Como se puede observar y ya dicho antes, no se ve o puede observar el

    contador, pero si presionamos el pulsador P que se ubica en RA0, veremos

    cmo nos arrojara un resultado de un nmero y el Led de resultado que seria

    RC1.

  • Laboratorio de Microprocesadores

    El programa nos arrojara un nmero que nosotros paramos al azar, en

    este caso, el nmero 100 en binario, que sera el nmero 4, casualidad como el

    ejemplo anterior, pero no siempre se mostrara el 4, ahora se ver otro intento de

    valor al azar en tiempo diferente para tener resultado diferente.

  • Laboratorio de Microprocesadores

    Semana 2

    Descripcin Funcional:

    En esta semana, las conexiones de las entradas no cambiaron mucho,

    prcticamente no cambiaron, y tampoco la del Led L, pero el funcionamiento

    ha cambiado de la siguiente manera.

    Cuando se inicia el programa, con el interruptor S, el led L deber

    encender para sealizar que el usuario debe comenzar a jugar, introduciendo un

    nmero aleatorio, dicho nmero debe ser un numero binario de 3 bits, lo cuales

    se introducir en los pines RA3, RA2, RA1, el cual se llamara ENT, en esta

    condicin si P esta sin presionar, el micro decrementa constantemente un

    contador mediante un registro que denominaremos CNT.

    Al presionar el Pulsador, pasara lo siguiente: Se detienen la cuenta CNT,

    se apaga el Led L, se calcula el doble del valor de ENT.

    Si el valor de CNT es mayor que el resultado referido en (3), el jugador

    gana. En este caso se prende el led G (ubicado en el pin RC0). Si CNT es

    menor o igual que el resultado referido en (3), entonces el jugador pierde (no se

    enciende G). En ambos casos, gane o pierda, el valor de CNT se mostrar en

    los pines de salida RC5 ... RC2. La salida se mantendr as hasta que se active

    el interruptor S nuevamente y se encienda el led L (se pondrn en cero

    nuevamente los restantes bits del puerto C).

  • Laboratorio de Microprocesadores

    Diagrama de Flujo:

    Cdigo Fuente:

    Como anteriormente explicado, pasamos a crear el cdigo mediante

    el cdigo fuente, para as copilarlo y tener el archivo .Hex para simularlo.

    ------------------------------------------------------------------------------

    list p=16F887 #include CNT EQU 0x20 ENT EQU 0X21 ORG 0x00 GOTO INICIO ORG 0x05 INICIO

    BSF STATUS,RP0 MOVLW 0xFF MOVWF TRISA MOVLW b'00000000' MOVWF TRISC BSF STATUS,RP1 CLRF ANSEL BCF STATUS,RP1 BCF STATUS,RP0 BCF INTCON,GIE

  • Laboratorio de Microprocesadores

    CLRF PORTC COMENZAR

    CLRF PORTC BTFSC PORTA,5 GOTO COMENZAR BSF PORTC,1

    CARGA

    MOVLW b'00001100' MOVWF CNT

    CONTADOR

    BTFSS PORTA,0 GOTO CALCULAR MOVF CNT,0 BTFSC STATUS,Z GOTO CARGA DECF CNT,1 GOTO CONTADOR

    CALCULAR

    BTFSC PORTA,0 GOTO CALCULAR BCF STATUS,C BCF PORTC,1 MOVLW b'00001110' ANDWF PORTA,0 MOVWF ENT RLF CNT,1 RLF CNT,1 MOVF CNT,0 MOVWF PORTC RRF CNT,1 RRF CNT,0 SUBWF ENT,0 BTFSC STATUS,C BSF PORTC,0

    parar

    BTFSC PORTA,5 GOTO COMENZAR GOTO parar

    END

    ------------------------------------------------------------------------------

    Simulaciones en los Programas MPLAB y Proteus

    Sencillamente, comenzaremos con la simulacin de Proteus, para facilitar

    ms fcil la explicacin del funcionamiento.

    Como en la prctica anterior, el programa se activara a contar a partir

    cuando el interruptor S este en 0 (Cero), y con un led indicara que est activo

    para introducir un numero o para presionar el pulsador P, como se puede

    observar en la siguiente imagen.

  • Laboratorio de Microprocesadores

    Si dejamos un nmero menor como 1 o 0 en los pines de introducir

    nmero, ya que queremos introducir un nmero menor, tendremos la

    oportunidad de ganar, es decir que el contador tenga el mayor nmero que el

    usuario, y encienda el led de ganador con el resultado del contador.

  • Laboratorio de Microprocesadores

    Probando con 0 en la entrada, podemos darnos cuenta como nos arroja

    ganador ya que el contador tendr la posibilidad desde el 1-12 de ser mayor

    que el 0 sin contar el 0 si son iguales.

    Ahora si probamos con nmeros altos en la entrada para ver si alguna

    vez se puede perder, observaremos que habr un resultado de perdedor y sin

    encender el led de ganador.

    Con el programa Proteus, se puede explicar por encima esta prctica,

    pero con el MPLAB se puede explicar mejor y a mas profundidad los valores

    reales que nos da el contador a cualquier movimiento de los interruptores o del

    pulsador.

    MPLAB:

    Comenzamos como debera empezar el programa, con el interruptor S

    en 0 para que comience el contador su trabajo y con el led L encendido

    esperando el pulsador y el numero a introducir.

  • Laboratorio de Microprocesadores

    Como se observa, ya empez a contar y no hemos introducido nada en

    los terminales del nmero de 3 bits, presionado el pulsador, pasamos hacer el

    mismo experimento como en proteus, elegir un nmero pequeo como 0-1 para

    verificar el modo ganador de este juego.

    Se observa como fue ganador y que el contador fue un numero alto y

    como el Led ganador se enciende, si ubicamos bien el resultado, seria 1010 y el

    led de Ganador que sera RC0.

    Ahora si colocamos lo invertido, que si se cola la entrada un nmero alto,

    la posibilidad de perder seria alta y pasara lo siguiente:

    Se observa como en esta condicin, en led de Ganador, no enciende ya

    que el nmero a introducir por el usuario, es mayor al nmero donde se detiene

    el contador.

  • Laboratorio de Microprocesadores

    Conclusin

    En esta prctica, se pudo observar cmo se elabor lo que se pidi, aplicando la teora que se ha venido estudiando en la materia terica para

    aplicarlo en la materia prctica.

    Se pudo decir que al principio de cada prctica, la efectividad de que el

    programa corriera perfecto eran altas mas no del 100%, teniendo que arreglar

    algunos detalles en los diagramas de flujos y en el cdigo fuente, tambin

    teniendo en cuenta la cantidad de procesos que iba a tener el cdigo fuente, y

    mejoras para ser ms fcil cada paso de dicho cdigo, hay que tener en cuenta

    que la mejor forma de simular lo hecho es usando el programa MPLAB, como se

    ha venido explicando gracias a la profesora, este programa es sencillo de usar

    para verificar los valores que se le den a las variables o registros de importancia,

    cosa que el Proteus se limita ya que es un simulador fsico en tiempo real.