SlideShare una empresa de Scribd logo
1 de 24
TEMA 3. HERRAMIENTAS
DE PROGRAMACIÓN
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
INSTRUCCIONES DE
MANIPULACIÓN DE BITS
• BCF F,B (Poner a Cero al Bit B del registro F)
– Ejemplo: bcf Datox,5
– Datox= E4H
• BSF F,B (Poner a Uno al Bit B del registro F)
– Ejemplo: bsf Datox,3
– Datox= C8H
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
INSTRUCCIONES DE
EXPLORACIÓN/TESTEO DE BITS
• BTFSS F,B (Pregunta si el bit B del registro F vale uno)
• (Bit Test File Skip Set)
– Ejemplo: btfss suma,2
goto RutinaA
goto RutinaB
• BTFSC F,B (Pregunta si el bit B del Registro F vale cero)
• (Bit Test File Skip Clear)
– Ejemplo: btfsc suma,5
goto RutinaA
goto RutinaB
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
STATUS
7     
(L/E)
6      (L/E) 5      (L/E) 4      (L) 3      (L) 2      (L/E) 1      (L/E) 0      (L/E)
IRP RP1 RP0 TO PD Z DC C
C. Bit de acarreo en el bit MSB
Vale 1 cuando en el resultado de una operación aritmética, se ha producido una acarreo (suma)
Vale 0 si no se ha producido un acarreo.
Para el caso de una resta, ocurre todo lo contrario a lo expuesto:
Vale 1 si no se ha producido un "préstamo"
Vale 0 si se ha producido un "préstamo"
 DC. Acarreo en el cuarto bit (Nibble bajo). Misma descripción de C, pero referida al cuarto bit.
 Z. Cero.
Vale 1 si el resultado de una operación lógico - aritmética es cero
Vale 0 si el resultado de una operación lógico- aritmética NO es cero
 IRP. Bit para direccionamiento indirecto de los bancos de datos.
 RP1 - RP0. Bits para direccionamiento directo de los bancos de datos.
1 - 1   : Banco 3
1 -0   : Banco 2
0 - 1  : Banco 1
0 - 0 : Banco 0
TO. Time Out
Se pone a 1 después de la conexión de la alimentación al microcontrolador, o al ejecutarse las
instrucciones clrwdt ó sleep
Se pone a 0 cuando el perro guardián se ha desbordado.
 PD. Power Down
Se pone a 1 después de la conexión de la alimentación al microcontrolador o al ejecutarse la
instrucción clrwdt
Se pone a 0 mediante la ejecución de la instrucción sleep
RESULTADO DE OPERACIONES
LÓGICO/ARITMÉTICAS
• ¿Cómo hacemos para saber si la suma de dos registros ha producido
acarreo?
R= Se suman los dos registros y se pregunta por el bit c del registro
STATUS:
movf DatoA,0 ;DatoA W→
addwf DatoB,0 ;DatoA+DatoB W→
btfss STATUS,0 ; C=1?
goto Noacarreo
goto Acarreo
• ¿Cómo sabemos si la suma de dos nibbles (4 bits) ha producido
acarreo?
R= Se suman los dos registros y se pregunta por el bit DC del Registro
STATUS:
movf DatoA,0 ;DatoA W→
addwf DatoB,0 ;DatoA+DatoB W→
btfss STATUS,1 ; DC=1?
goto Noacarreo
goto Acarreo
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
RESULTADO DE OPERACIONES
LÓGICO/ARITMÉTICAS
• ¿Cómo sabemos si un registro es igual a otro?
• Opción A: Se restan ambos registros y se pregunta si Z es igual
a 1:
movf DatoB,0 ;DatoB W→
subwf DatoA,0 ;DatoA – DatoB W→
btfss STATUS,2
goto NOIGUAL
goto IGUAL
• Opción B: Se aplica XOR entre ambos registros y:
movf DatoB,0 ;DatoB W→
xorwf DatoA,0 ;DatoA (XOR) DatoB W→
btfss STATUS,2
goto NOIGUAL
goto IGUAL
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
RESULTADO DE OPERACIONES
LÓGICO/ARITMÉTICAS
• ¿Cómo sabemos si un registro es mayor, igual o menor a
otro?
R= Se restan ambos registros (A – B) y:
movf DatoB,0 ;DatoB W→
subwf DatoA,0 ;DatoA-DatoB W→
EXPLORA btfss STATUS,2 ; Z=1?
goto SIGUE
goto IGUAL ;Si Z=1, A=B
SIGUE btfsc STATUS,0 ;C=0?
goto MAYOR ; Si C=1, A>B
goto MENOR ; Si C=0, A<B
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
SELECCIONANDO LOS BANCOS DE
REGISTROS
• El PIC 16F84 posee solamente dos (2)
bancos de Registros, por lo que para
seleccionar el banco deseado, basta con
manipular el bit RP0 del registro STATUS.
• Si RP0= 1, se ha seleccionado el banco 1
• Si RPO= 0, se ha seleccionado el banco 0
• Ejemplo: Seleccione el banco de registros
1:
– bsf STATUS,5 ; RP0= 1
• Seleccione el banco de registros 0:
– bcf STATUS,5 ; RP0=0
Así de sencillo es seleccionar los bancos de
registros.
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
CONFIGURANDO UN PUERTO
La configuración de puertos es muy fácil:
1. Se selecciona el banco 1
• Aquí se encuentran los registros que manipulan mediante software a
los circuitos triestados que determinan que un pin o puerto trabaje
como entrada o salida.
2. Se configuran mediante los registros asociados a los puertos
(TRISA y TRISB), los pines de un puerto como entrada o
salida.
• Si coloco un uno (1) en un bit asociado a un puerto (RA0, RA1, RB5,
RB7,etc), éste se comportará como una entrada y solamente
podremos leer por esta entrada.
• Si coloco un cero (0) en un bit asociado a un puerto, éste se
comportará como una salida y solamente podremos escribir por esta
entrada.
• Podemos hacer analogía de la siguiente forma:
            1 = In     = Entrada = Solo lectura
            0 = Out  = Salida   = Solo escritura
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
CONFIGURANDO UN PUERTO
La configuración de puertos es muy fácil:
3. Se selecciona o se regresa al banco 0, para trabajar con los
puertos que han sido previamente configurados.
• Si un puerto (o pin) ha sido configurado como salida, entonces se
podrá escribir sobre él, para sacar datos.
• Si un puerto (o pin) ha sido configurado como entrada, entonces se
podrá leer los datos que están ingresando por él.
• Nota: Escribir sobre un puerto (o pin) configurado como entrada,
no tiene ningún efecto. Si se desea escribir sobre él, es necesario
que el mismo sea habilitado como salida.
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
CONFIGURANDO UN PUERTO COMO
ENTRADA/SALIDA (POR BYTE)
Recordemos los tres pasos:
• Por Byte:
A)     bsf STATUS, 5 ; (1) Selección de banco 1
movlw    FFH ; B’11111111’
      movwf    TRISB        ; (2) Todos los bits del puertoB están
