Sei sulla pagina 1di 7

INSTITUTO POLITÉCNICO NACIONAL

Centro de Estudios Científicos y Tecnológicos Nº 1


“Gonzalo Vázquez Vela”
Academia de Sistemas Digitales
Prácticas de Micro Electrónica Programable

NOMBRE DEL ALUMNO:


ASIGNATURA: Micro Electrónica Programable
Apellido Paterno FECHA EVALUACION
HOJA DE

Apellido Paterno Nombre DIA MES AÑO

N° DE BOLETA: GRUPO: PROFESOR:

Práctica 2
Gestion de puertos de salida

Competencias de La Unidad:
• Emplea el microcontrolador en la comunicación de datos y control de periféricos de forma
multiplexada.

Resultado de Aprendizaje Propuesto (RAP):

• Usa diferentes elementos periféricos utilizando los puertos del microcontrolador de forma
multiplexada.
• Utiliza los puertos del microcontrolador de forma bidireccional en la solución de un problema.
.

Objetivos de la Práctica:

1. Realizar la simulación de un programa para comprobar su funcionamiento utilizando herramientas


computacionales

2. Desarrolla programas que habilite y deshabilite las salidas de microcontrolador por cierto tiempo.

3. Implementar un programa en un circuito basado en microcontrolador.

Equipo Necesario Material Necesario


Computadora (con el Software MPLAB IDE, IC-PROG Instrucciones del PIC 16F876
o similar, C ) MIcrocontrolador PIC16F876 u otro de
8
Dr. Oscar Octavio Gutiérrez Frías Microelectrónica Programable
Academia de Sistemas Digitales T.V.
gama media
Programador tipo JDM o similar. Capacitores
LED’s
Resistencias
pushbutton
Cristal de cuarzo de 4MZ

(Para los valores de estos elementos ver


figura 1.1)

Introducción Teórica
Puertos de Entrada y salida

El Microcontrolador 16F876 cuenta con 3 puertos direccionales, denominados A, B y C, aunque la


versión 16F877 cuenta con dos puertos más denominados D y E.

Sus principales características son:


• Programables como entradas o salidas individualmente.
• Capaces de trabajar con corrientes de 25 mA. en cada línea. No obstante la corriente total en los
puertos A, B no puede superar los 200 mA. y en los puertos C otros 200 mA.
• Entradas tipo TTL o ST (Schmitt Trigger).
• Resistencias Pull-up (habilitadas por programa) en el puerto B

Las líneas de E/S están agrupadas en 3 puertos: A (6 bits), B (8 bits), C (8 bits). Cada puerto de E/S
tiene asociados dos registros TRISX y PORTX. El primer registro dispone de un bit por cada línea del
puerto, y controlará si funciona como entrada (Input, 1) o como salida (Output, 0). El segundo registro
nos permite acceder al puerto. Con una escritura se modifican los bits configurados como salida,
y con una lectura accedemos tanto a los de entrada como a los de salida. Si se realiza una escritura y
de forma inmediata una lectura, puede que la salida no haya alcanzado el nivel adecuado generando
incoherencias
.
Para inicializar los puertos se realiza las siguientes instrucciones en ensamblador

Como entrada

• Colocarse en el banco 1,
• Cargar “1’s” en el registro TRISX, si se desea que se comporte el puerto como entrada, si solo
desea configurar como entrada bits individuales colocar 1 en los bits que desee.
• Regresar al banco 0.

Como Salida

• Colocarse en el banco 1.
• Cargar “0’s” en el registro TRISX, si se desea que se comporte el puerto como salida, si solo
desea configurar como salida bits individuales colocar 0 en los bits que desee.
• Regresar al banco 0

9
Dr. Oscar Octavio Gutiérrez Frías Microelectrónica Programable
Academia de Sistemas Digitales T.V.
Para cambiar de banco se utiliza los bits 5 y 6 del registro de estado. Al cambiar al banco 1, configure todos
los puertos. En el caso del PIC16F876, debe configurarse los pines del Puerto A como entradas digitales
colocan el valor 06H en el registro ADCON1

En el caso del compilador de C, los paso anteriores se realizan utilizando las directivas
#use standard_io(X)
set_tris_X(0x00);

Bits de Configuración
Todos los PIC disponen de un cierto número de bits de configuración que están disponibles en la memoria
EEPROM, y solo se accede a ellos cuando se programa el dispositivo, permitiendo determinar ciertas
necesidades con el fin de adaptarlo a las aplicaciones que se realice, debido a que dependen del
dispositivo.

