Sistemas Basados en
    Microprocesadores

Programación en C para PIC’s
Lenguaje de programación C
 Es un lenguaje orientado a la implementación de
 sistemas operativos.
    Es muy apreciado por la eficiencia del código que
     produce.
 Esun lenguaje de medio nivel con muchas
 características de bajo nivel.
    Dispone de estructuras típicas de alto nivel,
    pero a la vez permite un control del sistema a muy bajo
     nivel.
                         Permite incluir código
                       ensamblador en código C




 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: tipos de datos
 Los
    tipos de datos especifican los diferentes
 tamaños de valores para..
    Constantes: valor de cualquier tipo que nunca cambia.
    Variables: una variables es una forma de referirnos a una
     posición de memoria utilizada en un programa.
        Puntero: tipo especial de variable en C que contiene la
         dirección en memoria de otra variable.




 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: tipos de datos (continuación...)
Tipo                               Tamaño         Mínimo      Máximo
char, signed char                   8 bits          -128        127
unsigned char                       8 bits           0          255
int, short                          16 bits       -32768       32767
unsigned int, unsigned short        16 bits          0         65535
short long                          24 bits      -8388608     8388607
unsigned short long                 24 bits          0       16777215
long                                32 bits    -2147483648   2147483647
unsigned long                       32 bits          0       4294967295




  http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: variables
 Lasvariables deben ser declaradas en las rutinas
 antes de utilizarse.
    Siempre al principio de la función.
 La   declaración debe especificar:
    Tipo de la variable.
    Denominación de la variable.
 Enel momento de su declaración, las variables
 pueden ser inicializadas.
        int a = 0




 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: variables (continuación...)
 Matrices    de datos en ROM (arrays)
       const rom char *dataarray = “Press button to select...”
       const rom char tunes[] = {“Press”,”button”,”to”}
 Etiquetas     en C  parecidas a las constantes
       #define LightsON           0x01100110
       #define LED                PORTAbits.RA5




 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: variables (continuación...)
 Espacio      de la variables:
    Global: declaradas fuera de la función main.
        Son accesibles desde cualquier punto del programa y su vida
         útil es mientras que se ejecute el programa.
    Local: declaradas dentro de una función.
        Son accesibles sólo dentro de la función donde se declaran y
         su vida útil es mientras que esa función se ejecuta.
    Si al programador le interesa mantener el valor de
     variable para llamadas posteriores de la función, debe ser
     declarada como estática (static).




 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: variables (continuación...)
 Acceder     a datos de memoria:
    Por su nombre:
       int a;
       a = 17;
    Por su dirección (a través de punteros):
       int *bk, a;
       bk = &a;




 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: estructuras
 Condicionales:
       if (expresión)
       {
             sentencias
       }
       else
       {
              sentencias
       }




 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: estructuras (continuación...)
 Bucles:                                   for (expr1;expr2;expr3)
       while (expresión)                    {
       {                                         sentencias
           sentencias                       }
       }

       do
       {
            sentencias
       }
       while (expresión);




 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: estructuras (continuación...)
 Selección:
     switch (expresión)
     {
          case valor1:
              sentencias
              break;
         case valor2:
              sentencias
              break;
          ...
          default:
              sentencias
              break;
     }

 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: operadores
 Operadores       aritméticos:
    + suma
    - resta
    * multiplicación
    / división
    % resto
    ++ incremento
    -- decremento




 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: operadores (continuación...)
 Operadores       lógicos y de desplazamiento:
    & and
    | or
    ^ xor
    ~ not
    >> desplazamiento a derecha
       PORTA = PORTA >> 4
    << desplazamiento a izquierda




 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: operadores (continuación...)
 Operadores       de comparación y lógicos:
    == igual
    != no iguales
    > mayor que
    >= mayor o igual que
    < menor que
    <= menor o igual que
    && and
                                       No es lo mismo el
    || or                           operador & que el &&.
                                     ¿Cuál es la diferencia?
    ! not



 http://paginaspersonales.deusto.es/jonathan.garibay/
