Programar PIC`s en lenguaje C18 En 64 horas. El siguiente material está desarrollado como complemento didáctico para la materia de microcontroladores, puede ser utilizados por docentes y estudiantes con disciplina de autoaprendizaje. Programar PIC`s en lenguaje C18 En 64 horas. Autor: Ramdhar Hadit Yusseff Vanegas Esp. En control e instrumentación industrial Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 2.5 Colombia.
Tema 4 Formato de instrucciones del código fuente, operaciones aritméticas y lógicas www.canalgif.net/ Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Instrucciones del Código fuente. Clase 2 Instrucciones del Código fuente. A continuación se muestran las palabras propias del codigo fuente, esto quiere decir que estan ocupadas y nosotros no las podemos utilizar para nombrar una variable o una función. Las 32 palabras clave son: auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto ,if ,int ,long, register, return ,short, signed, sizeof, static, struct switch ,typedef, union, unsigned, void, volatile ,while. Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Estructura de programación en C18 Clase 2 Estructura de programación en C18 #include <p18f4550.h> #pragma Int variable, char variable2 Void main (void) Incluir Librerías Configurar Pragma o fuses Declaración de Variables y Funciones Crear código con función main Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Clase 2 Librerías Son un conjunto de subprogramas que permiten simplificar la programación, pueden contener datos o tareas especificas, existen algunas predeterminadas otras pueden ser creadas para satisfacer nuestras necesidades. (se pueden comparar con las aplicaciones que ya vienen predeterminadas en un smartphone) adc, ancomp, can2510, capture, campare, ctmu, ctype, delays, dpslp, EEP, errno, flash, float, geenricTypeDefs, i2c, io, limits, math, mwire, pmp, p18xxxxxxx - portb, pps, proMPT, pwm, reset, rtcc, setjmp, spi, stdarg, stddef, stdio, stdlib, string, sw_i2c, sw_spi, sw_uart, timers, usart, xlcd. Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Clase 2 Pragma o Fuses PIC 18F4550 Son instrucciones que permiten configurar aspectos importantes del microcontrolador, cada fuse activa o desactiva una opción de funcionamiento. Los fuses son diferentes para cada Microcontrolador. (se pueden comparar con las configuraciones que pueden realizar para su smartphone, como tipo de letra, tema, tono, colores, entre otros.) PLL Prescaler Selection bits: CCP2 MUX bit: CPU System Clock Postscaler: Stack Full/Underflow Reset Enable bit: USB Clock Selection bit Single-Supply ICSP Enable bit: Oscillator Selection bits: ICPORT Fail-Safe Clock Monitor Enable bit: Extended Instruction Set Enable bit: Internal/External Oscillator Switchover bit: Background Debugger Power-up Timer Enable bit: Code Protection bit Block Brown-out Reset Enable bits: Boot Block Code Protection Brown-out Voltage bits: Data EEPROM USB Voltage Regulator Enable bit: Write Protection bit Block Watchdog Timer Enable bit: Boot Block Write Protection Watchdog Timer Postscale Select bits: Write Protection MCLR Pin Enable bit: Low-Power Timer 1 Oscillator Enable bit: Table Read Protection bit Block PORTB A/D Enable bit: Boot Block Table Read Protection Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Declaración de variables Clase 2 Declaración de variables Tipo Bytes Desde Hasta unsigned int 2 65535 signed long 4 -2147483648 2147483647 unsigned long 4294967295 float 3,4x10-38 3,4x1038 double 8 1,7x10-308 1,7x10308 long double 10 3,4x10-4932 3,4x104932 Tipo Bytes Desde Hasta void Es nulo (NULL) no retorna nada signed char 1 -128 127 unsigned char 255 signed short 2 -32768 32767 unsigned short 65535 signed int Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Declaración de variables Clase 2 Declaración de variables Tipo_dato1 variable1, variable2, … , variablen; Tipo_dato2 variable3, variable4, … , variablem; Posición Global Posición Local #include <P18F4550.h> // declaración de variables globales //declaración de funciones char resistencia; short voltaje = 50; int Corriente; // inicio del código. void main (void){ // declaración de variables locales } #include <P18F4550.h> // declaración de variables globales //declaración de funciones // inicio del código. void main (void){ // declaración de variables locales char resistencia; short voltaje = 50; int Corriente; } Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Declaración de Funciones Clase 2 Declaración de Funciones Todo código debe contener una función fundamental llamada main, pero se pueden crear otras con otro nombre y solo ejecutarán las sentencias que se encuentran dentro de ellas. Tipo_dato_salida Nombre_función (Tipo dato_in){….} Crear una función Llamado a la función void función1 (void){ //sentencias de la función } Int función2 (void){ void función3 (char x){ void main (void){ función1 (); dato = función2 (); función3 (25); } Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Estructura de programación en C18 Clase 2 Estructura de programación en C18 Configurar Pragma Declaraciónvariables Incluir Librerías Función main Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Estructura de programación en C18 Clase 2 Estructura de programación en C18 #include <p18f4550.h> Configurar Pragma Declaraciónvariables Función main Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Estructura de programación en C18 Clase 2 Estructura de programación en C18 #include <p18f4550.h> #pragma Declaraciónvariables Función main Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Estructura de programación en C18 Clase 2 Estructura de programación en C18 #include <p18f4550.h> #pragma Int variable, char variable2 Función main Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Inténtalo Nuevamente Clase 2 Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Estructura de programación en C18 Clase 2 Estructura de programación en C18 #include <p18f4550.h> #pragma Int variable, char variable2 Void main (void) Configurar Pragma Declaraciónvariables Incluir Librerías Función main
Operadores Matemáticos y de comparación Clase 2 Operadores Matemáticos y de comparación electronicayrobotica.wordpress.com Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Clase 2 Operadores Lógicos: Operadores de manejo de bits: electronicayrobotica.wordpress.com Operadores de manejo de bits: Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Operadores de Asignación: Clase 2 Operadores de Asignación: electronicayrobotica.wordpress.com Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Condicionales en if – if else - switch Clase 2 Condicionales en if – if else - switch Condicional if Condicional if - else if (condicional ){ //sentencias de la función else { } if (edad >= 18 ){ ++ mayor_edad; ++ menor_edad; if (condicional ){ //sentencias de la función } if (edad >= 18 ){ ++ adulto; if (edad >= 18 && edad<=65 ){ Ejecuta las sentencias, si el condicional es verdadero. Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Clase 2 Diagrama de flujo if progra.usm.cl Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Clase 2 Condicional Switch Ejemplo de condicional Switch Switch (Variable){ Case 0x01: //Sentencias.- Break; Case 0x02: Default: } Ejecuta las sentencias de cada caso, si la variable es igual al valor colocado en cada caso, de no ser igual a ninguno de los casos, ejecutará las sentencias de Default. Switch (Variable){ Case T: ++temperatura Break; Case F: ++flujo Case P: ++presión Default: ++otras_variables } Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Diagrama de flujo Switch Clase 2 Diagrama de flujo Switch Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Clase 2 Bucles while - for Bucle While Bucle do while do{ while (condicional ){ //sentencias de la función } while (temperatura >= 25 ){ aire_acondicionado = 1; Ejecuta las sentencias, mientras el condicional se cumpla; do{ //sentencias de la función }while (condicional ); ++a; }while (a==5 ); Es muy parecida al bucle while, con la diferencia que la sentencia se ejecuta por lo menos una vez antes de preguntar. Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Clase 2 Diagrama de flujo Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Clase 2 Bucles while - for Bucle for incremento Bucle for decremento for (inicio ; final ; pasos ){ //sentencias de la función } for (i=0 ; i<= 10 ; i++){ led = 1; Delay10Ktcyx(200); led=0; _-1_0_1_2_3_4_5_6_7_8_9_10_11 for (inicio ; final ; pasos ){ //sentencias de la función } for (i=10; i>= 0; i=i-2){ led = 1; Delay10Ktcyx(200); led=0; _-1_0_1_2_3_4_5_6_7_8_9_10_11 Ejecuta las sentencias, para variables que se encuentren en el rango que va desde el inicio hasta el final y se mueve como se especifica en los pasos. Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Clase 2 Diagrama de flujo for http://aprenderaprogramar.com/ Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Bibliografía Tema 4 www.mikroe.com www.programiz.com www.mexchip.com www.microchip.com www.todopic.com.ar listas.20minutos.es micro887.blogspot.com www.ucontrol.com.ar progra.usm.cl www.canalgif.net/ Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas
Tema 4 Palabras clave Microcontrolador, PIC, 18f4550, Código fuente, Librerías, pragma, fuses, condicionales, funciones, variables. www.canalgif.net/ Programación de PIC 18F4550 en C18 Autor: Ramdhar Hadit Yusseff Vanegas