Professional Documents
Culture Documents
4A08045
MICROCONTROLADORES Y MICROPROC.
SOFTWARE DE PROGRAMACION DE
MICROCONTROLADORES
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.
III.
Computador.
MPLab.
Protoboard.
Microcontrolador.
Dispositivos varios.
Entrenador
DESARROLLO DE LA PRACTICA
3.1 Manejo de E/S
1. 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'00011111'
movwf TRISA
bcf
STATUS,RP0
Leer movf PORTA,W
movwf PORTB
goto Leer
end
;Tipo de procesador
;Incluye el fichero con los nombres de los registros
;Vector de Reset
;Salva el vector de interrupcin
;Borra los latch de salida
;Selecciona banco 1 de la memoria de datos
;Puerta B se configura como salida
;Puerta A se configura como entrada
;Selecciona banco 0 de la memoria de datos
;Leer las entradas RA0-RA4
;Reflejar en las salidas
;Bucle sin fin
;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.
Ejecucin
STATUS
PC
TRISA
TRISB
PORTA
PORTB
1
..
N
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'00000011'
movwf TRISA
bcf
STATUS,RP0
clrf
Temp
Loop movf PORTA,W
andlw b'00000011'
movwf Temp
btfsc STATUS,Z
goto Apagar
movlw b'00000001'
subwf Temp,W
btfsc STATUS,Z
goto Encender
movlw b'00000010'
subwf Temp,W
btfsc STATUS,Z
goto Encender
Apaga bcf
PORTB,0
goto Loop
Enciende
bsf
PORTB,0
goto Loop
end
;Tipo de procesador
; Incluye el fichero con los nombres de los registros
;Variable temporal que se almacena en la posicin 0x0c
;Vector de Reset
;Salva el vector de interrupcin
;Borra los latch de salida
;Selecciona banco 1 de la memoria de datos
;Puerta B se configura como salida
;RA0 y RA1 se configuran como entrada
;Selecciona banco 0 de la memoria de datos
;Pone a 0 el registo o variable temporal
;Leer el estado de la puerta A
;Filtra la informacin para quedarnos con RA0 y RA1
;Almacena temporalmente
;RA0=0 y RA1=0 ??
;Si, la lmpara se apaga
;RA0=1 y RA1=0 ??
;Si, la lmpara se enciende
;RA0=0 y RA1=1 ??
;Si, la lmpara se enciende
;No, la lmpara se apaga
;La lmpara se enciende
;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.
10. Anote en una tabla el valor del PC, W, TRISA, TRISB, PORTA y PORTB para cada corrida del
programa.
Ejecucin
STATUS
PC
TRISA
1
..
N
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'
3
TRISB
PORTA
PORTB
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
TRISA
1
..
N
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
4
TRISB
PORTA
PORTB
Alarma_On
btfsc
goto
bsf
goto
end
PORTA,1
Alarma_Off
PORTB,0
Loop
Ejecucin
STATUS
PC
TRISA
TRISB
PORTA
PORTB
1
..
N
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
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.
VI.
CONCLUSIONES.
BIBLIOGRAFA O REFERENCIAS UTILIZADAS EN EL DESARROLLO DE LA
PRACTICA
5