Conceptos en C: funciones
 Ellenguaje C está diseñado para el uso de
 funciones (conjunto de instrucciones que realizan
 una operación concreta), que se combinan para dar
 lugar a un programa.
    Programación estructurada.
 Lasvariables se pasan de una función a otra en
 forma de parámetros.
    Por defecto, el paso de parámetros es por valor.
 La  primera función que se ejecutará será la Main.
 Es necesario definir una función antes de poder
  utilizarla.
    Funciones prototipo.

 http://paginaspersonales.deusto.es/jonathan.garibay/
C y los microcontroladores PIC
 Referencia      a los registros del µcontrolador:
    Los registros del microcontrolador son direccionables en
     memoria como variables.                  Incluyendo el archivo de
       PORTA = LightsON;                                cabecera <p18fxxxx.h>
    Se puede hacer referencia a los bits individuales:
       TRISBbits.TRISB3 = 0;
       PORTBbits.RB4 = 1;
 #pragma      statements
    Específican detalles del microcontrolador que utilizamos
     (palabra de configuración).
       #pragma config OSC=XT, WDT=OFF



 http://paginaspersonales.deusto.es/jonathan.garibay/
C y los microcontroladores PIC (continuación…)
 Se debe indicar cuales son las funciones de
 interrupción por medio de la siguiente directiva:




 http://paginaspersonales.deusto.es/jonathan.garibay/
Ejemplo de programa en C
#include <p18F4520.h> /*Para las declaraciones de TRISB y
                      PORTB*/

int counter;                      //variable global

void main(void)
{
  counter=1;
  TRISB=0;                        //configuración de PORTB
  while (counter <=15)
  {
        PORTB = counter;          //mostrar el valor de counter
        counter++;
  }
}


 http://paginaspersonales.deusto.es/jonathan.garibay/

Más contenido relacionado

PDF
Curso de C++ (2014)
PDF
05 - Funciones en lenguaje C
PDF
02 - Tipos de datos escalares en Python 3
PDF
Tipos de datos
DOCX
Librerias en-lenguaje-c
PDF
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C
Curso de C++ (2014)
05 - Funciones en lenguaje C
02 - Tipos de datos escalares en Python 3
Tipos de datos
Librerias en-lenguaje-c
02 - Conceptos fundamentales sobre tipos de datos en lenguaje C

La actualidad más candente (19)

PPTX
Sintaxis del lenguaje c++
PPS
Estructuras control java-
PDF
Clase 5
PDF
Transparencias4
DOC
Elementos BáSicos Del Lenguaje Java Alumno
PDF
C sharp
PPTX
Estructuras de los lenguajes de programacion
PPT
Variables, constantes y tipos de datos en C
PDF
Ejemplos c
DOCX
Lista de raptor sus comandos y su función
DOCX
Comandos de raptor c# y java
PDF
Variables, Constantes y Tipos de datos en C
PDF
Chuleta de lenguaje C para principiantes
PPT
Lenguajecviviana
PPT
Operadores y expresiones
DOCX
Apuntes1 elementos del lenguaje c
PPT
Elementos del lenguaje java
PDF
Guia referencia mc
PPTX
Instrucciones para c_
Sintaxis del lenguaje c++
Estructuras control java-
Clase 5
Transparencias4
Elementos BáSicos Del Lenguaje Java Alumno
C sharp
Estructuras de los lenguajes de programacion
Variables, constantes y tipos de datos en C
Ejemplos c
Lista de raptor sus comandos y su función
Comandos de raptor c# y java
Variables, Constantes y Tipos de datos en C
Chuleta de lenguaje C para principiantes
Lenguajecviviana
Operadores y expresiones
Apuntes1 elementos del lenguaje c
Elementos del lenguaje java
Guia referencia mc
Instrucciones para c_
Publicidad

Similar a P03.Programación en c para pics (20)

