Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contadores 7segmentos Aldo Vilchis MT92
Contadores 7segmentos Aldo Vilchis MT92
DE PRÁCTICA:
DIRECCIÓN DE CARRERA DE MECATRÓNICA Y 2
SISTEMAS PRODUCTIVOS FECHA:
TITULO DE LA PRÁCTICA: MODELOS ORGANIZACIONALES PÁGINA DE
_______________________
FECHA DE EMISIÓN: 06/06/2020 ELABORÓ: Comisión de Ciencias Económico-Administrativas
FECHA DE REALIZACIÓN: 07/06/2020 REVISÓ: Academia de Mecatrónica
ASIG: MICROCONTROLADORES APROBÓ: M. en E. Felipe de Jesús García Gutiérrez
UNIDAD TEMÁTICA I
TEMA: Contador ascendente y descendente con CUATRIMESTRE: OCTAVO Grupo: 82
interrupciones externas
Contador: Un contador es muy necesario para cualquier trabajo que se desee empeñar con un PIC ya
sea llevar el conteo de algún objeto por tiempo o simplemente por llevar un control numérico de alguna
situación.
Interrupciones: Una interrupción es un aviso provocado por un módulo del PIC, por un cambio en el
estado de un pin o un recordatorio de que ha pasado un cierto tiempo. Como su nombre indica este aviso
interrumpirá la tarea que se esté haciendo en ese momento y pasaremos a ejecutar una rutina de servicio
o gestión de la interrupción
Habilitación de interrupciones: Antes de entrar en detalles sobre cada interrupción por separado
hemos de describir un par de bits (bits 7 y 6 del SFR INTCON) que tienen un efecto global sobre la
activación de bloques de interrupciones.
Por ejemplo, antes de poder usar la interrupción del temporizador TMR0 debemos asegurarnos de que
las interrupciones globales estén habilitadas (INTCON.GIE=1). Si lo que deseamos es usar la
interrupción asociada a la recepción del puerto serie, tanto INTCON.GIE como INTCON.PEIE deben estar
a 1, ya que dicha interrupción está declarada como periférica.
PLAN DE PRÁCTICA NO. DE PRÁCTICA:
DIRECCIÓN DE CARRERA DE MECATRÓNICA Y 2
SISTEMAS PRODUCTIVOS FECHA:
TITULO DE LA PRÁCTICA: MODELOS ORGANIZACIONALES PÁGINA DE
_______________________
Bits asociados a cada interrupción: Además de los bits anteriores que afectan de forma global a las
interrupciones, para cada fuente de interrupción hay tres bits asociados:
• IE (interrupt enable): determina si la interrupción está o no habilitada. Si no lo está, aunque la
condición de la interrupción se cumpla, la interrupción no se producirá.
• IF (interrupt flan): indica si la condición de la interrupción se ha producido. Es responsabilidad
del usuario borrar dicho bit antes de regresar de la ISR.
• IP (interrupt priority): indica si la prioridad asociada a la interrupción es alta (1) o baja
(0). Obviamente, solo tiene efecto si está activado el modo de niveles de prioridad.
Cambios en pines (INT0, INT1, INT2, RB): La interrupción se produce con un cambio en el nivel de los
pines RB0, RB1 y RB2 respectivamente. Es posible establecer si la interrupción se produce en el flanco
ascendente o descendente (ver INT1_low2high e INT1_high2low en los ejemplos citados antes).
Rutinas de servicio de interrupciones (ISRs): GIE -> Habilita todas las interrupciones
OBJETIVO DE LA PRÁCTICA
El alumno realizará la programación de contador ascendente y descendente utilizando las
interrupciones externas: INT0 (registro INTCON) para contador ascendente; INT2 (registro
INTCON3) para contador descendente.
MATERIAL: REACTIVOS: EQUIPO:
N/A
SOFTWARE PROTEUS N/A
SOFTWARE MPLAB
PLAN DE PRÁCTICA NO. DE PRÁCTICA:
DIRECCIÓN DE CARRERA DE MECATRÓNICA Y 2
SISTEMAS PRODUCTIVOS FECHA:
TITULO DE LA PRÁCTICA: MODELOS ORGANIZACIONALES PÁGINA DE
_______________________
PROCEDIMIENTO.
Para el desarrollo de la presente practica se comenzó con investigar un poco más acerca del tema de
interrupciones externas, tal que este era el tema del cual partiría la programación. Después de haber
concluido con la investigación y después de haber entendido más el tema, se comenzó con la
programación de un contador ascendente de 0 a 999 desplegados en displays 7 segmentos.
En el cual se comenzó por declarar variables de tipo entero las cuales fueron contadores de UNIDADES,
DECENAS Y CENTENAS, como se muestra en la siguiente imagen, cabe mencionar que en este caso
se utilizaron cristales externos. Y estos estarían en el número cero para el comienzo de la suma.
_______________________
Posteriormente se procedió con la programación de void main(void) donde se declararon los puertos a
utilizar como salidas digitales y de igual manera deshabilitando canales analógicos de dichos puertos
para no presentar errores a la hora de correr el programa. De igual manera se ocuparon los interruptores
0 INT0 (INTC0N) en donde el comando GIE dio la indicación que se habilitaran todas las interrupciones
y el INT0IE determino si la interrupción está o no habilitada en este caso este será el que estará haciendo
el cambio de números.
También se creó un ciclo while en donde se determinaron los pines de los displays a utilizar y en los
cuales tendrían como resultado una salida digital que sería la que determinaría la sumatoria de los
contadores.
En la siguiente imagen se muestra lo dicho antes.
PLAN DE PRÁCTICA NO. DE PRÁCTICA:
DIRECCIÓN DE CARRERA DE MECATRÓNICA Y 2
SISTEMAS PRODUCTIVOS FECHA:
TITULO DE LA PRÁCTICA: MODELOS ORGANIZACIONALES PÁGINA DE
_______________________
Finalmente se procedió a compilar el programa en la cual no hubo complicaciones ya que el maestro
había iniciado la programación de dos displays.
_______________________
_______________________
Posteriormente se procedió a cambiar la secuencia de las interrupciones en el void __interrupt () ISR
(void) en el cual se indicó que la interrupción se iba dar gracias al INT2IF ubicado en INT2 del pic, cabe
mencionar que la terminación IF indica si la condición de la interrupción se ha producido. Es
responsabilidad del usuario borrar dicho bit antes de regresar de la ISR. Seguidamente se indicó en la
estructura if que ahora en lugar de ser una suma en los contadores se iban ir restando del 9 al 0 y que
cuando el número del display de unidades fuese < a 0 se iba a poner de nuevo en nueve y en el display
de decenas también se le iba a restar uno y así sucesivamente, las mismas indicaciones se iba a realizar
para el contador de centenas en la siguiente imagen se ,muestra las programación de este apartado:
_______________________
La parte faltante de la programación se quedó de la misma manera ya que las salidas digitales ibas a
estar en los mismos puertos que en el contador anterior, posterior mente se hizo la compilación del
programa el cual fue de manera correcta ya que no presento errores de compilación:
_______________________
Análisis de resultados
En el desarrollo de la práctica no se presentaron errores en cuanto al contador ascendente, pero en la
parte del contador descendente se presentaron algunas dudas en cuanto al INT2, pero se investigó y se
solucionaron los detalles. Los resultados fueron los esperados ya que se cumplió con el objetivo de la
práctica . A continuación, se presentará la programación del contador ascendente:
*
* File: contador7segmentosaldomt92.c
* Author: ALDO VILCHIS MT92
*
* Created on 6 de junio de 2020, 03:02 PM
*/
#include <xc.h>
#define _XTAL_FREQ 4000000 //ALDO VILCHIS MT92
#pragma config FOSC = XT //ALDO VILCHIS MT92
_______________________
void main(void) {
while(1){
LATCbits.LATC0=0; //ALDO VILCHIS MT92
LATA= numeros[contadorUnidades]; //ALDO VILCHIS MT92
__delay_ms(20); //ALDO VILCHIS MT92
LATCbits.LATC0=1; //ALDO VILCHIS MT92
LATCbits.LATC1=0; //ALDO VILCHIS MT92
LATA=numeros[contadorDecenas]; //ALDO VILCHIS MT92
__delay_ms(20); //ALDO VILCHIS MT92
LATCbits.LATC1=1; //ALDO VILCHIS MT92
LATCbits.LATC2=0; //ALDO VILCHIS MT92
LATA=numeros[contadorCentenas]; //ALDO VILCHIS MT92
__delay_ms(20); //ALDO VILCHIS MT92
LATCbits.LATC2=1; //ALDO VILCHIS MT92
}
return;
}
PLAN DE PRÁCTICA NO. DE PRÁCTICA:
DIRECCIÓN DE CARRERA DE MECATRÓNICA Y 2
SISTEMAS PRODUCTIVOS FECHA:
TITULO DE LA PRÁCTICA: MODELOS ORGANIZACIONALES PÁGINA DE
_______________________
*
* File: 7segcontadordescendentealdovilchismt92.c
* Author: ALDO VILCHIS MT92
*
* Created on 6 de junio de 2020, 06:33 PM
*/
#include <xc.h>
#define _XTAL_FREQ 4000000 //ALDO VILCHIS MT92
#pragma config FOSC = XT //ALDO VILCHIS MT92
_______________________
contadorUnidades --; //ALDO VILCHIS MT92
if(contadorUnidades<0){ //ALDO VILCHIS MT92
contadorUnidades=9; //ALDO VILCHIS MT92
contadorDecenas --; //ALDO VILCHIS MT92
}
if(contadorDecenas<0){ //ALDO VILCHIS MT92
contadorDecenas=9; //ALDO VILCHIS MT92
contadorCentenas --; //ALDO VILCHIS MT92
}
INT2IF=0; //ALDO VILCHIS MT92//ALDO VILCHIS MT92
}
}
void main(void) {
TRISC=0; //ALDO VILCHIS MT92
ANSELC=0; //ALDO VILCHIS MT92
TRISA=0; //ALDO VILCHIS MT92
ANSELA=0; //ALDO VILCHIS MT92
LATA=0; //ALDO VILCHIS MT92
TRISB=0; //ALDO VILCHIS MT92
ANSELB=0; //ALDO VILCHIS MT92
while(1){
LATCbits.LATC0=0; //ALDO VILCHIS MT92
LATA= numeros[contadorUnidades]; //ALDO VILCHIS MT92
__delay_ms(20); //ALDO VILCHIS MT92
LATCbits.LATC0=1; //ALDO VILCHIS MT92
LATCbits.LATC1=0; //ALDO VILCHIS MT92
LATA=numeros[contadorDecenas]; //ALDO VILCHIS MT92
__delay_ms(20); //ALDO VILCHIS MT92
LATCbits.LATC1=1; //ALDO VILCHIS MT92
LATCbits.LATC2=0; //ALDO VILCHIS MT92
LATA=numeros[contadorCentenas]; //ALDO VILCHIS MT92
__delay_ms(20); //ALDO VILCHIS MT92
LATCbits.LATC2=1; //ALDO VILCHIS MT92
}
return;
}
PLAN DE PRÁCTICA NO. DE PRÁCTICA:
DIRECCIÓN DE CARRERA DE MECATRÓNICA Y 2
SISTEMAS PRODUCTIVOS FECHA:
TITULO DE LA PRÁCTICA: MODELOS ORGANIZACIONALES PÁGINA DE
_______________________
https://www.youtube.com/watch?v=oa-K5zPkEsg
PLAN DE PRÁCTICA NO. DE PRÁCTICA:
DIRECCIÓN DE CARRERA DE MECATRÓNICA Y 2
SISTEMAS PRODUCTIVOS FECHA:
TITULO DE LA PRÁCTICA: MODELOS ORGANIZACIONALES PÁGINA DE
_______________________
Preguntas
Que es un comtador? Un contador es muy necesario para cualquier trabajo que se desee empeñar
con un PIC
¿Qué es una interrupción? Una interrupción es un aviso provocado por un módulo del PIC, por un
cambio en el estado de un pin o un recordatorio de que ha pasado un cierto tiempo
Que es IP (interrupt priority indica si la prioridad asociada a la interrupción es alta (1) o baja
(0). Obviamente, solo tiene efecto si está activado el modo de niveles de prioridad
Que es un display 7 segmentos? está compuesto por leds, es decir una pantalla o visualizador que la
información que nos muestra es por medio de luces tipo led
PLAN DE PRÁCTICA NO. DE PRÁCTICA:
DIRECCIÓN DE CARRERA DE MECATRÓNICA Y 2
SISTEMAS PRODUCTIVOS FECHA:
TITULO DE LA PRÁCTICA: MODELOS ORGANIZACIONALES PÁGINA DE
_______________________
CONCLUSION.
At the end of the practice new knowledge was obtained in the same way good results were
obtained, I learned to make a counter. In real life, these types of projects are not very essential and
used in companies since it allows to keep a correct count of many things that the programmer
decides, this is seen a lot in the counters of trucks using sensors, people who enter a store or
shopping center, the rise and fall in companies, the counting of products in the industry, this type
This practice was very helpful as well as it was a good practice where it leads us to want to know
more about the subject and go deeper into the world of pic programming.
BIBLIOGRAFÍA
http://picfernalia.blogspot.com/2012/06/interrupciones-conceptos-
basicos.html#:~:text=Una%20interrupci%C3%B3n%20es%20un%20aviso,o%20gesti-
%C3%B3n%20de%20la%20interrupci%C3%B3n.
https://es.slideshare.net/jachlmL/manual-mplab
https://www.ecured.cu/Proteus_VSM