You are on page 1of 8

Facultad de Ciencias de la Administración

Escuela de Ingeniería de Sistemas y Telemática


Microcontroladores

Práctica 3: Manejo de puerto a y b como digital de


forma simultánea en un microcontrolador 16f877a

Realizado por:
David Mejía
Andrea Trujillo

Docente:
Ing. Diego Chacón Mdhd

Fecha:
23/11/2017
1. OBJETIVOS
 Comprender el manejo del puerto A y B.
 Manejar los puertos A y B de forma simultánea.
 Encender dos leds de forma simultánea, uno por el puerto A y otro por un puerto
B al presionar un pulsador conectado al puerto RB6 aplicando los conceptos
anteriores.

2. MATERIALES Y EQUIPO

 Protoboard
 Fuente de 5V
 Microcontrolador PIC16F877
 1 cristal TX de 4Mhz
 1 resistencia de 10KΩ.
 2 resistencias de 330Ω
 2 Leds.
 2 pulsadores normalmente abierto
 Cable para montar y herramientas (cortafríos, pinza)

1. MARCO TEÓRICO

Pic P16F877A:
El microcontrolador PIC PIC16f877a es uno de los microcontroladores más
reconocidos de la industria. Este controlador es muy conveniente de usar, la
codificación o programación de este controlador también es más fácil. Una de las
principales ventajas es que puede borrarse la escritura tantas veces como sea
posible porque usa tecnología de memoria FLASH. Tiene un número total de 40 pines
y hay 33 pines para entrada y salida. PIC16F877A se utiliza en muchos proyectos de
pic microcontroladores. PIC16F877A también tiene muchas aplicaciones en circuitos
electrónicos digitales.

PIC16f877a encuentra sus aplicaciones en una gran cantidad de dispositivos. Se


utiliza en sensores remotos, dispositivos de seguridad y protección, domótica y en
muchos instrumentos industriales. También se incluye una EEPROM que permite
almacenar parte de la información permanentemente, como los códigos del
transmisor y las frecuencias del receptor y algunos otros datos relacionados. El costo
de este controlador es bajo y su manejo también es fácil. Es flexible y se puede usar
en áreas donde los microcontroladores nunca se han utilizado antes, como en
aplicaciones de coprocesador y funciones de temporizador, etc.

Configuración y descripción del pin de pic16f877a


Como se ha mencionado anteriormente, hay 40 pines de este microcontrolador
IC. Se compone de dos temporizadores de 8 bits y uno de 16 bits. Los módulos de
captura y comparación, puertos serie, puertos paralelos y cinco puertos de entrada
/ salida también están presentes en él.

MiKroC:
El mikroC PRO for PIC es una herramienta de desarrollo potente y rica en
características para microcontroladores PIC. Está diseñado para proporcionar al
programador la solución más fácil posible para el desarrollo de aplicaciones para
sistemas integrados, sin comprometer el rendimiento o el control.
PIC y C se combinan bien: el PIC es el chip de 8 bits más popular en el mundo y
se usa en una amplia variedad de aplicaciones, y C, muy apreciado por su eficacia,
es la elección natural para desarrollar sistemas integrados. mikroC PRO for PIC
proporciona una coincidencia exitosa con IDE altamente avanzado, compilador
compatible con ANSI, amplio conjunto de bibliotecas de hardware,
documentación completa y muchos ejemplos listos para ejecutar.

Pickit 2
El programador PicKit2, es una herramienta de programación para desarrollo de bajo
costo. Es capaz de programar la mayoría de los microcontroladores y memorias
seriales EEPROM de Microchip.

El programador Pickit 2 permite el uso del conector ICSP y posee conexión USB, es
una herramienta de desarrollo con una interfaz fácil de usar para la programación
de microcontroladores de Microchip. Funcional con el entorno de desarrollo
integrado MPLAB IDE, conexión USB plug & play.
Puerto PORTB y registro TRISB

El puerto PORTB es un puerto bidireccional, de 8 bits de anchura. Los bits del registro
TRISB determinan la función de sus pines.

En este puerto un uno lógico (1) en el registro TRISB configura el pin apropiado en el
puerto PORTB y al revés. Los seis pines de este puerto se pueden comportar como
las entradas analógicas (AN).

Características
Todos los pines del puerto PORTB tienen las resistencias pull-up integradas, que los
hacen perfectos para que se conecten con los botones de presión (con el teclado),
interruptores y opto acopladores. Con el propósito de conectar las resistencias a los
puertos del microcontrolador, el bit apropiado del registro WPUB debe estar a uno.

Al tener un alto nivel de resistencia, estas resistencias “virtuales” no afectan a los


