0% encontró este documento útil (0 votos)
167 vistas40 páginas

Lenguajes Electrónicos 5

Este documento introduce los conceptos básicos de programación, incluyendo la definición de programación, los pasos para desarrollar un programa, y la definición y uso de pseudocódigo. También describe los diferentes niveles de lenguaje de programación como lenguajes de bajo, medio y alto nivel. Además, introduce diagramas de flujo, incluyendo cómo crearlos y sus símbolos estándares. Por último, presenta conceptos básicos sobre microcontroladores, incluyendo su arquitectura interna, memoria y puertos I/O.

Cargado por

andres adolfo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
167 vistas40 páginas

Lenguajes Electrónicos 5

Este documento introduce los conceptos básicos de programación, incluyendo la definición de programación, los pasos para desarrollar un programa, y la definición y uso de pseudocódigo. También describe los diferentes niveles de lenguaje de programación como lenguajes de bajo, medio y alto nivel. Además, introduce diagramas de flujo, incluyendo cómo crearlos y sus símbolos estándares. Por último, presenta conceptos básicos sobre microcontroladores, incluyendo su arquitectura interna, memoria y puertos I/O.

Cargado por

andres adolfo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

.

Contenidos
Capítulo I Introducción a la Programación
Definición de programación………………………………………………..…………… 1
Pasos para desarrollar un programa……………….………………..…………………... 1
Definición de Pseudo Código……………………………………..……………………. 1
Como el Analista de Sistema utiliza en la práctica el Pseudo Código…………………. 2
Capítulo II Niveles de Lenguaje
Introducción………………..………………………………………………..………….. 4
Lenguajes de bajo nivel………………………….……………………….…………….. 4
Complejidad vs. Dificultad… ………………………………………..…………………. 4
Assembler…………………………………………………………………….…………. 5
Lenguajes de medio nivel… ………………..……………………………..……………. 5
Lenguajes de alto nivel……………………………………………………….…………. 5
Capítulo III Diagrama de Flujo
Introducción………………..………………………………………………………..…... 7
Como realizar un diagrama de flujo………………….….………………..…………….. 7
Ventajas de los diagramas de flujo……..………………..………………..…………….. 8
Reglas para realizar un diagrama de flujo……….………………………..…………….. 8
Símbolos estándares……………………..……….………………………..…………….. 8
Operadores estándares…………………..……….………………..…………………….. 9
Ejemplo de diagrama de flujo……………………...…….………………..……………. 11
Capítulo IV Introducción al Microcontrolador
¿Qué es un microcontrolador?……………..…….………….…………….……………. 12
Diferencia entre microprocesador y microcontrolador .…………….…….……………. 12
Arquitectura interna del microcontrolador ..…….……………….……….……………. 13
Memoria de programa ………………………………..…………………..……………. 13
Memoria de datos ………………………....…….………………………..……………. 14
Oscilador …………….……………………………………..…………….……………. 14
Los Puertos I/O del PIC ………………………....…….……………….……………… 16
Entradas digitales ………………………....……………..……………….……………. 16
Entradas analógicas ….……………………………..…………………….……………. 16
Salidas ………………....…….……………………………….………………………… 17
Capítulo V Programación en C aplicado a PIC
Introducción ……………………………………..…….….…………….……………… 20
Estructura de un programa en C .………………………….……………...……………. 20
Tipos de datos ..…….…………………………………….……………….……………. 20
Variables globales y locales …………….……………………..………….……………. 21
Control de flujo ………………………………….....…….……………….……………. 22
Ejecución de condicional if…………………………….………….…. 22
Controles de loops …..…………………………..……………………. 24
while ……..……………….…………..………..…. 24
for …..……………………………..……………... 26
Ejemplo completo ……………………………..…….……………..…………………… 28
Capítulo VI Compilación en MPLAB
Introducción ……………………………..…….……………….…………..…………… 32
Pasos para realizar la compilación .…………………………..…………...…………….. 32

1° Edición
Año MMXVII
Prof. De Marinis
Lenguajes Electrónicos 5to

Capitulo I Introducción a la Programación


Definición de programación
Programación de computadoras es la ciencia que permite a una persona programar una
computadora para que resuelva tareas de manera rápida. Un Programa de computadora se puede
definir como una secuencia de instrucciones que indica las acciones o tareas que han de ejecutarse
para dar solución a un problema determinado.
Programar computadoras es indispensable en cualquier área de la ingeniería, ya que diferentes
problemas que se puedan presentar tardan tiempo resolverlos de manera manual. La computadora
resuelve problemas de acuerdo como se le haya programado de manera rápida.

Pasos para desarrollar un programa


Para llegar a tener una secuencia de instrucciones que den solución a un problema es
necesario ejecutar varias etapas.
1. Etapa de análisis: En esta etapa el programador debe entender claramente el problema.
Saber que es lo que se quiere resolver. A esta etapa se la llama también Analizar.
2. Etapa de Solución general: Escribir la serie de pasos que sean necesarios para dar
solución al problema. Estos pasos se pueden desarrollar a través de un Diagrama de flujo
(Utilizando símbolos) ó a través de un seudo lenguaje (Utilizando Lenguaje común)
conocido como Algoritmo.
3. Etapa de prueba: Consiste en chequear el algoritmo paso a paso para estar seguro si la
solución da solución verdaderamente el problema. A esta etapa se la llama también
Prueba de Escritorio.
4. Etapa de implementación específica: Consiste en traducir el algoritmo a un lenguaje de
programación. A esta etapa se la llama también Codificar.
5. Etapa de prueba: Consiste en ejecutar el programa en un computador y revisar los datos
arrojados para ver si son correctos y hacer los ajustes necesarios. A esta etapa se la llama
también Implementar.
6. Etapa de uso: Consiste en instalar el programa de manera definitiva para el uso por parte
del usuario.

Definición de Pseudo Código

No es una forma de programación. Se trata de una herramienta que los analistas de sistemas
utilizan para comunicar a los programadores la estructura del programa que van a realizar, de
forma de tener una idea bien clara de lo que se necesita programar.
El Pseudo Código es una forma de diagramar un algoritmo (1) para resolver un determinado
problema, sin atenerse a ningún lenguaje de programación en especial.
En vez de escribir el programa directamente en un lenguaje de programación determinado (C,
Basic, etc.), crearemos un borrador entendible para todos, para luego de tener bien en claro lo que
se debe hacer, pasar a la programación propiamente dicha. El Pseudo Código se refiere a crear un
código para orientar a los programadores, pero sin la sintaxis ni la estructura propia de ningún
lenguaje.
(1) Un algoritmo es un conjunto de procedimientos que permiten resolver un problema

