GP2 Microcontroladores

download GP2 Microcontroladores

of 5

description

Microncontrolador PIC

Transcript of GP2 Microcontroladores

  • UNIVERSIDAD CATLICA DE SANTA MARA

    P. P. DE INGENIERA MECANICA, MECANICA ELECTRICA Y MECATRNICA

    CDIGO: 4A08045 ASIGNATURA: MICROCONTROLADORES Y MICROPROC.

    GUA DE LABORATORIO NRO 2

    Pag 1/5

    PRIMERA FASE: ARQUITECTURA DE MICROCONTROLADORES

    SOFTWARE DE PROGRAMACION DE MICROCONTROLADORES

    Docente(s): SERGIO MESTAS RAMOS

    Fecha:

    I. OBJETIVOS

    Comprobar el funcionamiento de diferentes programas con microcontroladores.

    Utilizar distintas herramientas para realizar una simulacin y un debug de los programas

    anteriores.

    II. MATERIALES Y/O EQUIPOS A UTILIZAR

    Computador.

    MPLab.

    Protoboard.

    Microcontrolador.

    Dispositivos varios.

    Entrenador

    III. DESARROLLO DE LA PRACTICA

    3.1 Manejo de E/S

    1. Edite el siguiente programa en MPLAB.

    List p=16F84 ;Tipo de procesador

    include "P16F84.INC" ;Incluye el fichero con los nombres de los registros

    org 0x00 ;Vector de Reset

    goto Inicio

    org 0x05 ;Salva el vector de interrupcin

    Inicio clrf PORTB ;Borra los latch de salida

    bsf STATUS,RP0 ;Selecciona banco 1 de la memoria de datos

    clrf TRISB ;Puerta B se configura como salida

    movlw b'00011111'

    movwf TRISA ;Puerta A se configura como entrada

    bcf STATUS,RP0 ;Selecciona banco 0 de la memoria de datos

    Leer movf PORTA,W ;Leer las entradas RA0-RA4

    movwf PORTB ;Reflejar en las salidas

    goto Leer ;Bucle sin fin

    end ;Fin del programa fuente

    2. Compile el programa.

    3. Simule el programa y abra las ventanas de Memoria de programa, registros de funcin especial (FSR)

    y la ventana de estimulus para el puerto de entrada.

    4. Anote en una tabla el valor del PC, W, TRISA, TRISB, PORTA y PORTB para cada corrida del

    programa.

  • 2

    Ejecucin STATUS PC W TRISA TRISB PORTA PORTB

    1

    ..

    N

    5. Dibuje el diagrama de flujo del programa anterior.

    6. Determine cul es el propsito del programa.

    3.2 Control de una lmpara.

    7. Edite el siguiente programa en MPLAB.

    List p=16F84 ;Tipo de procesador

    include "P16F84.INC" ; Incluye el fichero con los nombres de los registros

    Temp equ 0x0c ;Variable temporal que se almacena en la posicin 0x0c

    org 0x00 ;Vector de Reset

    goto Inicio

    org 0x05 ;Salva el vector de interrupcin

    Inicio clrf PORTB ;Borra los latch de salida

    bsf STATUS,RP0 ;Selecciona banco 1 de la memoria de datos

    clrf TRISB ;Puerta B se configura como salida

    movlw b'00000011'

    movwf TRISA ;RA0 y RA1 se configuran como entrada

    bcf STATUS,RP0 ;Selecciona banco 0 de la memoria de datos

    clrf Temp ;Pone a 0 el registo o variable temporal

    Loop movf PORTA,W ;Leer el estado de la puerta A

    andlw b'00000011' ;Filtra la informacin para quedarnos con RA0 y RA1

    movwf Temp ;Almacena temporalmente

    btfsc STATUS,Z ;RA0=0 y RA1=0 ??

    goto Apagar ;Si, la lmpara se apaga

    movlw b'00000001'

    subwf Temp,W

    btfsc STATUS,Z ;RA0=1 y RA1=0 ??

    goto Encender ;Si, la lmpara se enciende

    movlw b'00000010'

    subwf Temp,W

    btfsc STATUS,Z ;RA0=0 y RA1=1 ??

    goto Encender ;Si, la lmpara se enciende

    Apaga bcf PORTB,0 ;No, la lmpara se apaga

    goto Loop

    Enciende bsf PORTB,0 ;La lmpara se enciende

    goto Loop

    end ;Fin del programa fuente

    8. Compile el programa.

    9. Simule el programa y abra las ventanas de Memoria de programa, registros de funcin especial (FSR) y la ventana de estimulus para el puerto de entrada.

  • 3

    10. Anote en una tabla el valor del PC, W, TRISA, TRISB, PORTA y PORTB para cada corrida del programa.

    Ejecucin STATUS PC W TRISA TRISB PORTA PORTB

    1

    ..

    N

    11. Dibuje el diagrama de flujo del programa anterior.

    12. Determine cul es el propsito del programa.

    3.3 Control combinacional.

    13. Edite el siguiente programa en MPLAB.

    List p=16F84

    include "P16F84.INC"

    Temp equ 0x0c

    org 0x00

    goto Inicio

    org 0x05

    Inicio clrf PORTB

    bsf STATUS,RP0

    clrf TRISB

    movlw b'00001001'

    movwf OPTION_REG

    movlw b'00000011'

    movwf TRISA

    bcf STATUS,RP0

    Loop: clrwdt

    movf PORTA,W

    andlw b'00000011'

    movwf Temp

    btfsc STATUS,Z

    goto Secuencia_00

    movlw b'00000001'

    subwf Temp,W

    btfsc STATUS,Z

    goto Secuencia_01

    movlw b'00000010'

    subwf Temp,W

    btfsc STATUS,Z

    goto Secuencia_10

    Secuencia_11 movlw b'11110000'

    movwf PORTB

    goto Loop

    Secuencia_00 movlw b'10101010'

  • 4

    movwf PORTB

    goto Loop

    Secuencia_01 movlw b'01010101'

    movwf PORTB

    goto Loop

    Secuencia_10 movlw b'00001111'

    movwf PORTB

    goto Loop

    end

    14. Comente cada una de las lneas del programa.

    15. Compile el programa.

    16. Simule el programa y abra las ventanas de Memoria de programa, registros de funcin especial (FSR) y la ventana de estimulus para el puerto de entrada.

    17. Anote en una tabla el valor del PC, W, TRISA, TRISB, PORTA y PORTB para cada corrida del programa.

    Ejecucin STATUS PC W TRISA TRISB PORTA PORTB

    1

    ..

    N

    18. Dibuje el diagrama de flujo del programa anterior.

    19. Determine cul es el propsito del programa.

    3.4 Control secuencial.

    20. Edite el siguiente programa en MPLAB.

    List p=16F84

    include "P16F84.INC"

    org 0x00

    goto Inicio

    org 0x05

    Inicio clrf PORTB

    bsf STATUS,RP0

    clrf TRISB

    movlw b'00001001'

    movwf OPTION_REG

    movlw b'00000011'

    movwf TRISA

    bcf STATUS,RP0

    Loop: clrwdt

    btfsc PORTA,0

    goto Alarma_On

    btfss PORTA,1

    goto Loop

    Alarma_Off bcf PORTB,0

    goto Loop

  • 5

    Alarma_On btfsc PORTA,1

    goto Alarma_Off

    bsf PORTB,0

    goto Loop

    end

    21. Comente cada una de las lneas del programa.

    22. Compile el programa.

    23. Simule el programa y abra las ventanas de Memoria de programa, registros de funcin especial (FSR) y la ventana de estimulus para el puerto de entrada.

    24. Anote en una tabla el valor del PC, W, TRISA, TRISB, PORTA y PORTB para cada corrida del programa.

    Ejecucin STATUS PC W TRISA TRISB PORTA PORTB

    1

    ..

    N

    25. Dibuje el diagrama de flujo del programa anterior.

    26. Determine cul es el propsito del programa.

    IV. CUESTIONARIO FINAL

    1. Realice un programa que funcione segn la siguiente tabla, considerando que el puerto B es entrada y el A es salida.

    RB2 RB1 RB0 RA4 RA3 RA2 RA1 RA0

    0 0 0 0 1 0 1 0

    0 0 1 1 1 0 0 1

    0 1 0 1 0 0 1 1

    0 1 1 0 1 1 1 0

    1 0 0 1 0 1 0 0

    1 0 1 0 1 1 1 0

    1 1 0 1 1 0 1 1

    1 1 1 1 0 1 0 1

    2. Para el programa anterior repita los pasos desarrollados en cada uno de los programas anteriores.

    3. Realice un programa que a partir de una combinacin binaria de 4 bits entregue como salida un valor para activar un display de 7 segmentos de ctodo comn.

    4. Para el programa anterior repita los pasos desarrollados en cada uno de los programas anteriores.

    V. CONCLUSIONES.

    VI. BIBLIOGRAFA O REFERENCIAS UTILIZADAS EN EL DESARROLLO DE LA PRACTICA