pines configurados como salidas, sino que sirven de un complemento útil a las
entradas. Estas resistencias están conectados a las entradas de los circuitos lógicos
CMOS. De lo contrario, se comportarían como si fueran flotantes gracias a su alta
resistencia de entrada.

Puerto PORTA y registro TRISA

El puerto PORTA es un puerto bidireccional, de 8 bits de anchura. Los bits de los


registros TRISA y ANSEL controlan los pines del PORTA. Todos los pines del PORTA se
comportan como entradas/salidas digitales. Cinco de ellos pueden ser entradas
analógicas (denotadas por AN).

RA0 = AN0 (determinado por el bit ANS0 del registro ANSEL)


RA1 = AN1 (determinado por el bit ANS1 del registro ANSEL)
RA2 = AN2 (determinado por el bit ANS2 del registro ANSEL)
RA3 = AN3 (determinado por el bit ANS3 del registro ANSEL)
RA5 = AN4 (determinado por el bit ANS4 del registro ANSEL)

Similar a que los bits del registro TRISA determinan cuáles pines serán configurados
como entradas y cuáles serán configurados como salidas, los bits apropiados del
registro ANSEL determinan si los pines serán configurados como entradas analógicas
o entradas/salidas digitales. Cada bit de este puerto tiene una función adicional
relacionada a algunas unidades periféricas integradas.
2. DESARROLLO
Condiciones:
Desarrollar un programa que cumpla con las siguientes condiciones:
 Encendido de dos leds simultáneamente al presionar un pulsante.
 a. Comienzan apagados los leds.
 b. Solo si el pulsante se presiona se enciende los leds.
 c. Si el pulsante no se presiona no deben encenderse los leds.

Esquema de conexión

Diagrama de Flujo
Programación

unsigned int led;


void main(void)
{

TRISB.F6=1;
TRISB.F7=0;
TRISA.F0=0;
PORTB.F6=0;
PORTB.F7=0;
PORTA.F0=0;
while(1){
if(PORTB.F6==1){
led=1;
PORTB.F7=led;
PORTA.F0=led;
}
else{
led=0;
PORTB.F7=0;
PORTA.F0=0;
}}}

Simulación
Resultados prácticos

3. ANÁLISIS DE RESULTADOS
En la presente práctica no se realizó ningún cálculo previo para obtener valores de
resistencia u otros elementos para llegar a los resultados; sin embargo, se analizó la
forma de funcionamiento del registro PORTB y PORTA, el cual se maneja con el
registro TRISB y TRISA respectivamente, los que determina el comportamiento de
los puertos, es decir si es de entrada o salida, toma el valor de 1 o 0
correspondientemente, en la presente práctica se optó por tener como entrada el
PORTB 6 para lo cual se configuró el registro TRISB 6 con 1 y finalmente al PORTB 7
y PORTA 0 como salida y a su respectivo registro con el valor de 0. En los resultados
de simulación se pudo observar que el objetivo principal que es el encendido de les
de forma simultánea con diferentes puertos se cumple a cabalidad; sin embargo, en
la práctica es posible observar un breve retraso casi invisible a simple vista,
investigando acerca de este resultado, se encontró que el PIC 16F877A no trabaja en
sí de forma simultánea, por defecto se da este retraso.

4. CONCLUSIONES

Realizada la presente práctica se puede concluir que trabajar de forma “simultánea”


con dos puertos puede ser posible, si bien el PIC utilizado no trabaja de esta manera
para fines estudiantiles no es problema; sin embargo, para prácticas más complejas
es necesario tomar en cuenta diferentes parámetros al momento de programar el
microcontrolador. No se tiene mayores recomendaciones en la actual práctica ya
que el puerto PORTA tiene una funcionalidad parecida con el puerto PORTB que se
ha utilizado en prácticas anteriores.
5. BIBLIOGRAFÍA

 Bairesrobotics.com.ar. (2017). Citar un sitio web - Cite This For Me. [online]
Available at: http://www.bairesrobotics.com.ar/data/pic16f877-
guia%20detallada%20parte2.pdf
 Genérico, P. (2017). Programador microcontroladores PIC PICkit 2 – Genérico
- Electronilab. [online] Electronilab. Available at:
https://electronilab.co/tienda/programador-microcontroladores-pic-pickit-
2-generico/
 Verle, M. (2017). 3.3 Puertos de Entrada/Salida | Microcontroladores PIC –
Programación en C con ejemplos. [online] Learn.mikroe.com. Available at:
https://learn.mikroe.com/ebooks/microcontroladorespicc/chapter/puertos
-de-entradasalida/
 Programacion-pic16f877a.es.tl. (2017). Programacion de los
Microcontroladores PIC16F877A - PUERTOS E/S. [online] Available at:
https://programacion-pic16f877a.es.tl/PUERTOS-E-s-S.htm