. 1
Capítulo I
Introducción a la Programación

En el siguiente diagrama de bloques mostramos donde se ubicaría el Pseudos Código en el


desarrollo de un programa.

Requerimientos Pseudos Código Codificación

Un Pseudo Código no hay que confundirlo con un Diagrama de Flujo. En el diagrama de


flujo se representa el transcurso del programa, el momento donde se obtienen los datos, cuando se
procesan y el momento de presentar los resultados. Si bien son dos herramientas que se utilizan en
conjunto, cada una representa dos partes distintas en el diseño de un sistema.

Como el Analista de Sistema utiliza en la práctica el Pseudos Código


En el trabajo de un Analista de Sistemas, una de las partes más trabajosas es la de determinar
que es lo que necesitan de un sistema los usuarios finales. Se dedican muchas horas a hacer un
relevamiento de los datos que serán necesarios, los tipos de procesamientos, las salidas, etc.
Analizamos el siguiente diagrama:

Analista de Sistemas Programadores

Determinación
de Sistema
Desarrollo
requisitos
Usuario

Como se observa debe existir una realimentación entre el diseño y el usuario, para garantizar
que el sistema cumpla con los requisitos del usuario.

Supongamos que tenemos un sistema para una empresa que utiliza una interfaz gráfica en
Visual Basic, algunas aplicaciones específicas en C, y páginas PHP para trabajo vía Internet.
Seguramente que crear un diagrama específico para cada lenguaje sería una tarea tediosa.
Gracias a esta herramienta, podemos reunir a todos los programadores, dar las pautas de
trabajo, y mediante el pseudo código, cada programador sabrá lo que hace el sistema, y podrá
escribir el código correspondiente.
Incluso dos programadores que dominen el mismo lenguaje pueden tener metodologías de
trabajo distintas. Un problema puede ser resuelto de muchas maneras, cada una más o menos
eficiente que la otra, pero todas cumplen con el objetivo.

2
Prof. De Marinis
Lenguajes Electrónicos 5to

Programa en C

Programador
de C

Pseudos Programa en
Código Visual Basic
Analista de Sistemas Programadora
de Visual Basic

Programa en PHP

Programador
de PHP

El pseudo código elimina estas diferencias, dando libertad a los programadores para que
puedan ajustarse a su metodología de trabajo.
Generalmente, este código se escribe con la participación de todos los programadores. Esto
representa la ventaja de que muchas opiniones ayudan a elegir la mejor entre todas, logrando una
solución efectiva y eficaz al problema planteado.

. 3
Capítulo II
Niveles de Lenguaje

Capitulo II Niveles de Lenguaje

Introducción
Los lenguajes de programación son lenguajes creados por el ser humano para poder
comunicarse con las computadoras. Así podríamos decir que lenguaje de programación es el
conjunto de símbolos y palabras que permiten al usuario de una computadora darle instrucciones y
órdenes para que la computadora los ejecute.
Se los pueden clasificar en tres niveles, lenguaje de bajo nivel, lenguaje de nivel medio y
lenguaje de nivel alto.
Mientras más bajo es el nivel de lenguaje, se acerca mas al lenguaje de la computadora y es
más económico en el uso de recursos (cantidad de memoria). Mientras que más alto es el lenguaje
es más cercano al lenguaje del ser humano haciéndolo de mas fácil comprensión, pero con mayor
uso de recursos.

Lenguajes de bajo nivel


Un lenguaje de programación de bajo nivel es aquel en el que sus instrucciones ejercen un
control directo sobre el hardware y están condicionados por la estructura física de las computadoras
que lo soportan. El uso de la palabra bajo en su denominación no implica que el lenguaje sea menos
potente que un lenguaje de alto nivel, sino que se refiere a la reducida abstracción entre el lenguaje
y el hardware. Por ejemplo, se utiliza este tipo de lenguajes para programar tareas críticas de
los sistemas operativos, de aplicaciones en tiempo real o controladores de dispositivo.
Complejidad vs. dificultad
Dicho lenguaje es muy simple o nada complicado, pero estructurar programas a ese nivel es muy
difícil. Dado que este lenguaje viene dado por las especificaciones técnicas del hardware, no
permite una abstracción fuera de lo estipulado para el microprocesador de un ordenador.
Consecuentemente, es fácilmente trasladado a lenguaje de máquina.
Las estructuras de los lenguajes de bajo nivel son:
1. Código Binario - Es el lenguaje básico, sólo admite todo (1) o nada (0). Todo sistema
informático está basado en este código, ya que el 1 (todo, SÍ) quiere decir que se permite el
paso de la electricidad y el 0 (nada, NO) no lo permite. Sería la forma en la que están
almacenados los programas, sea en memoria, sea en dispositivos de almacenamiento. De
esta forma son recibidas y ejecutadas cada una de las instrucciones por la CPU del
ordenador.
2. Lenguaje Máquina - Las invocaciones a memoria, como los procesos aritméticos lógicos
son posiciones literales de conmutadores físicos del hardware en su representación booleana.
Estos lenguajes son literales de tareas. Este lenguaje de programación utiliza el alfabeto
binario, es decir, el 0 y el 1. Con estos dos únicos dígitos, también conocidos como bits, se
forman lo que se conoce como cadenas binarias (combinaciones de ceros y unos) son con las
que se escriben las instrucciones, y a través de estas instrucciones el microprocesador de la
computadora entiende nuestros requerimientos.
3. Lenguajes ensambladores - También denominados nemotécnicos o nemónicos, no son ya
programas ejecutables directamente por el ordenador, sino textos de código fuente que
necesitan de alguna herramienta para su conversión a lenguaje máquina, son los programas
llamados ensambladores. Sus instrucciones suelen ser una denominación abreviada de la
instrucción máquina que simbolizan, y tienen una correspondencia casi directa a las
4
Prof. De Marinis
Lenguajes Electrónicos 5to

instrucciones máquina que representan. El código resultante de la ejecución del programa


