Anda di halaman 1dari 9

INGENIERIA ELECTRNICA

CAMPUS SUR

TEMA: Informe de la prctica de laboratorio- Interrupciones
PERODO: 42
FECHA:12 de Julio del 2013

INTEGRANTES:
Albn David
Caisapanta Dayana
Calvopia Francisco

1. Objetivo general:
Realizar cdigos de programacin en el programa mikroC, utilizando el PIC 16F877A para aplicar
conocimientos de LCD y realizar estructuras con interrupciones.

2. Objetivos especficos:
Realizar un cdigo para un teclado analgico dnde se visualice en un LCD 4 interrupciones
numricas, combinndolas diferentemente 1^2 2^3 3^4 1^2^3^4, as todas las combinaciones
posibles y que se visualicen en el LCD.
Usando contadores de eventos y tres interrupciones diferentes donde la primera inicie el ciclo, la
segunda en cualquier instante regrese al principio y la tercera resetee todo, realizar un cdigo
donde se cumpla las condiciones dadas en un juego de luces.


3. Marco terico:
Pic16F877

Figura 1 del Pic16F877, sacado de [1].
EL Pic16F877 pertenece a la gama media de Micro controladores donde encontraremos modelos desde 18 hasta 68
Pines, su repertorio de instrucciones es de 35, de 14 bits cada una (Todas las instrucciones sonde un solo ciclo
con excepcin de las ramificaciones del programa que son de dos ciclos). Disponen de interrupciones y una
pila de 8 niveles que permite el anidamiento de subrutinas. [1]

Pulsador

Figura 2 de tipos de pulsadores, sacado de [2].
Un botn o pulsador es un dispositivo utilizado para activar alguna funcin.
El botn de un dispositivo electrnico funciona por lo general como un interruptor elctrico, es decir en su
interior tiene dos contactos, al ser pulsado uno, se activar la funcin inversa de la que en ese momento
este realizando, si es un dispositivo NA (normalmente abierto) ser cerrado, si es un dispositivo NC
(normalmente cerrado) ser abierto. [2]

LCD

Figura 3 LCD, imagen obtenida de [3]
Una pantalla de cristal lquido o LCD (sigla del ingls liquidcrystal display) es una pantalla delgada y plana
formada por un nmero de pxeles en color o monocromos colocados delante de una fuente de luz o
reflectora. [3]
Especificaciones
Resolucin: Las dimensiones horizontal y vertical son expresadas en pxeles. Las pantallas HD tienen una
resolucin nativa desde 1280x720 pxeles (720p), Hasta 1920x1080 pxeles (1080p)
Ancho de punto: La distancia entre los centros de dos pxeles adyacentes. Cuanto menor sea el ancho de
punto, tanto menor granularidad tendr la imagen. El ancho de punto suele ser el mismo en sentido vertical
y horizontal, pero puede ser diferente en algunos casos. [4]

Dipswitch

Figura 4 DIP, obtenida de [5]
Un DIP se trata de un conjunto de interruptores elctricos que se presenta en un formato encapsulado (en
lo que se denomina Dual In-line Package), la totalidad del paquete de interruptores se puede tambin referir
como interruptor DIP en singular.
Caracteristicas
Este tipo de interruptor se disea para ser utilizado en un tablero de circuito impreso junto con otros
componentes electrnicos y se utiliza comnmente para modificar/personalizar el
comportamiento hardware de un dispositivo electrnico en ciertas situaciones especficas.[5]

Interrupciones
En computacin, un controlador programable de interrupciones (PIC) es un dispositivo usado para combinar
varias fuentes de interrupciones sobre una o ms lneas del CPU, mientras que permite que los niveles de
prioridad sean asignados a sus salidas de interrupcin (no confundir con el micro controlador PICmicro de
Microchip Technology).
En cuanto a los pines del PIC la seal externa para producir la interrupcin en el PIC ser a travs de de la
patilla 6 y se podr determinar por software que flanco de la seal producir la interrupcin, el de subida
(cuando la seal pasa de un nivel 0 a 1) el de bajada (cuando pasa de 1 a 0).Vamos a ver ahora los registros
especficos (SFR) que nos proporciona el PIC para el control de esta interrupcin.

El PIC 16F877A tiene la particularidad de manejar 13 fuentes de interrupcin diferentes, de las cuales
haremos aplicaciones para dos de ellas:
1. Activacin de la patita de interrupcin RB0/INT
2. Desbordamiento del TMR0
3. Cambio de estado de una de las cuatro patitas de ms peso del puerto B
4. Finalizacin de la escritura de un byte en la EEPROM
5. Desbordamiento del Timer1
6. Desbordamiento del Timer2
7. Captura o comparacin en el mdulo CCP1
8. Captura o comparacin en el mdulo CCP2
9. Transferencia en la puerta serie Sncrona
10. Colisin de bus en la puerta serie Sncrona
11. Fin de la transmisin en el USART
12. Fin de la recepcin en el USART
13. Fin de la conversin en el convertidor A/D
14. Transferencia en la puerta paralela esclava. [6]
















Tabla 1 lista de materiales.