; configurados como entradas
bcf STATUS,5 ; (3) Se regresa al banco 0
B)      bsf STATUS, 5 ; (1) Selección de banco 1
movlw    00H ; B’00000000’
      movwf    TRISA        ; (2) Todos los bits del puertoA están
; configurados como salidas
bcf STATUS,5 ; (3) Se regresa al banco 0
C)      bsf STATUS, 5 ; (1) Selección de banco 1
movlw    B’10010001 ; B’ESSESSSE’
      movwf    TRISB        ; (2) Mixto E/S en un mismo puerto
bcf STATUS,5 ; (3) Se regresa al banco 0
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
CONFIGURANDO UN PUERTO COMO
ENTRADA/SALIDA (BIT A BIT)
Recordemos los tres pasos:
• Bit a bit:
bsf STATUS,5 ; (1) Selección de Banco 1
        bsf        PuertoA,1        ; (2) ¿Salida o Entrada?
        bcf        PuertoA,2       ; (2) ¿Salida o Entrada?
        bsf        PuertoA,3       ; (2) ¿Salida o Entrada?
        bcf        PuertoB,0       ; (2) ¿Salida o Entrada?
bcf        PuertoB,2       ; (2) ¿Salida o Entrada?
        bcf        PuertoB,3       ; (2) ¿Salida o Entrada?
        bsf        PuertoB,5       ; (2) ¿Salida o Entrada?
        bcf        PuertoB,7       ; (2) ¿Salida o Entrada?
bcf STATUS,5 ; (3) Se regresa al banco 0
Nota: Estamos asumiendo que en este ejemplo hemos etiquetado
previamente a 05H como PuertoA y 06H como PuertoB.
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
ESCRIBIR Y LEER SOBRE UN PUERTO
• Para configurarlos como entradas y/o salidas, debemos de estar en el banco 1.
Una vez configurados, para poder leer y/o escribir sobre estos, debemos de
cambiarnos al banco 0.
• Ejemplo. Realice un programa que configure al Puerto A como entrada y a los
primeros cuatro bits del Puerto B como salida, los restantes bits del puerto B
como entrada.
            STATUS        equ            03H   ; A esta parte se le conoce como zona de
; etiquetas o declaración de etiquetas.
            PuertoA          equ            05H ; También se puede usar la directiva
; INCLUDE
            PuertoB          equ            06H ; Y se obvian estas declaraciones
            bsf                STATUS,5        ; Hemos cambiado al banco 1, para configurar
; los puertos
            movlw            1FH
            movwf            PuertoA              ; Hemos configurado al PuertoA como entrada
            movlw            b'11110000'
            movwf            PuertoB              ; Nibble bajo como salida y nibble alto como
; entrada
            bcf                STATUS,5          ; Cambiamos al banco 0 para poder leer ó
