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

COMPILADOR C

DE CCS
PRINCIPALES
FUNCIONES Y
DIRECTIVAS
ARCHIVO HEADER
ENCABEZAMIENTO
Estn siempre integradas en todos los compiladores
ANSI C,( Instituto Nacional Estadounidense de
Estndares).
El archivo header del microcontrolador contiene las
equivalencias para el compilador entre los nombres de
los puertos, registros, bits y seales con su direccin
fsica en el microcontrolador.
En el caso del compilador CCS, debe incluirse la
directiva #include <16F628A.h>, el compilador busca el
archivo en la carpeta "devices" en donde se instalaron
originalmente los drivers para cada microcontrolador.
Para el valor 40:
40/8:
Cociente = 5 que es la direccin del puerto A(0x05),
Resto = 0 que es el PIN 0 que es el que queremos cambiar.

Esa es la relacion que hay entre el nmero que se pone y el
PIN del puerto correspondiente.
// Constants used to identify pins in the above are:

#define PIN_A0 40
#define PIN_A1 41
#define PIN_A2 42
#define PIN_A3 43
#define PIN_A4 44
#define PIN_A5 45
Las funciones son los elementos principales de un programa en
C.
Son bloques en los cuales se realiza una tarea especfica.
Un programa en C est formado por la funcin main que es
el bloque principal, por funciones propias del programador
y por funciones de libreras propias del compilador.
Una caracterstica importante de las funciones, es que pueden
recibir parmetros y que pueden devolver un valor. La misma
funcin nos puede servir para varios casos, con tan solo variar
el valor de los parmetros. El compilador de CCS incluye
muchas funciones "built-in" (listas para usarse) en sus libreras
para el control directo de muchos de los recursos del PIC, para
utilizarlas slo necesitamos saber los parmetros que reciben y
los valores que devuelven.
FUNCIONES

VARIABLES

Qu son las variables? pues sencillamente el poder
identificar con un nombre una o varias posiciones de
memoria de la RAM de nuestro PIC y de esta manera el
poder almacenar all los datos que va a utilizar nuestro
programa
MEMORIA RAM DEL PIC

La memoria RAM en cuyos registros se irn almacenando
los valores de las variables que nosotros queramos y cuando
nosotros queramos (por programa), al apagar el pic esta
memoria se borra.
PUERTOS DEL PIC

Por Ejemplo:

Si TRISB es igual a 00000001 todos sus pines sern salidas
salvo RB0 que esta como entrada

Cuando el PIC arranca se encuentra en el BANCO 0, como
TRISA y TRISB estn en el BANCO 1 no queda otra,
deberemos cambiar de banco. Esto se logra a travs del
Registro STATUS
DELAY


Esta instruccin DETIENE la ejecucin del
programa, durante un determinado tiempo, el
parmetro tiempo es un nmero que para el
PIC es en milisegundos.
WHILE



IF




FOR




Expresin 1; inicializa la variable variables de control del
bucle.
Expresin 2; representa la condicin de continuacin en el
bucle.
Expresin 3; modifica el valor de las variables de control en
cada iteracin del bucle.

Los puntos y comas que separan cada expresin son
obligatorios.
for(i=1;i<=100;++i){
FUSES DEL PIC

Sirven para configurar ciertos aspectos del
microcontrolador. Cada FUSE activa o desactiva una
opcin de funcionamiento.
#define MAXIMO 30

Esta orden se ejecuta de la siguiente forma: en la fase de
compilacin al ejecutar #define el compilador sustituye
cada operacin de la primera cadena de caracteres por la
segunda, MAXIMO por el valor 30 adems, no se permite
asignar ningn valor a esa constante.
Es decir si pusiramos:

#define MAXIMO = 30

Al compilar tendramos un error.

Nota: La declaracin #define no acaba en ";"
#DEVICE
Syntax: #device chip options
chip is the name of a specific processor
(like: PIC16C74),
Options are qualifiers to the standard
operation of the device.
Example:
#device PIC16F877
#INCLUDE
Syntax:
#include <filename>
#include "filename

Ejemplos:
#include <16f877.h>
#include lcd.h
#DEFINE
Syntax: #define id text
Used to provide a simple string
replacement of the ID with the given text
from this point of the program and on.
Examples:
#define verdadero 1
#define falso 0
#USE ****_I/O
Afectan a como utilizamos los TRISX
Syntax:
#use fast_io (port)
#use fixed_io (port_outputs=pin, pin?)
#USE STANDARD_IO (port)
Ejemplo
#use fast_io (A)
#USE DELAY
Syntax: #use delay (clock=speed(Hz))
Tells the compiler the speed of the
processor and enables the use of the
built-in functions: delay_ms() and
delay_us().
Ejemplo:
#use delay (clock=20000000)

#BYTE
Syntax: #byte id = x
Elements: id is a valid C identifier, x is a
C variable or a constant
Coloca la variable id en la posicion de
memoria x.
Ejemplo:
#byte portb=5
#INT_xxx
Indica que la funcion a continuacion es
la rutina de atencion de una
determinada interrupcin

#INT_EXT External interrupt
#INT_RTCC Timer 0 (RTCC) overflow
#INT_TIMER1 Timer 1 overflow
FUNCIONES ESPECIFICAS
DEL COMPILADOR
RS232 I/O
I2C I/O
Discrete I/O
SPI two wire I/O
Parallel Slave I/O
Delays
Processor
Controls
Bit/Byte
Capt/Comp/PWM
Timers
A/D Conversion
EEPROM
C Math
Etc.
DELAYS
delay_ms(tiempo)

delay_us(tiempo)

delay_cycles(ciclos) (0-255)
1 ciclo= 4 ciclos de reloj

INPUT( )
Syntax: value = input (pin)
Returns:
0 (or FALSE) if the pin is low,
1 (or TRUE) if the pin is high
Ejemplo:
Encendido=input(PIN_A4)


INPUT_x()
Syntax:
value = input_a()
value = input_b()
value = input_c()
...
Returns: An 8 bit int representing the
port input data.
OUTPUT_X()
Syntax:
output_a (value)
output_b (value)
...
Parameters: value is an 8 bit int
Function: Output an entire byte to a
port.
OUTPUT_BIT( )
Syntax: output_bit (pin, value)
Function: Outputs the specified value (0
or 1) to the specified I/O pin.
Ejemplos
Output_bit (PIN_D1,0)
Output_bit(PIN_A3,1)
OUTPUT_xxxx()
OUTPUT_HIGH( )
Syntax: output_high (pin)
Function: Sets a given pin to the high state.

OUTPUT_LOW( )
Syntax: output_low (pin)
Function: Sets a given pin to the ground
state.
SET_TRIS_X()
Configura los registros de
direccionamiento de los puertos (TRIS)
0 significa salida
1 significa entrada
Ejemplo:
Set_tris_a(0b00001011)
ENABLE/DISABLE
INTERRUPTS
Permiten o inhiben las interrupciones.

Ejemplos:
enable_interrupts(GLOBAL);
disable_interrupts(INT_TIMER0);
enable_interrupts(INT_TIMER1);
OTRAS FUNCIONES
setup_adc_ports()
setup_adc()
set_adc_channel()
read_adc()

setup_timer_X()
set_timer_X()
get_timer_X()


swap()


setup_ccpX()
set_pwmX_duty()

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