Las características que se programan en los bits de configuración son las siguientes:

El tipo de oscilador.
La habilitación o no del perro guardián.
La protección de la memoria de programa.
La protección de la memoria EEPROM de datos, si existe en el dispositivo.
Las características del RESET y la alimentación del dispositivo.

La figura muestra un esquema de los bits de configuración de un microcontrolador de PIC16F87X.


13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG - WRT CPD LVP BODEN CP1 CP0 PWRTE# WDTE FOSC1 FOSC2

CP1,CP0 Protección de mamoria FLAH del programa.


11 Memoria sin protección
10 Se protegen solo las últimas 256 celdas
01 Se protege solo la pagina 1 (800h a la FFFh)
00 Toda la memoria se protege (000h a FFFh)
DEBUG Modo de depuración del circuito.
1 Deshabilitado (RB6 y RB7 son de propósito general)
0 Habilitado (RB6 y RB7 se usan para la depuración)
WRT: Escritura en la memoria FLASH via EECON.
1 Habilitada
0 Deshabilitada

CPD Protección de la memoria EEPROM de datos.


1 Sin protección
0 Protegida
LVP Habilitación de la programación serie con bajo voltahe
1 Habilitada
0 Deshabilitada
BODEN Reset por fallo de alimentación
1 Habilitada
0 Deshabilitada
PWRTE# Habilitación del temporizador de arranque de encendido (PWRT)
1 Deshabilitada
0 Habilitada
WDTE Habilitación del perro guardián
1 Habilitada
0 Deshabilitada
10
Dr. Oscar Octavio Gutiérrez Frías Microelectrónica Programable
Academia de Sistemas Digitales T.V.
FOSC1 Y FOSC2 Selección del tipo de Oscilador
11 RC
10 HS
01 XT
00 LP

En el caso del PIC 16F876 los bits de configuración se encuentran en la dirección 2007H y podemos
almacenar el valor 3F71H, En el caso de requerir utilizar una dispositivos diferente, se debe verificar en
las hojas de especificaciones, cuales son los bits y posición en la cual están implementados.

El registro quedaría de la siguiente manera:

13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP1 CP0 DEBUG - WRT CPD LVP BODEN CP1 CP0 PWRTE# WDTE FOSC1 FOSC2
1 1 1 1 1 1 0 1 1 1 0 0 0 1
Definiendo las siguientes características:

Oscilador: XT
Watchdog (WDT) Deshabilitado (Apagado)
PWRT: (PUT) Habilitado (Apagado)
CP: Deshabilitado (Apagado)
CPD: Deshabilitado (Apagado)
BODEN Habilitado (Encendido)
LVP Deshabilitado (Apagado)

Los bits sin implementar se leen como ‘1’

Otra manera de hacerlo es especificando en el código fuente los bit de configuración , por lo cual el
ensamblador de MPASM tiene la características de permitir definir los valores que tomaran al programar
el dispositivo , mediante la directiva __CONFIG y en lenguaje C es con la directica fuses

En seguida se muestra la forma de utilizarlo


__CONFIG _XT_OSC & _PWRTE_ON & _BODEN_ON & _WDT_OFF & _LVP_OFF &_CP_OFF & _CPD_OFF

#FUSES NOWDT,XT,NOLVP,NOCPD,BROWNOUT, NOPROTECT, DEBUG

Definiendo las siguientes características:

Oscilador: XT
Watchdog (WDT) Deshabilitado (Apagado)
PWRT: (PUT) Habilitado (Apagado)
CP: Deshabilitado (Apagado)
CPD: Deshabilitado (Apagado)
BODEN Habilitado (Encendido)
LVP Deshabilitado (Apagado)

11
Dr. Oscar Octavio Gutiérrez Frías Microelectrónica Programable
Academia de Sistemas Digitales T.V.
que equivalen a almacenar el valor 3F71H en dirección 2007H en el caso del PIC 16F876 .

Cabe comentar que los símbolos utilizados en la directiva __CONFIG o fuses no son los mismos para
todos los dispositivos, pero pueden ser verificados el archivo include de Microchip o .h del compilado de
C que se utilice.

ACTIVIDADES PREVIAS
• Crear un proyecto de nombre pra2 en la carpeta c:\MEPIC\practica2. Los programas de cada
ejercicio deben ser guardados con el nombre practica2.c con X= 1, 2, 3…,A.