; escribir en estos, según sea el caso.
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
REGISTROS ASOCIADOS A LOS
PUERTOS
• De configuración:
– TRISA (85H, Banco 1)
– TRISB (86H, Banco 1)
• De Trabajo (Lectura/Escritura)
– PORTA (05H, Banco 0)
– PORTB (06H, Banco 0)
• PORTA y PORTB, son registros de Lectura/Escritura, como
cualquier otro registro de propósito general, sólo que están
directamente vinculados a los puertos del microcontrolador.
• Por lo tanto su Lectura/Escritura NO difiere de la de cualquier
otro registro
IUT Cumaná
Prof. Luis Zurita
Microcontroladores
LEER Y/O ESCRIBIR EL UN VALOR
EN UN PUERTO
• Ejemplo 1. Lea el valor presente en el puerto A y guárdelo en un
Registro DatoA.
movf PORTA,0 ; PORTA W→
movwf DatoA ; W DatoA→
• Ejemplo 2. Escriba sobre el puerto B el siguiente valor: 49H
movlw 49H ; 49H W→
movwf PORTB ; W PORTB→
• Ejemplo 3. Active el bit RB0, desactive el bit RB1 y active el bit
RA4:
bsf PORTB,0 ; RB0= 1
bcf PORTB,1 ; RB1= 0
bsf PORTA,4 ; RA4= 1
IUT Cumaná
Prof. Luis ZuritaMicrocontroladores
• Según el ejemplo 3, planteado
anteriormente;
¿Qué Efectos se tiene sobre el
siguiente circuito?
LEER Y/O ESCRIBIR EL UN VALOR
EN UN PUERTO
• ¿Qué Efectos se tiene sobre el circuito
si se aplican las siguientes
instrucciones?
movlw B’00000001’
movwf PORTB
• ¿Qué Efectos se tiene sobre el
siguiente circuito si se aplican estas
siguientes instrucciones?
bcf PORTA,0
bsf PORTA,1
bcf PORTA,2
IUT Cumaná
Prof. Luis Zurita
Microcontroladores
• Para el siguiente circuito,
¿Qué valor debemos
colocar en puerto B para
que se visualice un 7 en el
display?
LEER Y/O ESCRIBIR EL UN VALOR
EN UN PUERTO
• ¿Cómo hacemos para saber el
valor del bit RA0?
Basta con explorar su estado
lógico mediante alguna de las
instrucciones de testeo y/o
exploración: btfss f,b ó btfsc
f,b:
btfss PORTA,0
goto RutinA
goto RutinB
IUT Cumaná
Prof. Luis Zurita
Microcontroladores
TOMA DE DECISIONES
• Una Tarea.
La condición puede venir
internamente como
externamente.
Condición
X=1?
Proceso A
NO
SI
• Interna
btfss STATUS,0 ; C=1?
goto ProcesoA
goto SIGUE
• Externa
btfss PORTA,0 ; RA0=1?
goto ProcesoA
goto SIGUE
IUT Cumaná
Prof. Luis Zurita
Microcontroladores
TOMA DE DECISIONES
• Dos Tareas.
La condición puede venir
internamente como
externamente.
• Interna
btfss STATUS,0 ; C=1?
goto ProcesoA
goto ProcesoB
• Externa
btfss PORTA,0 ; RA0=1?
goto ProcesoA
goto ProcesoB
Condición
X=1?
Proceso A
NO
SI
Proceso B
IUT Cumaná
Prof. Luis Zurita
Microcontroladores
• Dado el siguiente circuito, Active el LED
ubicado en RB0 si RA0, vale 0 y en caso
contrario, active el LED ubicado en RB1.
TOMA DE DECISIONES. EJEMPLO
IUT Cumaná
Prof. Luis Zurita
Microcontroladores
TOMA DE DECISIONES. EJEMPLO
• Externa
btfss PORTA,0 ; RA0=1?
goto ProcesoA
goto ProcesoB
ProcesoA bsf PORTB,0
goto SIGUE
ProcesoB bcf PORTB,1
goto SIGUE
SIGUE ------
------
------
RA0=1?
Activar LED en
RB0
NO
SI
Activar LED en
RB1
IUT Cumaná
Prof. Luis Zurita
Microcontroladores
TOMA DE DECISIONES. CERROJO Ó
VALIDACIÓN
• Se queda esperando que
la condición ocurra.
• Interna
ESPERA btfss INTCON,0
goto ESPERA
goto ProcesoA
• Externa
EXPLORA btfss PORTA,0 ; RA0=1?
goto EXPLORA
goto ProcesoA
Condición
X=1?
Proceso A
NO
SI
IUT Cumaná
Prof. Luis Zurita
Microcontroladores
TOMA DE DECISIONES
• Multitareas.
Dos condiciones permiten
elegir entre uno a cuatro
procesos distintos.
Condición
X=1?
NO
SI
Proceso B
Condición
Y=1?
NO
SI
Condición
Y=1?
Proceso D
Proceso A
Proceso C
SI
NO
IUT Cumaná
Prof. Luis Zurita
Microcontroladores
¿Cómo pasar del diagrama de flujo al
programa?
• Es sencillo:
– Cada símbolo del diagrama de flujo representa una (ó varias)
instrucción (es).
– El programador/Diseñador, mediante la práctica y/o visualización,
debe buscar las instrucciones que cumplan con los símbolos y su
contenido, e ir colocándolas secuencialmente, según lo indique el
diagrama de flujo previamente elaborado.
CARGA movlw 35H
movwf SUMA
btfss STATUS,2
goto ProcesoA
goto Carga
35H SUMA→
Z=1?
ProcesoA
NO
SI
IUT Cumaná
Prof. Luis Zurita

Más contenido relacionado

La actualidad más candente

Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Jomicast
 
Manaul de serviço ms cbx250 (2001) sistema de carga
Manaul de serviço ms cbx250 (2001) sistema  de cargaManaul de serviço ms cbx250 (2001) sistema  de carga
Manaul de serviço ms cbx250 (2001) sistema de cargaThiago Huari
 