ensamblador generaría un código binario ejecutable.
Son instrucciones que ensamblan los grupos de conmutadores necesarios para expresar una
mínima lógica aritmética. Están íntimamente vinculados al hardware. Por norma general
están disponibles a nivel firmware, cmos o chip set. Estos lenguajes están orientados a
procesos. Los procesos se componen de tareas. Contienen tantas instrucciones como la
arquitectura del hardware así haya sido diseñada.
Assembler:
El lenguaje ensamblador, o assembler (en inglés assembly language y la abreviación asm),
es un lenguaje de programación de bajo nivel.
Consiste en un conjunto de mnemónicos que representan instrucciones básicas para los
computadores, microprocesadores, microcontroladores y otros circuitos integrados programables.
Implementa una representación simbólica de los códigos de máquina binarios y otras
constantes necesarias para programar una arquitectura de procesador y constituye la representación
más directa del código máquina específico para cada arquitectura legible por un programador.
Cada arquitectura de procesador tiene su propio lenguaje ensamblador que usualmente es definida
por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de
procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria y otras
características del lenguaje. Un lenguaje ensamblador es por lo tanto específico de
cierta arquitectura de computador física (o virtual). Esto está en contraste con la mayoría de los
lenguajes de programación de alto nivel, que idealmente son portátiles.

Lenguajes de medio nivel


Un lenguaje de programación de medio nivel se encuentra entre los lenguajes de alto nivel y
los lenguajes de bajo nivel.
Suelen ser clasificados de alto nivel, pero permiten ciertos manejos de bajo nivel. Son
precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un
manejo abstracto (independiente de la máquina, a diferencia del lenguaje ensamblador), pero sin
perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.
Una característica distintiva, por ejemplo, que convierte al lenguaje de programación C en un
lenguaje de medio nivel y al lenguaje de alto nivel, es que en el primero es posible manejar las
letras como si fueran números, por el contrario, en los lenguajes de alto nivel es posible concatenar
las cadenas de caracteres con el operador suma y copiarlas con esa asignación.
Una de las características más peculiares del lenguaje de programación C es el uso de
apuntadores, los cuales son muy útiles en la implementación de algoritmos como listas ligadas,
tablas hash y algoritmos de búsqueda y ordenamiento que para otros lenguajes de programación
(como en el lenguaje de programación Java, por ejemplo) suelen ser un poco más complicados de
implementar.

Lenguajes de alto nivel

Un lenguaje de programación de alto nivel se caracteriza por expresar el algoritmo de una


manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las
máquinas.

. 5
Capítulo II
Niveles de Lenguaje

En los primeros lenguajes, la limitación era que se orientaban a un área específica y sus
instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales
o lenguajes de bajo nivel. Otra limitación de estos es que se requiere de ciertos conocimientos de
programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de alto nivel se
crearon para que el usuario común pudiese solucionar un problema de procesamiento de datos de
una manera más fácil y rápida.

Lenguaje de alto nivel se refiere al nivel más alto de abstracción de lenguaje de máquina. En
lugar de tratar con registros, direcciones de memoria y las pilas de llamadas, lenguajes de alto nivel
se refieren a las variables, matrices, objetos, aritmética compleja o expresiones booleanas,
subrutinas y funciones, bucles, hilos, cierres y otros conceptos de informática abstracta, con un
enfoque en la facilidad de uso sobre la eficiencia óptima del programa.
Principales lenguajes de alto nivel:
[Link] – Ada – ALGOL – BASIC - C Sharp – FORTRAN – Java – Lisp - Modula-2 - Pascal – Perl –
PHP - PL/1 - PL/SQL – Python – Ruby - MATLAB

6
Prof. De Marinis
Lenguajes Electrónicos 5to

Capitulo III Diagrama de Flujo

Introducción

Un diagrama de flujo es una representación gráfica de un algoritmo o proceso. Se utiliza en


disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva.
Estos diagramas utilizan símbolos con significados bien definidos que representan los pasos del
algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y
de término.

Como realizar un diagrama de flujo

Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término.
Además, todo camino de ejecución debe permitir llegar desde el inicio hasta el término.

Acciones previas:

Las siguientes son acciones previas a la realización del diagrama de flujo:


• Identificar las ideas principales a ser incluidas en el diagrama de flujo.
• Definir qué se espera obtener del diagrama de flujo.
• Identificar quién lo empleará y cómo.
• Establecer el nivel de detalle requerido.
• Determinar los límites del proceso a describir.

Pasos para desarrollar el diagrama de flujo:

Los pasos a seguir para construir el diagrama de flujo son:


• Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y
el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final
la entrada al proceso siguiente.
• Identificar y listar las principales actividades/subprocesos que están incluidos en el
proceso a describir y su orden cronológico.
• Si el nivel de detalle definido incluye actividades menores, listarlas también.
• Identificar y listar los puntos de decisión.
• Construir el diagrama respetando la secuencia cronológica y asignando los
correspondientes símbolos.
• Asignar un título al diagrama y verificar que esté completo y describa con exactitud el
proceso elegido.

. 7
Capítulo III
Diagrama de Flujo

Ventajas de los diagramas de flujo

• Favorecen la comprensión del proceso a través de mostrarlo como un dibujo. El cerebro


humano reconoce fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias
páginas de texto.
• Permiten identificar los problemas y las oportunidades de mejora del proceso. Se
identifican los pasos redundantes, los flujos de los re-procesos , los conflictos de
autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.
• Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan,
facilitando a los empleados el análisis de las mismas.
• Son una excelente herramienta para capacitar a los nuevos empleados y también a los que
desarrollan la tarea, cuando se realizan mejoras en el proceso.

Reglas para dibujar un diagramas de flujo.

1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.
2. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la
dirección que fluye la información procesos, se deben de utilizar solamente líneas de flujo
horizontal o verticales (nunca diagonales).
3. Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un
sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo
se vana utilizar conectores cuando sea estrictamente necesario.
4. No deben quedar líneas de flujo sin conectar
5. Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas
palabras.
6. Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final.
7. Solo los símbolos de decisión pueden y deben tener más de una línea de flujo de salida.
Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin
embargo, algunos símbolos especiales pueden también ser desarrollados cuando sean requeridos.
Los símbolos estándares, que se requieren con frecuencia para diagramar programas de
computadora se muestran a continuación:

Símbolos estándares

• Inicio o fin del programa o subprogramas. Si se usa en el inicio, se escribe un nombre o


referencia que indique, cual es la función del programa o subprograma.

Inicio/Fin

8
Prof. De Marinis
Lenguajes Electrónicos 5to

• Pasos, procesos o líneas de instrucción. Se utiliza para definir variables o constantes,


realizar operaciones aritmético lógicas, llamar a subrutinas o funciones, cargar valores en
variables

Proceso

• Entrada. Se utiliza para señalar el ingreso de valores por parte del usuario

Entrada

