Directivas a incluir al inicio de los programas:
#include<16F877A.h> archivo donde se incluyen las definiciones de los registros del PIC.
#use delay (clock=4000000); directiva para el uso de retardos, entre paréntesis tenemos que poner la frecuencia de reloj que vamos a utilizar.
#use rs232 (baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) esta directiva es para la comunicación del PIC con otro dispositivo vía RS232, por ejemplo un ordenador, en ella se encuentran definidas los prototipos de las funciones de entrada y salida como printf().
#fuses XT,PUT,NOWDT esta directiva
#include <LCD.c>
lcd_init();
printf("Esto es una cadena\r");
\r
|
Retorno de carro
|
\t
|
Tabulador
|
\'
|
Comilla simple
|
\"
|
Comillas dobles
|
\\
|
Barra invertida
|
\?
|
Símbolo de interrogación
|
\0
|
Caracter nulo
|
\%
|
Símbolo Tanto por ciento
|
\b
|
Retroceder un caracter
|
Directivas del preprocesador:
Son extensiones del C estandard. Comienzan siempre por el carácter #. El compilador CCS admite que se inicie con PRAGMA para mantener la compatibilidad con otros compiladores.
#INLINE
#PRAGMA INLINE
Directivas de control de memoria:
#ASM
#END ASM
Las lineas incluidas entre estas dos directivas se tratan como código ensamblador. La variable _RETURN_ se puede usar para pasar un valor de retorno de la funcion.#BIT identificador = x.y
Crea un identificador ID que se puede usar como SHORT INT
#define
Declaración de variables:
tipo nombre_variable [valor];
int i;
int i=5;
int a,b,c,d,e;
const int Min=10, INTERVAL=15;
#define Min 10
Tipos de variables:
Operadores:
expresion = expresion1 operador expresion2
variable = variable + 5;
variable += 5;
Operadores aritméticos :
Operador | Descripción |
---|---|
+
|
Suma
|
-
|
Resta
|
*
|
Multiplicación
|
/
|
División
|
%
|
Módulo (Resto de una división entera)
|
++
|
Incrementa en uno el valor del operando
|
--
|
Decrementa en uno el valor del operando
|
Operadores de asignacion:
Operador | Descripción |
---|---|
+=
|
Asignación de suma. x+=y es lo mismo que x=x+y
|
-=
|
Asignación de resta. x-=y es lo mismo que x=x-y
|
*=
|
Asignación de multiplicación. x*=y es lo mismo que x=x*y
|
/=
|
Asignación de división. x/=y es lo mismo que x=x/y
|
%=
|
Asignación de resto de división. x%=y es lo mismo que x=x%y
|
<<=
|
Asignación de desplazamiento a la izquierda. x<<=y es lo mismo que x=x<<y
|
>>=
|
Asignación de desplazamiento a la derecha. x>>=y es lo mismo que x=x>>y
|
&=
|
Asignación de AND de bits. x&=y es lo mismo que x=x&y
|
|=
|
Asignación de OR de bits. x|=y es lo mismo que x=x|y
|
^=
|
Asignación de OR exclusivo de bits (XOR). x^=y es lo mismo que x=x^y
|
Operadores relacionales:
Operador | Descripción |
---|---|
<
|
Menor que
|
>
|
Mayor que
|
<=
|
Menor o igual que
|
>=
|
Mayor o igual que
|
==
|
Igual a
|
¡=
|
Distinto de
|
Operadores Lógicos:
Operador | Descripción |
---|---|
!
|
NO lógico
|
&&
|
Y lógico
|
||
|
O lógico
|
Operador | Descripción |
---|---|
~
|
Negación de bits (complemento a 1)
|
&
|
Y de bits (AND)
|
|
|
O de bits (OR)
|
^
|
O exclusivo de bits (XOR)
|
>>
|
Desplazamiento a la derecha
|
<<
|
Desplazamiento a la izquierda
|
Operadores de direccion (&) e indireccion (*) (punteros):
Operador | Descripción |
---|---|
&
|
Operador de dirección
|
*
|
Operador de inderección
|
->
|
Acceder a los miembros de una estructura por medio de punteros
|
int y,z; //declaración de las variables x e y de tipo entero:
int *x; //declaración de la variable puntero x que guardará la dirección de memoria de una variable de tipo entero.
x=&y; // a través del operador de dirección (&) le asigno al puntero x la dirección de memoria donde está guardada la variable y.
z=*x; //a través del operador de inderección (*) le asignamos a z el valor de la variable cuya dirección está almacenada en la variable puntero x.
Constantes:
12 - Decimal
o12 - Octal
0x12 - Hexadecimal
0b010010 - Binario
'x' - Caracter
'\010' - Caracter octal
'/x' - Caracter especial (n,t,b,r,f,',\d,v)
"abcdefg" - Cadena (caracter nulo al final"
Identificadores:
ABCDEfgh - Hasta 32 caracteres (no puede empezar por numero)
var[x] - Indice (x es un valor)
var[x][y] - Indice multiple
ID.ID - Referencia a una estructura o union
ID-->ID - Referencia a una estructura o union
Funciones de Salida
(bit)
output_low(PIN_Xn) //pone a 0.
output_high(PIN_Xn) //pone a 1.
output_bit(PIN_Xn,valor) //pone el pin Xn a valor (0 ó 1). output_toggle (PIN_Xn) //complementa el
valor del pin output_float (PIN_Xn)
//Pin como entrada (simula d. ab.) 15
Funciones de E/S (bit)
Funciones de E/S (bit)
output_low(PIN_A0);
output_high(PIN_B1);
output_bit(PIN_B3,0);
output_toggle
(PIN_C6);
output_float
(PIN_A2);
valor=input_state
(PIN_B7);
valor=input(PIN_C3);
17
Funciones de E/S (byte)
Funciones de E/S (byte)
output_X(valor) à Escribe valor en el puerto X
valor= input_X()
à Lee
el valor del puerto X
No hay comentarios :
Publicar un comentario