Está en la página 1de 8

CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA No.

MANUAL DE PRÁCTICAS

PRACTICA 2. CORRIMIENTO DE UN BIT


OBJETIVO:

El alumno será capaz de realizar el corrimiento de un bit por el puerto B y desplegar el


valor en 8 LEDs.

INTRODUCCIÓN

La manipulación de bits u operaciones bit a bit, nos permiten configurar los registros para
acceder a los puertos de entrada y salida. En lenguaje C, los operadores booleanos permiten
hacer operaciones lógicas ó corrimientos de bits entre variables enteras de 1, 8 ó 16 bits.
Las operaciones se realizan con los operados, bit a bit. Existen seis operadores de bits, cinco
binarios y uno unitario.

Operadores de bits

Operador Operación

& operación AND


| operación OR
~ operación NOT
^ operación XOR
>> corrimiento a la derecha
<< Corrimiento a la izquierda

El operador & corresponde a la operación lógica AND, compara los bits uno a uno, si
ambos son "1" el resultado es "1", en caso contrario "0".

El operador ^ corresponde a la operación lógica OR exclusivo, compara los bits uno a


uno, si ambos son "1" o ambos son "0", el resultado es "0", en caso contrario "1".

El operador | corresponde a la operación lógica OR, compara los bits uno a uno, si uno
de ellos es "1" el resultado es "1", en caso contrario "0".

El operador ~ corresponde a la operación lógica NOT, se trata de un operador unitario


que invierte el valor de cada bit, si es "1" da como resultado un "0", y si es "0", un "1".

Página 1
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA No. 2

MANUAL DE PRÁCTICAS

El operador << realiza un desplazamiento de bits a la izquierda del valor de la izquierda,


introduciendo "0" por la derecha, tantas veces como indique el segundo operador.
El operador >> realiza un desplazamiento de bits a la derecha del valor de la izquierda,
introduciendo "0" por la izquierda, tantas veces como indique el segundo operador.

MATERIAL:

➢ Protoboard
➢ PIC16f628A
➢ Fuente de alimentación 5 Vcd
➢ Resistencias 330 o 220 (de acuerdo a circuito diseñado).
➢ LEDs
➢ Pinzas de corte
➢ Programador
➢ Computadora

INSTRUCCIONES:
Lleve a cabo la simulación del programa escrito abajo (en este programa se prende un led y
se realiza un corrimiento hacia la izquierda en los pines del puerto B); una vez comprobado
el funcionamiento de la simulación, elabore un programa que haga un corrimiento hacia la
derecha, determinando cuál sería el valor de inicio del puerto B. Realice el diagrama de flujo
y el respectivo programa que lleve a cabo la función solicitada, grabe el PIC con su programa
y conecte el led y la resistencia para comprobar el correcto funcionamiento del programa.
Finalmente reporte el desarrollo de la práctica en la que debe incluir imágenes (fotografías
y/o captura de pantalla) de su trabajo, diagrama de flujo, programa, cuestionario y
conclusión individual. Nota: El corrimiento del led deberá ser visible para el ojo humano.

PROGRAMA
#include <16F628A.h>
#use delay(clock = 4000000)
#fuses INTRC_IO, NOWDT, NOPUT, NOMCLR, NOBROWNOUT, NOPROTECT
#BYTE TRISB = 0x86 // TRISB en 86h.
#BYTE PORTB = 0x06 // PORTB en 06h.

void main (){


TRISB=0X00; //Se configura el puerto B como salida

Página 2
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA No. 2

MANUAL DE PRÁCTICAS

PORTB=0X01; //Se asigna el valor de 1 al bit 0 del puerto B

While(1){ delay_ms(300);

PORTB=(PORTB<<1); //desplazamiento a la izquierda


//recuerda( número >> cantidad bits de corrimiento; )
delay_ms(300);

}
}

CONEXIÓN DEL CIRCUITO:


En la figura 1 se muestra el circuito de conexión.

Figura 1. Circuito de conexión

En la figura 2 se muestra el diagrama de conexión.

Página 3
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA No. 2

MANUAL DE PRÁCTICAS

PINES DE PROGRAMACION

Página 4
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA No. 2

MANUAL DE PRÁCTICAS

DIAGRAMA DE FLUJO

Página 5
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA No. 2

MANUAL DE PRÁCTICAS

PROGRAMA

Para este programa las modificaciones que se hacen es el valor inicial de PORTB que en este caso
seria 0X80 para que inicie encendido en el bit RB7, la otra modificación es en el operador: de <<
pasa a >> para que ahora el corrimiento sea a la derecha en vez de a la izquierda.

Página 6
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA No. 2

MANUAL DE PRÁCTICAS

SIMULACIÓN EN PROTEUS

Aquí se ve como el corrimiento empieza desde el bit RB7 hacia el bit RB0.

Y aquí como ya casi llega hasta RB0, realizando el corrimiento a la derecha.

Página 7
CBTIS 03 IMPLEMENTA CIRCUITOS CON MICROCONTROLADORES PRÁCTICA No. 2

MANUAL DE PRÁCTICAS

CUESTIONARIO

1.- ¿Por qué inicialmente se guarda el valor 0x01 en el puerto B?


Para que el corrimiento se vea ya que, si se inicia con 0X00 no se vera nada o si inicia en
0X80 tampoco se vera nada, si son valores diferentes a ese si se verá, pero no en todos los
bits
2.- ¿Qué sucede con el desplazamiento del bit si se borra el primer retardo?
No será perceptible para el ojo humano
3.- Para el programa que elaboró ¿Con qué valor tuvo que inicializar el puerto B?
PORTB=0X80
4.- ¿Qué modificaciones haría en el programa para que el corrimiento se hiciera para ambos
lados? Explique detalladamente.
Dependiendo de si el corrimiento inicial seria a la izquierda o derecha sería el valor inicial de
PORTB, después de definir eso usaría una condicional if para condicionar que si PORTB==0X80
(esto si se inicia con “<<”, es decir PORTB=0X01) ahora realice las instrucciones en las cuales ahora
el corrimiento será a la derecha.

CONCLUSION INDIVIDUAL

Sobre esta practica puedo decir que la pregunta final del cuestionario fue lo más difícil de entender,
pero lo demás fue fácil de deducir ya que las instrucciones tienen comentarios, por lo que esta
práctica fue más fácil que la anterior.

Página 8

También podría gustarte