• Decisión/Bifurcación. Se utiliza para hacer una pregunta para decidir que secuencia de
pasos realizar o no. Este símbolo es el único con una entrada y dos salidas, de ahí el nombre
de bifurcación

Decisión

• Conector de página. Se utiliza cuando el diagrama de flujo sigue en otra página, el uso de
este símbolo es para indicar la continuidad de la línea de flujo. Para identificar la
continuidad la línea de flujo de una página a otra se le coloca un número. La orientación del
símbolo depende del sentido del flujo del algoritmo

n° n°

• Líneas de flujo. Se utilizan para indicar la secuencia del algoritmo

Operadores estándares
Los operadores son utilizados específicamente para operaciones aritméticas y relaciones
condicionales. La siguiente es una lista de los símbolos más comúnmente utilizados en el lenguaje
C de los microcontroladores:

. 9
Capítulo III
Diagrama de Flujo

Operador Propósito

* Multiplicación

+ Suma

- Resta

/ División

= ó eq Igualdad

> ó gt Mayor que

>= ó ge Mayor o igual que

< ó lt Menor que

<= ó le Menor o igual que

<> ó ne No igual a

Low Byte bajo

High Byte alto

Mod Módulo

& AND

˄ EXOR

| OR

Not Complemento

<< ó shl Corrimiento a la izquierda

>> ó shr Corrimiento a la derecha

Rol Rotación a la izquierda

Ror Rotación a la derecha

10
Prof. De Marinis
Lenguajes Electrónicos 5to

Ejemplo de diagrama de flujo:

Desarrollar el diagrama de flujo que cumpla con la siguiente consigna: Calcular la suma de los
20 primeros números naturales.
Inicio

Proceso
Sumatoria Se definen las variables Suma y
Num como números esnteros.

Suma – entero
Proceso
Num -- entero
Se inicializa la variable Suma con
el valor 0.
Suma =0
Proceso
Se inicializa la variable Suma con
Num =0 el valor 0.

Proceso
Incrementar el valor de Num
Num =Num+1
Proceso
A la variable Suma se le suma el
Suma =Suma+Num nuevo valor de Num

Decisión
si Pregunta si Num es menor o igual a
Num <= 20 20

salida SI
no
salida NO
Fin

Fin

. 11
Capítulo IV
Introducción al Microcontrolador

Capítulo IV Introducción al Microcontrolador

¿Qué es un microcontrolador?

Es un circuito integrado programable que contiene todos los componentes de un


computador.
Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su
reducido tamaño, suele ir incorporado en el propio dispositivo al que gobierna. Esta última
característica es la que le confiere la denominación de «controlador incrustado»
Un microcontrolador es un computador completo, aunque de limitadas prestaciones, que está
contenido en el chip de un circuito integrado y se destina a gobernar una sola tarea.

Diferencia entre microprocesador y microcontrolador


Un microprocesador es un sistema abierto con el que puede construirse un computador con
las características que se desee, acoplándole los módulos necesarios.
Un microcontrolador es un sistema cerrado que contiene un computador completo y de
prestaciones limitadas que no se pueden modificar.

Microprocesador

Bus de Direcciones
µP
Bus de Datos

Bus de Control

Memoria Controlador Controlador


1 2

Periféricos Periféricos

Estructura de un sistema abierto basado en un microprocesador

12
Prof. De Marinis
Lenguajes Electrónicos 5to

Microcontrolador

Periféricos µC Periféricos

Estructura de un sistema cerrado basado en un microprocesador.


Todas las partes del computador están contenidas en su interior y sólo
salen al exterior las líneas que gobiernan los periféricos.

ARQUITECTURA INTERNA DEL MICROCONTROLADOR


Un microcontrolador posee todos los componentes de un computador, pero con unas
características fijas que no pueden alterarse. Las partes principales de un microcontrolador son:
1. Procesador
2. Memoria no volátil para contener el programa
3. Memoria de lectura y escritura para guardar los datos
4. Memoria de datos no volátil.
5. Líneas de EIS para los controladores de periféricos:
a) Comunicación paralelo
b) Comunicación serie
c) Diversas puertas de comunicación (bus l2C, USB, etc.)
6. Recursos auxiliares:
a) Circuito de reloj
b) Temporizadores
c) Perro Guardíán («watchdog»)
d) Conversores AD y DA
e) Comparadores analógicos
f) Protección ante fallos de la alimentación
g) Estado de reposo o de bajo consumo

Memoria de programa
El microcontrolador está diseñado para que en su memoria de programa se almacenen todas
las instrucciones del programa de control. No hay posibilidad de utilizar memorias externas de
ampliación.

. 13
Capítulo IV
Introducción al Microcontrolador

Como el programa a ejecutar siempre es el mismo, debe estar grabado de forma permanente.
Los tipos de memoria adecuados para soportar esta función admiten cinco versiones diferentes:
• ROM con máscara: En este tipo de memoria el programa se graba en el chip durante el
proceso de su fabricación mediante el uso de «máscaras». Los altos costes de diseño e
instrumental sólo aconsejan usar este tipo de memoria cuando se precisan series muy
grandes.
• EPROM: La grabación de esta memoria se realiza mediante un dispositivo físico gobernado
desde un computador personal, que recibe el nombre de grabador. En la superficie de la
cápsula del microcontrolador existe una ventana de cristal por la que se puede someter al
chip de la memoria a rayos ultravioletas para producir su borrado y emplearla nuevamente.
Es interesante la memoria EPROM en la fase de diseño y depuración de los programas, pero
su coste unitario es elevado.
• OTP (Programable una vez): Este modelo de memoria sólo se puede grabar una vez por
parte del usuario, utilizando el mismo procedimiento que con la memoria EPROM.
Posteriormente no se puede borrar. Su bajo precio y la sencillez de la grabación aconsejan
este tipo de memoria para prototipos finales y series de producción cortas.
• EEPROM: La grabación es similar a las memorias OTP y EPROM, pero el borrado es
mucho más sencillo al poderse efectuar de la misma forma que el grabado, o sea,
eléctricamente. Sobre el mismo zócalo del grabador puede ser programada y borrada tantas
veces como se quiera, lo cual la hace ideal en la enseñanza y en la creación de nuevos
proyectos.
• FLASH: Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y
borrar en circuito al igual que las EEPROM, pero suelen disponer de mayor capacidad que
estas últimas. El borrado sólo es posible con bloques completos y no se puede realizar sobre
posiciones concretas. En las FLASH se garantizan 1.000 ciclos de escritura-borrado. Son
muy recomendables en aplicaciones en las que sea necesario modificar el programa a lo
largo de la vida del producto, como consecuencia del desgaste o cambios de piezas, como
sucede con los vehículos.

