Вы находитесь на странице: 1из 34

3.1.

-Introduccion:
Los microcontroladores PIC tienen terminales de entrada y salida divididos
en puertos, que se encuentran nombrados alfabticamente. Cada puerto
puede tener hasta 8 terminales que , de forma bsica, se comportan como
entradas o salidas digitales. Segn las caractersticas del PIC, adems cada
puerto puede tener asignado un bloque funcional. Por ejemplo:
3.1.-Introduccion:
La gestin del bus de datos se realiza a travs de los registros PORTx
(PORTA: 05h, PORTB: 06h, PORTC: 07h, PORTD: 08h, PORTE: 09h en
el Banco 0 de la memoria RAM).
3.1.-Introduccion:
En el puerto B, los terminales tienen una resistencia de pull-up interna que
se puede habilitar a travs del bit RBPU del registro OPTION_REG(81h,
181h).
Bit7: RBPU: Habilita las resistencias de pull-up
1= Las deshabilita.
0= Las habilita todas
3.1.-Introduccion:
Las caractersticas elctricas de los puertos delimitan su utilizacin para
manejar cargas de forma directa.
3.2.-Gestion de Puertos en C:
3.2.1.- A travs de la RAM: Se definen los registros PORTx y TRISX como
bytes y se sitan en la posicin correspondiente de la memoria RAM. La
directiva utilizada de C es #BYTE:
#BYTE variable= constante;
Se puede declara un bit de un registro con una variable mediante la directiva
#BIT, lo que le permite trabajar con el terminal:
#BIT nombre=posicion.bit
3.2.-Gestion de Puertos en C:
3.2.2.- A travs de la Directivas: El compilador ofrece funciones
predefinidas para trabajar con los puertos. Estas funciones son:
output_X (valor); y tambin se puede utilizar output_low(pin*)
input_X ();
set_tris_X(valor);
port_b_pullups (valor);
get_trisX ()
donde X es la inicial del puerto correspondiente(A, B, C, ) y pin* es el pin
del puerto que queremos estudiar o utilizar.
3.2.-Gestion de Puertos en C:
3.2.3.- Con Punteros: En C se puede acceder a la memoria de datos
mediante punteros. Los punteros se deben definir como INT:
#define TRISA (int*) 0x85
#define PORTA (int*) 0x05
El registro es manejado mediante la utilizacin del operador *:
int valor
valor = *porta
3.3.- Entradas y Salidas:
3.3.1.- LCD: Se acostumbran ha utilizar LCD del tippo HD44780, con un
numero de lineas variables y un numeros de caracteres por linea tambian
variables (por ejemplo, con 2x16 se trabaja con dos lineas de 16 caracteres
cada una).
3.3.- Entradas y Salidas:
3.3.1.- LCD: El compilador C ofrece una funcin mas verstil para trabajar
con el LCD:
printf(string)
printf(cstring, values)
printf(fname, cstring, values)
String es una cadena o un array de caracteres, values es una lista de variables
separados por comas y fname es una funcin.
El formato es %nt, donde n es opcional y puede ser:
1-9 :para especificar cuantos se deben especificar
01-09 :para indicar la cantidad de ceros a la izquierda
1.1-9.9 : para como flotante
3.3.- Entradas y Salidas:
3.3.1.- LCD:
t puede indicar:
c carcter
s cadena o carcter
u entero sin signo
d entero con signo
x entero hexadecimal
f flotante con truncado
g flotante con redondeo
e flotante en formato exponencial
w entero sin signo con decimales insertados
3.3.- Entradas y Salidas:
3.3.1.- LCD:
A continuacin, mostramos unos ejemplos:
3.3.- Entradas y Salidas:
3.3.2.- LCD grafico: Se utiliza un LCD grafico como una controladora
KS0108.
Las funciones definidas son: gcd_init ; glcd_pixel ; glcd_fillScreen ;
glcd_update ; glcd_line ; glcd_rect ; glcd_bar ; glcd_circle ; glcd_text57.
3.3.- Entradas y Salidas:
3.3.3.- Teclado: Las entradas a travs de un pulsador son muy habituales en
los sistemas con microcontroladores para trabajar con una mayor
informacin o una informacin alfanumrica.
3.3.- Entradas y Salidas:
3.3.3.- Teclado:
El compilador C incluye el driver KBC.C para manejar el teclado (3x4). Las
funciones que incorporan son las siguientes:
kbd_init()
kbd_getc()
A travs de la modificacin de esta tabla podemos adecuar el resultado dl
programa a las distintas caratulas del teclado.
4.1.- Introduccin:
Las interrupciones permiten a cualquier suceso interior o exterior
interrumpir la ejecucin del programa principal en cualquier momento.
Los temporizadores son mdulos integrados en el PIC que permite realizar
cuentas tanto de eventos internos como externos.
4.2.- Interrupciones:
Al producirse una interrupcin, el PIC salta automticamente a la direccin
del vector de interrupcin de la memoria de programacin y ejecuta la
porcin de programa, correspondiente a la atencin de la interrupcin,
abandona la interrupcin y retorna a la posicin de memoria del programa
principal desde la que salto al producirse la interrupcin.
4.2.- Interrupciones:
4.2.1.- Interrupciones en C: Las posibilidades directivas son las siguientes:
4.2.- Interrupciones:
4.2.1.- Interrupciones en C:
4.2.- Interrupciones:
4.2.1.- Interrupciones en C:
4.2.- Interrupciones:
4.2.1.- Interrupciones en C:
4.2.- Interrupciones:
4.2.1.- Interrupciones en C:
En el PIC16f876, los niveles permitidos son:
4.2.- Interrupciones:
4.2.1.1.- Interrupcin exterior por RB0: Es una interrupcin bsica, comn
a la mayora de los PIC. Permite generar una interrupcin tras el cambio de
nivel de alto a bajo o de bajo a alto en la entrada RB0.
4.3.- TIMER0:
El bloque funcional TIMER0 / watchdog es un contador de 8 bits,
incrementado por hardware y programable. La cuenta mxima es de 255.
Determine el divisor de frecuencia a actuar segn la tabla siguiente:
4.4.- TIMER1 y TIMER2:
El modulo TIMER1 es otro temporizador/contador con las siguientes
caractersticas:
trabaja con 16 bits
ambos registros se pueden leer y escribir
interrupcin por desbordamiento de FFFFh a 0000h
reset por disparo del modulo CCP
controlado por el registro TICON
Registro T1CON
4.4.- TIMER1 y TIMER2:
Registro T2CON
5.1.- Introduccin:
Los mdulos AD que utiliza Microchip hacen un muestreo y
retencin con un condensador y despus utiliza el modulo de
conversin.
5.2.- Modulo Convertidor(gama media):
El mdulo convertidor A/D en la gama media posee hasta 8
entradas analgicas. Permite variar la tensin de referencia
desde un voltaje mximo Vdd a uno mnimo Vss.
5.2.- Modulo Convertidor(gama media):
5.2.1.- Registro FSR:
Registro de control ADCON0
5.2.- Modulo Convertidor(gama media):
5.2.1.- Registro FSR:
Registro de control ADCON1
5.2.- Modulo Convertidor(gama media):
5.2.2.- Proceso de Conversin:
Tiempo de conversin(Tad):
5.2.- Modulo Convertidor(gama media):
5.2.3.- Efecto del modo SLEEP y RESET en el modulo AD:
En el modulo dormido, el modulo AD puede funcionar si se
selecciona como reloj para conversin el RC interno. En el caso, el modulo
espera 1 ciclo e instruccin antes de iniciar la conversin, permitiendo la
ejecucin de la siguiente instruccin sleep, eliminando asi todo posible ruido
de conmutacion durante la conversion.
5.3.- Modulo AD en C:
En el compilador C las funciones para manejar el convertidor AD son las
siguientes:
setup_adc(modo);
5.3.- Modulo AD en C:
setup_adc_ports();
set_adc_channel();
5.3.- Modulo AD en C:
valor= read_adc();
read_adc()

Вам также может понравиться