4. Desarrollo:
Primero se deber, abrir los programas mikcroC y Proteus para poder trabajar en ellos.
a) Utilizando el PIC16F877A, realizarutilizando los materiales las conexiones necesarias para obtener
el siguiente circuito, simulado en Proteus, para la realizacin de las interrupciones del teclado
analgico:

IMAGEN1: simulacin realizada en Proteus del circuito numrico de interrupciones.
N MATERIALES
1
1
5
1
5
1




1
3
PIC16F877A
LCD
Resistencias de 100k
Teclado (4*4)
Pulsadores
Protoboard
Cable para Protoboard
Quemadora de PIC
Mandil
Pulsadores
DIP
Potencimetros

b) Realizar la programacin en mikcroC, para obtener el cdigo necesario funcional delas
interrupciones. Guardar el proyectoy compilar.

CDIGO DE LA PROGRAMACIN:
sbit LCD_RS at RD4_bit;
sbit LCD_EN at RD5_bit;
sbit LCD_D4 at RD0_bit;
sbit LCD_D5 at RD1_bit;
sbit LCD_D6 at RD2_bit;
sbit LCD_D7 at RD3_bit;
sbitLCD_RS_Direction at TRISD4_bit;
sbitLCD_EN_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD0_bit;
sbit LCD_D5_Direction at TRISD1_bit;
sbit LCD_D6_Direction at TRISD2_bit;
sbit LCD_D7_Direction at TRISD3_bit;
intsalida,fg;
unsigned inttemp_res;
char txt [8];
void main() {
LCD_Init();
LCD_cmd(_LCD_CLEAR);
LCD_cmd(_LCD_CURSOR_OFF);
trisa=0;
trisc=0;
portc=0;
while(1)
{
temp_res=ADC_Read(0);
salida=temp_res;
fg=temp_res;
intToStr(fg,txt);
Lcd_Out(1,1,"press");
Lcd_Out(1,5,txt);
delay_ms(200);
delay_ms(100);
switch (salida)
{
case 100:Lcd_Out(2,2,"T4"); break; // 6
case 118:Lcd_Out(2,2,"T3"); break; // B
case 144:Lcd_Out(2,2,"T2"); break; // 7
case 168: Lcd_Out(2,2,"T1"); break; // 8
case 198:Lcd_Out(2,2,"T3 T4"); break; // B
case 219:Lcd_Out(2,2,"T2 T4"); break; // 6
case 232: Lcd_Out(2,2,"T2 T3"); break; // 8
case 239:Lcd_Out(2,2,"T1 T4"); break; // 7
case (270):Lcd_Out(2,2,"T1 T2"); break; // 6
case 252:Lcd_Out(2,2,"T1 T3"); break; // B
}
delay_ms(500);
LCD_cmd(_LCD_CLEAR);
LCD_cmd(_LCD_CURSOR_OFF);

}
}















c) Cargar el cdigo obtenido del programa mikroC del paso b) en la simulacin realizada en Proteus.
Comprobar asi la funcionalidad de las interrupciones.

IMAGEN 2: simulacin obtenida del Proteus de las interrupciones numricas funcionando.

d) Realizar el armado en un protoboard del circuito obtenido en el Proteus (paso a).

e) Retirar y quemar el PIC 16F877A en el programa pickit, con el cdigo obtenido en el paso b.

IMAGEN 3: DEL PROGRAMA PICKIT

IMAGEN 4: DE LA QUEMADORA CON EL PIC.

f) Ubicar el PIC en el protoboard alimentar la fuente y prender el circuito.

IMAGEN 5: Armado-Real, ejercicio de las interrupciones funcionando.


Segundo Ejercicio
g) Utilizando el PIC16F877A, y dems materiales mencionados realizar las conexiones necesarias para
obtener el siguiente circuito, simulado en Proteus, para la realizacin de un juego de luces e
interrupciones.


IMAGEN6: simulacin realizada en Proteus del circuito de interrupciones con juego de luces.

h) Realizar la programacin en mikcroC, para obtener el cdigo necesario funcional de las
interrupciones con juegos de luces. Compilar y guardar el proyecto.