"Hola Mundo" C18, PIC18F y MPLAB
"Hola Mundo"  C18,  PIC18F y MPLAB"Hola Mundo"  C18,  PIC18F y MPLAB
"Hola Mundo" C18, PIC18F y MPLABBlackD10
 
Manual de serviço cbx750 f (1990) bateria
Manual de serviço cbx750 f (1990) bateriaManual de serviço cbx750 f (1990) bateria
Manual de serviço cbx750 f (1990) bateriaThiago Huari
 
Manual de serviço xl125 s (1984) ms437841p ignicao
Manual de serviço xl125 s (1984)   ms437841p ignicaoManual de serviço xl125 s (1984)   ms437841p ignicao
Manual de serviço xl125 s (1984) ms437841p ignicaoThiago Huari
 
Manual de serviço turuna (1979) inspecao
Manual de serviço turuna (1979) inspecaoManual de serviço turuna (1979) inspecao
Manual de serviço turuna (1979) inspecaoThiago Huari
 
28552982-1 Plano de teste Delphi
28552982-1 Plano de teste  Delphi28552982-1 Plano de teste  Delphi
28552982-1 Plano de teste DelphiJunior Iung
 
01 encendidos convencionales
01 encendidos convencionales01 encendidos convencionales
01 encendidos convencionalesNicolás Colado
 
Presentación actuadores neumáticos
Presentación actuadores neumáticosPresentación actuadores neumáticos
Presentación actuadores neumáticossaricofi
 
Sistemas de televisãoLLC
Sistemas de televisãoLLCSistemas de televisãoLLC
Sistemas de televisãoLLCLucianoLLC
 
Manual de serviço cr250 99 rodadian
Manual de serviço cr250 99 rodadianManual de serviço cr250 99 rodadian
Manual de serviço cr250 99 rodadianThiago Huari
 
55752255 esquema-da-injecao-fiat-g6g7
55752255 esquema-da-injecao-fiat-g6g755752255 esquema-da-injecao-fiat-g6g7
55752255 esquema-da-injecao-fiat-g6g7Lorrayne Fernandes
 
Manual de osciloscopio para electromecanicos
Manual de osciloscopio para electromecanicosManual de osciloscopio para electromecanicos
Manual de osciloscopio para electromecanicosJorge Antonio Guillen
 

La actualidad más candente (20)

Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
Circuitos secuenciales: Contadores, Registros de Desplazamiento y Circuito de...
 
03 rectificador
03 rectificador03 rectificador
03 rectificador
 
Linguagens clp
Linguagens clpLinguagens clp
Linguagens clp
 
Manaul de serviço ms cbx250 (2001) sistema de carga
Manaul de serviço ms cbx250 (2001) sistema  de cargaManaul de serviço ms cbx250 (2001) sistema  de carga
Manaul de serviço ms cbx250 (2001) sistema de carga
 
"Hola Mundo" C18, PIC18F y MPLAB
"Hola Mundo"  C18,  PIC18F y MPLAB"Hola Mundo"  C18,  PIC18F y MPLAB
"Hola Mundo" C18, PIC18F y MPLAB
 
Manual de serviço cbx750 f (1990) bateria
Manual de serviço cbx750 f (1990) bateriaManual de serviço cbx750 f (1990) bateria
Manual de serviço cbx750 f (1990) bateria
 
Manual de serviço xl125 s (1984) ms437841p ignicao
Manual de serviço xl125 s (1984)   ms437841p ignicaoManual de serviço xl125 s (1984)   ms437841p ignicao
Manual de serviço xl125 s (1984) ms437841p ignicao
 
Dualogic diag (1)
Dualogic diag (1)Dualogic diag (1)
Dualogic diag (1)
 
El Microprocesador 8085
El Microprocesador 8085El Microprocesador 8085
El Microprocesador 8085
 
INJEÇÃO DIRETA
INJEÇÃO DIRETAINJEÇÃO DIRETA
INJEÇÃO DIRETA
 
Manual de serviço turuna (1979) inspecao
Manual de serviço turuna (1979) inspecaoManual de serviço turuna (1979) inspecao
Manual de serviço turuna (1979) inspecao
 
28552982-1 Plano de teste Delphi
28552982-1 Plano de teste  Delphi28552982-1 Plano de teste  Delphi
28552982-1 Plano de teste Delphi
 
01 encendidos convencionales
01 encendidos convencionales01 encendidos convencionales
01 encendidos convencionales
 
Doc motor volvo fh d13 c 3
Doc motor volvo fh d13 c 3Doc motor volvo fh d13 c 3
Doc motor volvo fh d13 c 3
 
Presentación actuadores neumáticos
Presentación actuadores neumáticosPresentación actuadores neumáticos
Presentación actuadores neumáticos
 
Sistemas de televisãoLLC
Sistemas de televisãoLLCSistemas de televisãoLLC
Sistemas de televisãoLLC
 
Manual de serviço cr250 99 rodadian
Manual de serviço cr250 99 rodadianManual de serviço cr250 99 rodadian
Manual de serviço cr250 99 rodadian
 
55752255 esquema-da-injecao-fiat-g6g7
55752255 esquema-da-injecao-fiat-g6g755752255 esquema-da-injecao-fiat-g6g7
55752255 esquema-da-injecao-fiat-g6g7
 
