GP2 Microcontroladores
description
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