Memoria de datos
Los datos que manejan los programas varían continuamente, y esto exige que la memoria
que les contiene debe ser de lectura y escritura, por lo que la memoria RAM estática (SRAM) es la
más adecuada, aunque sea volátil.
Hay microcontroladores que también disponen como memoria de datos una de lectura y
escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimentación
no ocasiona la pérdida de la información, que está disponible al reiniciarse el programa.

Oscilador
Los PICs poseen un oscilador configurable por programa de características muy amplias.
Dependiendo del tipo de PIC podemos encontrar hasta ocho tipos de modelos diferentes de
osciladores.
1. LP Oscilador a cristal o resonador cerámico de baja potencia "LP" (Low
Power Crystal): Se trata de un oscilador de bajo consumo construido con un cristal
de cuarzo o un resonador diseñado para trabajar con frecuencias comprendidas
entre 30 KHz y 200 KHz.
2. XP Oscilador o resonador cerámico "XT" (Crystal/Resonator): Es un oscilador
estándar que permite una frecuencia de clock entre 100 kHz de 4MHz.

14
Prof. De Marinis
Lenguajes Electrónicos 5to

3. HS Oscilador de cristal o resonador de alta velocidad "HS"(High Speed


Crystal/Resonator): Es un oscilador con una frecuencia comprendida entre 4MHz y
10MHz. Tiene un alto consumo de energía.
4. RC Oscilador RC (resistencia/capacitor): Conectado en OSC1 y salida FOSC/4 en
OSC2. Oscilador de poca precisión.
5. RCIO Oscilador RC (resistencia/capacitor): Conectado también en OSC1 pero
libera el pin OSC2 para ser usado como entrada o salida (I/O).
6. INTIO1 Oscilador interno: Con salida FOSC/4 en OSC2, liberado OSC1 para ser
usado como entrada o salida (I/O).
7. INTIO2 Oscilador interno: Los pines OSC1 y OSC2 son liberados para ser usados
como entradas o salidas (I/O).
8. ECIO Clock Externo: Conectado también en OSC1 y libera el pin OSC2 para ser
usado como entrada o salida (I/O).

Por ejemplo el PIC16F818/819 contiene estas posibilidades de configuración de osciladores.


Del manual de Microchip (PIC16F818/819 Data Sheet) podemos observar como se realizaría la
conexión.

. 15
Capítulo IV
Introducción al Microcontrolador

Los Puertos I/O del PIC


Los microcontroladores PIC cuentan uno, dos tres o más puertos, designados como PORTA
(RA), PORTB (RB), etc. Estos puertos paralelos pueden contar hasta 8 pines. Cada pin puede ser
configurada para operar como entrada o salida.
Cada pin de un puerto puede entregar hasta 20 mA y recibir hasta 25 mA. Cada una de ellas
tiene un resistencia pull-up (resistencia conectada a la fuente) interna que puede ser desconectada
por medio del programa. La resistencia pull-up se desconectan automáticamente si se configura
como salida.
Para configurar un pin de un puerto como entrada o salida se utilizan los registros TRISx
(para el puerto A – TRISA , para el puerto B – TRISB , etc.). Si se desea que un pin opere como
salida en el bit correspondiente del registro TRISx se completa con “0” y si se quiere que opere
como entrada un “1”.

Entradas digitales

Lógica positiva Lógica negativa

5 volts 5 volts

Pin de un Pin de un
puerto puerto
configurado configurado
como entrada como entrada

Entradas analógicas
Si el microcontrolador cuenta con conversor analógico digital (A/D), este pic dispondrá de
pines que configurados como entradas analógicas, podrá leer este tipo de señal.

16
Prof. De Marinis
Lenguajes Electrónicos 5to

Entrada analógica de lectura de Lectura de nivel de luz por medio de un


un potenciómetro LDR

5 volts 5 volts

Pin ANx Pin ANx

Salidas
Cuando un pin de un puerto es configurado como salida, se debe tener mucho cuidado de que
la corriente no supere los 20 mA. Por eso es importante poner siempre un limitador de corriente
(resistencia). Aquí algunos ejemplos.

Salida led Salida transistorizada, amplificación de corriente

5 volts

Pin de un
puerto
configurado
como salida

Pin de un
puerto
configurado
como salida

. 17
Capítulo IV
Introducción al Microcontrolador

Etapa de potencia con RELAY

12 volts ó
24 volts

Pin de un
puerto
configurado
como salida

Etapa de potencia con RELAY opto acoplado

18
Prof. De Marinis
Lenguajes Electrónicos 5to

Control de Potencia con TRIAC

Pin de un
puerto
configurado
como salida
220 VCA
TIC226C
TIC226D
2N6073A

. 19
Capítulo V
Programación en C aplicado a PIC

Capitulo V Programación en C aplicado a PIC


Introducción
En este capítulo desarrollaremos distintas estructuras de programación en lenguaje C,
aplicadas a los microcontroladores PIC. Esto será útil como herramienta para que se puedan
desarrollar programas en otros tipos de microcontroladores o computadoras o desarrollar programas
en otros tipos de lenguajes.
C es un lenguaje de programación estructurado de propósito general. Sus instrucciones
constan de términos que se parecen a expresiones algebraicas, además de ciertas palabras clave
inglesas como if, else, for, do y while. En este sentido, C recuerda a otros lenguajes de
programación estructurados de alto nivel. C tiene también algunas características adicionales que
permiten su uso a un nivel más bajo, cubriendo así el vacío entre el lenguaje máquina y los
lenguajes de alto nivel más convencionales. Esta flexibilidad permite el uso de C en la
programación de sistemas, así como en la programación de aplicaciones.

Estructura de un programa en C
Todo programa C consta de una función principal llamada main y podrá además, contener
otras funciones secundarias o subprogramas que son llamadas o solicitadas por la función principal
(main) o entre ellas. Estas otras funciones secundarias deberán ser identificadas con un nombre y
deberán ser ordenadas antecediendo a la función en la cual es llamada.
La cabecera de la función, consta del nombre de la función, una de las cuales se llama main,
seguido de una lista opcional de argumentos encerrados con paréntesis.
A continuación de la cabecera se escriben todas las sentencias pertenecientes a la función
entre llaves “{ }”.
Ejemplo: ⁞
void Tiempo(int tf)
{

}

void main () Cada sentencia se terminar


