Sei sulla pagina 1di 29

INTERRUPCIONES

TIMER 0
TECLADOS MATRICIALES
MICROCONTROLADORES
INTERRUPCIONES
Las interrupciones permiten a cualquier
suceso interior o exterior interrumpir la
ejecucin del programa principal en
cualquier momento. En el momento de
producirse la interrupcion, el pic ejecuta un
salto a la rutina de atencion a la
interrupcion, previamente definida por el
programador, donde se atendera a la
demanda de la interrupcion.

El microcontrolador pic 16f87x posee las siguientes
fuentes de interrupcin:
interrupcin externa por RB0/INT.
Interrupcin por cambio de nivel lgico en RB4 - RB7.
Interrupcin por desborde del timer 0.
Interrupcin del transmisor del modulo USART.
Interrupcin del receptor del modulo USART.
Interrupcin del modulo CPP.
Interrupcin del EEPRON.

INTERRUPCIONES

INTERRUPCIONES EN C
En el compilador C, la directiva habitual en el manejo de
las interrupciones es: #INT_xxxx

Ejemplo: #INT_USB

Funciones
INTERRUPCIONES
INTERRUPCION EXTERNA POR
RBO
La directiva usada es #INT_EXT y se debe
acompaar de las siguientes funciones.
EXT_INT_EDGE(H_TO_L);
EXT_INT_EDGE(L_TO_H);

ejemplo
Encender y apagar un led, en la patilla RB7 cuando se
produzca un cambio de nivel en la patilla RB0.
INTERRUPCION EXTERNA POR
CAMBIO DE ESTADO DE RB4-RB5
La directiva usada es #INT_RB y se debe acompaar
de las siguientes funciones.
EXT_INT_EDGE(H_TO_L);
EXT_INT_EDGE(L_TO_H);

Encender y apagar un led, en la patilla RB0
cuando se produzca un cambio de nivel en las
patillas RB4 RB7, mientras el microcontrolador
enciende y apaga un led cada 500ms en la patilla
RC0.
ejemplo

TIMER 0
Son circuito sincrnicos para el conteo de los pulsos
que llegan a su entrada de reloj. Si la fuente de conteo
es el oscilador interno del microcontrolador es comn
que no tengan un pin asociado, y en este caso
trabajan como temporizadores. Por otra parte, cuando
la fuente de conteo es externa, entonces tienen
asociado un pin configurado como entrada, este es el
modo contador.
Caractersticas:
contador/temporizador de 8 bits.
Leble y escribible.
Pre divisor de 8 bits programable por software.
Seleccin de reloj interno o externo.
Timer 0
Se puede insertar un preescaler, es decir un
divisor de frecuencia programable que puede
dividir por 2, 4, 8, 16, 32, 64, 128 o 256.

El tiempo de desbordamiento del timer 0 se
calcula segn la siguiente ecuacin:

=
4

(256 )

Timer 0 en c
La funcin para configurar el TIMER0 es:
setup_timer0_(modo);
Donde modo:






Los distintos modos se pueden agrupar mediante el
empleo del simbolo |
ejm.: setup_TIMER_0(rtcc_div_2|rtcc_ext_l_to_h);
SETUP_TIMER_O(MODO)
RTCC_INTERNAL
RTCC_EXT_L_TO_H
RTCC_EXT_H_TO_L
RTCC_DIV_1
RTCC_DIV_2
RTCC_DIV_4
SETUP_TIMER_O(MODO)
RTCC_DIV_8
RTCC_DIV_16
RTCC_DIV_32
RTCC_DIV_64
RTCC_DIV_128
RTCC_DIV_256
El compilador C suministra una serie de
funciones para leer o escribir en el TIMER0.

- Para escribir un valor en el registro.
set_timer0(valor);
donde: valor = entero de 8 bits.
- Para leer un valor actual del regristro:
- Valor = get_timer0();

