Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MCU C3 Prog MCU Leng Alto Nivel - PIC C Part 1
MCU C3 Prog MCU Leng Alto Nivel - PIC C Part 1
Microcontroladores
C3
Programación del MCU
en lenguaje de alto
nivel
C3 Programación del MCU en lenguaje de alto nivel
Directiva de preprocesador
• Una directiva de preprocesador es un comando para el
preprocesador C (que es se invoca automáticamente como
el primer paso en la compilación de un programa). 3
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Declaración (Declaration)
• Una declaración establece los nombres y atributos de las
variables, funciones y tipos utilizados en el programa.
• Las variables globales declaran funciones externas y son
visibles desde el final de la declaración hasta el final del
archivo.
4
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Definición
• Una definición establece el contenido de una variable o
función.
• A la definición se le asigna el almacenamiento necesario
para variables y funciones.
Expresión
• Una expresión es una combinación de operadores y
operandos que produce un valor único
5
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Sentencia (Statement)
Las sentencias controlan el flujo o el orden de ejecución del
programa en un C programa.
Función
• Una función es una colección de declaraciones,
definiciones, expresiones y sentencias que realizan una
tarea específica.
• Las llaves encierran el cuerpo de una función.
• Las funciones no pueden estar anidadas en C.
Función principal
Todos los programas en C deben contener una función
llamada main donde el programa comienza la ejecución. 6
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
main ()
{ /* beginning of main function and program*/
int radius_squared; /* local declaration */
int radius = 3; /* declaration and initialisation */
radius_squared = square(radius); /* pass a value to a function */ 7
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
8
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
#include <stdio.h>
/* My 1st C program */
Main( )
{
printf("Hello world!");
}
14
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Ejemplo
1. Hola Mundo
15
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Ejemplo
2 Led – Push Button
16
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.3 #Pragma
3.1.3 #pragma
El comando pragma le indica al compilador que realice una
determinada acción en el momento de la compilación, como
especificar el PIC que se está utilizando
#pragrna device PIC16C54
17
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.4 Main
3.1.4 Main
Cada programa debe tener una función main que sólo puede
aparecer una vez.
• No se pueden colocar parámetros entre los paréntesis ( )
que siguen.
#include <16C54.h>
main()
{
printf{“Microchip is”);
while ( !kbhit());
printf(“#1!);
} 20
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
#include <thisfile.h>
#include “thisfile.h”
22
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
control_string
• Es una cadena con comillas dobles en cada extremo.
• Dentro de esto se puede utilizar cualquier combinación de
letras, números y símbolos.
23
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
argument_list
• Puede no ser necesario si no hay especificadores de
formato en la cadena de formato.
• La argument_list puede estar compuesta de constantes y
variables.
• Los siguientes dos ejemplos muestran sentencias printf()
utilizando una constante y luego una variable.
printf("Hello world!"};
printf("Microchip is #%d!", 1}; 24
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Especificador de formato
• El especificador de formato (%d) depende del tipo de datos
que se desplegaran
NOTA
• Un 0 (cero) seguido de un carácter % dentro de una cadena
de formato forza ceros iniciales que se imprimirán.
• El número siguiente especifica el ancho del campo impreso
Imprimiría
The Hex of decimal 12 is Oc
Escape Sequences
\n newline \a audible bell
\t horizontal tab \b backspace
\r carriage return \0 null character
\f formfeed \v vertical tab
\‘ single quote \xhhh inset HEX code hhh
\“ double quote
\\ backs lash
%% percent sign
\? question mark
27
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
28
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Ejemplo
2 Led – Push Button
29
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Ejemplo
3 Corrimiento de bits
30
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Ejemplo
4 Contador binario
31
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Ejemplo
4 Teclado Matricial
32
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Ejemplo
4 Teclado Matricial
33
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Ejemplo
4 Teclado Matricial Continuación
34
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.7 Variables
3.1.7 Variables
Un variable es un nombre para una ubicación de memoria
específica.
• Esa localidad de memoria puede contener varios valores
dependiendo de cómo se haya declarado la variable.
• En C, todas las variables deben declararse antes de usarse.
• La declaración de variables le dice al compilador qué tipo
de variable se usará.
• Todas las declaraciones de variables son sentencias en C,
por lo tanto, terminan con un punto y coma.
Los cinco tipos de datos básicos que admite C son char, int,
float, doble, vacío.
35
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.7 Variables
36
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.7 Constants
1.8 Constants
Una constante es un valor fijo que el programa no puede
cambiar.
• Por ejemplo, 25 es una constante.
• Las constantes enteras se especifican sin parte fraccionario,
como -100 o 40.
• Constantes de punto flotante requieren el punto decimal
seguido de la parte fraccionaria, el número 456,75 es una
constante de punto flotante.
• Las constantes de carácter se encierran entre comillas
simples como 'A' o '&’.
3.1.8 Constants
#define TRUE 1
38
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.8 Constants
#define pi 3.14159265359
3.1.8 Constants
40
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.9 Comments
3.1.9 Comments
Los comentarios se utilizan para documentar el significado y
el funcionamiento del código fuente.
• El compilador ignora todos los comentarios.
• Un comentario puede colocarse en cualquier parte del
programa
• El comentario NO se debe colocar en medio de una palabra
clave, nombre de una función o nombre de una variable.
• Los comentarios pueden tener muchas líneas y también se
pueden usar para eliminar temporalmente una línea de
código.
• Finalmente, los comentarios no se pueden anidar.
41
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.9 Comments
/* This is a comment */
II This is a comment
42
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.9 Comments
Ejercicios
¿Cuáles de los siguientes comentarios son validos?
1. / My comment is very short */
43
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.10 Functions
3.1.10 Functions
Las funciones son los componentes básicos de un programa
en C. Todos los programas en C contener al menos una
función, main ( ) . La mayoría del programa que escribirás
contendrá muchas funciones. El formato para un programa
en C con muchas funciones ES:
main( )
{
}
function1( )
{
} 44
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.10 Functions
function2()
{
}
3.1.10 Functions
#include <stdio.h>
main( )
{
printf("I ");
function1();
printf("C.");
function1( )
{
}
Recuerde que al escribir sus propias funciones ábralas y
ciérrelas con llaves.
• El programa comenzará a ejecutar la función una vez que
fue llamada. 46
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
3.1.11 Keywords
1.11 C keywords
El estándar ANSI C define 32 palabras clave para usar en el
lenguaje C.
• En C, ciertas palabras están reservadas para que las use el
compilador para definir tipos de datos o para uso en auto double int struct
bucles. break else long switch
case enum register typedef
• Todas las palabras clave en C deben estar en minúsculas char extern return union
para que el compilador las reconozca. const float short unsigned
• Típicamente, muchos compiladores de C agregan varias continue for signed void
palabras clave adicionales que aprovechan la arquitectura default goto sizeof volatile
do if static while
del procesador.
• La lista de la derecha presenta las palabras clave:
47
C3 Programación del MCU en lenguaje de alto nivel 3.1 Int. A la prog. En leng. De alto nivel en MCUs
Ejercicios
Ejercicios
1. Escriba un programa que imprima su nombre en la
pantalla.
48
C3 Programación del MCU en lenguaje de alto nivel 3.2 Puertos de entrada salida digital
49
C3 Programación del MCU en lenguaje de alto nivel 3.3 Interrupciones
3.3. Interrupciones.
50
C3 Programación del MCU en lenguaje de alto nivel 3.3 Interrupciones
51
C3 Programación del MCU en lenguaje de alto nivel 3.3 Interrupciones
52
C3 Programación del MCU en lenguaje de alto nivel 3.3 Interrupciones
53
C3 Programación del MCU en lenguaje de alto nivel 3.3 Interrupciones
54
C3 Programación del MCU en lenguaje de alto nivel 3.4 Convertidor analógico digital
55
C3 Programación del MCU en lenguaje de alto nivel 3.4 Convertidor analógico digital
56
C3 Programación del MCU en lenguaje de alto nivel 3.4 Convertidor analógico digital
57
C3 Programación del MCU en lenguaje de alto nivel 3.4 Convertidor analógico digital
58
3.5 Temporizador, generador de señales, medidor de intervalos,
C3 Programación del MCU en lenguaje de alto nivel
decodificador de pulsos de cuadratura (QEP) y PWM.
59
C3 Programación del MCU en lenguaje de alto nivel 3. 6 Lectura y escritura en la memoria interna
60