{ con “ ; ” (punto y coma)

Tiempo(200);

}

Para poder escribir un comentario, que no sea tomado como una sentencia por parte del
programa compilador, existen dos posibilidades:
• Si es un comentario de varios renglones se lo escribe entre los siguientes indicadores
/* y */.
• Si lleva un solo renglón, el comentario se escribe después de los siguientes indicadores
//.

Tipos de datos
Existen varios tipos de datos asociados con las variables, pero nombraremos dos que
utilizaremos este año:
20
Prof. De Marinis
Lenguajes Electrónicos 5to

• int Entero
• char Caracter
Para declarar una o mas variables se deben realizar las siguientes sentencias.
Ejemplo: ⁞
int a,b.c;
char d,e;

Variables globales y locales


Las variables tiene solo validez en el ambiento en que se declaran. Por lo tanto pueden ser
definidas como globales o locales.
Una variable es global cuando es definida fuera de todas las funciones. Todas las funciones la
pueden reconocer y ejecutarla (leer su valor o modificarla).
Una variable es local cuando es definida dentro una función y solo es reconocida solo por
dicha función.

Ejemplo ⁞
int a,b; a y b son variables globales.
⁞ Pueden ser utilizadas por funcion1, funcion2 y
void funcion1( ) main
{
int c; c es una variable local.
⁞ Solo puede ser utilizada por funcion1.
c=a+b;

}

void funcion2( ) d, e y letra1 son variables locales.


{ Solo puede ser utilizada por funcion2.
int d,e;
char letra1;

d=a;
e=b;
d=d+1;
e=e*2

}

void main( )
{ g es una variable local.
int g; Solo puede ser utilizada por main.
g=1;
a=g*2;
b=g+3;
funcion1( );

funcion2( );

}
. 21
Capítulo V
Programación en C aplicado a PIC

Control de flujo
En un programa no siempre se ejecutan las mismas sentencias o instrucciones. A veces es
necesario, dependiendo de valores de datos de variables o de señales externas, cambiar la secuencia
de ejecución de las instrucciones.
Analizaremos Ejecución de Condicional y Control de Loops (bucles).

Ejecución de Condicional:
En la ejecución de condicional veremos dos casos el if (solo) y el if-else.
• if
El caso del if es cuando se realizan tareas únicamente en la bifurcación afirmativa (el
camino del SI), mientras que en el camino del NO, no se realiza ningún tipo de tarea.
Ejemplo 1: En el pin RA4, configurado como entrada, se conectó una entrada digital
con pulsador de lógica positiva. Cuando este se acciona, se prende un led
conectado en RB0, configurado como salida, por un tiempo y luego se apaga.

Esquema del circuito realizado en Proteus

Diagrama de Flujo
Pregunta si
se activo el Programa en C
1
pulsador
En la
⁞ sentencia if
no se pone
NO SI if (RA4= =1) punto y
¿RA4=1? Prende el led
coma al
conectado en { final. Porque
RB0
RB0=1 se abren
RB0=1; llaves { }
Espera un Tiempo( );
Llamar a subrutina tiempo
Tiempo RB0=0;
}
Apaga el led ⁞
RB0=0

2
22
Prof. De Marinis
Lenguajes Electrónicos 5to

• if-else
El caso del if-else es cuando se realizan tareas en los dos caminos de la bifurcación (el
camino del Si y del NO).
Ejemplo 2: En el pin RA4, configurado como entrada, se conectó una entrada digital
con pulsador de lógica positiva. Cuando este se acciona, se prende un led
conectado en RB0, y si no se acciona se prende un led en RB7 luego de un
tiempo se apaga.
Esquema del circuito realizado en Proteus

Diagrama de Flujo Programa en C

1 ⁞
if (RA4= =1)
NO SI {
¿RA4=1?
RB0=1;
Tiempo( );
RB7=1 RB0=1 RB0=0;
}
Llamar a subrutina Llamar a subrutina else
Tiempo Tiempo {
RB7=1;
RB0=0 RB0=0
Tiempo( );
RB7=0;
}
2 ⁞

. 23
Capítulo V
Programación en C aplicado a PIC

Controles de Loops:
Para el control de loops veremos dos casos el while y el for. Estas dos sentencias están
formadas generalmente por un conjunto de sentencias simples.
• while
El while se utiliza para repetir una o mas sentencias una cierta cantidad de veces
determinadas o no. El while puede necesitar una condición de inicio y un incremento de una
variable, para poder dar solución a los requerimientos del programa.
La sentencia se realiza de la siguiente manera:
while (condición)
{
sentencia1;
sentencia2;
}
Mientras se siga cumpliendo la condición, se repetirán las sentencias 1 y 2.

Ejemplo 3 Formar un loop infinito: Reconsiderando el ejemplo 1, se observa que la


pregunta, si se activó el switch, se realiza una sola vez, pasado este instante
no se lee mas esta entrada. Una solución a este problema es un loop infinito
usando la sentencia while.
El esquema del circuito es el mismo del ejemplo 1.

Diagrama de Flujo Uno siempre es


igual a uno. Esta
Programa en C condición
1 siempre se
⁞ cumple. Así se
logra el loop
while (1= =1) infinito.

NO SI {
¿RA4=1? Llave del while.
if (RA4= =1)
RB0=1
{
Estas sentencias
RB0=1; entre las llaves
Llamar a subrutina del while se
Tiempo Tiempo( ); repiten.
RB0=0;

RB0=0 }
} Llave del while.

24
Prof. De Marinis
Lenguajes Electrónicos 5to

Ejemplo 4 Formar un loop finito: Modificando el ejemplo 3, al activar el switch el led


se prende y se apaga cinco veces. Aquí podemos observar que el while
trabaja conjuntamente por una condición inicial y un incremento sobre una
variable.
El esquema del circuito es el mismo del ejemplo 1.

Diagrama de Flujo Programa en C

1 ⁞
while (1= =1)
{
NO SI if (RA4= =1)
¿RA4=1?
{
num=1
num=1;
while (num<=5)
RB0=1 {
RB0=1;
Llamar a subrutina
Tiempo
Tiempo( );
Esto se repite
5 veces RB0=0;
Tiempo( );
RB0=0
num=num+1;

Llamar a subrutina }
Tiempo }
}
num=num+1 ⁞

SI
¿num<=5?

NO

Ejemplo 5 Formar un loop cuya duración dependa de una entrada o condición