Timer 0 en c
EJ EMPLO
Generar una seal cuadrada de 15.625 hz utilizando la
interrupcion del timer 0.


solucion:
15.625 hz se necesita un semiperiodo de 32 ms,
luego eligiremos el preescaler y cristal de 4Mhz
teniendo como resultado la siguiente igualdad.

Despejando tenemos:
x = 131
Este valor es el que cargaremos en el timer 0 mediante:
Set_timer0(131);
=
4

(256 )
=
4
4 10
6
256 (256 )

EJ EMPLO
Teclados
matriciales
Teclados matriciales
Un teclado matricial es un simple arreglo de botones
en filas y columnas, de modo que se pueden leer
varios botones con el mnimo numero de pines
requeridos.
Teclado matricial
El compilador C incluye la librera KBD.c para manejar
el teclado 3x4. las funciones que se incorporan son las
siguientes:
Kbd.init()
inicializa el sistema debe ser la primera funcin a
ser llamada
Kbd_getch();
devuelve el valor de la tecla pulsada en funcin a
la tabla que se tiene programada.
#define_use_portb_lcd true : con esto definimos
usar el PUERTOB
EJEMPLO
Realizar un rastreo basico de las teclas de un
teclado matricial de 4x4 y mostar el dato en un lcd.

Abrir una puerta mediante un contrasea de
seguridad.
GLCD
GLCD
Una pantalla GLCD sirve para poder visualizar, letras,
nmeros, figuras entro otros.
La distribucin de las patillas es la siguiente:
VSS: masa
VDD: ALIMENTACION
V0: TENSION CONTRASTE
D/I: ENTRADA DE DATOS /ENTRADA DE CODIGO
DE INSTRUCCIN
R/W: LECTRURA/ESCRITURA
E: ENABLE
DB0-DB7: DATOS DE ENTRADA
CS1-CS2: CHIP SELECT
RST: RESET
GLCD EN C
GLCD_INIT (MODE)
ENCIENDE EL LCD.
GLCD_PIXEL(X,Y,COLOR)
ESTABLECE EL COLOR DEL PIXEL,PUEDE ACT. O
DESAC.
GLCD_FILLSCREEN(COLOR)
RELLENA EL LCD DE UN COLOR DETERMINADO
GLCD_LINE(X1,Y1,X2,Y2,COLOR)
DIBUJA UNA LINEADESDE EL PUNTO 1 AL PUNTO 2.
GLCD_RECT(X1,Y1,X2,Y2,FILL,COLOR)
DIBUJA UN RECTANGULO CON VERTICE EN (X1,Y1) Y
EL OTRO EN (X2,y2) PUEDE SER RELLENADO O NO Y PUEDE
ACTIVARSE EL COLOR O NO
GLCD_BAR(X1,Y1,X2,Y2,WIDTH,COLOR)
DIBUJA UNA BARRA DESDE EL PRIMER PUNTO AL
SEGUNDO PUNTO,PUEDE DEFINIRSE EL NUMERO DEL
RANGO DE PIXELES Y PUEDE ACTIVARSE EL COLOR O NO.
GLCD_CIRCLE(X,Y,RADIUS,FILL,COLOR)
DIBUJA UN CIRCULO CON CENTRO EN (X,Y)
Y CON EL RADIO ESPECIFICADO, PUEDE
LLENARSE O NO Y PUEDE PUEDE ACTIVARSE EL
COLOR O NO.

GLCD_TEXT57(X,Y TEXTPTR,SIZE,COLOR)
ESCRIBE EL TEXTO EMPEZANDO EN (X,Y);
LOS CARACTERES SON DE 5X7 PIXELES SE
PUEDE ESCALAR EL TAMAO Y PUEDE
ACTIVARSE EL COLOR O NO.
GLCD
MOSTRAR EN UN GLCD EL ESTADO DE 6
PULSADORES, DE MODO GRAFICO.

Potrebbero piacerti anche