CDIGO DE LA PROGRAMACIN:
sbit LCD_RS at RD4_bit;
sbit LCD_EN at RD5_bit;
sbit LCD_D4 at RD0_bit;
sbit LCD_D5 at RD1_bit;
sbit LCD_D6 at RD2_bit;
sbit LCD_D7 at RD3_bit;
sbitLCD_RS_Direction at TRISD4_bit;
sbitLCD_EN_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD0_bit;
sbit LCD_D5_Direction at TRISD1_bit;
sbit LCD_D6_Direction at TRISD2_bit;
sbit LCD_D7_Direction at TRISD3_bit;
intcont=0,con1=0;
char txt[4],txt1[4];
inti;
void interrupt()
{
int i,ad1=0,ad2=0;
if(INTCON.INTF==1 && ad1==0)
//evaluacion de la interrupcin externa RB0
{
cont++;
ad1=1;
INTCON.INTF=0; //resetea la
bandera de la interrupcin
}
if( INTCON.INTF==0 && ad1==1)ad1=0;
if(INTCON.RBIF==1 ) //evaluacin de la
interrupcion interna RB7-4
{
if(portb.B4==1 ) //verifica
{
con1=0;
cont=0;
}
if(portb.B5==1 && ad2==0)
{
con1++;
ad2=1;
}
if(portb.B5==0 && ad2==1)ad2=0;
INTCON.RBIF=0;
}
}
/*
INTCON GPIE-Habilita la Interrupcin
PEIE-Habilita las interrupciones
perifericas
TOIE-Habilita el temporizador
INTE-Habilita la RB0
RBIE-Habilita interrupciones cambios
puerto B
TOIF-Bandera desvorde de timerO
INTF-Bandera de interrupcin RBO
RBIF-Bandera de cambio en el Puerto
B
*/
void viz1(inta,inti)
{
intToStr(a,txt);
Lcd_Out(i,10,txt);
}
void viz(inta,inti)
{
intToStr(a,txt1);
Lcd_Out(i,10,txt1);
}
void main()
{
int valor1,valor2;
trisb=0b11110001; //solo RB4-7 y RB0 son
de interrupcin
trisc=0b00000000;
trisd=0b00000000;
trisa=0;
INTCON=0b11011000;
portc=0;
valor1=1;
valor2=128;
while(1)
{
LCD_Init();
// LCD_cmd(_LCD_CLEAR);
LCD_cmd(_LCD_CURSOR_OFF);
LCD_Out(1,1,"contador");
LCD_Out(2,1,"eventos");
viz(cont,1);
viz1(con1,2);
portc=128;
porta=15;
delay_ms(100);
for(i=1;i<9;i++)
{
portc=portc>>1;
delay_ms(100);
porta=porta>>1;
delay_ms(100);
}
viz(cont,1);
viz1(con1,2);
portc=0;
porta=0;
}
}

i) Cargar el cdigo obtenido del programa mikroC del paso h) en la simulacin realizada en Proteus.
Comprobar asi la funcionalidad del juego de luces con interrupciones.


IMAGEN 7: simulacin obtenida del Proteus del juego de luces con interrupciones funcionando.

j) Realizar el armado en un protoboard del circuito obtenido en el Proteus (paso g).

k) Retirar y quemar el PIC 16F877A en el programa pickit, con el cdigo obtenido en el paso h.

IMAGEN 3: DEL PROGRAMA PICKIT

IMAGEN 4: DE LA QUEMADORA CON EL PIC.

l) Ubicar el PIC en el protoboard alimentar la fuente y prender el circuito.


IMAGEN 8: Armado-Real de las interrupciones con juego de luces en funcionamiento.


5. Conclusiones:
El uso de la interrupciones se las hace de manera externa a travs de la utilizacin de patillas
RB0/INT dadas especficamente por cada PIC, conectando ya sea pulsadores o dipswitch en los pines
especificados, lo que nos permite dar permiso de interrupcin por activacin de la patilla RB0/INT,
as tenemos: 1-permite la interrupcin; 0- prohbe la interrupcin dependiendo del cdigo creado en
mikroC.
Las interrupciones numricas del primer ejercicio se las realizo con un Dipswitch lo cual nos permiti
dar una serie de combinaciones con el fin de crear los nmeros que se buscaban entre 1 y 4,
adicionalmente se tuvo que calcular el valor de las resistencias a ser utilizadas para poder crear el
desborde necesario.
Se cre un juego de 8 luces (leds)que nos permiti implementar la utilizacin de interrupciones
usando tres pulsadores que den el inicio, regreso en cualquier instante y reseteo del juego de luces
usando los pines RBO, RB4, RB5 del PIC y las funciones de INTCON.



6. Recomendaciones:
Llevar el datasheet del PIC 16F877A para obtener mayor informacin de lo q necesitemos.
Utilizar la opcin Help del programa mikcroC cuando necesitemos informacin extra del PIC.
Llevar materiales de repuesto por alguna eventualidad no programada.
Previamente y por motivos de tiempo llevar al menos un ejercicio ya armado y probado en el
protoboard.
7. Web grafa
[1] tutorial PIC16f877a,http://es.scribd.com/doc/30475681/Tutorial-PIC16F877A-Algunas-Mejoras, fecha de
consulta 2013-06-17.
[2]Botn, http://es.wikipedia.org/wiki/Bot%C3%B3n_(dispositivo) , fecha de consulta 2013-06-17.
[3] Visualizador LCD,
http://www.directindustry.es/prod/miller-dial/visualizadores-lcd-29521-784853.html, fecha de consulta
2013-07-04.
[4] Pantalla de cristal lquido, http://es.wikipedia.org/wiki/Pantalla_de_cristal_l%C3%ADquido, fecha de
consulta 2013-07-04.
[5]DIPSWITCH, http://es.wikipedia.org/wiki/Interruptor_DIP, fecha de consulta 2013-07-11.
[6]Interrupciones para el PIC, http://www.buenastareas.com/ensayos/Interrupciones-
Pic16F877A/3779859.html, fecha de consulta 2013-07-11.

Anda mungkin juga menyukai