Está en la página 1de 4

UNIVERSIDAD DE SUCRE

LABORATORIO DE INSTRUMENTACIÓN INDUSTRIAL


PRACTICA No.
IDENTIFICACIÒN DEL CURSO
ASIGNATURA MICROPROCESADORES Y
MICROCONTROLADORES
PREREQUISITO CIRCUITOS DIGITALES
MODALIDAD TEORICO - PRÁCTICA
UBICACIÓN CUARTO SEMESTRE
INTENSIDAD HORARIA 3 HT – 2HP SEMANAL
CRÉDITOS 3 CR
CÓDIGO 252141

OBJETIVO GENERAL:

Gestión de puertos en lenguaje C

OBJETIVOS ESPECIFICOS.

MATERIALES
COMPONENTES
 1 x PIC 16F886
 1 x Oscilador de cristal de 4MHz
 2 x Condensadores cerámicos de 22pF
 Resistencias: 8 x 330Ω, 2 x 3.3kΩ
 8 x Leds
 1 x pulsador
 Cables de conexión

HERRAMIENTAS
 1 x Pinza de punta plana
 1 x Pinza de corte diagonal

INSTRUMENTOS
 1 x Tablero de conexión sin soldaduras (Protoboard).
 1 x Fuente DC regulada de 5V.
 1 x Programador de PICs (PIC School)
PROCEDIMIENTO.

Elaborado por: ING. ALEXIS BARRIOS U.


UNIVERSIDAD DE SUCRE

El desarrollo de esta práctica se hará a través del compilador PIC CCS, por lo cual es
indispensable que se descargue e instale en el computador a usar. El anterior compilador,
puede ser descargar en modo demostración desde el siguiente enlace:

http://www.ccsinfo.com/ccsfreedemo.php

1. Realice el montaje de la figura 1.

Figura 1. Esquema de conexión practica XXXXXXXXXXXXX

*Tener en cuenta realizar la conexión de VCC y GND en el microcontrolador.

2. Gestione los puertos para encender el LED a través del pulsador

a. A través de la RAM: introduzca el siguiente código en PIC CCS, compile y


compruebe su funcionamiento.

b. C:\\Users\\LEONA\\AppData\\Local\\Temp\\arduino_build_580696/semafor
o_arduino.ino.hexA través de las directivas del compilador: introduzca el
siguiente código en PIC CCS, compile y compruebe su funcionamiento.

#include <16F886.h>
#FUSES NOWDT, XT, NOPUT, MCLR, NOPROTECT, NOCPD,
NOBROWNOUT, IESO, FCMEN, NOLVP, NODEBUG, NOWRT,
BORV40, RESERVED
#use delay(clock=4000000)
#use fast_io(B)
void main(){
port_b_pullups(0x80); //Resistencia de Pullup solo en B7
set_tris_B(0x80); //B7 como entrada y los demas como salida
output_low(PIN_B4);
while(1){
if(input(PIN_B7) == 1)

Elaborado por: ING. ALEXIS BARRIOS U.


UNIVERSIDAD DE SUCRE
output_low(PIN_B4);
else
output_high (PIN_B4);
}
}
3. Gestione los puertos para hacer una secuencia de LEDs, donde el sentido de giro se
controlará con 1 pulsador: si se mantiene presionado, va en un sentido y, si se
suelta, va en otro.

Realice el montaje de la figura 2.

Figura 2

Introduzca el siguiente código en PIC CCS, compile y compruebe su


funcionamiento.

#include <16F886.h>
#FUSES NOWDT, XT, NOPUT, MCLR, NOPROTECT, NOCPD,
NOBROWNOUT, IESO, FCMEN, NOLVP, NODEBUG, NOWRT, BORV40,
RESERVED
#use delay(clock=4000000)
#use fast_io(B)
#use fast_io(C)
void main(){
port_b_pullups(0x80); //Resistencia de Pullup solo en B7
set_tris_B(0x80); //B7 como entrada y los demas como salida
set_tris_C(0x00); //Todo el puerto C como salida
unsigned int8 x = 0b00000001;
output_C(0x00); //Se apagan todos los LEDs
while(1){

Elaborado por: ING. ALEXIS BARRIOS U.


UNIVERSIDAD DE SUCRE
output_C(x); //El puerto C toma el valor de x
delay_ms(500); //Establece la velocidad de la intermitencia
if(input(PIN_B7) == 1) {
x = x << 1; //Mueve 1 bit a la izquierda
if(x == 0b00000000) x = 0b00000001;
}
else
if(x != 0b00000001) x = x >> 1; //Mueve 1 bit a la derecha
else x = 0b10000000;
}
}
BIBLIOGRAFÍA

Elaborado por: ING. ALEXIS BARRIOS U.

También podría gustarte