aleatoria: Modificando el ejemplo 4, al activar el switch el led se prende y
se apaga, y lo continúa haciéndolo mientras se siga activando el switch.
El esquema del circuito es el mismo del ejemplo 1.

. 25
Capítulo V
Programación en C aplicado a PIC

Diagrama de Flujo Programa en C


1
while (1= =1)
{
NO SI if (RA4= =1)
¿RA4=1?
{
while (RA4= =1)
RB0=1 Esto se repite
{
mientras se
activa el RB0=1;
Llamar a subrutina switch en
Tiempo RA4 Tiempo( );
RB0=0;

RB0=0
Tiempo( );
num=num+1;
Llamar a subrutina }
Tiempo
}
}
SI

¿RA4=1?

NO

• for
El for se utiliza para repetir una o mas sentencias una cierta cantidad de veces
determinadas. El for en sí, está formado por una condición de inicio, una condición de
continuidad del loop y un incremento de una variable.
La sentencia se realiza de la siguiente manera:
for (inicialización del contador; condición de continuidad; incremento del loop)
{
sentencia1;
sentencia2;
}
Mientras se siga cumpliendo la condición, se repetirán las sentencias 1 y 2.

26
Prof. De Marinis
Lenguajes Electrónicos 5to

Ejemplo 5 Formar un loop finito usando for: Retomamos el ejemplo 4. Al activar el


switch el led se prende y se apaga cinco veces. Ahora lo resolveremos por
medio del for que ya tiene incluido: la pregunta, una condición inicial y un
incremento sobre una variable. El diagrama de flujo es el mismo al ejemplo
4.
El esquema del circuito es el mismo del ejemplo 1.

Diagrama de Flujo Programa en C

1 ⁞
while (1= =1)
{
NO SI if (RA4= =1)
¿RA4=1?
{
num=1
for (num=1 ; num<=5 ; num=num+1)
{
RB0=1 RB0=1;
Esto se
repite 5 Tiempo( );
Llamar a subrutina veces
Tiempo RB0=0;
Tiempo( );
}
RB0=0
}
Llamar a subrutina }
Tiempo

num=num+1

SI
¿num<=5?

NO

. 27
Capítulo V
Programación en C aplicado a PIC

Ejemplo completo

Juego de Luces:
Usando un PIC16F873A desarrollar un sistema de juego de luces. Se cuenta con 3 pulsadores
en los pines de RA0, RA1 y RA2. Al activar uno de ellos se debe generar un juego de luces, en 8
leds conectados en el puerto B.

Diagrama de Flujo de main (bloque principal)


En el diagrama de flujo del bloque
main principal podemos observar, que primero
definimos cuales puertos son de entrada y
Definir PORTA como entrada digital salida. En este punto debemos considerar
Definir PORTB como salida que:
Definir PORTC como entrada
• El PIC16F873A tiene la posibilidad de
PORTB=0 (deja apagado todos los leds) entrada analógica en el puerto A por
eso se aclara que se configura como
entrada digital. Para ello el registro
SI
¿RA0=1? ADCON1 se carga con 0x06.
NO Juego1( ) • Cuando un pin no se utiliza se
recomienda configurarlo como entrada
para proteger así al microcontrolador.
SI
¿RA1=1? Observamos después un loop infinito
NO Juego2( ) que resolvemos con un while (1= =1)
(condición que se cumplirá siempre) y dentro
de el se encuentran las preguntas si se
SI
activaron los switch.
¿RA2=1?
NO Juego3( )

fin

28
Prof. De Marinis
Lenguajes Electrónicos 5to

Las subrutinas Juego1, Juego2 y Juego3 que son llamadas por el bloque principal del
programa llamado main son los que siguen a continuación.
Para representar que un led está prendido utilizamos el siguiente símbolo ☼, para representar
un led apagado el siguiente ●.
Nota: Para identificar cual bit del puerto B tener en cuenta:
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

Diagrama de Flujo de Juego1 Diagrama de Flujo de Juego2

Juego1( ) Juego2( )

Prender un led Prender un led


PORTB←●●●●●●●☼ PORTB←☼●●●●●●●

Tiempo(200) Tiempo(200)

PORTB←●●●●●●☼● PORTB←●☼●●●●●●

Tiempo(50) Tiempo(50)

PORTB←●●●●●☼●● PORTB←●●☼●●●●●

Tiempo(200) Tiempo(200)

PORTB←●●●●☼●●● PORTB←●●●☼●●●●

Tiempo(200) Tiempo(200)

PORTB←●●●☼●●●● PORTB←●●●●☼●●●

Tiempo(200) Tiempo(200)

PORTB←●●☼●●●●● PORTB←●●●●●☼●●

Tiempo(200) Tiempo(200)

PORTB←●☼●●●●●● PORTB←●●●●●●☼●

Tiempo(200) Tiempo(200)

PORTB←☼●●●●●●● PORTB←●●●●●●●☼

Tiempo(200) Tiempo(200)

Deja apagado todos los Deja apagado todos los


leds leds
PORTB←●●●●●●●● PORTB←●●●●●●●●

fin fin

. 29
Capítulo V
Programación en C aplicado a PIC

Diagrama de Flujo de Juego3 En el Juego3 la secuencia de prendido desde los


extremos al centro, se repetirá tres veces. Para lograr tal
Juego3( ) cometido usaremos la sentencia for (n=1; n<=3; n=n+1)

Definir n como entero La subrutina Tiempo( ) usada por las subrutinas


Juego1, Juego2 y Juego3. A esta subrutina se le ingresa un
n=1 argumento del tipo número entero tfinal. Por lo tanto la
subrutina queda definida como: Tiempo(int tfinal).
PORTB←☼●●●●●●☼
Diagrama de Flujo de Tiempo
De las subrutinas
Tiempo(100)
Tiempo(int tfinal )
juegos se llaman a Tiempo
con un valor entero que
PORTB←●☼●●●●☼●
será cargado a la variable
Definir t1 y t2 como entero tfinal.
Tiempo(100)
En sí esta subrutina
t1 = 1 cuenta con dos loops
PORTB←●●☼●●☼●●
anidados, para lo cual se
Tiempo(100) t2=1
usará la sentencia:

for(t1=1; t1<=tfinal; t1=t1+1)


PORTB←●●●☼☼●●●
t2=t2+1
Tiempo(100)
Y dentro de ella la
SI sentencia:
t2<=tfinal
n=n+1
for(t2=1; t2<=tfinal; t2=t2+1)
NO
SI
n<=3 t1=t1+1

NO SI
t1<=tfinal
Deja apagado todos los
leds
PORTB←●●●●●●●● NO

