SlideShare una empresa de Scribd logo
1 de 52
Descargar para leer sin conexión
¡Hola!
¡Que bueno volver a encontrarnos por aquí!
Espero estés bien, y te hayan sido de provecho
cada una de las presentaciones anteriores
Hoy quiero invitarte a seguir andando un poco mas en la temática
de los microcontroladores PIC, hoy abordaremos la nave de la
programación, hablaremos un poco del lenguaje C, también del
entro compilador Mikro C, y las características propias de la
programación de los PIC.
1
¿Qué te parece? ¿Te animas?...
¡Vamos a darle!
Wilfran Yaraure
Ing. En Electronica
Facilitador
PROGRAMACIÓN DE
MICROCONTROLADORES PIC
Área Cs. De la Salud
Programa de Ing. Biomédica Dpto. De
Electromedicina
Unidad Curricular: Microcontroladores y
Microprocesadores II
Wilfran Yaraure
Ing. En Electrónica
Facilitador
PROGRAMACIÓN DE MICROCONTROLADORES PIC
En el PIC la memoria encargada de
ejecutar el programa es la memoria
flash, la cual almacena en su pila de
direcciones el código ejecutable del
programa, que esta constituido por un
conjunto de numero binarios (0 y 1
lenguaje de maquina) que conforman
una serie de palabras o sentencias que el
micro puede ejecutar, estar palabras
pueden tener una achura de 12, 14, o 16
BIT según la arquitectura con la que
cuente el PIC.
Estas palabras son procesadas por el
CPU del micro como una instrucción a
ejecutar, la totalidad de las instrucciones
que el PIC puede reconocer y ejecutar
conforman el conjunto de instrucciones
de ese PIC.
Anteriormente el desarrollo de estos códigos
ejecutables se realizaba mediante un proceso
bastante difícil, lo que origino el surgimiento
del primer lenguaje de programación, un
lenguaje de bajo nivel, llamado lenguaje
assembler (ASM) o ensamblador, con una
sintaxis básica de fácil comprensión y fácil
escritura, basado en abreviaturas con
significados, este lenguaje era traducido o
compilado a lenguaje de maquina (código
binario) mediante el compilador ensamblador.
A pesar de esto, assembler presenta dos
grandes desventajas como:
1. El código de programación suele ser muy
extenso y ocupar mucha memoria del PIC.
2. En este lenguaje cada microcontrolador se
programa con un conjunto de
instrucciones especifico para el.
3
Solemos pensar
que la
programación es
un proceso
complicado, pero
esto no es cierto,
ya existen una
serie de lenguajes
y compiladores,
que nos permiten
reducir el numero
de instrucciones,
tiempo, y
complejidad que
generaría la
programación en
tiempos
anteriores, así que
no te asustes, y
dispón tu mente a
ser instruida en
este proceso.
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Lenguaje C
Lenguaje de Alto nivel
C
4
PROGRAMACIÓN DE MICROCONTROLADORES PIC
5
Lenguaje C
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Este lenguaje permite
realizar operaciones tanto
en Byte como en Bit, es
decir operaciones lógicas,
desplazamientos entre
otros, además esta
estandarizado en ANSI, en
lenguaje portable, lo que
permite reutilizar el mismo
código en varios proyectos,
El lenguaje C nace
en la década de los
70´s (1972) con el
objetivo de reescribir
los sistemas
operativos UNIX y
optimizar el ASM, en
los laboratorios Bell .
Este fue la evolución
de lenguajes previos
llamados B, y BCPL.
Entre sus características
destacadas esta que
varias instrucciones en
ASM pueden ser
sustituidas por una sola
sentencia en C,
optimizando el uso de
memoria, la escritura y
la comprensión del
código.
Cada uno de estos lenguajes de alto o bajo
nivel utiliza o requiere de un software
compilador o traductor, encargado de
traducir, como su nombre lo indica, cada
sentencia en C a un lenguaje de maquina (0 y
1) o códigos binarios, para que puedan ser
procesados por el micro.
Actualmente existe una variedad de
compiladores e intérpretes para diversas
familias de microcontroladores.
En el caso se pueden encontrar el CPCM de
la empresa CCS, el PBASIC de PARALLAX,
mikroC PRO, mikroBasic y mikroPascal
Estos ofrecen una serie de librerías que
reducen el proceso de configuración y
utilización de periféricos avanzados que
incorporan estos PIC.
6
Los Compiladores se basan en estructuras que
facilitan la programación, optimizan las
operaciones matemáticas y los procesos,
utilizando funciones predefinidas y las funciones
creadas por el desarrollador, además de un
conjunto de variables, de tipo carácter, entero, y
punto decimal.
El objeto principal del Compilador es crear el
código binario o lenguaje de maquina y generar
un archivo *.hex, que permita programa
eléctricamente el microcontrolador
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Compilador
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Mikro C
Compilador para PIC
7
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Mikro C PRO es un paquete de software
con una amplia variedad de ayudas y
herramientas que facilita la creación
códigos de programación en lenguaje C,
para diferentes familias de PIC.
Presenta algunas diferencias con el
estándar ANSI, que le permiten hacer mas
fácil la programación de los PIC, y otras
debido a la limitación de la arquitectura
del hardware de los PIC.
La letra C Hace referencia a las
semejanzas entre el lenguajes C y mikro C
8
Mikro C
Este entorno cuenta con una versión demo o
estudiantil, con características similares a su
versión completa, la única limitación es la
dimensión del código de máquina que no
puede exceder 2K bytes,
se puede descargar de la pagina:
www.mikroe.com.
¿Por qué Mikro C?
Wilfran Yaraure
Ing. En Electrónica
Facilitador
PROGRAMACIÓN DE MICROCONTROLADORES PIC
1) El archivo fuente contiene el código en mikroC (Programación del micro controlador).
2) El preprocesador se utiliza automáticamente por el compilador al iniciarse el proceso de la
compilación.
3) El compilador busca las directivas del preprocesador (inician con ’#’) en el código y lo configura
según estas directivas.
4) El analizador sintáctico (parser) elimina toda la información inútil del código (comentarios,
espacios en blanco).
5) El compilador traduce el código a un archivo binario denominado archivo .mcl.
6) El enlazador (linker) recupera toda la información requerida para ejecutar el programa de los
archivos externos y los agrupa en un solo archivo (.dbg).
7) Por último , el generador .hex produce un archivo .hex. Es el archivo que se va a cargar en el
microcontrolador.
9
Compilación en Mikro C
Pasos de la compilación
Todo este
proceso se
denomina
“building”
Wilfran Yaraure
Ing. En Electrónica
Facilitador
“
¿Cómo vas hasta ahora?...
¿Que te ha parecido la información?
10
Todo esto es un proceso interesante, y bastante fácil de realizar, solo hay que
prestar atención y dedicarle algo de tiempo.
Ahora vamos a la parte mas densa, que es la programación, mantén la calma y el
ánimo, eres capaz e inteligente.
¡Vamos a darle!.
Wilfran Yaraure
Ing. En Electrónica
Facilitador
ESTRUCTURA DE UN PROGRAMA.
11
PROGRAMACIÓN DE MICROCONTROLADORES PIC
1. Cabecera.
2. Declarar las variables globales.
3. Declarar las funciones secundarias
4. Declarar la función principal void main ();
5. Inicialización de los puertos y módulos del
microcontrolador;
6. Crear Ciclo infinito de repeticiones do { … }
While (1);
Lógica del programa
Wilfran Yaraure
Ing. En Electrónica
Facilitador
ESTRUCTURA DE UN PROGRAMA.
Para el desarrollo de un programa en
Mikro C, se debe seguir la siguiente
estructura:
12
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Debes recordar que el micro
lee las líneas de
programación por orden
descendente
Es decir, de arriba hacia
abajo
Por lo que es necesario
cumplir con el orden de
estos pasos
Wilfran Yaraure
Ing. En Electrónica
Facilitador
1 Cabecera; Ayuda a describir los datos e información del
programa empleando un comentario /* Comentario */
Declarar las variables globales (Int j; Char entre otros);
presentar las variables que se utilizaran en todo el código, (son
establecidas por el desarrollador).
2
Declarar las funciones secundarias;
Describir las subrutinas o funciones diseñadas por el
desarrollador para el funcionamiento del programa.
3
Declarar la función principal void main ();
Es la función principal sobre ella se ejecuta la lógica de control
principal que se quiere.
4
Inicialización de los puertos y módulos del microcontrolador;
configurar quien E/S, Conversión A/D, Oscilador, entre otros,
esto se realiza dentro de la función void main.
5
Crear Ciclo infinito de repeticiones do { … } While (0);
Para que mientras este encendido el micro se ejecute el
programa, de lo contrario solo lo ejecutara una sola vez.
6
Lógica del programa
Donde se describen las líneas de programación que ejecutaran
el control principal y visible del programa.
7
Son partes del programa que se
emplean para aclarar operaciones de
programa o para proporcionar mayor
información sobre el mismo, como los
hacemos en la cabecera.
Son de uso exclusivo del programador
y el compilador se encarga de
eliminarlos del código fuente antes del
análisis sintáctico.
En mikroC pueden ser unilineales o
multilíneas.
Los multilíneas están entre /* y */
Los cometarios unilineal inician con ‘//’
¿QUE SON LOS COMENTARIOS?
13
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Una declaración consiste en informar
al compilador los nombres o
etiquetas que se emplearan en un
programa, qué representan, de qué
tipo serán, cuáles operaciones se
permiten, entre otra cosas.
¿QUE SON LAS DECLARACIONES?
¿Qué aspectos deben ser declarados en
un programa?
❑ Variables.
❑ Constantes.
❑ Funciones.
❑ Tipos.
❑ Estructuras.
❑ Uniones.
❑ Etiquetas de enumeraciones.
❑ Miembros de estructuras.
❑ Miembros de uniones.
❑ Otros tipos de matrices.
❑ Etiquetas de sentencias.
❑ Macros de preprocesador..
14
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Declaraciones y declaradores
Una declaración contiene especificadores
seguidos por uno o mas identificadores
(declaradores). Inicia con los especificadores
opcionales de clase de almacenamiento,
especificadores de tipo u otros modificadores.
Los identificadores se separan por
comas. La declaración termina en un punto y
coma.
Wilfran Yaraure
Ing. En Electrónica
Facilitador
son los nombres arbitrarios utilizados
para identificar : etiquetas, tipos,
símbolos, constantes, variables,
procedimientos y funciones.
Identificadores
Características para su uso:
❑ Se puede utilizar cualquier letras del abecedario
mayúsculas y minúsculas desde a hasta z, y A hasta
Z, el guion bajo "_", y los dígitos 0 a 9.
❑ MikroC no hace diferencia entre mayúsculas y
minúsculas, entonces Sum, sum y suM serán
equivalentes.
❑ Si se emplea el mismos nombre para varios
identificadores en el mismo programa, ocurre un error
❑ Al escribir el primer carácter debe ser una letra o el
guion bajo.
15
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Ejemplos de identificadores válidos:
✓ temperature_V1
✓ Pressure
✓ no_hit
✓ dat2string
✓ SUM3
✓ _vtext.
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Son palabras o nombres que ya tienen
significado fijo, por lo que no se pueden
usar como identificadores.
Mickro C, presenta un total de 98 palabras
reservadas
Palabras clave o reservadas
Listado de palabras reservadas:
16
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
MikroC Maneja un lenguaje de tipo, cada
variable o constante pertenecen a un tipo
definido.
Este entorno soporta tipos de datos
estándar (predefinidos) como los tipos
enteros con signo o sin signo de varios
tamaños, matrices, punteros, estructuras y
uniones.
También permite definir nuevos tipos de
datos utilizando el especificador typedef.
Tipos
17
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Por ejemplo:
✓ typedef char MyType1[10];
✓ typedef int MyType2;
✓ typedef unsigned int * MyType3;
✓ typedef MyType1 * MyType4;
✓ MyType2 mynumber;
Tipos aritméticos
Este tipo se refiere a variables con palabras claves:
void, char, int, float y double, precedidas por los
siguientes prefijos: short (corto), long (largo), signed
(con signo) y unsigned (sin signo). Hay dos tipos
aritméticos, el tipo entero y el de punto flotante.
Tipos enteros
Son Los tipos char e int, junto con sus variantes. Se
escriben utilizando los prefijos de los modificadores
short, long, signed y unsigned.
Tipos de punto flotante (fraccionarios)
Son Los tipos de punto flotante float y double junto
con el tipo long double
Tipo Void
Es un tipo especial que indica la ausencia de valor. No
hay objetos de void; este se utiliza para derivar tipos
más complejos.
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Como venimos hablando las variables en
mikro C, pueden ser:
✓ bit
✓ char
✓ short
✓ int
✓ long
✓ float
✓ double
Tipos de Variables O Datos
18
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Las variables bit almacenan valores lógico,
verdadero o falso, 0 o 1.
Las variables char almacenan caracteres
codificados con el código ASCII, se utiliza para
guardar letras o textos.
Las variables short almacenan números entero de
8 bits cortos con valores entre : -127 a 127.
Las variables tipo int almacenan números enteros
de 16 bits, con valores entre: -32767 a 32767.
Las variables tipo long almacenan números enteros
largos de 32 bits, con valores entre: -2147483647 a
2147483647.
Las variables tipo float y double permiten guardar
números con punto decimal.
Wilfran Yaraure
Ing. En Electrónica
Facilitador
En estas tablas puedes observar las características de cada variable mencionadas anteriormente:
Tipos de Variables O Datos
19
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
¿Que debemos hacer para declara variables?
Para ello debes hace lo siguiente:
1. Indicar el tipo de variable
2. Nombrar la variable, asignando un
nombre según tu preferencia.
3. Asignar un valor inicial a la variable,
esto es opcional.
4. Culminar con el carácter punto y
coma (;).
20
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Ejemplos de identificadores válidos:
✓ bit VARIABLE1_BIT; //Declaración de una variable tipo
bit.
✓ char CARACTER; //Declaración de una variable tipo
char.
✓ int ENTERO; //Declaración de una variable tipo entera
inicializada
✓ float DECIMAL; //Declaración de una variable con punto
decimal
✓ double DECIMAL2; //Declaración de una variable con
punto decimal
✓ long ENTERO2//Demacración de una variable de tipo
entero largo
Debes tener en cuenta que:
✓ Las variables no deben tener nombres repetidos.
✓ Las variables no deben empezar por un número.
✓ Una variable no puede utilizar caracteres especiales como: / * „ ; { }-! · % &.
Wilfran Yaraure
Ing. En Electrónica
Facilitador
¿Que son las Funciones?
Son subprogramas o fragmento de
código que ciertas tareas especificas,
cuando es invocada o nombrada en el
flujo del programa principal o Función
principal, esta trabajan o se desarrolla
mediante uno o varios parámetros de
entrada, y generan un parámetro de
salida que se emplea en la
programación.
Existen 2 tipos de funciones, la función
principal de programa Void main () {…},
que solo puede existir una en todo el
código, y las funciones secundarias, que
pueden ser varias en el mismo código,
Las funciones son creadas por el
desarrollador, aunque también
existen algunas predefinidas en el
compilador.
la función main o principal como su
nombre lo indica es la principal, es
decir la de mayor importancia.
Debido a que es la encargada de
ejecutar el programa del
microcontrolador automáticamente
cuando este se energiza.
21
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
¿Qué debo hacer para declara las Funciones?
Generalmente deben ser declaradas las
funciones secundarias, que
acompañaran a la función principal del
programa, que son funciones diseñadas
por el desarrollador (es decir, por ti).
estas funciones hechas por el
desarrollador deben ser declaradas
antes de la función main.
Recuerda que el micro lee las líneas de
programación de forma descendiente,
por eso si llega a la función main, y se
invoca alguna función secundaria que no
se haya declarado antes, se presentara
un error en el programa y la
compilación.
Para dar nombre a las funciones se
deben cumplen con las mismas
reglas para nombrar las variables.
22
PROGRAMACIÓN DE MICROCONTROLADORES PIC
tipo_de_resultado nombre_de_funcion name(lista-de-declaradores-deparámetros));
1. nombre_de_función hace referencia a el
nombre de función y debe ser un
identificador válido según las reglas antes
mencionadas.
2. tipo_de_resultado Hace referencia a el tipo
del datos que se procesaran en la función,
estos puede ser cualquier tipo estándar o
definido por el usuario, según los
mencionados anteriormente,
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Ejemplos de declaración de funciones
✓void Función ( void ) {…} //Función con parámetros de entrada y salida vacíos.
✓void Función ( int A ) {…} //Función con un parámetro de entrada y salida vacía
✓int Función ( void ) {…} //Función con parámetro de entrada vacío y salida entera.
✓int Funcion ( int A ) {…} //Función con un parámetro de entrada y salida enteras.
✓float Producto ( float A, flota B ) //Función para calcular el producto de A y B.
{ // Apertura de la función con corchete.
float RESULTADO;
RESULTADO = A*B; //Producto de A y B.
return RESULTADO; //La función retorna el resultado guardado en RESULTADO.
} //Cierre de la función con corchete.
23
PROGRAMACIÓN DE MICROCONTROLADORES PIC
void main( void ) //Declaración de la función main.
{ // Apertura de la función main.
… //Código del programa principal del microcontrolador.
} //Cierre de la función main
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Puntuadores o Separadores
Estos son elementos operadores que
permiten separa las líneas de
programación para organizar la lógica
del código fuente diseñado.
24
PROGRAMACIÓN DE MICROCONTROLADORES PIC
En mikro C se emplean los siguientes
separadores:
o [ ] Corchetes
o ( ) Paréntesis
o { } Llaves
o , Coma
o ; Punto Y Coma
o : Dos Puntos
o . Punto
o * Asterisco
o = Signo Igual
o # Almohadilla
[ ] Corchetes: indican índices de matrices uni y multi
dimensionales. Ejemplo:
char ch, str[] = "mikro";
int mat[3][4]; /* matriz de 3 x 4 */
ch = str[3]; /* cuarto elemento */
( ) Paréntesis: sirven para agrupar expresiones, aislar
expresiones condicionales e indicar llamadas a funciones.
Ejemplo:
d = c * (a + b); /* modifica la precedencia normal */
if (d == z) ++x; /* expresión condicional */
func(); /* llamada a función, sin parámetros */
void func2(int n); /* declaración de función, con
parámetros */
{ } Llaves: indican el inicio y el final de una sentencia
compuesta, no requiere el punto y coma después de
corchete de cierre. Ejemplo:
if (d == z)
{
++x;
func();
}
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Puntuadores o Separadores
25
PROGRAMACIÓN DE MICROCONTROLADORES PIC
, Coma: se utiliza para separar los
parámetros en las llamadas a función, los
identificadores en las declaraciones y los
elementos del inicializador. Ejemplo:
Lcd_Out(1, 1, txt);
char i, j, k;
const char MONTHS[12] =(31,28,31,30,31);
; Punto y coma: Finalizador de sentencia. Cada
expresión válida en C (incluyendo la vacía)
seguida por un punto y coma se interpreta como
una sentencia. Ejemplo:
a + b; /* evalúa a + b, descarta el resultado */
++a; /* efecto lateral en 'a', se descarta el valor ++a */
; /* expresión vacía, o una sentencia nula */
: Dos puntos: indican una etiqueta. Ejemplo:
start: x = 0;
= Signo igual: se utiliza para separar
declaraciones de variables de las listas de
inicialización así como los lados izquierdo y
derecho en las expresiones de asignación.
Ejemplo:
int test[5] = { 1, 2, 3, 4, 5 };
int x = 5;
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Break
Wow!... Estamos avanzado, ¿Como vas?...
Es un tema interesante y bastante fácil ¿verdad?.
En principio parece tedioso y difícil, pero cuando le
prestas atención y comienzas a unir cada una de
las piezas te das cuenta que es fácil y divertido,
como si jugaras con legos
26
Es hora de continuar, ¿que te parece?
Entonces ¡Vamos a darle!.
Wilfran Yaraure
Ing. En Electrónica
Facilitador
OPERADORES
27
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Son símbolos que indican las operaciones que se realizan
sobre una expresión. Pueden ser operaciones aritméticas,
lógicas u otras en particular. En el lengua C se disponen de
mas de 40 operadores, pero en la puesta en practica se
emplean realmente de 10 a 15.
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Operadores Aritméticos
Existen dos
tipos:
Unitarios y
Binarios
(Necesitan 2 variables
o números para la
operación
Nos permiten
realizar
operaciones
matemáticas
Ejemplos:
A++; //Este operador incrementa en una unidad el valor de A.
A --; //Este operador decrementa en una unidad el valor de A.
C = A+B; //Está expresión guarda la suma de A y B en la variable C.
C = (A+B)/C; //Está expresión es equivalente a C = (A+B)÷C.
28
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Operadores Relacionales
Si es cierta
arroja un 1,
Si es falsa
un 0
Comprueba
veracidad
de
expresiones
Ejemplos:
29
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Operadores asignación simple
En este se emplea
el signo = como
un operador, y
permite asignar
valor simple a una
variable, por
ejemplo A= 8;
30
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Estos operadores nos permiten
asignar valores a una
determinada variable. Existen 2
tipos:
Operadores
de
asignación
compuesta
Operadores
de
asignación
simple
En este caso, se
emplean dos
operadores, para
simplificar la
sintaxis, y
asignara valores
mas complejos
Como observas en los ejemplos, el valor de a, será
a+8, o a-8, según sea el caso.
Operadores lógicos
31
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Estos operadores nos
permiten realizar
operaciones de lógica
digital, como las realizadas
con las compuertas
lógicas conocidas, arrojan
valores de 0 y 1, según la
tabla de las relaciones
lógicas. :
¿Qué formatos Numéricos puedo usar al programar?
32
CARACTERES ASCII
HEXADECIMALES.
OCTALES
DECIMAL
BINARIOS
Usando el Prefijo 0x o 0X, ejemplo: 0x8F
Números entero base 10, sin prefijos
Enteros que empiezan con 0, ejemplo, 0357.
Usando el prefijo 0b o 0B, ejemplo, 0b10100101.
Usando Caracteres alfanuméricos entre comillas
para mostrar en pantalla, ejemplo: "Hola mundo"
En el lenguaje C se emplean diferentes bases numéricas, la principal para el procesamiento es la base
numérica binaria (2), pero pueden ser empleados 3 tipos de bases numéricas, como lo son: Los decimales
que emplean base 10, a los que estamos acostumbrados normalmente en las matemáticas, la
Hexadecimales que emplean base 16, y los binarios que emplean base 2, como lo hemos visto en la teoría
de circuitos digítales, además se pueden emplear también el Código ASCII para formatos alfanuméricos
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Para poder usarlo se deben tener en cuenta los prefijos
correspondientes
¿Que tal vas?
Espero que vayas bien, y
que este viaje sea de
provecho… no te
preocupes, ni te
apresures, tomate tu
tiempo y rumea un poco
la información, ve
asimilando poco a poco,
tu puedes …
33
¿Que te parece si continuamos?...
¡ok, Vamos a darle!
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Sentencia Explicación Sintaxis
Sentencias
de
interacción
(Bucles)
Son vital del código, permiten repetir un conjunto de sentencias en
función de conteos y condiciones de variables creando bucles
interactivos, que cuentan o gobiernan tareas y procesos
desarrollados en el programa
❑ While () {…}
❑ Do {…} while ()
❑ For (...) {…}
Sentencias
Condicional
Permiten realizar menús, tomar decisiones entre distintos cursos de
acción en función de valores o condiciones.
❑ If (…) {…}
❑ if else(…) {…}
❑ switch case (…) {…}
Sentencias
de salto
Permiten detener, iniciar o salir de interacciones en medio de bucles
o sentencias de interacción.
❑ break;
❑ continue;
❑ return […];
34
Son líneas de programación que permiten controlar el flujo de la lógica del código diseñado, pueden ser de 6
tipo, como los mostrados en el grafico. Es decir, le indican al micro que hacer y que no hacer. Y pueden ser de
estos 3 tipos
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
puedes crear un bucle o ciclo de
repeticiones, según el numero de
repeticiones que necesites.
¿Que puedo hacer con ella?
while(condición o numero de repeticiones){Porción del código que se repite}
¿Cuál sintaxis debo usar?
La porción del código entre las {…} Se repite tantas
veces como lo indique la condición entre los (…)
¿Que ocurre cuando se esta ejecutando?
while (1) ...;
Usando un valor constante dentro de los paréntesis, como se
muestra, no afectado por ninguna condición, el código se repetirá
mientras 1 sea 1, y como no existe un valor que lo afecte 1 siempre
será 1, generando un ciclo infinito de repeticiones.
Esta es la forma más simple de crear un bucle
Infinito, ¿como lo hacemos?.
Sentencia While
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
35
{Sentencias de iteración (Bucles)}
Sentencia Do while
36
1 ¿Que puedo hacer con ella?
Puedes realizar un ciclo de repeticiones
similar al realizado con While, pero en este
caso primero se ejecuta el fragmento de
código a repetir, y luego se evalúa la
condición del While, por lo que el código se
ejecutará por lo menos una vez
2 ¿Cual sintaxis que debo usar?
do{ Porción
del código
que se repite;
}
while(condición);
3
¿Qué ocurre cuando se esta
ejecutando?
La porción del código entre las {…}
entre do y while Se repite tantas
veces como lo indique la condición
entre los (…) del while
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
{Sentencias de iteración (Bucles)}
for (I=0; I=10; I++ o I--)
{Porción
del código
Que se repite;
}
1. Se le da un valor de inicio a
la variable en este caso I=0,
que indica que inicia en 0
2. Se asigna valor final a la
variable, es decir, cuantas
veces se repetirá, en este
caso I=10.
3. Se expresa la condición del
conteo, si será incremento
I++, o decremento I--.
4. Se repite la porción de
código hasta que se alcance
el valor final de la variable
¿Qué ocurre cuando se esta
ejecutando?
¿Qué sintaxis debo usar?
¿Que puedo hacer con ella?
Con ella puedes crear
ciclos o bucles de
repeticiones con
mayor control de
condiciones, creando
condiciones de inicio,
de final, y cambios
progresivos en la
variable controlada
Sentencia For
37
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
{Sentencias de iteración (Bucles)}
Sentencia If
¿Cual sintaxis debo usar?
¿Que ocurre durante la ejecución?
¿Que puedo hacer con ella?
38
{Sentencias Condicionales} PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Usando la sentencia if puedes evaluar el estado lógico (1 o 0)
de alguna variable, puerto o pin, es decir si esta activo o no, y
luego de eso decidir si se ejecuta una porción de código o no,
por ejemplo, si un botón esta presionado o no, si una variable
alcanzó un determinado valor, depende de la condición que
necesites evaluar
if(Valor>100) //evalúa si la variable Valor es mayor que 100.
{
… // Porción de código que se ejecuta si el if es verdadero.
}
Al usar esta sentencia, se evalúa la condición dentro de los (…) si
esta condición se cumple, se ejecuta la porción del condigo dentro
de las {…}, si no se cumple, el programa sigue ejecutando las
demás líneas de código que prosiguen
Sentencia if (…) else (…) {…}
¿Cual sintaxis debo usar?
¿Que ocurre durante la ejecución?
¿Que puedo hacer con ella?
39
{Sentencias Condicionales} PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Es similar a if, pero con 2 porciones de código ejecutar, una
para cuando se tenga un estado lógico bajo (0) o falso y otro
para cuando se tenga un estado lógico alto (1) o verdadero,
por ejemplo: si el puerto A es igual a 1, ejecuta este código, si
no ejecuta este otro código.
if(Valor>100)//Este if evalúa si la variable Valor es mayor que
100.
{// Porción de código que se ejecuta si la condición del if se cumple.}
else
{// Porción de código que se ejecuta si la condición del if no se cumple.}
Al usar esta sentencia, primero se evalúa la condición dentro de
los (…) si esta condición se cumple, se ejecuta la porción del
condigo dentro de las primeras {…}, si no se cumple, se ejecuta el
código dentro de las {…} que siguen después del else
¿Que puedo hacer con
ella?
Puedes desarrollar menús
con varias opciones, de
manera que según la
opción seleccionada se
ejecuten una serie de
sentencias. Consiste en una
sentencia de control
(selector) y una lista de los
valores posibles de la
expresión, además no se
evalúa una condición si no
el valor de una variable
¿Que sintaxis debo usar?
Switch ( Valor )
{
case Valor 0: //Fragmento de código
correspondiente al valor 0 de la variable
Valor.
break; //Ruptura del caso 0.
case Valor 1: //Fragmento de código
correspondiente al valor 1 de la variable
Valor.
break; //Ruptura del caso 1.
case Valor 10: //Fragmento de código
correspondiente al valor 10 de la variable
Valor.
break; //Ruptura del caso 10.
}
¿Qué ocurre durante su
ejecución?
Primero Evalúa la variable (valor) y
la compara con todas las opciones
disponibles de case valor.
Si hay una coincidencia, se ejecuta
el fragmento de código
correspondiente a ese case valor.
Cada uno de los fragmentos
de código finaliza con la
directriz break para romper el
flujo y volver al código general
40
{Sentencias Condicionales} PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Sentencia Switch (…) {…}
Sentencia Break
Puede ser usada dentro
de cualquier bucle, pero
es especialmente
empleada en la
sentencia Swicht.
La puedes emplear para
interrumpir el flujo de
cualquier bucle, es decir
detener el programa en
ese punto y salir del
bucle en el que se
encontraba.
Sintaxis
Solo debes colocar Break;
donde quieres que se
detenga el bucle
Sentencia Contine
La puedes emplear
para realizar salto de
una interacción sin
detener el bucle, y te
permitira obviar
algunas líneas de
código, según la
condición que
establezcas.
Sintaxis
Solo debes colocar
contnie; donde quieres
que se realice el salto
Sentencia Goto
La puedes usar para saltar
de forma incondicional
cualquier parte del código
que requieras en tu lógica.
Sintaxis
Solo debes colocar
Goto
identificador_de_etiq
ueta; especificando la
etiqueta del punto a
donde quieres dar el
salto
41
{Sentencias de Salto} PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Inicialización de Variables, librerías para
pantallas y teclados, entre otros
Lcd_Init(); Glcd_Init(); I2C1_Init(100000);.
En este caso la inicialización hace
referencia a los valores iniciales de las
VARIABLES, PUERTOS, Y REGISTROS a
utilizar en el código.
Es decir, que debes establecer las
condiciones iniciales con las que se va a
trabajar, por ejemplo cuales puertos
serán de entra o salida, cuales serán de
entrada Digital y cuales analógica, que
frecuencia de trabajo se utilizara para el
Oscilados, entre otras cosas.
Para ellos se debe asignar valores a los
registros de función especial SFR
correspondientes, o declarar la librería a
utilizar, según sea el caso.
Esto lo debes hacer al inicio de la
función principal
Void main ()
Registros para inicialización de puertos
PORTA; PORTB; PORTC; PORTD; PORTE.
Registro para inicialización del Oscilador
OSCCON;
Registro para Inicialización A/D
ADCON1;
05
02
03
04
Inicialización
Registros para Configuración inicial de puertos
TRISA; TRISB; TRISC; TRISD; TRISE;
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
01
42
Ejemplo de inicialización
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
43
// inicialización de los puertos Digitales
// inicialización de la comunicación serial
// inicialización del PIN 0 del PUERTO C como entrada
// inicialización del Teclado Matricial
// inicialización de la Pantalla GLCD
// Valor inicial que mostrara la Pantalla GLCD
// Valor inicial de las variables
// Retardo o tiempo de Espera
Generalmente el tiempo de ejecución de
una instrucción en el PIC, es un tiempo que
no puede ser percibido por el ojo humano.
Para poder apreciar las ejecuciones de las
sentencias se hacen necesario los retardos
o tiempos de Espera.
Estas son líneas de programación que
indican al micro un periodo de tiempo en el
que debe esperar sin ejecutar ninguna
sentencia alguna, permitiendo así que se
muestre la ultima sentencia ejecutada.
Mikro C, tiene algunas sintaxis ya definidas
que nos permiten programar retardos en
Micro segundos (us), milisegundos (ms) o
en unidad tiempo de ciclo de reloj (cyc).
Retardos o Tiempo de espera
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Delay_us(Valor) ;
Sintaxis para crea un
retardo en
microsegundo
Delay_ms(Valor) ;
Sintaxis para crea un
retardo en milisegundo
Delay_cyc(Valor) ;
Sintaxis para crea un
retardo en ciclos de
reloj
Enunciado del problema
Diseñar un código de programación que permita controlar el
encendido y apagado automático de un led, conectado al pin
0 del PUERTO A, con un tiempo de espera de 1 segundo entre
el encendido y apagado
Dividimos el problema en pedazos y lo atacamos por partes.
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
¿Quien será el puerto de entrada?
ninguno. No se empleara ningún botón, ya que se realizara
un encendido y apagado automático.
¿Quien será puerto de salida? El Puerto A, específicamente
el pin 0, para conectar el led.
¿Se utilizara E/S Analógicas o Digitales? Digitales, se
requieren solo 2 estados , uno alto (1) para el encendido y
bajo (0) para el apagado.
¿Se requiere alguna función secundaria? En este caso no,
debido a que es un código simple, con la función principal
es suficiente.
¿Se requiere declara alguna variable?
No en este caso, debido a que todo se hará desde el
puerto A
Código
Ejemplo
#1
Luego de analizar los requerimientos de nuestro programa, procedemos a escribir nuestro código,
según la estructura del programa vista anterior mente (pg. 11 y 12)
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
1. Cabecera, haciendo uso de la
herramienta /*Comentario*/ describimos
nuestro código.
4. Declarar la función principal void main ();
5. Inicialización de los puertos y
módulos del microcontrolador;
6. Crear Ciclo infinito de
repeticiones do { … } While (1);
Lógica del programa
Código
Ejemplo
#1
Como te habrás dado cuneta solo
usamos los pasos 1, 4, 5, y es de la
estructura de un código, debido a los
requerimientos que analizamos en la
parte anterior
Código
Ejemplo
#1
Así se vería la conexión y el comportamiento del Ejemplo1 anterior.
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Te invito a que lo intentes, abre mikro c, escribe el mismo código, compílalo, y simúlalo en proteus,
para que confirmes el comportamiento. ¡Tu puedes hacerlo!
Enunciado del problema
Diseñar un código de programación que permita controlar el
encendido y apagado automático de un led, conectado al pin
0 del PUERTO A, con un tiempo de espera de 1 segundo entre
el encendido y apagado, repitiendo el ciclo 10 veces
Dividimos el problemas en pedazos y lo atacamos por partes.
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
¿Quien será el puerto de entrada?
ninguno. No se empleara ningún botón, ya que se realizara
un encendido y apagado automático.
¿Quien será puerto de salida? El Puerto A, específicamente
le pin 0, para conectar el led.
¿Se utilizara E/S Analógicas o Digitales? Digitales, se
requieren solo 2 estados , uno alto (1) para el encendido y
bajo (0) para el apagado.
¿Se requiere alguna función secundaria? En este caso no,
debido a que es un código simple, con la función principal
es suficiente.
¿Se requiere declara alguna variable?
No en este caso, debido a que todo se hará desde el
puerto A
Código
Ejemplo
#2
Igual al código anterior, solo
necesitamos ahora controlar
los ciclos de repeticiones y lo
haremos empleando la
sentencia de interacción for
Luego de analizar los requerimientos de nuestro programa, procedemos a escribir nuestro código,
según la estructura del programa vista anterior mente (pg. 11 y 12)
PROGRAMACIÓN DE MICROCONTROLADORES PIC
Wilfran Yaraure
Ing. En Electrónica
Facilitador
1. Cabecera, haciendo uso
de la herramienta
/*Comentario*/
describimos nuestro
código.
4. Declarar la función
principal void main ();
5. Inicialización de los
puertos y módulos del
microcontrolador;
6. Creando bucle de
repeticiones infinitas do
while(), para mientras este
encendido el pic ejecute el
programa
Lógica del programa
Código
Ejemplo
#2
2. Declarar las
variables globales.
Dentro de la lógica,
Utilizamos la sentencia for
para la creación de un
bucle de 10 repeticiones,
según lo pide el enunciado
Aquí te dejo estos ejercicios para que practiques,
usando mikroC y Proteus
Ejercicio #1
Diseñar un código de programación para el PIC18F4550, que permita ejercer el control del
encendido y apagado de 8 LED conectados al PUERTO D del PIC, el encendido debe ser
secuencialmente uno a uno, desde el menos significativo hasta el mas significativo, y luego los
apague de igual forma, con un tiempo de espera entre cada uno de los LED de ½ segundo,
tanto en la secuencia de encendido, como en la secuencia de apagado.
50
Ejercicio #2
Diseñar un código de programación para el PIC18F4550, que funcione como un decodificador
BCD a 7 segmento, es decir que permita ingresar un código binario de 4 dígitos usando 4bit
menos significativos del puerto B, y muestre los valores de salida hexadecimal de 0 a F en un
Display 7 segmentos conectado al puerto D.
Ejercicio #3
Diseñar un código de programación para el PIC18F4550, que funcione como un temporizador o
contador decimal, que vaya desde 0 a 99, cambiando automáticamente de valor cada 100ms, y
muestre los valores de salida a través de dos Display 7 segmentos, uno conectado al puerto B y
otro al puerto D, .
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Recuerda que
estoy a un
mensaje de
distancia,
puedes
escribir por la
plataforma
ADI, o al
correo
Electrónico
para aclarar
tus dudas
51
Aunque actualmente todo parece una
locura, realmente “Locura es hacer lo
mismo una y otra vez esperando obtener
resultados diferentes” (anónimo) Por eso
hoy mas que nunca debemos ir más allá, de
lo que hemos ido, a encontrar otro punto de
vista, a buscar nuevas maneras de hacer las
cosas, y seguir avanzando, y no nos
quedemos esperando a que todo sea
diferente si seguimos haciendo lo mismo de
siempre. ¡Que nuestra nueva normalidad
sea lo extraordinario!
Wilfran Yaraure
Ing. En Electrónica
Facilitador
Bibliografía
✓ Clavijo (2011), Diseño y simulación de sistemas microcontrolados en lenguaje C,
Programación con MikroC PRO, Simulación en Proteus ISIS.
https://drive.google.com/file/d/0B3Gup-Soes9hbFByRHF0WFpuQk0/view?usp=sharing
✓ MikroElectronika (2011) GUÍA DE REFERENCIA RÁPIDA A mikroC www.mikroe.com
52

Más contenido relacionado

La actualidad más candente

Circuitos integrados digitales
Circuitos integrados digitalesCircuitos integrados digitales
Circuitos integrados digitalesOmar Serrano
 
09 Conjunto de Instrucciones de los Atmega
09 Conjunto de Instrucciones  de los Atmega09 Conjunto de Instrucciones  de los Atmega
09 Conjunto de Instrucciones de los AtmegaJaime E. Velarde
 
Microcontroladores PIC
Microcontroladores PICMicrocontroladores PIC
Microcontroladores PICSohar Carr
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4Luis Zurita
 
direccionamiento microcontroladores pic
direccionamiento microcontroladores picdireccionamiento microcontroladores pic
direccionamiento microcontroladores piczfsasfasd
 
Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Luis Zurita
 
Programming pic microcontrollers
Programming pic microcontrollersProgramming pic microcontrollers
Programming pic microcontrollersMAIYO JOSPHAT
 
Arduino microcontroller and nRF24L01+ transceivers
Arduino microcontroller and nRF24L01+ transceiversArduino microcontroller and nRF24L01+ transceivers
Arduino microcontroller and nRF24L01+ transceiversPavlos Kallis
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaGerardo C
 

La actualidad más candente (20)

Circuitos integrados digitales
Circuitos integrados digitalesCircuitos integrados digitales
Circuitos integrados digitales
 
50824079 datasheet-pic18f4550-espanol
50824079 datasheet-pic18f4550-espanol50824079 datasheet-pic18f4550-espanol
50824079 datasheet-pic18f4550-espanol
 
09 Conjunto de Instrucciones de los Atmega
09 Conjunto de Instrucciones  de los Atmega09 Conjunto de Instrucciones  de los Atmega
09 Conjunto de Instrucciones de los Atmega
 
Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887Arquitectura Microcontrolador PIC16F887
Arquitectura Microcontrolador PIC16F887
 
Sistema de sincronización de semáforos (2)
Sistema de sincronización de semáforos (2)Sistema de sincronización de semáforos (2)
Sistema de sincronización de semáforos (2)
 
Microcontroladores PIC
Microcontroladores PICMicrocontroladores PIC
Microcontroladores PIC
 
8 bit microcontroller
8 bit microcontroller8 bit microcontroller
8 bit microcontroller
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4GUÍA DE EJERCICIOS RESUELTOS TEMA 4
GUÍA DE EJERCICIOS RESUELTOS TEMA 4
 
Control lcd 16X2 proton
Control lcd 16X2 protonControl lcd 16X2 proton
Control lcd 16X2 proton
 
direccionamiento microcontroladores pic
direccionamiento microcontroladores picdireccionamiento microcontroladores pic
direccionamiento microcontroladores pic
 
MICROCONTROLADORES.ppt
MICROCONTROLADORES.pptMICROCONTROLADORES.ppt
MICROCONTROLADORES.ppt
 
Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4
 
Programming pic microcontrollers
Programming pic microcontrollersProgramming pic microcontrollers
Programming pic microcontrollers
 
Arduino microcontroller and nRF24L01+ transceivers
Arduino microcontroller and nRF24L01+ transceiversArduino microcontroller and nRF24L01+ transceivers
Arduino microcontroller and nRF24L01+ transceivers
 
Interfacing using ِAtmega16/32
Interfacing using ِAtmega16/32 Interfacing using ِAtmega16/32
Interfacing using ِAtmega16/32
 
Tutorial micro MSP430
Tutorial micro MSP430Tutorial micro MSP430
Tutorial micro MSP430
 
Unidad IV ADC 2021.pdf
Unidad IV ADC 2021.pdfUnidad IV ADC 2021.pdf
Unidad IV ADC 2021.pdf
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación práctica
 
Registros del Pic 16F84
Registros del Pic 16F84Registros del Pic 16F84
Registros del Pic 16F84
 
PIC Microcontrollers
PIC MicrocontrollersPIC Microcontrollers
PIC Microcontrollers
 

Similar a PROGRAMACION DE LOS PIC 2021-1.pdf

Microcontrolador pic
Microcontrolador picMicrocontrolador pic
Microcontrolador picMirkoBlanco
 
Electonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacionElectonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacionBEYMARCALLECONDE
 
Iniciando c
Iniciando cIniciando c
Iniciando c____
 
Microcontroladores: Microcontroladores PIC fundamentos y aplicaciones didácticos
Microcontroladores: Microcontroladores PIC fundamentos y aplicaciones didácticosMicrocontroladores: Microcontroladores PIC fundamentos y aplicaciones didácticos
Microcontroladores: Microcontroladores PIC fundamentos y aplicaciones didácticosSANTIAGO PABLO ALBERTO
 
PROGRAMACIÓN DE MICROCONTROLADOR
PROGRAMACIÓN DE MICROCONTROLADORPROGRAMACIÓN DE MICROCONTROLADOR
PROGRAMACIÓN DE MICROCONTROLADORAlcira Gonzales
 
Microcontroladores octubreromeroyjimmy
Microcontroladores octubreromeroyjimmyMicrocontroladores octubreromeroyjimmy
Microcontroladores octubreromeroyjimmyjimmy Apanu Inoach
 
Reporte de practica #1
Reporte de practica #1Reporte de practica #1
Reporte de practica #1Will Alcantar
 
Programacion de microcontrolador
Programacion de microcontroladorProgramacion de microcontrolador
Programacion de microcontroladorDorvinEduardo
 
38912287 practica1
38912287 practica138912287 practica1
38912287 practica1rexmersxa7
 
Tutorial proton part 2
Tutorial proton part 2Tutorial proton part 2
Tutorial proton part 2dar851112
 
C:\Documents And Settings\Earias\Escritorio\Pic 32\Iniciacion A La Programaci...
C:\Documents And Settings\Earias\Escritorio\Pic 32\Iniciacion A La Programaci...C:\Documents And Settings\Earias\Escritorio\Pic 32\Iniciacion A La Programaci...
C:\Documents And Settings\Earias\Escritorio\Pic 32\Iniciacion A La Programaci...ezequiel
 

Similar a PROGRAMACION DE LOS PIC 2021-1.pdf (20)

Microcontrolador pic
Microcontrolador picMicrocontrolador pic
Microcontrolador pic
 
PROGRAMACIÓN DE MICROCONTROLADOR
PROGRAMACIÓN DE MICROCONTROLADORPROGRAMACIÓN DE MICROCONTROLADOR
PROGRAMACIÓN DE MICROCONTROLADOR
 
Electonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacionElectonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacion
 
Iniciando c
Iniciando cIniciando c
Iniciando c
 
Microcontroladores: Microcontroladores PIC fundamentos y aplicaciones didácticos
Microcontroladores: Microcontroladores PIC fundamentos y aplicaciones didácticosMicrocontroladores: Microcontroladores PIC fundamentos y aplicaciones didácticos
Microcontroladores: Microcontroladores PIC fundamentos y aplicaciones didácticos
 
Curso integral pic_236
Curso integral pic_236Curso integral pic_236
Curso integral pic_236
 
CURSO DE PICS.pptx
CURSO DE PICS.pptxCURSO DE PICS.pptx
CURSO DE PICS.pptx
 
Programación de microcontroladores
Programación de microcontroladoresProgramación de microcontroladores
Programación de microcontroladores
 
Labview & pic
Labview & picLabview & pic
Labview & pic
 
PROGRAMACIÓN DE MICROCONTROLADOR
PROGRAMACIÓN DE MICROCONTROLADORPROGRAMACIÓN DE MICROCONTROLADOR
PROGRAMACIÓN DE MICROCONTROLADOR
 
Microcontroladores octubreromeroyjimmy
Microcontroladores octubreromeroyjimmyMicrocontroladores octubreromeroyjimmy
Microcontroladores octubreromeroyjimmy
 
Reporte de practica #1
Reporte de practica #1Reporte de practica #1
Reporte de practica #1
 
Programacion de microcontrolador
Programacion de microcontroladorProgramacion de microcontrolador
Programacion de microcontrolador
 
Practica1
Practica1Practica1
Practica1
 
38912287 practica1
38912287 practica138912287 practica1
38912287 practica1
 
Practica1
Practica1Practica1
Practica1
 
Mce pic18 preview
Mce pic18 previewMce pic18 preview
Mce pic18 preview
 
Tutorial proton part 2
Tutorial proton part 2Tutorial proton part 2
Tutorial proton part 2
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
C:\Documents And Settings\Earias\Escritorio\Pic 32\Iniciacion A La Programaci...
C:\Documents And Settings\Earias\Escritorio\Pic 32\Iniciacion A La Programaci...C:\Documents And Settings\Earias\Escritorio\Pic 32\Iniciacion A La Programaci...
C:\Documents And Settings\Earias\Escritorio\Pic 32\Iniciacion A La Programaci...
 

Más de SistemadeEstudiosMed

Metodologia Aprendizaje Multicanal - ADI22.pdf
Metodologia Aprendizaje Multicanal - ADI22.pdfMetodologia Aprendizaje Multicanal - ADI22.pdf
Metodologia Aprendizaje Multicanal - ADI22.pdfSistemadeEstudiosMed
 
DE-03-BOMBAS Y SISTEMAS DE BOMBEO-2022.pdf
DE-03-BOMBAS Y SISTEMAS DE BOMBEO-2022.pdfDE-03-BOMBAS Y SISTEMAS DE BOMBEO-2022.pdf
DE-03-BOMBAS Y SISTEMAS DE BOMBEO-2022.pdfSistemadeEstudiosMed
 
Clase 1 Estadistica Generalidades.pptx
Clase 1 Estadistica Generalidades.pptxClase 1 Estadistica Generalidades.pptx
Clase 1 Estadistica Generalidades.pptxSistemadeEstudiosMed
 
nociones básicas de la comunicación.pdf
nociones básicas de la comunicación.pdfnociones básicas de la comunicación.pdf
nociones básicas de la comunicación.pdfSistemadeEstudiosMed
 
UNIDAD 2 FASE PLANTEAMIENTO ANTECEDENTES Y BASES TEORICAS.ppt
UNIDAD 2 FASE PLANTEAMIENTO ANTECEDENTES Y BASES TEORICAS.pptUNIDAD 2 FASE PLANTEAMIENTO ANTECEDENTES Y BASES TEORICAS.ppt
UNIDAD 2 FASE PLANTEAMIENTO ANTECEDENTES Y BASES TEORICAS.pptSistemadeEstudiosMed
 
Unidad I SEMINARIO DE INVESTIGACION DE TRABAJO DE GRADO.ppt
Unidad I SEMINARIO DE INVESTIGACION DE TRABAJO DE GRADO.pptUnidad I SEMINARIO DE INVESTIGACION DE TRABAJO DE GRADO.ppt
Unidad I SEMINARIO DE INVESTIGACION DE TRABAJO DE GRADO.pptSistemadeEstudiosMed
 
Lineamientos_Trabajos de Grado_UNEFM-nov-2009.pdf
Lineamientos_Trabajos de Grado_UNEFM-nov-2009.pdfLineamientos_Trabajos de Grado_UNEFM-nov-2009.pdf
Lineamientos_Trabajos de Grado_UNEFM-nov-2009.pdfSistemadeEstudiosMed
 

Más de SistemadeEstudiosMed (20)

Metodologia Aprendizaje Multicanal - ADI22.pdf
Metodologia Aprendizaje Multicanal - ADI22.pdfMetodologia Aprendizaje Multicanal - ADI22.pdf
Metodologia Aprendizaje Multicanal - ADI22.pdf
 
DE-04-COMPRESORES-2022.pdf
DE-04-COMPRESORES-2022.pdfDE-04-COMPRESORES-2022.pdf
DE-04-COMPRESORES-2022.pdf
 
DE-03-BOMBAS Y SISTEMAS DE BOMBEO-2022.pdf
DE-03-BOMBAS Y SISTEMAS DE BOMBEO-2022.pdfDE-03-BOMBAS Y SISTEMAS DE BOMBEO-2022.pdf
DE-03-BOMBAS Y SISTEMAS DE BOMBEO-2022.pdf
 
DE-02-FLUJO DE FLUIDOS-2022.pdf
DE-02-FLUJO DE FLUIDOS-2022.pdfDE-02-FLUJO DE FLUIDOS-2022.pdf
DE-02-FLUJO DE FLUIDOS-2022.pdf
 
DE-01-INTRODUCCION-2022.pdf
DE-01-INTRODUCCION-2022.pdfDE-01-INTRODUCCION-2022.pdf
DE-01-INTRODUCCION-2022.pdf
 
Clase 3 Correlación.ppt
Clase 3 Correlación.pptClase 3 Correlación.ppt
Clase 3 Correlación.ppt
 
Clase 2 Medidas Estadisticas.ppt
Clase 2 Medidas Estadisticas.pptClase 2 Medidas Estadisticas.ppt
Clase 2 Medidas Estadisticas.ppt
 
Clase 1 Estadistica Generalidades.pptx
Clase 1 Estadistica Generalidades.pptxClase 1 Estadistica Generalidades.pptx
Clase 1 Estadistica Generalidades.pptx
 
nociones básicas de la comunicación.pdf
nociones básicas de la comunicación.pdfnociones básicas de la comunicación.pdf
nociones básicas de la comunicación.pdf
 
¿Cómo elaborar un Mapa Mental?
¿Cómo  elaborar un  Mapa Mental?¿Cómo  elaborar un  Mapa Mental?
¿Cómo elaborar un Mapa Mental?
 
Unidad 1 Planificación Docente
Unidad 1 Planificación Docente Unidad 1 Planificación Docente
Unidad 1 Planificación Docente
 
hablemos_pp2_inf.pptx
hablemos_pp2_inf.pptxhablemos_pp2_inf.pptx
hablemos_pp2_inf.pptx
 
UNIDAD 3 FASE METODOLOGICA.pptx
UNIDAD 3 FASE METODOLOGICA.pptxUNIDAD 3 FASE METODOLOGICA.pptx
UNIDAD 3 FASE METODOLOGICA.pptx
 
UNIDAD 2 FASE PLANTEAMIENTO ANTECEDENTES Y BASES TEORICAS.ppt
UNIDAD 2 FASE PLANTEAMIENTO ANTECEDENTES Y BASES TEORICAS.pptUNIDAD 2 FASE PLANTEAMIENTO ANTECEDENTES Y BASES TEORICAS.ppt
UNIDAD 2 FASE PLANTEAMIENTO ANTECEDENTES Y BASES TEORICAS.ppt
 
Unidad I SEMINARIO DE INVESTIGACION DE TRABAJO DE GRADO.ppt
Unidad I SEMINARIO DE INVESTIGACION DE TRABAJO DE GRADO.pptUnidad I SEMINARIO DE INVESTIGACION DE TRABAJO DE GRADO.ppt
Unidad I SEMINARIO DE INVESTIGACION DE TRABAJO DE GRADO.ppt
 
Lineamientos_Trabajos de Grado_UNEFM-nov-2009.pdf
Lineamientos_Trabajos de Grado_UNEFM-nov-2009.pdfLineamientos_Trabajos de Grado_UNEFM-nov-2009.pdf
Lineamientos_Trabajos de Grado_UNEFM-nov-2009.pdf
 
unidad quirurgica.pdf
unidad quirurgica.pdfunidad quirurgica.pdf
unidad quirurgica.pdf
 
Cuidados preoperatorios.pdf
Cuidados preoperatorios.pdfCuidados preoperatorios.pdf
Cuidados preoperatorios.pdf
 
Cirugía..pdf
Cirugía..pdfCirugía..pdf
Cirugía..pdf
 
Cirugía Ambulatoria2.pdf
Cirugía Ambulatoria2.pdfCirugía Ambulatoria2.pdf
Cirugía Ambulatoria2.pdf
 

Último

EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicaFlor Idalia Espinoza Ortega
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 

Último (20)

EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 

PROGRAMACION DE LOS PIC 2021-1.pdf

  • 1. ¡Hola! ¡Que bueno volver a encontrarnos por aquí! Espero estés bien, y te hayan sido de provecho cada una de las presentaciones anteriores Hoy quiero invitarte a seguir andando un poco mas en la temática de los microcontroladores PIC, hoy abordaremos la nave de la programación, hablaremos un poco del lenguaje C, también del entro compilador Mikro C, y las características propias de la programación de los PIC. 1 ¿Qué te parece? ¿Te animas?... ¡Vamos a darle! Wilfran Yaraure Ing. En Electronica Facilitador
  • 2. PROGRAMACIÓN DE MICROCONTROLADORES PIC Área Cs. De la Salud Programa de Ing. Biomédica Dpto. De Electromedicina Unidad Curricular: Microcontroladores y Microprocesadores II Wilfran Yaraure Ing. En Electrónica Facilitador
  • 3. PROGRAMACIÓN DE MICROCONTROLADORES PIC En el PIC la memoria encargada de ejecutar el programa es la memoria flash, la cual almacena en su pila de direcciones el código ejecutable del programa, que esta constituido por un conjunto de numero binarios (0 y 1 lenguaje de maquina) que conforman una serie de palabras o sentencias que el micro puede ejecutar, estar palabras pueden tener una achura de 12, 14, o 16 BIT según la arquitectura con la que cuente el PIC. Estas palabras son procesadas por el CPU del micro como una instrucción a ejecutar, la totalidad de las instrucciones que el PIC puede reconocer y ejecutar conforman el conjunto de instrucciones de ese PIC. Anteriormente el desarrollo de estos códigos ejecutables se realizaba mediante un proceso bastante difícil, lo que origino el surgimiento del primer lenguaje de programación, un lenguaje de bajo nivel, llamado lenguaje assembler (ASM) o ensamblador, con una sintaxis básica de fácil comprensión y fácil escritura, basado en abreviaturas con significados, este lenguaje era traducido o compilado a lenguaje de maquina (código binario) mediante el compilador ensamblador. A pesar de esto, assembler presenta dos grandes desventajas como: 1. El código de programación suele ser muy extenso y ocupar mucha memoria del PIC. 2. En este lenguaje cada microcontrolador se programa con un conjunto de instrucciones especifico para el. 3 Solemos pensar que la programación es un proceso complicado, pero esto no es cierto, ya existen una serie de lenguajes y compiladores, que nos permiten reducir el numero de instrucciones, tiempo, y complejidad que generaría la programación en tiempos anteriores, así que no te asustes, y dispón tu mente a ser instruida en este proceso. Wilfran Yaraure Ing. En Electrónica Facilitador
  • 4. Lenguaje C Lenguaje de Alto nivel C 4
  • 5. PROGRAMACIÓN DE MICROCONTROLADORES PIC 5 Lenguaje C Wilfran Yaraure Ing. En Electrónica Facilitador Este lenguaje permite realizar operaciones tanto en Byte como en Bit, es decir operaciones lógicas, desplazamientos entre otros, además esta estandarizado en ANSI, en lenguaje portable, lo que permite reutilizar el mismo código en varios proyectos, El lenguaje C nace en la década de los 70´s (1972) con el objetivo de reescribir los sistemas operativos UNIX y optimizar el ASM, en los laboratorios Bell . Este fue la evolución de lenguajes previos llamados B, y BCPL. Entre sus características destacadas esta que varias instrucciones en ASM pueden ser sustituidas por una sola sentencia en C, optimizando el uso de memoria, la escritura y la comprensión del código.
  • 6. Cada uno de estos lenguajes de alto o bajo nivel utiliza o requiere de un software compilador o traductor, encargado de traducir, como su nombre lo indica, cada sentencia en C a un lenguaje de maquina (0 y 1) o códigos binarios, para que puedan ser procesados por el micro. Actualmente existe una variedad de compiladores e intérpretes para diversas familias de microcontroladores. En el caso se pueden encontrar el CPCM de la empresa CCS, el PBASIC de PARALLAX, mikroC PRO, mikroBasic y mikroPascal Estos ofrecen una serie de librerías que reducen el proceso de configuración y utilización de periféricos avanzados que incorporan estos PIC. 6 Los Compiladores se basan en estructuras que facilitan la programación, optimizan las operaciones matemáticas y los procesos, utilizando funciones predefinidas y las funciones creadas por el desarrollador, además de un conjunto de variables, de tipo carácter, entero, y punto decimal. El objeto principal del Compilador es crear el código binario o lenguaje de maquina y generar un archivo *.hex, que permita programa eléctricamente el microcontrolador PROGRAMACIÓN DE MICROCONTROLADORES PIC Compilador Wilfran Yaraure Ing. En Electrónica Facilitador
  • 8. PROGRAMACIÓN DE MICROCONTROLADORES PIC Mikro C PRO es un paquete de software con una amplia variedad de ayudas y herramientas que facilita la creación códigos de programación en lenguaje C, para diferentes familias de PIC. Presenta algunas diferencias con el estándar ANSI, que le permiten hacer mas fácil la programación de los PIC, y otras debido a la limitación de la arquitectura del hardware de los PIC. La letra C Hace referencia a las semejanzas entre el lenguajes C y mikro C 8 Mikro C Este entorno cuenta con una versión demo o estudiantil, con características similares a su versión completa, la única limitación es la dimensión del código de máquina que no puede exceder 2K bytes, se puede descargar de la pagina: www.mikroe.com. ¿Por qué Mikro C? Wilfran Yaraure Ing. En Electrónica Facilitador
  • 9. PROGRAMACIÓN DE MICROCONTROLADORES PIC 1) El archivo fuente contiene el código en mikroC (Programación del micro controlador). 2) El preprocesador se utiliza automáticamente por el compilador al iniciarse el proceso de la compilación. 3) El compilador busca las directivas del preprocesador (inician con ’#’) en el código y lo configura según estas directivas. 4) El analizador sintáctico (parser) elimina toda la información inútil del código (comentarios, espacios en blanco). 5) El compilador traduce el código a un archivo binario denominado archivo .mcl. 6) El enlazador (linker) recupera toda la información requerida para ejecutar el programa de los archivos externos y los agrupa en un solo archivo (.dbg). 7) Por último , el generador .hex produce un archivo .hex. Es el archivo que se va a cargar en el microcontrolador. 9 Compilación en Mikro C Pasos de la compilación Todo este proceso se denomina “building” Wilfran Yaraure Ing. En Electrónica Facilitador
  • 10. “ ¿Cómo vas hasta ahora?... ¿Que te ha parecido la información? 10 Todo esto es un proceso interesante, y bastante fácil de realizar, solo hay que prestar atención y dedicarle algo de tiempo. Ahora vamos a la parte mas densa, que es la programación, mantén la calma y el ánimo, eres capaz e inteligente. ¡Vamos a darle!. Wilfran Yaraure Ing. En Electrónica Facilitador
  • 11. ESTRUCTURA DE UN PROGRAMA. 11 PROGRAMACIÓN DE MICROCONTROLADORES PIC 1. Cabecera. 2. Declarar las variables globales. 3. Declarar las funciones secundarias 4. Declarar la función principal void main (); 5. Inicialización de los puertos y módulos del microcontrolador; 6. Crear Ciclo infinito de repeticiones do { … } While (1); Lógica del programa Wilfran Yaraure Ing. En Electrónica Facilitador
  • 12. ESTRUCTURA DE UN PROGRAMA. Para el desarrollo de un programa en Mikro C, se debe seguir la siguiente estructura: 12 PROGRAMACIÓN DE MICROCONTROLADORES PIC Debes recordar que el micro lee las líneas de programación por orden descendente Es decir, de arriba hacia abajo Por lo que es necesario cumplir con el orden de estos pasos Wilfran Yaraure Ing. En Electrónica Facilitador 1 Cabecera; Ayuda a describir los datos e información del programa empleando un comentario /* Comentario */ Declarar las variables globales (Int j; Char entre otros); presentar las variables que se utilizaran en todo el código, (son establecidas por el desarrollador). 2 Declarar las funciones secundarias; Describir las subrutinas o funciones diseñadas por el desarrollador para el funcionamiento del programa. 3 Declarar la función principal void main (); Es la función principal sobre ella se ejecuta la lógica de control principal que se quiere. 4 Inicialización de los puertos y módulos del microcontrolador; configurar quien E/S, Conversión A/D, Oscilador, entre otros, esto se realiza dentro de la función void main. 5 Crear Ciclo infinito de repeticiones do { … } While (0); Para que mientras este encendido el micro se ejecute el programa, de lo contrario solo lo ejecutara una sola vez. 6 Lógica del programa Donde se describen las líneas de programación que ejecutaran el control principal y visible del programa. 7
  • 13. Son partes del programa que se emplean para aclarar operaciones de programa o para proporcionar mayor información sobre el mismo, como los hacemos en la cabecera. Son de uso exclusivo del programador y el compilador se encarga de eliminarlos del código fuente antes del análisis sintáctico. En mikroC pueden ser unilineales o multilíneas. Los multilíneas están entre /* y */ Los cometarios unilineal inician con ‘//’ ¿QUE SON LOS COMENTARIOS? 13 PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador
  • 14. Una declaración consiste en informar al compilador los nombres o etiquetas que se emplearan en un programa, qué representan, de qué tipo serán, cuáles operaciones se permiten, entre otra cosas. ¿QUE SON LAS DECLARACIONES? ¿Qué aspectos deben ser declarados en un programa? ❑ Variables. ❑ Constantes. ❑ Funciones. ❑ Tipos. ❑ Estructuras. ❑ Uniones. ❑ Etiquetas de enumeraciones. ❑ Miembros de estructuras. ❑ Miembros de uniones. ❑ Otros tipos de matrices. ❑ Etiquetas de sentencias. ❑ Macros de preprocesador.. 14 PROGRAMACIÓN DE MICROCONTROLADORES PIC Declaraciones y declaradores Una declaración contiene especificadores seguidos por uno o mas identificadores (declaradores). Inicia con los especificadores opcionales de clase de almacenamiento, especificadores de tipo u otros modificadores. Los identificadores se separan por comas. La declaración termina en un punto y coma. Wilfran Yaraure Ing. En Electrónica Facilitador
  • 15. son los nombres arbitrarios utilizados para identificar : etiquetas, tipos, símbolos, constantes, variables, procedimientos y funciones. Identificadores Características para su uso: ❑ Se puede utilizar cualquier letras del abecedario mayúsculas y minúsculas desde a hasta z, y A hasta Z, el guion bajo "_", y los dígitos 0 a 9. ❑ MikroC no hace diferencia entre mayúsculas y minúsculas, entonces Sum, sum y suM serán equivalentes. ❑ Si se emplea el mismos nombre para varios identificadores en el mismo programa, ocurre un error ❑ Al escribir el primer carácter debe ser una letra o el guion bajo. 15 PROGRAMACIÓN DE MICROCONTROLADORES PIC Ejemplos de identificadores válidos: ✓ temperature_V1 ✓ Pressure ✓ no_hit ✓ dat2string ✓ SUM3 ✓ _vtext. Wilfran Yaraure Ing. En Electrónica Facilitador
  • 16. Son palabras o nombres que ya tienen significado fijo, por lo que no se pueden usar como identificadores. Mickro C, presenta un total de 98 palabras reservadas Palabras clave o reservadas Listado de palabras reservadas: 16 PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador
  • 17. MikroC Maneja un lenguaje de tipo, cada variable o constante pertenecen a un tipo definido. Este entorno soporta tipos de datos estándar (predefinidos) como los tipos enteros con signo o sin signo de varios tamaños, matrices, punteros, estructuras y uniones. También permite definir nuevos tipos de datos utilizando el especificador typedef. Tipos 17 PROGRAMACIÓN DE MICROCONTROLADORES PIC Por ejemplo: ✓ typedef char MyType1[10]; ✓ typedef int MyType2; ✓ typedef unsigned int * MyType3; ✓ typedef MyType1 * MyType4; ✓ MyType2 mynumber; Tipos aritméticos Este tipo se refiere a variables con palabras claves: void, char, int, float y double, precedidas por los siguientes prefijos: short (corto), long (largo), signed (con signo) y unsigned (sin signo). Hay dos tipos aritméticos, el tipo entero y el de punto flotante. Tipos enteros Son Los tipos char e int, junto con sus variantes. Se escriben utilizando los prefijos de los modificadores short, long, signed y unsigned. Tipos de punto flotante (fraccionarios) Son Los tipos de punto flotante float y double junto con el tipo long double Tipo Void Es un tipo especial que indica la ausencia de valor. No hay objetos de void; este se utiliza para derivar tipos más complejos. Wilfran Yaraure Ing. En Electrónica Facilitador
  • 18. Como venimos hablando las variables en mikro C, pueden ser: ✓ bit ✓ char ✓ short ✓ int ✓ long ✓ float ✓ double Tipos de Variables O Datos 18 PROGRAMACIÓN DE MICROCONTROLADORES PIC Las variables bit almacenan valores lógico, verdadero o falso, 0 o 1. Las variables char almacenan caracteres codificados con el código ASCII, se utiliza para guardar letras o textos. Las variables short almacenan números entero de 8 bits cortos con valores entre : -127 a 127. Las variables tipo int almacenan números enteros de 16 bits, con valores entre: -32767 a 32767. Las variables tipo long almacenan números enteros largos de 32 bits, con valores entre: -2147483647 a 2147483647. Las variables tipo float y double permiten guardar números con punto decimal. Wilfran Yaraure Ing. En Electrónica Facilitador
  • 19. En estas tablas puedes observar las características de cada variable mencionadas anteriormente: Tipos de Variables O Datos 19 PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador
  • 20. ¿Que debemos hacer para declara variables? Para ello debes hace lo siguiente: 1. Indicar el tipo de variable 2. Nombrar la variable, asignando un nombre según tu preferencia. 3. Asignar un valor inicial a la variable, esto es opcional. 4. Culminar con el carácter punto y coma (;). 20 PROGRAMACIÓN DE MICROCONTROLADORES PIC Ejemplos de identificadores válidos: ✓ bit VARIABLE1_BIT; //Declaración de una variable tipo bit. ✓ char CARACTER; //Declaración de una variable tipo char. ✓ int ENTERO; //Declaración de una variable tipo entera inicializada ✓ float DECIMAL; //Declaración de una variable con punto decimal ✓ double DECIMAL2; //Declaración de una variable con punto decimal ✓ long ENTERO2//Demacración de una variable de tipo entero largo Debes tener en cuenta que: ✓ Las variables no deben tener nombres repetidos. ✓ Las variables no deben empezar por un número. ✓ Una variable no puede utilizar caracteres especiales como: / * „ ; { }-! · % &. Wilfran Yaraure Ing. En Electrónica Facilitador
  • 21. ¿Que son las Funciones? Son subprogramas o fragmento de código que ciertas tareas especificas, cuando es invocada o nombrada en el flujo del programa principal o Función principal, esta trabajan o se desarrolla mediante uno o varios parámetros de entrada, y generan un parámetro de salida que se emplea en la programación. Existen 2 tipos de funciones, la función principal de programa Void main () {…}, que solo puede existir una en todo el código, y las funciones secundarias, que pueden ser varias en el mismo código, Las funciones son creadas por el desarrollador, aunque también existen algunas predefinidas en el compilador. la función main o principal como su nombre lo indica es la principal, es decir la de mayor importancia. Debido a que es la encargada de ejecutar el programa del microcontrolador automáticamente cuando este se energiza. 21 PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador
  • 22. ¿Qué debo hacer para declara las Funciones? Generalmente deben ser declaradas las funciones secundarias, que acompañaran a la función principal del programa, que son funciones diseñadas por el desarrollador (es decir, por ti). estas funciones hechas por el desarrollador deben ser declaradas antes de la función main. Recuerda que el micro lee las líneas de programación de forma descendiente, por eso si llega a la función main, y se invoca alguna función secundaria que no se haya declarado antes, se presentara un error en el programa y la compilación. Para dar nombre a las funciones se deben cumplen con las mismas reglas para nombrar las variables. 22 PROGRAMACIÓN DE MICROCONTROLADORES PIC tipo_de_resultado nombre_de_funcion name(lista-de-declaradores-deparámetros)); 1. nombre_de_función hace referencia a el nombre de función y debe ser un identificador válido según las reglas antes mencionadas. 2. tipo_de_resultado Hace referencia a el tipo del datos que se procesaran en la función, estos puede ser cualquier tipo estándar o definido por el usuario, según los mencionados anteriormente, Wilfran Yaraure Ing. En Electrónica Facilitador
  • 23. Ejemplos de declaración de funciones ✓void Función ( void ) {…} //Función con parámetros de entrada y salida vacíos. ✓void Función ( int A ) {…} //Función con un parámetro de entrada y salida vacía ✓int Función ( void ) {…} //Función con parámetro de entrada vacío y salida entera. ✓int Funcion ( int A ) {…} //Función con un parámetro de entrada y salida enteras. ✓float Producto ( float A, flota B ) //Función para calcular el producto de A y B. { // Apertura de la función con corchete. float RESULTADO; RESULTADO = A*B; //Producto de A y B. return RESULTADO; //La función retorna el resultado guardado en RESULTADO. } //Cierre de la función con corchete. 23 PROGRAMACIÓN DE MICROCONTROLADORES PIC void main( void ) //Declaración de la función main. { // Apertura de la función main. … //Código del programa principal del microcontrolador. } //Cierre de la función main Wilfran Yaraure Ing. En Electrónica Facilitador
  • 24. Puntuadores o Separadores Estos son elementos operadores que permiten separa las líneas de programación para organizar la lógica del código fuente diseñado. 24 PROGRAMACIÓN DE MICROCONTROLADORES PIC En mikro C se emplean los siguientes separadores: o [ ] Corchetes o ( ) Paréntesis o { } Llaves o , Coma o ; Punto Y Coma o : Dos Puntos o . Punto o * Asterisco o = Signo Igual o # Almohadilla [ ] Corchetes: indican índices de matrices uni y multi dimensionales. Ejemplo: char ch, str[] = "mikro"; int mat[3][4]; /* matriz de 3 x 4 */ ch = str[3]; /* cuarto elemento */ ( ) Paréntesis: sirven para agrupar expresiones, aislar expresiones condicionales e indicar llamadas a funciones. Ejemplo: d = c * (a + b); /* modifica la precedencia normal */ if (d == z) ++x; /* expresión condicional */ func(); /* llamada a función, sin parámetros */ void func2(int n); /* declaración de función, con parámetros */ { } Llaves: indican el inicio y el final de una sentencia compuesta, no requiere el punto y coma después de corchete de cierre. Ejemplo: if (d == z) { ++x; func(); } Wilfran Yaraure Ing. En Electrónica Facilitador
  • 25. Puntuadores o Separadores 25 PROGRAMACIÓN DE MICROCONTROLADORES PIC , Coma: se utiliza para separar los parámetros en las llamadas a función, los identificadores en las declaraciones y los elementos del inicializador. Ejemplo: Lcd_Out(1, 1, txt); char i, j, k; const char MONTHS[12] =(31,28,31,30,31); ; Punto y coma: Finalizador de sentencia. Cada expresión válida en C (incluyendo la vacía) seguida por un punto y coma se interpreta como una sentencia. Ejemplo: a + b; /* evalúa a + b, descarta el resultado */ ++a; /* efecto lateral en 'a', se descarta el valor ++a */ ; /* expresión vacía, o una sentencia nula */ : Dos puntos: indican una etiqueta. Ejemplo: start: x = 0; = Signo igual: se utiliza para separar declaraciones de variables de las listas de inicialización así como los lados izquierdo y derecho en las expresiones de asignación. Ejemplo: int test[5] = { 1, 2, 3, 4, 5 }; int x = 5; Wilfran Yaraure Ing. En Electrónica Facilitador
  • 26. Break Wow!... Estamos avanzado, ¿Como vas?... Es un tema interesante y bastante fácil ¿verdad?. En principio parece tedioso y difícil, pero cuando le prestas atención y comienzas a unir cada una de las piezas te das cuenta que es fácil y divertido, como si jugaras con legos 26 Es hora de continuar, ¿que te parece? Entonces ¡Vamos a darle!. Wilfran Yaraure Ing. En Electrónica Facilitador
  • 27. OPERADORES 27 PROGRAMACIÓN DE MICROCONTROLADORES PIC Son símbolos que indican las operaciones que se realizan sobre una expresión. Pueden ser operaciones aritméticas, lógicas u otras en particular. En el lengua C se disponen de mas de 40 operadores, pero en la puesta en practica se emplean realmente de 10 a 15. Wilfran Yaraure Ing. En Electrónica Facilitador
  • 28. Operadores Aritméticos Existen dos tipos: Unitarios y Binarios (Necesitan 2 variables o números para la operación Nos permiten realizar operaciones matemáticas Ejemplos: A++; //Este operador incrementa en una unidad el valor de A. A --; //Este operador decrementa en una unidad el valor de A. C = A+B; //Está expresión guarda la suma de A y B en la variable C. C = (A+B)/C; //Está expresión es equivalente a C = (A+B)÷C. 28 PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador
  • 29. Operadores Relacionales Si es cierta arroja un 1, Si es falsa un 0 Comprueba veracidad de expresiones Ejemplos: 29 PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador
  • 30. Operadores asignación simple En este se emplea el signo = como un operador, y permite asignar valor simple a una variable, por ejemplo A= 8; 30 PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador Estos operadores nos permiten asignar valores a una determinada variable. Existen 2 tipos: Operadores de asignación compuesta Operadores de asignación simple En este caso, se emplean dos operadores, para simplificar la sintaxis, y asignara valores mas complejos Como observas en los ejemplos, el valor de a, será a+8, o a-8, según sea el caso.
  • 31. Operadores lógicos 31 PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador Estos operadores nos permiten realizar operaciones de lógica digital, como las realizadas con las compuertas lógicas conocidas, arrojan valores de 0 y 1, según la tabla de las relaciones lógicas. :
  • 32. ¿Qué formatos Numéricos puedo usar al programar? 32 CARACTERES ASCII HEXADECIMALES. OCTALES DECIMAL BINARIOS Usando el Prefijo 0x o 0X, ejemplo: 0x8F Números entero base 10, sin prefijos Enteros que empiezan con 0, ejemplo, 0357. Usando el prefijo 0b o 0B, ejemplo, 0b10100101. Usando Caracteres alfanuméricos entre comillas para mostrar en pantalla, ejemplo: "Hola mundo" En el lenguaje C se emplean diferentes bases numéricas, la principal para el procesamiento es la base numérica binaria (2), pero pueden ser empleados 3 tipos de bases numéricas, como lo son: Los decimales que emplean base 10, a los que estamos acostumbrados normalmente en las matemáticas, la Hexadecimales que emplean base 16, y los binarios que emplean base 2, como lo hemos visto en la teoría de circuitos digítales, además se pueden emplear también el Código ASCII para formatos alfanuméricos PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador Para poder usarlo se deben tener en cuenta los prefijos correspondientes
  • 33. ¿Que tal vas? Espero que vayas bien, y que este viaje sea de provecho… no te preocupes, ni te apresures, tomate tu tiempo y rumea un poco la información, ve asimilando poco a poco, tu puedes … 33 ¿Que te parece si continuamos?... ¡ok, Vamos a darle! Wilfran Yaraure Ing. En Electrónica Facilitador
  • 34. Sentencia Explicación Sintaxis Sentencias de interacción (Bucles) Son vital del código, permiten repetir un conjunto de sentencias en función de conteos y condiciones de variables creando bucles interactivos, que cuentan o gobiernan tareas y procesos desarrollados en el programa ❑ While () {…} ❑ Do {…} while () ❑ For (...) {…} Sentencias Condicional Permiten realizar menús, tomar decisiones entre distintos cursos de acción en función de valores o condiciones. ❑ If (…) {…} ❑ if else(…) {…} ❑ switch case (…) {…} Sentencias de salto Permiten detener, iniciar o salir de interacciones en medio de bucles o sentencias de interacción. ❑ break; ❑ continue; ❑ return […]; 34 Son líneas de programación que permiten controlar el flujo de la lógica del código diseñado, pueden ser de 6 tipo, como los mostrados en el grafico. Es decir, le indican al micro que hacer y que no hacer. Y pueden ser de estos 3 tipos PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador
  • 35. puedes crear un bucle o ciclo de repeticiones, según el numero de repeticiones que necesites. ¿Que puedo hacer con ella? while(condición o numero de repeticiones){Porción del código que se repite} ¿Cuál sintaxis debo usar? La porción del código entre las {…} Se repite tantas veces como lo indique la condición entre los (…) ¿Que ocurre cuando se esta ejecutando? while (1) ...; Usando un valor constante dentro de los paréntesis, como se muestra, no afectado por ninguna condición, el código se repetirá mientras 1 sea 1, y como no existe un valor que lo afecte 1 siempre será 1, generando un ciclo infinito de repeticiones. Esta es la forma más simple de crear un bucle Infinito, ¿como lo hacemos?. Sentencia While PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador 35 {Sentencias de iteración (Bucles)}
  • 36. Sentencia Do while 36 1 ¿Que puedo hacer con ella? Puedes realizar un ciclo de repeticiones similar al realizado con While, pero en este caso primero se ejecuta el fragmento de código a repetir, y luego se evalúa la condición del While, por lo que el código se ejecutará por lo menos una vez 2 ¿Cual sintaxis que debo usar? do{ Porción del código que se repite; } while(condición); 3 ¿Qué ocurre cuando se esta ejecutando? La porción del código entre las {…} entre do y while Se repite tantas veces como lo indique la condición entre los (…) del while PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador {Sentencias de iteración (Bucles)}
  • 37. for (I=0; I=10; I++ o I--) {Porción del código Que se repite; } 1. Se le da un valor de inicio a la variable en este caso I=0, que indica que inicia en 0 2. Se asigna valor final a la variable, es decir, cuantas veces se repetirá, en este caso I=10. 3. Se expresa la condición del conteo, si será incremento I++, o decremento I--. 4. Se repite la porción de código hasta que se alcance el valor final de la variable ¿Qué ocurre cuando se esta ejecutando? ¿Qué sintaxis debo usar? ¿Que puedo hacer con ella? Con ella puedes crear ciclos o bucles de repeticiones con mayor control de condiciones, creando condiciones de inicio, de final, y cambios progresivos en la variable controlada Sentencia For 37 PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador {Sentencias de iteración (Bucles)}
  • 38. Sentencia If ¿Cual sintaxis debo usar? ¿Que ocurre durante la ejecución? ¿Que puedo hacer con ella? 38 {Sentencias Condicionales} PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador Usando la sentencia if puedes evaluar el estado lógico (1 o 0) de alguna variable, puerto o pin, es decir si esta activo o no, y luego de eso decidir si se ejecuta una porción de código o no, por ejemplo, si un botón esta presionado o no, si una variable alcanzó un determinado valor, depende de la condición que necesites evaluar if(Valor>100) //evalúa si la variable Valor es mayor que 100. { … // Porción de código que se ejecuta si el if es verdadero. } Al usar esta sentencia, se evalúa la condición dentro de los (…) si esta condición se cumple, se ejecuta la porción del condigo dentro de las {…}, si no se cumple, el programa sigue ejecutando las demás líneas de código que prosiguen
  • 39. Sentencia if (…) else (…) {…} ¿Cual sintaxis debo usar? ¿Que ocurre durante la ejecución? ¿Que puedo hacer con ella? 39 {Sentencias Condicionales} PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador Es similar a if, pero con 2 porciones de código ejecutar, una para cuando se tenga un estado lógico bajo (0) o falso y otro para cuando se tenga un estado lógico alto (1) o verdadero, por ejemplo: si el puerto A es igual a 1, ejecuta este código, si no ejecuta este otro código. if(Valor>100)//Este if evalúa si la variable Valor es mayor que 100. {// Porción de código que se ejecuta si la condición del if se cumple.} else {// Porción de código que se ejecuta si la condición del if no se cumple.} Al usar esta sentencia, primero se evalúa la condición dentro de los (…) si esta condición se cumple, se ejecuta la porción del condigo dentro de las primeras {…}, si no se cumple, se ejecuta el código dentro de las {…} que siguen después del else
  • 40. ¿Que puedo hacer con ella? Puedes desarrollar menús con varias opciones, de manera que según la opción seleccionada se ejecuten una serie de sentencias. Consiste en una sentencia de control (selector) y una lista de los valores posibles de la expresión, además no se evalúa una condición si no el valor de una variable ¿Que sintaxis debo usar? Switch ( Valor ) { case Valor 0: //Fragmento de código correspondiente al valor 0 de la variable Valor. break; //Ruptura del caso 0. case Valor 1: //Fragmento de código correspondiente al valor 1 de la variable Valor. break; //Ruptura del caso 1. case Valor 10: //Fragmento de código correspondiente al valor 10 de la variable Valor. break; //Ruptura del caso 10. } ¿Qué ocurre durante su ejecución? Primero Evalúa la variable (valor) y la compara con todas las opciones disponibles de case valor. Si hay una coincidencia, se ejecuta el fragmento de código correspondiente a ese case valor. Cada uno de los fragmentos de código finaliza con la directriz break para romper el flujo y volver al código general 40 {Sentencias Condicionales} PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador Sentencia Switch (…) {…}
  • 41. Sentencia Break Puede ser usada dentro de cualquier bucle, pero es especialmente empleada en la sentencia Swicht. La puedes emplear para interrumpir el flujo de cualquier bucle, es decir detener el programa en ese punto y salir del bucle en el que se encontraba. Sintaxis Solo debes colocar Break; donde quieres que se detenga el bucle Sentencia Contine La puedes emplear para realizar salto de una interacción sin detener el bucle, y te permitira obviar algunas líneas de código, según la condición que establezcas. Sintaxis Solo debes colocar contnie; donde quieres que se realice el salto Sentencia Goto La puedes usar para saltar de forma incondicional cualquier parte del código que requieras en tu lógica. Sintaxis Solo debes colocar Goto identificador_de_etiq ueta; especificando la etiqueta del punto a donde quieres dar el salto 41 {Sentencias de Salto} PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador
  • 42. Inicialización de Variables, librerías para pantallas y teclados, entre otros Lcd_Init(); Glcd_Init(); I2C1_Init(100000);. En este caso la inicialización hace referencia a los valores iniciales de las VARIABLES, PUERTOS, Y REGISTROS a utilizar en el código. Es decir, que debes establecer las condiciones iniciales con las que se va a trabajar, por ejemplo cuales puertos serán de entra o salida, cuales serán de entrada Digital y cuales analógica, que frecuencia de trabajo se utilizara para el Oscilados, entre otras cosas. Para ellos se debe asignar valores a los registros de función especial SFR correspondientes, o declarar la librería a utilizar, según sea el caso. Esto lo debes hacer al inicio de la función principal Void main () Registros para inicialización de puertos PORTA; PORTB; PORTC; PORTD; PORTE. Registro para inicialización del Oscilador OSCCON; Registro para Inicialización A/D ADCON1; 05 02 03 04 Inicialización Registros para Configuración inicial de puertos TRISA; TRISB; TRISC; TRISD; TRISE; PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador 01 42
  • 43. Ejemplo de inicialización PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador 43 // inicialización de los puertos Digitales // inicialización de la comunicación serial // inicialización del PIN 0 del PUERTO C como entrada // inicialización del Teclado Matricial // inicialización de la Pantalla GLCD // Valor inicial que mostrara la Pantalla GLCD // Valor inicial de las variables // Retardo o tiempo de Espera
  • 44. Generalmente el tiempo de ejecución de una instrucción en el PIC, es un tiempo que no puede ser percibido por el ojo humano. Para poder apreciar las ejecuciones de las sentencias se hacen necesario los retardos o tiempos de Espera. Estas son líneas de programación que indican al micro un periodo de tiempo en el que debe esperar sin ejecutar ninguna sentencia alguna, permitiendo así que se muestre la ultima sentencia ejecutada. Mikro C, tiene algunas sintaxis ya definidas que nos permiten programar retardos en Micro segundos (us), milisegundos (ms) o en unidad tiempo de ciclo de reloj (cyc). Retardos o Tiempo de espera PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador Delay_us(Valor) ; Sintaxis para crea un retardo en microsegundo Delay_ms(Valor) ; Sintaxis para crea un retardo en milisegundo Delay_cyc(Valor) ; Sintaxis para crea un retardo en ciclos de reloj
  • 45. Enunciado del problema Diseñar un código de programación que permita controlar el encendido y apagado automático de un led, conectado al pin 0 del PUERTO A, con un tiempo de espera de 1 segundo entre el encendido y apagado Dividimos el problema en pedazos y lo atacamos por partes. PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador ¿Quien será el puerto de entrada? ninguno. No se empleara ningún botón, ya que se realizara un encendido y apagado automático. ¿Quien será puerto de salida? El Puerto A, específicamente el pin 0, para conectar el led. ¿Se utilizara E/S Analógicas o Digitales? Digitales, se requieren solo 2 estados , uno alto (1) para el encendido y bajo (0) para el apagado. ¿Se requiere alguna función secundaria? En este caso no, debido a que es un código simple, con la función principal es suficiente. ¿Se requiere declara alguna variable? No en este caso, debido a que todo se hará desde el puerto A Código Ejemplo #1
  • 46. Luego de analizar los requerimientos de nuestro programa, procedemos a escribir nuestro código, según la estructura del programa vista anterior mente (pg. 11 y 12) PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador 1. Cabecera, haciendo uso de la herramienta /*Comentario*/ describimos nuestro código. 4. Declarar la función principal void main (); 5. Inicialización de los puertos y módulos del microcontrolador; 6. Crear Ciclo infinito de repeticiones do { … } While (1); Lógica del programa Código Ejemplo #1 Como te habrás dado cuneta solo usamos los pasos 1, 4, 5, y es de la estructura de un código, debido a los requerimientos que analizamos en la parte anterior
  • 47. Código Ejemplo #1 Así se vería la conexión y el comportamiento del Ejemplo1 anterior. PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador Te invito a que lo intentes, abre mikro c, escribe el mismo código, compílalo, y simúlalo en proteus, para que confirmes el comportamiento. ¡Tu puedes hacerlo!
  • 48. Enunciado del problema Diseñar un código de programación que permita controlar el encendido y apagado automático de un led, conectado al pin 0 del PUERTO A, con un tiempo de espera de 1 segundo entre el encendido y apagado, repitiendo el ciclo 10 veces Dividimos el problemas en pedazos y lo atacamos por partes. PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador ¿Quien será el puerto de entrada? ninguno. No se empleara ningún botón, ya que se realizara un encendido y apagado automático. ¿Quien será puerto de salida? El Puerto A, específicamente le pin 0, para conectar el led. ¿Se utilizara E/S Analógicas o Digitales? Digitales, se requieren solo 2 estados , uno alto (1) para el encendido y bajo (0) para el apagado. ¿Se requiere alguna función secundaria? En este caso no, debido a que es un código simple, con la función principal es suficiente. ¿Se requiere declara alguna variable? No en este caso, debido a que todo se hará desde el puerto A Código Ejemplo #2 Igual al código anterior, solo necesitamos ahora controlar los ciclos de repeticiones y lo haremos empleando la sentencia de interacción for
  • 49. Luego de analizar los requerimientos de nuestro programa, procedemos a escribir nuestro código, según la estructura del programa vista anterior mente (pg. 11 y 12) PROGRAMACIÓN DE MICROCONTROLADORES PIC Wilfran Yaraure Ing. En Electrónica Facilitador 1. Cabecera, haciendo uso de la herramienta /*Comentario*/ describimos nuestro código. 4. Declarar la función principal void main (); 5. Inicialización de los puertos y módulos del microcontrolador; 6. Creando bucle de repeticiones infinitas do while(), para mientras este encendido el pic ejecute el programa Lógica del programa Código Ejemplo #2 2. Declarar las variables globales. Dentro de la lógica, Utilizamos la sentencia for para la creación de un bucle de 10 repeticiones, según lo pide el enunciado
  • 50. Aquí te dejo estos ejercicios para que practiques, usando mikroC y Proteus Ejercicio #1 Diseñar un código de programación para el PIC18F4550, que permita ejercer el control del encendido y apagado de 8 LED conectados al PUERTO D del PIC, el encendido debe ser secuencialmente uno a uno, desde el menos significativo hasta el mas significativo, y luego los apague de igual forma, con un tiempo de espera entre cada uno de los LED de ½ segundo, tanto en la secuencia de encendido, como en la secuencia de apagado. 50 Ejercicio #2 Diseñar un código de programación para el PIC18F4550, que funcione como un decodificador BCD a 7 segmento, es decir que permita ingresar un código binario de 4 dígitos usando 4bit menos significativos del puerto B, y muestre los valores de salida hexadecimal de 0 a F en un Display 7 segmentos conectado al puerto D. Ejercicio #3 Diseñar un código de programación para el PIC18F4550, que funcione como un temporizador o contador decimal, que vaya desde 0 a 99, cambiando automáticamente de valor cada 100ms, y muestre los valores de salida a través de dos Display 7 segmentos, uno conectado al puerto B y otro al puerto D, . Wilfran Yaraure Ing. En Electrónica Facilitador Recuerda que estoy a un mensaje de distancia, puedes escribir por la plataforma ADI, o al correo Electrónico para aclarar tus dudas
  • 51. 51 Aunque actualmente todo parece una locura, realmente “Locura es hacer lo mismo una y otra vez esperando obtener resultados diferentes” (anónimo) Por eso hoy mas que nunca debemos ir más allá, de lo que hemos ido, a encontrar otro punto de vista, a buscar nuevas maneras de hacer las cosas, y seguir avanzando, y no nos quedemos esperando a que todo sea diferente si seguimos haciendo lo mismo de siempre. ¡Que nuestra nueva normalidad sea lo extraordinario! Wilfran Yaraure Ing. En Electrónica Facilitador
  • 52. Bibliografía ✓ Clavijo (2011), Diseño y simulación de sistemas microcontrolados en lenguaje C, Programación con MikroC PRO, Simulación en Proteus ISIS. https://drive.google.com/file/d/0B3Gup-Soes9hbFByRHF0WFpuQk0/view?usp=sharing ✓ MikroElectronika (2011) GUÍA DE REFERENCIA RÁPIDA A mikroC www.mikroe.com 52