Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
Reporte del Alumno
Nombre: MORENO MARTINEZ MONSERRATH No. Control: 19251792
CARRERA PLAN DE NOMBRE DE LA CLAVE DE LA
(1) ESTUDIOS ASIGNATURA ASIGNATURA
(2) (3) (4)
MECATRÓNICA MICROCONTROLADORES
Competencias MTF-1021
´
PRÁCTICA LABORATORIO NOMBRE DE LA PRÁCTICA DURACI
No. (5) DE (7) ÓN
(6) (8)
3
Comparador y dispositivos de potencia 2HRS
ELECTRONICA
OBJETIVO DE Objetivo El alumno al conlcuir la practica, será capáz de realizar un
LA PRÁCTICA programa aplicando las interrupciones del microcontrolador PIC16F877A
en un problema práctico.
I. Marco Teórico (9)
El PIC16F877A es un microcontrolador con memoria de programa tipo FLASH, lo
que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje ya
que no se requiere borrarlo con luz ultravioleta como las versiones EPROM, sino
que permite reprogramarlo nuevamente sin ser borrado con anterioridad.
Los pines de entrada/salida de este microcontrolador están organizados en cinco
puertos, el puerto A con 6 líneas, el puerto B con 8 líneas, el puerto C con 8 líneas,
el puerto D con 8 líneas y el puerto E con 3 líneas. Cada pin de esos puertos se
puede configurar como entrada o como salida independiente programando un par
de registros diseñados para tal fin.
Los pines del puerto A y del puerto E pueden trabajar como entradas para el
convertidor Análogo a Digital interno, es decir, allí se podría conectar una señal
proveniente de un sensor o de un circuito analógico para que el microcontrolador la
convierta en su equivalente digital y pueda realizar algún proceso de control o de
instrumentación digital.
1
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
El pin RB0/INT se puede configurar por software para que funcione como
interrupción externa, para configurarlo se utilizan unos bits de los registros que
controlan las interrupciones. El pin RA4/TOCKI del puerto A puede ser configurado
como un pin de entrada/salida o como entrada del temporizador/contador. Cuando
este pin se programa como entrada digital, funciona como un disparador de Schmitt
(Schmitt trigger), puede reconocer señales un poco distorsionadas y llevarlas a
niveles lógicos (cero y cinco voltios). Cuando se usa como salida digital se
comporta como colector abierto (open collector), por lo tanto, se debe poner una
resistencia de pull-up (resistencia externa conectada a un nivel de cinco voltios).
Como salida, la lógica es inversa: un "0" escrito al pin del puerto entrega en el pin
un "1" lógico. Además, como salida no puede manejar cargas como fuente, sólo en
el modo sumidero.
La máxima capacidad de corriente de cada uno de los pines de los puertos en
modo sumidero (sink) o en modo fuente (source) es de 25 mA . La máxima
capacidad de corriente total de los puertos es:
El consumo de corriente del microcontrolador para su funcionamiento depende del
voltaje de operación, la frecuencia y de las cargas que tengan sus pines. Para un
oscilador de 4 MHz el consumo es de aproximadamente 2 mA; aunque este se
puede reducir a 40 microamperios cuando se está en el modo sleep (en este modo
el micro se detiene y disminuye el consumo de potencia).
El oscilador externo
Todo microcontrolador requiere un circuito externo que le indique la velocidad a la
que debe trabajar. Este circuito, que se conoce como oscilador o reloj, es muy
simple pero de vital importancia para el buen funcionamiento del sistema. El
PIC16F877 puede utilizar cuatro tipos de oscilador diferentes. Estos tipos son:
• RC. Oscilador con resistencia y condensador.
• XT. Cristal (por ejemplo de 1 a 4 MHz).
2
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
• HS. Cristal de alta frecuencia (por ejemplo 10 a 20 MHz).
• LP. Cristal para baja frecuencia y bajo consumo de potencia.
En el momento de programar o “quemar” el microcontrolador se debe especificar
que tipo de oscilador se usa. Esto se hace a través de unos fusibles llamados
“fusibles de configuración”.
El tipo de oscilador que se sugiere para las prácticas es el XT con un cristal de 4
MHz, porque garantiza precisión y es muy comercial. Internamente esta frecuencia
es dividida por cuatro, lo que hace que la frecuencia efectiva de trabajo sea de 1
MHz en este caso, por lo que cada instrucción se ejecuta en un microsegundo. El
cristal debe ir acompañado de dos condensadores y se conecta.
Reset
En los microcontroladores se requiere un pin de reset para reiniciar el
funcionamiento del sistema cuando sea necesario, ya sea por una falla que se
presente o porque así se haya diseñado el sistema. El pin de reset en los PIC es
llamado MCLR (master clear). Existen varias formas de resetear o reiniciar el
sistema:
• Al encendido (Power On Reset)
• Pulso en el pin MCLR durante operación normal
• Pulso en el pin MCLR durante el modo de bajo consumo (modo sleep)
• El rebase del conteo del circuito de vigilancia (watchdog) durante operación
normal
• El rebase del conteo del circuito de vigilancia (watchdog) durante el modo de bajo
consumo (sleep)
El reset al encendido se consigue gracias a dos temporizadores. El primero de ellos
es el OST (Oscillator Start-Up Timer: Temporizador de encendido del oscilador),
3
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
orientado a mantener el microcontrolador en reset hasta que el oscilador del cristal
es estable. El segundo es el PWRT (Power-Up Timer: Temporizador de encendido),
que provee un retardo fijo de 72 ms (nominal) en el encendido únicamente,
diseñado para mantener el dispositivo en reset mientras la fuente se estabiliza.
Para utilizar estos temporizadores, sólo basta con conectar el pin MCLR a la fuente
de alimentación, evitándose utilizar las tradicionales redes de resistencias externas
en el pin de reset.
El reset por MCLR se consigue llevando momentáneamente este pin a un estado
lógico bajo, mientras que el watchdog WDT produce el reset cuando su
temporizador rebasa la cuenta, o sea que pasa de 0FFh a 00h. Cuando se quiere
tener control sobre el reset del sistema se puede conectar un botón
Arquitectura interna del microcontrolador
Este término se refiere a los bloques funcionales internos que conforman el
microcontrolador y la forma en que están conectados, por ejemplo la memoria
FLASH (de programa), la memoria RAM (de datos), los puertos, la lógica de control
que permite que todo el conjunto funcione, etc
Memoria de datos (RAM)
El PIC16F877 posee cuatro bancos de memoria RAM, cada banco posee 128
bytes. De estos 128 los primeros 32 (hasta el 1Fh) son registros que cumplen un
propósito especial en el control del microcontrolador y en su configuración. Los 96
siguientes son registros de uso general que se pueden usar para guardar los datos
temporales de la tarea que se está ejecutando.
Todas las posiciones o registros de memoria se pueden acceder directa o
indirectamente (esta última forma a través del registro selector FSR). Para
4
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
seleccionar que página o banco de memoria se trabaja en un momento
determinado se utilizan los bits RP0 y RP1 del registro STATUS.
03h o STATUS: Registro de estados. Contiene el estado aritmético de la ALU, la
causa del reset y los bits de preselección de página para la memoria de datos. La
figura 3.11 muestra los bits correspondientes a este registro. Los bits 5 y 6 (RP0 y
RP1) son los bits de selección de página para el direccionamiento directo de la
memoria de datos; solamente RP0 se usa en los PIC16F84. RP1 se puede utilizar
como un bit de propósito general de lectura/escritura. Los bits TO y PD no se
pueden modificar por un proceso de escritura; ellos muestran la condición por la
cual se ocasionó el último reset.
05h o PORTA: Puerto de Entrada/Salida de 6 bits. Este puerto, al igual que todos
sus similares en los PIC, puede leerse o escribirse como si se tratara de un registro
5
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
cualquiera. El registro que controla el sentido (entrada o salida) de los pines de este
puerto está localizado en la página 1, en la posición 85h y se llama TRISA. El
puerto A también puede ser configurado para que trabaje como entradas análogas
para el convertidor Análogo a Digital interno del microcontrolador.
06h o PORTB: Puerto de entrada/salida de 8 bits. Al igual que en todos los PIC,
este puede leerse o escribirse como si se tratara de un registro cualquiera; algunos
de sus pines tienen funciones alternas en la generación de interrupciones. El
registro de control para la configuración de la función de sus pines se localiza en la
página 1, en la dirección 86h y se llama TRISB. Puede ser configurado también
para cumplir otras funciones. 07h o PORTC: Puerto de entrada/salida de 8 bits. Al
igual que en todos los PIC, este puede leerse o escribirse como si se tratara de un
registro cualquiera; algunos de sus pines tienen funciones alternas. El registro de
control para la configuración de la función de sus pines se localiza en la página 1,
en la dirección 87h y se llama TRISC. Puede ser configurado también para cumplir
otras funciones.
85h o TRISA: Registro de configuración del puerto A. Como ya se mencionó, es el
registro de control para el puerto A. Un “cero” en el bit correspondiente al pin lo
configura como salida, mientras que un “uno” lo hace como entrada.
86h o TRISB: Registro de configuración del puerto B. Orientado hacia el control del
puerto B. Son válidas las mismas consideraciones del registro TRISA.
Registro de trabajo W. Este es el registro de trabajo principal, se comporta de
manera similar al acumulador en los microprocesadores. Este registro participa en
la mayoría de las instrucciones. Está directamente relacionado con la Unidad
Aritmética y Lógica ALU.
Las interrupciones del PIC PIC16F877A, es una solicitud al PIC, por para
interrumpir el programa principal o en curso y pasar a ejecutar una rutina de
servicio o gestión de la interrupción, estas son:
Interrupción externa en el pin RB0/INT
Finalización del temporización/contador TMRO
6
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
Finalización de la escritura EEPROM de datos
Cambio de nivel en los pines RB4 a RB7.
Son dos registros que permiten configurar las interrupciones:
1. El registro 0BH o INTCON habilita las distintas interrupciones, identifica las
fuentes de interrupción medio las banderas de las interrupciones. al igual permite
el control para habilitar o deshabilitar cada una de las fuentes de interrupción,
incluida la escritura en memoria EEPROM. Solo la bandera de finalización de la
escritura reside en el registro 88H (EECON1). Si el bit GIE (Global Interrupt
Enable) se coloca en cero, deshabilita todas las interrupciones. Cuando una
interrupción es atendida el bit GIE se coloca en 0 automáticamente para evitar que
reconozca otra interrupción. La dirección de retorno se coloca en la pila y el PC se
carga con la dirección 05H. La bandera respectiva se debe colocar por software,
en cero antes de regresar de la interrupción, para evitar que se vuelva a detectar
nuevamente la misma interrupción
2. Registro OPTION : 6 bits(0-5) para controlar el temporizador TMR0 y el
7
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
temporizador de vigilancia WDT, 1 bit para configurar las interrupciones producidas
por los flancos en el pin RB0/INT (B6) y 1 bit para habilitar las resistencias de
“PULL-UP” en el puerto B” (B7).0100 0000
II. Desarrollo de la Práctica (10)
MATERIALES
1.—Primeramente, se procedió a hacer un diagrama de flujo para lograr ver el
funcionamiento del programa
8
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
2.- Secundariamente , una vez ya teniendo el diagrama se procedio escoger el
dispositivo y a crear un nuevo proyecto para asi empezar a escribir el Programa
apoyandonos del ejemplo que nos dio el profesor
3.- Una vez ya escrito el programa se guardo y compilo para asegurar que no
hubiera ningun error
9
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
4.- Una vez que se comprobo que no habia ningun error en el programa se procedio
a depurar
5.- Una vez teniendo el programa se grabó en el chip
6.- una vez teniendo el chip grabado se hizo una simulación en proteus
confirmando que este todo bien
10
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
7.- Una vez checando que este todo bien se procedio hacerlo en fisico
11
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
III. Resultados (11)
PROGRAMA
CIRCUITO EN FISICO
IV. Conclusiones y Recomendaciones (12)
Esta práctica nos ayudó a identificar la de interrupción es decir se inciaba un
segundo programa en cuanto el timer se desbordaba o precionabas rb0
V. Anexos (13)
12
Instituto Tecnológico de Tlalnepantla
“2019, Año del Caudillo del Sur, Emiliano Zapata”
VI. Bibliografía (14)
(https://riubu.ubu.es/bitstream/handle/10259/3560/Crear_un_proyecto_en_MPLAB_X%20V2.01.pdf &
jsessionid=30B338403C4EB5842B68E0CC44C829B0?sequence=1, s.f.)
(El Microcontrolador PIC16F877, s.f.)
VI. Fecha y Forma de entrega del Reporte (15)
01/04/2022
13