DOC
Programacion c
DOC
PROGRAMACION EN C
DOC
PROGRAMACIÓN EN C
PDF
Introducción
PDF
Programación c
PDF
DOC
Lenguaje c completo 6 g x revisar x los estudiantes
PDF
El lenguaje de programacion c++ prev
PDF
Lenguaje C (pdf)
PDF
Lenguaje c
PDF
Lenguaje c
PDF
Lenguaje c
PDF
02. lenguaje c autor enrique vicente bonet esteban
PDF
Lenguaje C
PDF
Gran Libro de C en Español
PDF
Lenguaje c
Programacion c
PROGRAMACION EN C
PROGRAMACIÓN EN C
Introducción
Programación c
Lenguaje c completo 6 g x revisar x los estudiantes
El lenguaje de programacion c++ prev
Lenguaje C (pdf)
Lenguaje c
Lenguaje c
Lenguaje c
02. lenguaje c autor enrique vicente bonet esteban
Lenguaje C
Gran Libro de C en Español
Lenguaje c
Publicidad

Más de Jonathan Ruiz de Garibay (20)

PDF
Vocaciones STEM
PDF
Configuraciones con transistores BJT
PDF
Amplificadores Multietapa
PDF
Amplificación de señal con BJT
PDF
Recta de carga para señal
PDF
Práctica09.Librerías
PDF
Práctica08.Comunicaciones
PDF
Práctica06.Controlando Motores
PDF
Práctica05.Interrupciones en Arduino
PDF
Práctica04.Programando Arduino
PDF
Práctica01.Sistemas de Entrada Salida
PDF
Programación Basada en Autómatas
PDF
Introduccion a la Programación
PDF
Fundamentos de los Microcontroladores
PDF
Polarización de los Transistores
PDF
Programación en Arduino
PDF
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
PDF
Introducción a la planificación de proyectos
PDF
01.Puntos Clave de una Presentación Oral
PDF
02.El Soporte Visual
Vocaciones STEM
Configuraciones con transistores BJT
Amplificadores Multietapa
Amplificación de señal con BJT
Recta de carga para señal
Práctica09.Librerías
Práctica08.Comunicaciones
Práctica06.Controlando Motores
Práctica05.Interrupciones en Arduino
Práctica04.Programando Arduino
Práctica01.Sistemas de Entrada Salida
Programación Basada en Autómatas
Introduccion a la Programación
Fundamentos de los Microcontroladores
Polarización de los Transistores
Programación en Arduino
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
Introducción a la planificación de proyectos
01.Puntos Clave de una Presentación Oral
02.El Soporte Visual