fin
fin

Para escribir el programa debemos tener en cuenta como ordenar las distintas funciones o
subprogramas. Debemos tener en cuenta que una función que es llamada por otra la debe anteceder.
En este ejemplo main llama a Juego1, Juego2 y Juego3 y estas tres a Tiempo. Por lo tanto se
deben escribir en el siguiente orden:
Tiempo
Juego1
Juego2
Juego3
Main
Además se debe considerar si existe una variable global que en este ejemplo no hay.

30
Prof. De Marinis
Lenguajes Electrónicos 5to

Programa en C

//Juego de luces PORTB=0b00000100;


#include <pic16f873A.h> Tiempo(200);
PORTB=0b00000010;
/////////////////////////////////////// Tiempo(200);
void Tiempo(int tfinal) PORTB=0b00000001;
{int t1,t2; Tiempo(200);
for (t1=0;t1<tfinal;t1=t1+1) PORTB=0b00000000;
{ }
for (t2=0;t2<tfinal;t2=t2+1){} ///////////////////////////////////////
} void Juego3()
} {
/////////////////////////////////////// int n;
void Juego1() for (n=1;n<=3;n=n+1)
{ {
PORTB=0b00000001; PORTB=0b10000001;
Tiempo(200); Tiempo(100);
PORTB=0b00000010; PORTB=0b01000010;
Tiempo(200); Tiempo(100);
PORTB=0b00000100; PORTB=0b00100100;
Tiempo(200); Tiempo(100);
PORTB=0b00001000; PORTB=0b00011000;
Tiempo(200); Tiempo(100);
PORTB=0b00010000; }
Tiempo(200); PORTB=0b00000000;
PORTB=0b00100000; }
Tiempo(200); ///////////////////////////////////////
PORTB=0b01000000; void main()
Tiempo(200); {
PORTB=0b10000000; ADCON1=0x06;
Tiempo(200); TRISA=0b11111111;
PORTB=0b00000000; TRISB=0b00000000;
} TRISC=0b11111111;
/////////////////////////////////////// PORTB=0b00000000;
void Juego2() while (1==1)
{ {
PORTB=0b10000000; if (RA0==1)
Tiempo(200); { Juego1();}
PORTB=0b01000000; if (RA1==1)
Tiempo(200); { Juego2();}
PORTB=0b00100000; if (RA2==1)
Tiempo(200); { Juego3();}
PORTB=0b00010000; }
Tiempo(200); }
PORTB=0b00001000; /* Fin del programa */
Tiempo(200);

. 31
Capítulo VI
Compilación en MPLAB

Capitulo VI Compilación en MPLAB


Introducción
En este capítulo se desarrollará los pasos para compilar el programa usando el programa
MPLAB de Microchip.
Un compilador es un programa que traduce un programa escrito en un lenguaje de
programación a otro lenguaje diferente. Usualmente el segundo lenguaje es lenguaje de máquina.
Este proceso de traducción se conoce como compilación.
El MPLAB puede traducir el programa desde lenguaje ASSEMBLER o a C.

Pasos para realizar la compilación

1. Abrir el MPLAB: Activar este icono

2. Se desplegaran las siguientes pantallas:

3. Desplegar File:
Activar New

Se abre la siguiente ventana

32
Prof. De Marinis
Lenguajes Electrónicos 5to

4. Guardar el archivo: desplegar nuevamente File

Dentro de File activar Save AS… y se


desplegará la siguiente ventana

Es conveniente generar una carpeta


nueva donde generaremos todo el
proyecto

Una vez creada la carpeta abrirla y


guardar el archivo con extensión “.c”

Guardar

. 33
Capítulo VI
Compilación en MPLAB

Al guardar el título de la ventana cambia

5. Escribir el programa: En la ventana se escribe el programa. Para mejor comodidad ampliarla.

6. Generar el proyecto: Una ves escrito el programa, generar el proyecto.

Desplegar Project

Activar
Project Wizard…

Al activar Project Wizard…


se abre una ventana de
Bienvenida

34
Prof. De Marinis
Lenguajes Electrónicos 5to

En la ventana de bienvenida Así se abre la ventana Step One (paso uno)


activar Siguiente > Es para seleccionar el tipo de microcontrolador que
se va a utilizar

Hacer clic aquí para desplegar todos los tipos


de dispositivos

Seleccionar el Pic que se usará y activar


Siguiente >

Seleccionar la
Así se abre la opción HI-TECH
ventana Step Universal ToolSuite
Two (paso
dos) Así se selecciona el
Es para compilador de
seleccionar el lenguaje C
tipo de
compilador

Activar
Siguiente >

Así se abre la ventana Step


Three (paso tres)
Es para crear el proyecto en sí.

Activar Browse…

. 35
Capítulo VI
Compilación en MPLAB

Al activar
Browse… se abre
otra ventana

Buscar la carpeta
creada en el punto
4 y abrirla.

Escribir el nombre
del archivo creado
en el punto 4, pero
con extensión .mcp
y guardar

Así se abre la ventana Step Four (paso cuatro)


Al guardar se retorna a la ventana Es para adicionar los archivos al proyecto.
Step Three. Y activar Siguiente >

Seleccionar el archivo con


extensión .c
Y activar Add>>

Al activar Siguiente >


Aparece la ventana final.
Activar Finalizar

36
Prof. De Marinis
Lenguajes Electrónicos 5to

Abrir
archivo

Desplegar
Project

Hacer clic en Build para


compilar el programa.

A partir de aquí se deberán corregir los errores si así sucediesen. El programa no tiene errores
si aparece la leyenda
********** Build successful! **********

SUERTE
. 37
Material Consultado

• Data Sheet PIC16F87XA Microchip

• Data Sheet PIC16F87X Microchip

• Data Sheet PIC16F627A/628A /648A Microchip

• La Revista. Informá[Link] [Link]

• Introducción a los microcontroladores, José Adolfo González V., McGraw Hill

• Microcontroladores PIC, Tavernier, Editorial Paraninfo

• Microcontroladores PIC, La solución en un solo chip, Angulo y otros, Editorial Paraninfo

• Microcontroladores PIC, Diseño de aplicaciones, Angulo y otros, McGraw Hill

• Cursos sobre Microcontroladores PIC, Niveles Básico y Avanzado, Tekcien Ltda.

• Embedded Control Handbook, Microchip

• MPASM assembler. User’s Guide, Microchip

• MPLAB IDE User’s Guide, Microchip.

• [Link]

También podría gustarte