PROGRAMACION DE MICROCONTROLADOR
PROGRAMACION DE MICROCONTROLADORPROGRAMACION DE MICROCONTROLADOR
PROGRAMACION DE MICROCONTROLADOR
 
Manual de osciloscopio para electromecanicos
Manual de osciloscopio para electromecanicosManual de osciloscopio para electromecanicos
Manual de osciloscopio para electromecanicos
 

Destacado

MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3Luis Zurita
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CLuis Zurita
 
GUÍA MPLAB 8.53
GUÍA MPLAB 8.53GUÍA MPLAB 8.53
GUÍA MPLAB 8.53Luis Zurita
 
Curso Micro Tema 5
Curso Micro Tema 5Curso Micro Tema 5
Curso Micro Tema 5Luis Zurita
 
Curso Micro Tema 4
Curso Micro Tema 4Curso Micro Tema 4
Curso Micro Tema 4Luis Zurita
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2Luis Zurita
 
Curso Micro Tema 1
Curso Micro Tema 1Curso Micro Tema 1
Curso Micro Tema 1Luis Zurita
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreLuis Zurita
 
MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2Luis Zurita
 
Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4Luis Zurita
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5Luis Zurita
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4Luis 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
 
TEMA 2 DE INSTRUMENTACION 3
TEMA 2 DE INSTRUMENTACION 3TEMA 2 DE INSTRUMENTACION 3
TEMA 2 DE INSTRUMENTACION 3Luis Zurita
 

Destacado (20)

MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
 
Tema3 Microii
Tema3 MicroiiTema3 Microii
Tema3 Microii
 
GUÍA MPLAB 8.53
GUÍA MPLAB 8.53GUÍA MPLAB 8.53
GUÍA MPLAB 8.53
 
Curso Micro Tema 5
Curso Micro Tema 5Curso Micro Tema 5
Curso Micro Tema 5
 
Curso Micro Tema 4
Curso Micro Tema 4Curso Micro Tema 4
Curso Micro Tema 4
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Curso Micro Tema 1
Curso Micro Tema 1Curso Micro Tema 1
Curso Micro Tema 1
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
Micro2 tema 4
Micro2 tema 4Micro2 tema 4
Micro2 tema 4
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2MICROCONTROLADORES II EN C. TEMA 2
MICROCONTROLADORES II EN C. TEMA 2
 
Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4Microcontroladores ii en c. tema 4
Microcontroladores ii en c. tema 4
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
 
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
 
TEMA 2 DE INSTRUMENTACION 3
TEMA 2 DE INSTRUMENTACION 3TEMA 2 DE INSTRUMENTACION 3
TEMA 2 DE INSTRUMENTACION 3
 
GuíA Mplab 760
GuíA Mplab 760GuíA Mplab 760
GuíA Mplab 760
 
ADC PIC 2015
ADC PIC  2015ADC PIC  2015
ADC PIC 2015
 

Similar a Curso Micro Tema 3

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 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2Luis Zurita
 
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
 
Examen micros t1_06_solucion
Examen micros t1_06_solucionExamen micros t1_06_solucion
Examen micros t1_06_solucionJair BG
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84axeleta
 
4. interrupciones y temporizadores
4. interrupciones y temporizadores4. interrupciones y temporizadores
4. interrupciones y temporizadoresDavid Narváez
 
Ejemplo varias interrupciones
Ejemplo varias interrupcionesEjemplo varias interrupciones
Ejemplo varias interrupcionesLuis Zurita
 
arquitectura de un microcontrolador
arquitectura de un microcontroladorarquitectura de un microcontrolador
arquitectura de un microcontroladorPablo Ramos Garcia
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersmarco calderon layme
 
Puertos de entrada/salida
Puertos de entrada/salidaPuertos de entrada/salida
Puertos de entrada/salidatecautind
 
Puertos de entrada diapositivas
Puertos de entrada diapositivasPuertos de entrada diapositivas
Puertos de entrada diapositivastecautind
 
Manejo de Puertos PIC
Manejo de Puertos PICManejo de Puertos PIC
Manejo de Puertos PICSawy G
 

Similar a Curso Micro Tema 3 (20)

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 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
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
 
Examen micros t1_06_solucion
Examen micros t1_06_solucionExamen micros t1_06_solucion
Examen micros t1_06_solucion
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84a
 
4. interrupciones y temporizadores
4. interrupciones y temporizadores4. interrupciones y temporizadores
4. interrupciones y temporizadores
 
Ejemplo varias interrupciones
Ejemplo varias interrupcionesEjemplo varias interrupciones
Ejemplo varias interrupciones
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
 
Tema4 puertos
Tema4 puertosTema4 puertos
Tema4 puertos
 
arquitectura de un microcontrolador
arquitectura de un microcontroladorarquitectura de un microcontrolador
arquitectura de un microcontrolador
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
 
Cartilla pic16f877
Cartilla pic16f877Cartilla pic16f877
Cartilla pic16f877
 
Puertos de entrada/salida
Puertos de entrada/salidaPuertos de entrada/salida
Puertos de entrada/salida
 
Puertos de entrada diapositivas
Puertos de entrada diapositivasPuertos de entrada diapositivas
Puertos de entrada diapositivas
 