P03.Programación en c para pics

  • 1. Sistemas Basados en Microprocesadores Programación en C para PIC’s
  • 2. Lenguaje de programación C  Es un lenguaje orientado a la implementación de sistemas operativos.  Es muy apreciado por la eficiencia del código que produce.  Esun lenguaje de medio nivel con muchas características de bajo nivel.  Dispone de estructuras típicas de alto nivel,  pero a la vez permite un control del sistema a muy bajo nivel. Permite incluir código ensamblador en código C http://paginaspersonales.deusto.es/jonathan.garibay/
  • 3. Conceptos en C: tipos de datos  Los tipos de datos especifican los diferentes tamaños de valores para..  Constantes: valor de cualquier tipo que nunca cambia.  Variables: una variables es una forma de referirnos a una posición de memoria utilizada en un programa.  Puntero: tipo especial de variable en C que contiene la dirección en memoria de otra variable. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 4. Conceptos en C: tipos de datos (continuación...) Tipo Tamaño Mínimo Máximo char, signed char 8 bits -128 127 unsigned char 8 bits 0 255 int, short 16 bits -32768 32767 unsigned int, unsigned short 16 bits 0 65535 short long 24 bits -8388608 8388607 unsigned short long 24 bits 0 16777215 long 32 bits -2147483648 2147483647 unsigned long 32 bits 0 4294967295 http://paginaspersonales.deusto.es/jonathan.garibay/
  • 5. Conceptos en C: variables  Lasvariables deben ser declaradas en las rutinas antes de utilizarse.  Siempre al principio de la función.  La declaración debe especificar:  Tipo de la variable.  Denominación de la variable.  Enel momento de su declaración, las variables pueden ser inicializadas. int a = 0 http://paginaspersonales.deusto.es/jonathan.garibay/
  • 6. Conceptos en C: variables (continuación...)  Matrices de datos en ROM (arrays) const rom char *dataarray = “Press button to select...” const rom char tunes[] = {“Press”,”button”,”to”}  Etiquetas en C  parecidas a las constantes #define LightsON 0x01100110 #define LED PORTAbits.RA5 http://paginaspersonales.deusto.es/jonathan.garibay/
  • 7. Conceptos en C: variables (continuación...)  Espacio de la variables:  Global: declaradas fuera de la función main.  Son accesibles desde cualquier punto del programa y su vida útil es mientras que se ejecute el programa.  Local: declaradas dentro de una función.  Son accesibles sólo dentro de la función donde se declaran y su vida útil es mientras que esa función se ejecuta.  Si al programador le interesa mantener el valor de variable para llamadas posteriores de la función, debe ser declarada como estática (static). http://paginaspersonales.deusto.es/jonathan.garibay/
  • 8. Conceptos en C: variables (continuación...)  Acceder a datos de memoria:  Por su nombre: int a; a = 17;  Por su dirección (a través de punteros): int *bk, a; bk = &a; http://paginaspersonales.deusto.es/jonathan.garibay/
  • 9. Conceptos en C: estructuras  Condicionales: if (expresión) { sentencias } else { sentencias } http://paginaspersonales.deusto.es/jonathan.garibay/
  • 10. Conceptos en C: estructuras (continuación...)  Bucles: for (expr1;expr2;expr3) while (expresión) { { sentencias sentencias } } do { sentencias } while (expresión); http://paginaspersonales.deusto.es/jonathan.garibay/
  • 11. Conceptos en C: estructuras (continuación...)  Selección: switch (expresión) { case valor1: sentencias break; case valor2: sentencias break; ... default: sentencias break; } http://paginaspersonales.deusto.es/jonathan.garibay/
  • 12. Conceptos en C: operadores  Operadores aritméticos:  + suma  - resta  * multiplicación  / división  % resto  ++ incremento  -- decremento http://paginaspersonales.deusto.es/jonathan.garibay/
  • 13. Conceptos en C: operadores (continuación...)  Operadores lógicos y de desplazamiento:  & and  | or  ^ xor  ~ not  >> desplazamiento a derecha PORTA = PORTA >> 4  << desplazamiento a izquierda http://paginaspersonales.deusto.es/jonathan.garibay/
  • 14. Conceptos en C: operadores (continuación...)  Operadores de comparación y lógicos:  == igual  != no iguales  > mayor que  >= mayor o igual que  < menor que  <= menor o igual que  && and No es lo mismo el  || or operador & que el &&. ¿Cuál es la diferencia?  ! not http://paginaspersonales.deusto.es/jonathan.garibay/
  • 15. Conceptos en C: funciones  Ellenguaje C está diseñado para el uso de funciones (conjunto de instrucciones que realizan una operación concreta), que se combinan para dar lugar a un programa.  Programación estructurada.  Lasvariables se pasan de una función a otra en forma de parámetros.  Por defecto, el paso de parámetros es por valor.  La primera función que se ejecutará será la Main.  Es necesario definir una función antes de poder utilizarla.  Funciones prototipo. http://paginaspersonales.deusto.es/jonathan.garibay/
  • 16. C y los microcontroladores PIC  Referencia a los registros del µcontrolador:  Los registros del microcontrolador son direccionables en memoria como variables. Incluyendo el archivo de PORTA = LightsON; cabecera <p18fxxxx.h>  Se puede hacer referencia a los bits individuales: TRISBbits.TRISB3 = 0; PORTBbits.RB4 = 1;  #pragma statements  Específican detalles del microcontrolador que utilizamos (palabra de configuración). #pragma config OSC=XT, WDT=OFF http://paginaspersonales.deusto.es/jonathan.garibay/
  • 17. C y los microcontroladores PIC (continuación…)  Se debe indicar cuales son las funciones de interrupción por medio de la siguiente directiva: http://paginaspersonales.deusto.es/jonathan.garibay/
  • 18. Ejemplo de programa en C #include <p18F4520.h> /*Para las declaraciones de TRISB y PORTB*/ int counter; //variable global void main(void) { counter=1; TRISB=0; //configuración de PORTB while (counter <=15) { PORTB = counter; //mostrar el valor de counter counter++; } } http://paginaspersonales.deusto.es/jonathan.garibay/