• Utilizar Project wizard y seleccionar el compilador de c

• Habilitar Simulador MPLAB SIM y modificar la frecuencia del simulador a 4 Mhz.

• Utilizaremos la herramienta de stopwatch, para obtener la elija Debugger >> Stopwatch.

• Obtener la herramienta de watch, de la siguiente manera View>> watch.

• Y seleccione los registros PORTA, PORTB, PORTC, TRISA, TRISB, TRISC y W

ACTIVIDADES PRÁCTICAS

Parte 1
R1
A. Armar el siguiente circuito 5V

1k
2
RA0/AN0 3
5V RA1/AN1 4 PINA0
RA2/AN2 5
RA3/AN3/REF 6
RA4/T0CLK 7
RA5/AN4/SS 21
C1 1 RB0/INT 22 0
9 MCLR/VPP RB1 23
OSC1/CLK RB2 24
39p 20 RB3 25
VDD RB4 26 220 Verde1
RB5 27
RB6 28
RB7 11 220 Amarillo1
Y1 RC0/T1OSO/T1CLK 12
RC1/T1OSI/CCP2 13
4 Mhz RC2/CCP1 14 220 Rojo1
RC3/SCK/SCL 15
RC4/SDI/SDA 16 0
0 RC5/SDO 17 220 Verde2
RC6/TX/CK 18
RC7/RX/DT 10
OSC2/CLKOUT 220 Amarillo2
C2

220 Rojo2
39p
PIC16F876

Figura 1.1
Nota: La terminal 8 o 19 del PIC16F876 se conectan a tierra.

12
Dr. Oscar Octavio Gutiérrez Frías Microelectrónica Programable
Academia de Sistemas Digitales T.V.
Realizar el siguiente programa de salida de datos y observar su funcionamiento utilizando la opción
watch y stopwatch del simulador y posteriormente grabarlo en el circuito de la figura 1.1 a si como
simularlo en PROTEUS

//Codigo de ejemplo

#include <16f876.h>
#use delay(clock=4000000)
#fuses NOWDT,XT,NOLVP,NOCPD,BROWNOUT, NOPROTECT, DEBUG,WRT
#use standard_io(b)

void main()
{
set_tris_b(0x00);
while(1)
{
output_b(0x00);
output_b(0x01);
delay_ms(500);
output_b(0x00);
output_b(0x02);
delay_ms(500);
output_b(0x00);
output_b(0x04);
delay_ms(500);
output_b(0x00);
}

• Nota: A grabarlo deshabilitar en la palabra de configuración, WDT y LVP, además recuerde


seleccionar el tipo de oscilador a XT
Parte 2

1. Realice un programa que efectué la función de un semáforo en un crucero con las


siguiente condiciones, tome en cuenta la conexión de la figura 1.1 y efectué la simulación
en PROTEUS
Verde 4 segundos
Amarillo 2 segundos
Rojo 6 segundos

Sugerencia: realice un tabla muestre la transición entre cada color, recuerde que existe dos led’s del
mismo color.

2. Realice un programa que enciendan los 6 primeros bits del PUERTO B de manera
ascendente durante 1 seg cada bit y al terminar enciendan de manera descendente
durante 2 seg cada bit. El programa debe ser cíclico. y efectué la simulación en PROTEUS
13
Dr. Oscar Octavio Gutiérrez Frías Microelectrónica Programable
Academia de Sistemas Digitales T.V.
1. Conclusiones

A. Realizar conclusiones de manera individual.

2. Cuestionario
a) Menciona la estructura función para realizar una subrutina de tiempo
b) ¿Que función tiene la sentencia while?
c) ¿Cuál es la instrucción para sacar datos por le puerto?
d) Menciona que función tiene la directiva # fuses y #use delay
e) ¿Cuántos puertos cuenta el PIC16F876?
f) Menciona las características de los puertos del PIC16F877

Comentarios Finales

• El alumno entrega un reporte de la práctica, como el profesor lo indique.


• El reporte debe contener el diagrama de flujo o algoritmo (Seudo código) de cada uno de los
programas.
• Además, en el reporte deben anexarse las conclusiones y cuestionario contestado.

14
Dr. Oscar Octavio Gutiérrez Frías Microelectrónica Programable
Academia de Sistemas Digitales T.V.

Potrebbero piacerti anche