Professional Documents
Culture Documents
1. INTRODUCCION
Muchos de nosotros sabemos que apariencia tiene una computadora.
Usualmente tiene teclado, monitor, CPU (Unidad Central de Procesamiento),
impresora y mouse. Este tipo de computadoras son diseadas principalmente
para comunicarse con humanos.
Manejo de base de datos, anlisis financieros o incluso procesadores de texto se
encuentran dentro de la gran caja, que contiene CPU, la memoria, el disco
rgido, etc. El verdadero computo, sin embargo tiene lugar dentro de la CPU.
Si piensa sobre esto, el nico propsito del monitor, teclado, mouse e incluso la
impresora, es conectar el CPU con el mundo exterior.
PERO UD. SABIA QUE HAY COMPUTAORAS ALREDEDOR DE
NOSOTROS, CORRIENDO PROGRAMAS Y HACIENDO CALCULOS
SILENCIOSAMENTE SIN INTERACTUAR CON NINGUN HUMANO?
Estas computadoras estn en su auto, en un juguete e incluso en el horno
microondas.
Llamamos a estos dispositivos microcontroladores. Micro porque son
pequeos, y controladores, porque controlan maquinas o incluso otros
controladores. Los microcontroladores, por definicin entonces, son diseados a
para ser conectados ms a maquinas que a personas. Son muy tiles porque
Ud. Puede construir una maquina o un artefacto, escribir programas para
controlarlo, y luego dejarlo trabajar para usted automticamente.
1.1 QUE ES UN MICROCONTROLADOR?
Un microcontrolador es un circuito integrado programable (PIC) que
contiene todos los componentes y dispositivos necesarios para controlar
el funcionamiento de una tarea
determinada, adems un
microcontrolador posee en su interior toda la arquitectura de un
computador, esto es: CPU, memoria RAM, EEPROM y puertos de
entrada y salida.
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Los siguientes son algunos campos en los que los microcontroladores tienen gran uso:
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Segn la arquitectura
interna de la memoria de un microcontrolador se
puede clasificar considerando como el CPU accede a los datos e instrucciones, en 2
tipos:
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
1.3.2
Arquitectura Harvard
Fue desarrollado en Harvard, por Howard Aiken, esta arquitectura se caracteriza por
tener 2 memorias independientes una que contiene slo instrucciones y otra, que
contiene slo datos. Ambas, disponen de sus respectivos sistemas de buses para el
acceso y es posible realizar operaciones de acceso simultneamente en ambas
memorias.
Existe una variante de esta arquitectura que permite el acceso a la tabla de datos desde
la memoria de programas es la Arquitectura de Harvard Modificada. Esta ltima
arquitectura es la dominante en los microcontroladores actuales ya que la memoria de
programas es usualmente ROM, OTP, EPROM o FLASH, mientras que la memoria de
datos es usualmente RAM. Por ejemplo las tablas de datos pueden estar en la memoria
de programa sin que sean perdidas cada vez que el sistema es apagado.
MEMORIA RAM
(Random Access Memory) Memoria de Acceso Aleatorio) en esta memoria se
guarda los datos que se est utilizando en el momento presente. El
almacenamiento es considerado temporal por que los datos permanecen
en ella mientras la memoria tiene una fuente de alimentacin.
La memoria de programas o de instrucciones contiene una serie de diferentes
tipos de memoria:
MEMORIA ROM
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
MEMORIA OTP
One Line Programmable) es no volatile y de solo lectura y programmable
una sola vez por el usuario. La grabacin se realiza mediante un sencillo
grabador controlado por una PC.
MEMORIA EPROM
(Erasable Programmable Read Only Memory), pueden borrarse y grabarse
muchas veces. La grabacin se realiza, como en el caso de la memoria OTP. Si,
posteriormente, se desea borrar el contenido, disponen de una ventana de
cristal en su superficie por la que se somete a le EPROM a rayos
ultravioleta por algunos minutos.
MEMORIA EEPROM
(Electrical EPROM) es de slo lectura, programable y borrable elctricamente.
Tanto la programacin como el borrado, se realizan elctricamente desde el
propio grabador y bajo el control programado de un PC, y puede hacerse con el
microcontrolador instalado en el circuito. Es muy cmoda y rpida la operacin
de grabado y la de borrado.
MEMORIA FLASH
La memoria Flash es no voltil, de bajo consumo y puede grabarse y borrarse
elctricamente. Funciona como una ROM y una RAM pero consume menos
energa y es ms pequea. La memoria Flash tambin puede programarse
en circuito, es decir, sin tener que sacar el circuito integrado de la tarjeta.
adems, es ms rpida, tiene mayor densidad y tolera ms ciclos de
escritura/borrado que la EEPROM
1.5 CARACTERISTICAS GENERALES DEL PIC 16F877A
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
1.6 PUERTOS
El PIC16F877A dispone de cinco puertos A, B, C, D y E. Las lneas de estos puertos se
pueden programar individualmente como entradas o como salidas y se utilizan casi de
la misma forma.
PIN
TIPO
DESCRIPCIN
OSC1/CLKIN
13
OSC2/CLKOUT
14
MCLR/Vpp/THV
I/P
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
RA1/AN1
RA2/AN2/ Vref-
RA3/AN3/Vref+
RA4/T0CKI
RA5/SS/AN4
I/O
I/O
I/O
I/O
I/O
I/O
RBO/INT
33
I/O
RB1
34
I/O
RB2
35
I/O
RB3/PGM
36
I/O
RB4
37
I/O
RB5
38
I/O
RB6/PGC
39
I/O
RB7/PGD
40
I/O
RCO/T1OSO/T1CK
I
RC1/T1OS1/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SD1/SDA
RC5/SD0
RC6/Tx/CK
RC7/RX/DT
15
I/O
16
I/O
17
I/O
18
I/O
23
I/O
24
I/O
25
I/O
26
I/O
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
RD0/PSP0
19
I/O
RD1/PSP1
20
I/O
RD2/PSP2
21
I/O
RD3/PSP3
22
I/O
RD4/PSP4
27
I/O
RD5/PSP5
28
I/O
RD6/PSP6
29
I/O
RD7/PSP7
30
I/O
I/O
RE1/WR/AN
I/O
RE2/CS/AN7
10
I/O
Vss
12.3
1
Vdd
11.3
2
Alimentacin;
Seal de reinicio; y
Seal de reloj.
ALIMENTACIN
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Cristal de cuarzo
Al utilizar el cristal de cuarzo para estabilizar la frecuencia, un oscilador incorporado
funciona a una frecuencia determinada, y no es afectada por los cambios de
temperatura y de voltaje de alimentacin. Esta frecuencia se etiqueta normalmente en
el encapsulado del cristal. Aparte del cristal, los condensadores C1 y C2 deben estar
conectados como se muestra en el siguiente esquema. Su capacitancia no es de gran
importancia. Por eso, los valores proporcionados en la siguiente tabla se deben tomar
como recomendacin y no como regla estricta.
Resonador cermico
Un resonador cermico es ms barato y muy similar a un cuarzo por la funcin y el
modo de funcionamiento. Por esto, los esquemas que muestran su conexin al
microcontrolador son idnticos. No obstante, los valores de los condensadores difieren
un poco debido a las diferentes caractersticas elctricas. Refirase a la tabla que est
a continuacin. Estos resonadores se conectan normalmente a los osciladores en caso
de que no sea necesario proporcionar una frecuencia extremadamente precisa.
Oscilador RC
Si la frecuencia de operacin no es de importancia, entonces no es necesario utilizar
los componentes caros y adicionales para la estabilizacin. En vez de eso, basta con
utilizar una simple red RC, mostrada en la siguiente figura. Como aqu es utilizada slo
la entrada del oscilador local, la seal de reloj con la frecuencia Fosc/4 aparecer en
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Oscilador externo
Si se requiere sincronizar el funcionamiento de varios microcontroladores o si por
alguna razn no es posible utilizar ninguno de los esquemas anteriores, una seal de
reloj se puede generar por un oscilador externo. Refirase a la siguiente figura.
TERMINOLOGIA
Comencemos con la terminologa bsica empleada en este contexto.
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
I/O Pin de conexin con el mundo exterior que puede ser configurado como
entrada o salida. I/O es necesario en la mayora de los casos para
permitirle al Microcontrolador comunicarse, controlar y leer informacin.
CAPITULO 2
2. COMPILADOR CCS
2.1.
INTRODUCCION:
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
2.2.
Lenguaje C:
Es un tipo de lenguaje de alto nivel utilizado para hacer programas informticos como
tambin usado para programas microcontroladores por su fcil comprensin y manejo.
Aqu algunos de los compiladores en C:
PCWH Compiler
CC18
2.3.
DEFINICIONES PREVIAS
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
daremos
la
configuracin
mostrada.
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
La compilacin o ejecucin del programa en el C CCS est dada para poder generar
acabo el archivo .hex la cual tendremos que grabar al micontrolador este archivo es el
llamado lenguaje maquina con la cual el pic ser grabado.
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
2.4.
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
3 Dar clic
en el botn
ok
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Segn las caractersticas del PIC, cada puerto puede tener, adems, asignado un
bloque funcional: convertidor AD, USART, I2C, etc.
2.4 GESTION DE PUERTOS A TRAVS DE LA RAM:
Se definen los registros PORTx y TRIS x como bytes y se sitan en la posicin
correspondiente de la memoria RAM. La directiva utilizada de C es #BYTE:
#BYTE variable = constante;
Una vez definidas estas variables se pueden configurar y controlar los puertos a travs
de los comandos de asignacin.
#BYTE TRISA = 0XFF;
// 8 Terminales de entrada.
// 8 Terminales de salida.
Existen unas funciones de C que permiten trabajar bit a bit con los registros o variables
definidas previamente. Estas funciones son las siguientes:
bit_clear (var,bit);
bit_set (var,bit);
bit_test (var,bit);
Se puede declarer un bit de un registro con una variable mediante la directive #BIT, lo
que permite trabajar directamente con el temrinal:
#BIT nombre = posicin.bit
#BIT RB4 = 0x06.4 // PORTA = 0x06
RB4 = 0;
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Output_X (valor);
Input_X ( );
Set_tris_X (valor);
Port_b_pullups (valor);
Get_trisX( );
Output_A (0xFF);
Valor = Input_B ( );
Set_tris_C (0x0F);
//pin a 0.
Output_high (pin*);
//pin a 1.
Output_bit (pin*,valor);
Output_toggle (pin*);
Output_float (pin*);
Input_state (pin*);
Input (pin*);
Las funciones output_x( ) e input_x( ) dependen de la directiva tipo #USE*_IO que est
activa. Directivas:
#USE FAST_IO (PUERTO) [PUERTO: A]
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Con la funcin output_x( ) se saca el valor al puerto y con la funcin input_x( ) se lee el
puerto. La directiva no modifica previamente el registro TRIS correspondiente.
Hay que asegurarse de que los registros TRIS estn correctamente definidos.
#USE STANDARD_IO (PUERTO) [PUERTO: A]
Con la funcin output_x( ) el compilador se asegura de que el terminal, o Terminales
correspondientes, sean de salida mediante la modificacin del TRIS correspondiente.
Con la funcin input_x( ) ocurre lo mismo pero asegurando el terminal(terminales)
como entrada. Es la directiva por defecto.
#USE STANDARD_IO (PUERTO) [PUERTO: A]
El compilador se encarga de generar el cdigo para definir los puertos de acuerdo con
la informacin que indica la directiva (donde slo se indican los terminales de salida),
sin tener en cuenta si la operacin es de entrada o de salida.
Tamao
Rango
Descripcin
1 bit
0a1
Entero de 1 bit
8 BIT
0 A 255
Entero
16 bit
0 a 65 535
Entero de 16 bit
32 bit
Entero de 32 bit
Float
32 bit
+
+38
+ a 3.402 x 10
38
1.175 x 10
Char
Void
Signed Int8
Signed
Int16
8 bit
8 bit
0 a 255
-128 a +127
16 bit
Signed
Int32
32 bit
31
2
a +( 311)
Coma flotante
Carcter
Sin Valor
Entero con Signo
Entero largo con
Signo
Entero 32 bit con
Signo
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
2.7 CONSTANTES:
Las constantes se pueden se pueden especificar en Decimal, octal, hexadecimal
o en binario.
123
0123
0 x 123
0b010010
`x`
`\010`
`\xA5`
Decimal
Octal(0)
Hexadecimal(0x)
Binario(0b)
Carcter
Carcter Octal
Carcter Hexadecimal
127U
80UL
80L
3.14F
Con comillas simples `C`
Cambio de lnea
Retorno de carro
Tabulacin
Backspace
2.8 VARIABLES
Las variables se utilizan para nombrar posiciones de memoria RAM; se deben declarar,
obligatoriamente, antes de utilizarlas; para ello se debe indicar el nombre y el tipo de
dato que se manejar. Se definen de la siguiente forma:
TIPO NOMBRE_VARIABLE [=VALOR INICIAL]
Las variables definidas en un programa pueden ser de tipo LOCAL o GLOBAL. Las
variables locales slo se utilizan en la funcin donde se encuentran declaradas; las
variables globales slo se utilizan en la funcin donde se encuentran declaradas; las
variables globales se pueden utilizar en todas las funciones del programa. Ambas
deben declararse antes de ser utilizadas y las globales deben declararse antes de
cualquier funcin y fuera de ellas. Las variables globales son puestas a cero cuando se
inicia la funcin principal main ( ).
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
#include <16f876.h>
#USE DELAY (CLOCK = 4000000)
int16 counter; // Variable global
void FUNCION (void)
{
Char k, kant =`0`; //Variables locales
}
Void main ( )
{
Int8 temp;
//Variable local
}
Las variables pueden ser definidas con:
AUTO: (usada por defecto, no hace falta que se indique) donde la variable
existe mientras la funcin esta activa. Estas variables no se inicializan a cero.
Su valor se pierde cuando se sale de la funcin.
2.9 OPERADORES
2.9.1
+=
-=
*=
/=
%=
<<=
>>=
&=
ASIGNACION:
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
|=
^=
ARITMETICOS:
+
*
/
%
-++
Sizeof
Suma
Resta
Multiplicacin
Divisin
Mdulo, resto de una divisin entera
Incremento
Decremento
Determina el tamao, en bytes, de un operando
//b=4 y a=4;
a=3
b=4*++3;
2.9.3
b=16 y a=4;
RELACIONALES
<
>
>
=
<
=
=
=
!=
?:
2.9.4
Menor que
Mayor que
Mayor o igual que
Menor igual que
Igual
Distinto
Expresin Condicional
LOGICOS
!
&&
||
2.9.5
NOT
AND
OR
PUNTEROS
&
*
Direccion
Indireccion
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
->
2.9.6
~
&
^
|
>>
<<
2.10
Puntero a estructura
BITS
Complemento a 1
AND
OR EXCLUSIVA
OR
Desplazamiento a derechas
Desplazamiento a izquierdas
FUNCIONES:
Las funciones son bloques de sentencias; todas las sentencias se deben enmarcar
dentro de las funciones. Al igual que las variables, las funciones deben definirse
antes de utilizarse.
Una funcin puede ser invocada desde una sentencia de otra funcin. Una funcin
puede devolver un valor a la sentencia que la ha llamado. El tipo de dato se indica
en la definicin de la funcin; en el caso de no indicarse nada se entiende que es un
int8 y en el caso de no devolver un valor se debe especificar el valor VOID. La
funcin, adems de devolver un valor, puede recibir parmetros o argumentos.
La estructura de una funcin es:
Tipo_Dato
{
(Sentencias);
}
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
a=b+a;
return (a);
}
2.11
<fichero.h>, que se
DECLARACIONES DE CONTROL:
Las declaraciones son usadas para controlar el proceso de ejecucin del programa.
Las que admite CCS son:
If Else.
Switch Case.
For.
While.
Do While.
Return
Break, Continue y Goto.
2.11.1 IF ELSE:
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Sentencia_2;
]
Nota: Los elementos que se encuentran entre corchetes [ ] son opcionales.
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
]
Default:
Sentencias;
]
}
Evala la expresin y en orden a la CONSTANTE adecuada realiza las sentencias
asociadas. Si ninguno de los CASE corresponde a la CONSTANTE se ejecuta
DEFAULT (este comando es opcional).
El comando BREAK provoca la salida de SWITCH, de lo contrario se ejecuta el
siguiente CASE.
No est de ms hacer presente que no pueden existir dos CASE con la misma
CONSTANTE.
2.11.3 FOR:
Se usa para repetir sentencias.
for (inicializacin; condicin de finalizacin; incremento)
{
Sentencias;
}
For (; ;)
{
Sentencias;
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Do
{
Sentencias;
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
}
While(1)
2.11.5 RETURN:
Se emplea para devolver datos en las funciones.
2.11.6 BREAK:
Permite salir de un bucle, se utiliza para while, for, do y switch.
2.11.7 GOTO:
Provoca un salto incondicional.
2.11.8 COMENTARIOS:
Los comentarios en el programa facilitan la comprensin de las distintas
expresiones tanto para el programador como para quien tiene que interpretar dicho
programa. No afectan a la compilacin por lo que pueden ser tan extensos como el
programador quiera. Se pueden colocar en cualquier parte del programa y con dos
formatos:
Utilizando //. Al colocar estos dos signos se comienza el comentario y finaliza en el
final de la lnea.
// Comentario que terminar al final de esta lnea.
Utilizando /* y */. Se debe utilizar al inicio y al final del comentario, pero no
pueden repetirse dentro del mismo comentario.
/* Este comentario no finaliza al final de esta lnea
Finaliza cuando se cierre el comentario */
2.12
DIRECTIVAS:
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
CAPITULO 3
Manejo de interrupciones en los pic Y timer 0
3. MANEJO DE INTERRUPCIONES EN LOS PIC:
Al producirse una interrupcin, el PIC salta automticamente a la direccin del
vector de interrupcin de la memoria de programa y ejecuta la porcin de
programa, correspondiente a la atencin de la interrupcin, hasta encontrar la
instruccin RETFIE. Al encontrar dicha instruccin, abandona la interrupcin y
retorna a la posicin de memoria del programa principal desde la que salt al
producirse la interrupcin.
Las fuentes de interrupcin dependen del PIC utilizado. Por ejemplo, el PIC16F84
tiene 4 fuentes de interrupcin y la familia PIC16F87X tiene entre 13 y 14.
Los PIC de gama baja y media tienen un nico vector de interrupcin situado en la
direccin 04h de programa, mientras que los de gama alta tienen dos vectores de
interrupcin de distinta prioridad, alta y baja, situados en la posicin 08h y 18h de
la memoria de programa.
3.1.
INTERRUPCIONES EN C:
En el compilador C, la directiva habitual en el manejo de las interrupciones es
#INT_xxxx. Especifica que la funcin que le sigue es una funcin de interrupcin;
adems, no necesita ms parmetros.
INTERRUPCIONES
#INT_AD
#INT_CANRX0
#INT_CANRX1
#INT_CANTX0
#INT_CANTX1
#INT_CANTX2
#INT_CCP1
#INT_CCP2
#INT_COMP
#INT_COMP1
DESCRIPCIN
Conversin AD completa
Bus CAN recibe un nuevo mensaje en buffer 0
Bus CAN recibe un nuevo mensaje en buffer 1
Bus CAN transmisin completa en buffer 0
Bus CAN transmisin completa en buffer 1
Bus CAN transmisin completa en buffer 2
Unidad 1 de captura, comparacin y PWM.
Unidad 2 de captura, comparacin y PWM.
Comparador.
Comparador1
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
#INT_EEPROM
#INT_EXT
#INT_I2C
#INT_LCD
#INT_LOWVOLT
#INT_OSCF
#INT_IC3
#INT_PWMTB
#INT_RB
#INT_RDA
#INT_RDA0
#INT_RTCC
#INT_PSP
#INT_SPP
#INT_SPP2
#INT_TBE
#INT_TBE0
#INT_TBE1
#INT_TBE2
#INT_TIMER0
#INT_TIMER1
#INT_TIMER2
3.2.
TIMER 0:
El bloque funcional TIMER0/WHATCHDOG es un contador (registro) de 8 bits,
incrementado por hardware y programable. La cuenta mxima es de 255(el
incremento es constante e independiente).
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
3.3.
TIMER0 EN C:
OPTION_REG(81h/181h)
00000000
00h
00100000
20h
00110000
30h
00001000
08h
00000000
00h
00000001
01h
00000010
02h
00000011
03h
00000100
04h
00000101
05h
00000110
06h
00000111
07h
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Setup_Timer_0(modo);
WDT_18MS
WDT_36MS
WDT_72MS
WDT_144MS
WDT_288MS
WDT_576MS
WDT_1152MS
WDT_2304MS
OPTION_REG(81h/181h)
00001000
08h
00001001
09h
00001010
0Ah
00001011
0Bh
00001100
0Ch
00001101
0Dh
00001110
0Eh
00001111
0Fh
#fuses WDT
Activado.
#fuses NOWDT
Desactivado.
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
CAPITULO 4
FUNCIONES DE Manejo PARA TECLADOS MATRICILES Y
PANTALLAS GRFICAS LCD
TECLADOS MATRICIALES
Las entradas a travs de un pulsador son muy habituales en los sistemas con
microcontroladores para trabajar con una mayor informacin o informacin
alfanumrica. Por ejemplo se usan los teclados matriciales de 1x4, 3x4 4x4.
Los teclados matriciales son muy utilizados pues permiten mayor cantidad de teclas
con menos lneas de control, pero requiere un proceso de bsqueda y traduccin de
tecla. El arreglo matricial permite T teclas segn T = L x C donde L es el nmero de
lneas y C el nmero de columnas, la cantidad de pines utilizados son L + C.
Dado que el circuito propuesto se tiene un teclado de 4x4, se tuvo que realizar ciertas
modificaciones al archivo original KBD.C para su correcto funcionamiento.
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
El archivo nuevo posee el nombre de Tec4x4.c esto para evitar posibles confusiones o
reemplazos con el original.
El compilador de C incluye el driver KBD.C para manejar el teclado (3x4). Las
funciones que incorporan son las siguientes:
kbd_init ();
Debe llamarse antes que ninguna otra funcin del fichero Tec4x4.c.
kbd_getc();
Funcin que retorna el valor presionado en el Teclado, este puede guardado en una
variable de tipo char.
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
B7 D7 -> Fila 4
4.2.
PANTALLAS GRAFICAS
1.2.-
Vss(masa)
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
t puede indicar:
c
Carcter
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Cadena o carcter.
Lu
Ld
Lx
LX
w
Entero sin signo con decimales insertados. La 1 cifra indica el total, la 2 el
nmero de decimales.
A continuacion, mostramos unos ejemplos de los distintos formatos:
Formato
%03u
%u
%2u
%5
%d
%x
%X
%4X
%3.1w
Valor = 0 x 12
018
18
18
18
18
12
12
0012
1.8
Valor = 0 x FE
254
254
*
254
-2
Fe
FE
00FE
25.4
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Printf (hola);
Printf (valor=>%2x\n\r,get_rtcc( ));
Printf (%2u %X %4X\n\r,x, y, z);
Printf (LCD_PUTC, n = %u ,n);
El driver LCD.C est pensado para trabajar con el PORTD o el PORTB. Por defecto,
utiliza el PORTD a menos que le indiquemos lo contrario mediante:
#define use_portb_lcd TRUE, se comenta o des comenta tal como se indica en la fig. 2
Por defecto, este driver usa siete terminales para la comunicacin entre el LCD y el
PIC. En la fig 2 se observa parte del fichero LCD.C donde se encuentran definidas las
conexiones utilizadas y la posibilidad de cambiar de puerto.
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
Se puede utilizar un LCD grfico con una controladora KS0108 (como el de la figura
3), por ejemplo la ASI-A-1286AS-LJ-EWS/W de la casa ALL SHORE INDUSTRIES.
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
WEBGRFIA
CIDIACCTEC
CENTRO DE INVESTIGACION DESARROLLO INNOVACION ASCESORIA Y
CAPACITACION EN CIENCIA Y TECNOLOGIA
http://www.mikroe.com/eng/chapters/view/82/capitulo-4-ejemplos/
http://html.rincondelvago.com/microcontroladores_2.html
http://r-luis.xbot.es/pic1/pic02.html
http://perso.wanadoo.es/pictob/microprg.htm
http://www.bairesrobotics.com.ar/data/pic16f877-guia%20detallada
%20parte2.pdf
http://robotsperu.org/foros/pic16f877a-vt35.html
http://www.monografias.com/trabajos18/descripcion-pic/descripcionpic.shtml
http://picmicrocontroller877.blogspot.com/2007/08/caracteristicas-del16f877.html
http://perso.wanadoo.es/pictob/micropic.htm
http://dspace.ups.edu.ec/bitstream/123456789/35/7/Capitulo1.pdf