Академический Документы
Профессиональный Документы
Культура Документы
16/Noviembre/2012
Los programas son editados y compilados a instrucciones mquina en el PC. El cdigo mquina es cargado del PC al sistema PIC mediante el Programador.
ESTRUCTURA DE UN PROGRAMA
Directivas
Funcin principal
Instrucciones Comentarios
Directivas de preprocesado
Programas Bloques de programa conjunto de instrucciones. Siempre debe incluirse un programa principal llamado main(). Instrucciones Definen lo que hace el programa y la secuencia de ejecucin del mismo. Comentarios Permiten describir lo que significa cada lnea del programa.
Los tipos de datos aceptados en C estndar son cinco: char (carcter) int (entero) float (coma flotante en 32 bits) double (coma flotante en 64 bits) void (sin valor) Las variables pueden ser locales o globales. Las variables locales slo pueden ser usadas en la funcin en que se declaran, mientras que las variables globales son compartidas por todas las funciones del programa (deben declararse fuera de cualquier funcin y antes de ser utilizadas).
5
#include <18f876.h> #use delay (clock=4000000) int counter; //Variable global Void FUNCION (void) { Char k, kant=0; //Variables locales } Void main ( ) { Int18 temp; //Variable local }
Los tipos de variable short y long pueden tener detrs la palabra int sin efecto alguno.
7
De asignacin
Aritmticos
10
Lgicos
De bits
11
Desplazamiento bit
Direccin/indireccin
En lenguaje C profesional es muy frecuente usar abreviaturas. As, por ejemplo, es ms habitual ver a += b; que a = a + b;
12
13
14
Sentencia if-else Se evala una expresin y, si es cierta, se ejecuta el primer bloque de cdigo (o sentencia 1). Si es falsa, se ejecuta el segundo.
if (expresin) sentencia 1; else sentencia 2; (expresin) ? (sentencia 1) : (sentencia 2);
15
16
No puede haber constantes iguales en dos case de la misma sentencia switch. Si ninguno de los case corresponde a la constante se ejecuta default
17
18
La condicin se evala antes de ejecutar la sentencia. Si es cierta, se ejecuta el bucle. Si no, se sale del mismo.
El incremento establece cmo cambia la variable de control cada vez que se repite el bucle.
19
#ASM #ENDASM
#BIT id=x.y #BYTE id=x
Las lneas entre estas dos directivas deben ser instrucciones ensamblador que se insertan tal y como aparecen.
Se crea una variable tipo bit correspondiente al bit y del byte x en memoria. Se crea una variable y se sita en el byte x en memoria. Si ya exista esa variable, se coloca fsicamente en la posicin especificada.
24
#SEPARATE
#INT_xxxx #INT_GLOBAL
#PRIORITY ints
#USE DELAY (clock = frecuencia en Hz) Define la frecuencia del oscilador que se va a utilizar, que se emplea para realizar los clculos para funciones integradas de retardo. 26
27
28
29
Se puede Crear o abrir un fichero (FILE > NEW / OPEN) o crear un proyecto (conjunto de ficheros y opciones de compilacin que se utilizan en un programa).
30
Barra de comandos
Barra de subcomandos
31
32
COMPILADOR
33
GESTIN DE PUERTOS
34
35
El puerto A, en el terminal RA4 tiene salida en drenador abierto lo que obliga a utilizar la resistencia pull-up en caso de funcionar como salida. En el puerto B, los terminales tienen una resistencia pullup interna, que se puede habilitar a traves del registro OPTION_REG (81h, 181h)
36
Usando las funciones integradas especficas del compilador. Se definen la direccin de datos si es necesario y se gestionan las entradas y las salidas mediante funciones relativas al manejo de todo el puerto o de bits particulares del mismo. Cuando se usan las funciones integradas del compilador de CCS, el cdigo que introduce el compilador puede variar en cuanto a tamao y tiempo de ejecucin. Depender de la activacin de ciertas directivas de preprocesado:
37
Lectura de puertos:
valor = PORTA; // Asigna el dato del puerto A a la variable valor. Manejo de sentencias: TRISD=0x0F; if (PORTD & 0x0F) PORTD |= 0xA0; //comprueba los 4 terminales de // menor peso del puerto D y si son // 1111 saca por los 4 terminales de // mayor peso el dato 1010.
39
bit_set (PORTC , 4); //saca un 1 por el terminal RC4 if (bit_test(PORTB,0)==1) bit_clear(PORTB,1); //si RB0 es 1 borra RB1 Tambin se puede declarar un bit de un registro con una variable mediante la directiva #BIT y trabajar directamente con la variable.
40
SW1 D1
LED-BLUE SW-SPST-MOM
R1
180
41