Manejo de Puertos PIC
Manejo de Puertos PICManejo de Puertos PIC
Manejo de Puertos PIC
 

Más de Luis Zurita

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APALuis Zurita
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUSLuis Zurita
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y tecladoLuis Zurita
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13Luis Zurita
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronicaLuis Zurita
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iycLuis Zurita
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013Luis Zurita
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronicaLuis Zurita
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronicaLuis Zurita
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Luis Zurita
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013Luis Zurita
 

Más de Luis Zurita (20)

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APA
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUS
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
 
Pevmicroi ieo
Pevmicroi ieoPevmicroi ieo
Pevmicroi ieo
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Pev electronica
Pev electronicaPev electronica
Pev electronica
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronica
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iyc
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronica
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronica
 
Pevmicro2013
Pevmicro2013Pevmicro2013
Pevmicro2013
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013
 

Curso Micro Tema 3

  • 1. TEMA 3. HERRAMIENTAS DE PROGRAMACIÓN IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 2. INSTRUCCIONES DE MANIPULACIÓN DE BITS • BCF F,B (Poner a Cero al Bit B del registro F) – Ejemplo: bcf Datox,5 – Datox= E4H • BSF F,B (Poner a Uno al Bit B del registro F) – Ejemplo: bsf Datox,3 – Datox= C8H IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 3. INSTRUCCIONES DE EXPLORACIÓN/TESTEO DE BITS • BTFSS F,B (Pregunta si el bit B del registro F vale uno) • (Bit Test File Skip Set) – Ejemplo: btfss suma,2 goto RutinaA goto RutinaB • BTFSC F,B (Pregunta si el bit B del Registro F vale cero) • (Bit Test File Skip Clear) – Ejemplo: btfsc suma,5 goto RutinaA goto RutinaB IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 4. STATUS 7      (L/E) 6      (L/E) 5      (L/E) 4      (L) 3      (L) 2      (L/E) 1      (L/E) 0      (L/E) IRP RP1 RP0 TO PD Z DC C C. Bit de acarreo en el bit MSB Vale 1 cuando en el resultado de una operación aritmética, se ha producido una acarreo (suma) Vale 0 si no se ha producido un acarreo. Para el caso de una resta, ocurre todo lo contrario a lo expuesto: Vale 1 si no se ha producido un "préstamo" Vale 0 si se ha producido un "préstamo"  DC. Acarreo en el cuarto bit (Nibble bajo). Misma descripción de C, pero referida al cuarto bit.  Z. Cero. Vale 1 si el resultado de una operación lógico - aritmética es cero Vale 0 si el resultado de una operación lógico- aritmética NO es cero  IRP. Bit para direccionamiento indirecto de los bancos de datos.  RP1 - RP0. Bits para direccionamiento directo de los bancos de datos. 1 - 1   : Banco 3 1 -0   : Banco 2 0 - 1  : Banco 1 0 - 0 : Banco 0 TO. Time Out Se pone a 1 después de la conexión de la alimentación al microcontrolador, o al ejecutarse las instrucciones clrwdt ó sleep Se pone a 0 cuando el perro guardián se ha desbordado.  PD. Power Down Se pone a 1 después de la conexión de la alimentación al microcontrolador o al ejecutarse la instrucción clrwdt Se pone a 0 mediante la ejecución de la instrucción sleep
  • 5. RESULTADO DE OPERACIONES LÓGICO/ARITMÉTICAS • ¿Cómo hacemos para saber si la suma de dos registros ha producido acarreo? R= Se suman los dos registros y se pregunta por el bit c del registro STATUS: movf DatoA,0 ;DatoA W→ addwf DatoB,0 ;DatoA+DatoB W→ btfss STATUS,0 ; C=1? goto Noacarreo goto Acarreo • ¿Cómo sabemos si la suma de dos nibbles (4 bits) ha producido acarreo? R= Se suman los dos registros y se pregunta por el bit DC del Registro STATUS: movf DatoA,0 ;DatoA W→ addwf DatoB,0 ;DatoA+DatoB W→ btfss STATUS,1 ; DC=1? goto Noacarreo goto Acarreo IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 6. RESULTADO DE OPERACIONES LÓGICO/ARITMÉTICAS • ¿Cómo sabemos si un registro es igual a otro? • Opción A: Se restan ambos registros y se pregunta si Z es igual a 1: movf DatoB,0 ;DatoB W→ subwf DatoA,0 ;DatoA – DatoB W→ btfss STATUS,2 goto NOIGUAL goto IGUAL • Opción B: Se aplica XOR entre ambos registros y: movf DatoB,0 ;DatoB W→ xorwf DatoA,0 ;DatoA (XOR) DatoB W→ btfss STATUS,2 goto NOIGUAL goto IGUAL IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 7. RESULTADO DE OPERACIONES LÓGICO/ARITMÉTICAS • ¿Cómo sabemos si un registro es mayor, igual o menor a otro? R= Se restan ambos registros (A – B) y: movf DatoB,0 ;DatoB W→ subwf DatoA,0 ;DatoA-DatoB W→ EXPLORA btfss STATUS,2 ; Z=1? goto SIGUE goto IGUAL ;Si Z=1, A=B SIGUE btfsc STATUS,0 ;C=0? goto MAYOR ; Si C=1, A>B goto MENOR ; Si C=0, A<B IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 8. SELECCIONANDO LOS BANCOS DE REGISTROS • El PIC 16F84 posee solamente dos (2) bancos de Registros, por lo que para seleccionar el banco deseado, basta con manipular el bit RP0 del registro STATUS. • Si RP0= 1, se ha seleccionado el banco 1 • Si RPO= 0, se ha seleccionado el banco 0 • Ejemplo: Seleccione el banco de registros 1: – bsf STATUS,5 ; RP0= 1 • Seleccione el banco de registros 0: – bcf STATUS,5 ; RP0=0 Así de sencillo es seleccionar los bancos de registros. IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 9. CONFIGURANDO UN PUERTO La configuración de puertos es muy fácil: 1. Se selecciona el banco 1 • Aquí se encuentran los registros que manipulan mediante software a los circuitos triestados que determinan que un pin o puerto trabaje como entrada o salida. 2. Se configuran mediante los registros asociados a los puertos (TRISA y TRISB), los pines de un puerto como entrada o salida. • Si coloco un uno (1) en un bit asociado a un puerto (RA0, RA1, RB5, RB7,etc), éste se comportará como una entrada y solamente podremos leer por esta entrada. • Si coloco un cero (0) en un bit asociado a un puerto, éste se comportará como una salida y solamente podremos escribir por esta entrada. • Podemos hacer analogía de la siguiente forma:             1 = In     = Entrada = Solo lectura             0 = Out  = Salida   = Solo escritura IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 10. CONFIGURANDO UN PUERTO La configuración de puertos es muy fácil: 3. Se selecciona o se regresa al banco 0, para trabajar con los puertos que han sido previamente configurados. • Si un puerto (o pin) ha sido configurado como salida, entonces se podrá escribir sobre él, para sacar datos. • Si un puerto (o pin) ha sido configurado como entrada, entonces se podrá leer los datos que están ingresando por él. • Nota: Escribir sobre un puerto (o pin) configurado como entrada, no tiene ningún efecto. Si se desea escribir sobre él, es necesario que el mismo sea habilitado como salida. IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 11. CONFIGURANDO UN PUERTO COMO ENTRADA/SALIDA (POR BYTE) Recordemos los tres pasos: • Por Byte: A)     bsf STATUS, 5 ; (1) Selección de banco 1 movlw    FFH ; B’11111111’       movwf    TRISB        ; (2) Todos los bits del puertoB están ; configurados como entradas bcf STATUS,5 ; (3) Se regresa al banco 0 B)      bsf STATUS, 5 ; (1) Selección de banco 1 movlw    00H ; B’00000000’       movwf    TRISA        ; (2) Todos los bits del puertoA están ; configurados como salidas bcf STATUS,5 ; (3) Se regresa al banco 0 C)      bsf STATUS, 5 ; (1) Selección de banco 1 movlw    B’10010001 ; B’ESSESSSE’       movwf    TRISB        ; (2) Mixto E/S en un mismo puerto bcf STATUS,5 ; (3) Se regresa al banco 0 IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 12. CONFIGURANDO UN PUERTO COMO ENTRADA/SALIDA (BIT A BIT) Recordemos los tres pasos: • Bit a bit: bsf STATUS,5 ; (1) Selección de Banco 1         bsf        PuertoA,1        ; (2) ¿Salida o Entrada?         bcf        PuertoA,2       ; (2) ¿Salida o Entrada?         bsf        PuertoA,3       ; (2) ¿Salida o Entrada?         bcf        PuertoB,0       ; (2) ¿Salida o Entrada? bcf        PuertoB,2       ; (2) ¿Salida o Entrada?         bcf        PuertoB,3       ; (2) ¿Salida o Entrada?         bsf        PuertoB,5       ; (2) ¿Salida o Entrada?         bcf        PuertoB,7       ; (2) ¿Salida o Entrada? bcf STATUS,5 ; (3) Se regresa al banco 0 Nota: Estamos asumiendo que en este ejemplo hemos etiquetado previamente a 05H como PuertoA y 06H como PuertoB. IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 13. ESCRIBIR Y LEER SOBRE UN PUERTO • Para configurarlos como entradas y/o salidas, debemos de estar en el banco 1. Una vez configurados, para poder leer y/o escribir sobre estos, debemos de cambiarnos al banco 0. • Ejemplo. Realice un programa que configure al Puerto A como entrada y a los primeros cuatro bits del Puerto B como salida, los restantes bits del puerto B como entrada.             STATUS        equ            03H   ; A esta parte se le conoce como zona de ; etiquetas o declaración de etiquetas.             PuertoA          equ            05H ; También se puede usar la directiva ; INCLUDE             PuertoB          equ            06H ; Y se obvian estas declaraciones             bsf                STATUS,5        ; Hemos cambiado al banco 1, para configurar ; los puertos             movlw            1FH             movwf            PuertoA              ; Hemos configurado al PuertoA como entrada             movlw            b'11110000'             movwf            PuertoB              ; Nibble bajo como salida y nibble alto como ; entrada             bcf                STATUS,5          ; Cambiamos al banco 0 para poder leer ó ; escribir en estos, según sea el caso. IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 14. REGISTROS ASOCIADOS A LOS PUERTOS • De configuración: – TRISA (85H, Banco 1) – TRISB (86H, Banco 1) • De Trabajo (Lectura/Escritura) – PORTA (05H, Banco 0) – PORTB (06H, Banco 0) • PORTA y PORTB, son registros de Lectura/Escritura, como cualquier otro registro de propósito general, sólo que están directamente vinculados a los puertos del microcontrolador. • Por lo tanto su Lectura/Escritura NO difiere de la de cualquier otro registro IUT Cumaná Prof. Luis Zurita Microcontroladores
  • 15. LEER Y/O ESCRIBIR EL UN VALOR EN UN PUERTO • Ejemplo 1. Lea el valor presente en el puerto A y guárdelo en un Registro DatoA. movf PORTA,0 ; PORTA W→ movwf DatoA ; W DatoA→ • Ejemplo 2. Escriba sobre el puerto B el siguiente valor: 49H movlw 49H ; 49H W→ movwf PORTB ; W PORTB→ • Ejemplo 3. Active el bit RB0, desactive el bit RB1 y active el bit RA4: bsf PORTB,0 ; RB0= 1 bcf PORTB,1 ; RB1= 0 bsf PORTA,4 ; RA4= 1 IUT Cumaná Prof. Luis ZuritaMicrocontroladores
  • 16. • Según el ejemplo 3, planteado anteriormente; ¿Qué Efectos se tiene sobre el siguiente circuito? LEER Y/O ESCRIBIR EL UN VALOR EN UN PUERTO • ¿Qué Efectos se tiene sobre el circuito si se aplican las siguientes instrucciones? movlw B’00000001’ movwf PORTB • ¿Qué Efectos se tiene sobre el siguiente circuito si se aplican estas siguientes instrucciones? bcf PORTA,0 bsf PORTA,1 bcf PORTA,2 IUT Cumaná Prof. Luis Zurita Microcontroladores
  • 17. • Para el siguiente circuito, ¿Qué valor debemos colocar en puerto B para que se visualice un 7 en el display? LEER Y/O ESCRIBIR EL UN VALOR EN UN PUERTO • ¿Cómo hacemos para saber el valor del bit RA0? Basta con explorar su estado lógico mediante alguna de las instrucciones de testeo y/o exploración: btfss f,b ó btfsc f,b: btfss PORTA,0 goto RutinA goto RutinB IUT Cumaná Prof. Luis Zurita Microcontroladores
  • 18. TOMA DE DECISIONES • Una Tarea. La condición puede venir internamente como externamente. Condición X=1? Proceso A NO SI • Interna btfss STATUS,0 ; C=1? goto ProcesoA goto SIGUE • Externa btfss PORTA,0 ; RA0=1? goto ProcesoA goto SIGUE IUT Cumaná Prof. Luis Zurita Microcontroladores
  • 19. TOMA DE DECISIONES • Dos Tareas. La condición puede venir internamente como externamente. • Interna btfss STATUS,0 ; C=1? goto ProcesoA goto ProcesoB • Externa btfss PORTA,0 ; RA0=1? goto ProcesoA goto ProcesoB Condición X=1? Proceso A NO SI Proceso B IUT Cumaná Prof. Luis Zurita Microcontroladores
  • 20. • Dado el siguiente circuito, Active el LED ubicado en RB0 si RA0, vale 0 y en caso contrario, active el LED ubicado en RB1. TOMA DE DECISIONES. EJEMPLO IUT Cumaná Prof. Luis Zurita Microcontroladores
  • 21. TOMA DE DECISIONES. EJEMPLO • Externa btfss PORTA,0 ; RA0=1? goto ProcesoA goto ProcesoB ProcesoA bsf PORTB,0 goto SIGUE ProcesoB bcf PORTB,1 goto SIGUE SIGUE ------ ------ ------ RA0=1? Activar LED en RB0 NO SI Activar LED en RB1 IUT Cumaná Prof. Luis Zurita Microcontroladores
  • 22. TOMA DE DECISIONES. CERROJO Ó VALIDACIÓN • Se queda esperando que la condición ocurra. • Interna ESPERA btfss INTCON,0 goto ESPERA goto ProcesoA • Externa EXPLORA btfss PORTA,0 ; RA0=1? goto EXPLORA goto ProcesoA Condición X=1? Proceso A NO SI IUT Cumaná Prof. Luis Zurita Microcontroladores
  • 23. TOMA DE DECISIONES • Multitareas. Dos condiciones permiten elegir entre uno a cuatro procesos distintos. Condición X=1? NO SI Proceso B Condición Y=1? NO SI Condición Y=1? Proceso D Proceso A Proceso C SI NO IUT Cumaná Prof. Luis Zurita Microcontroladores
  • 24. ¿Cómo pasar del diagrama de flujo al programa? • Es sencillo: – Cada símbolo del diagrama de flujo representa una (ó varias) instrucción (es). – El programador/Diseñador, mediante la práctica y/o visualización, debe buscar las instrucciones que cumplan con los símbolos y su contenido, e ir colocándolas secuencialmente, según lo indique el diagrama de flujo previamente elaborado. CARGA movlw 35H movwf SUMA btfss STATUS,2 goto ProcesoA goto Carga 35H SUMA→ Z=1? ProcesoA NO SI IUT Cumaná Prof. Luis Zurita