Anda di halaman 1dari 48

Microcontroladores

DOCENTE: CHRISTIAN AROS BOBADILLA


Christian.aros03@inacapmail.cl
APRENDIZAJES ESPERADOS

Unidad I: Arquitectura de Microcontroladores.

1.1.- Identifica los módulos internos de un microcontrolador, a través de presentación y exposición oral.

1.2.- Relaciona los diferentes lenguajes utilizados en un microcontrolador, a través


de presentación y exposición oral.

1.3.- Clasifica los circuitos periféricos asociados al microcontrolador, a través de presentación y exposición oral.
APRENDIZAJES ESPERADOS:

1.2.- Relaciona los diferentes lenguajes utilizados en un


microcontrolador, a través de presentación y exposición oral.

CRITERIOS DE EVALUACION

1.2.1.- Describe el funcionamiento básico de un programa en lenguaje de máquina y en


lenguaje de Assembly indicando características, ventajas y desventajas, a través de
presentación o exposición oral.

1.2.2.- Describe el funcionamiento básico de un programa en lenguaje de alto nivel como


Basic, C, Diagramas de flujo, a través de presentación o exposición oral.

1.2.3.- Explica los requerimientos para crear y grabar el programa objeto al microcontrolador,
a través de presentación o exposición oral.
Arquitectura:
Arquitectura:

Un microcontrolador es un computador dedicado,


con limitaciones y menos prestaciones. Posee básicamente, las
mismas partes que un computador y un controlador lógico
programable. Entre ellas tenemos:

CPU (Unidad Central de Procesamiento)


ALU (Unidad Lógico - Aritmética)
Periféricos
Lógica de
Control
ALU

Memoria Memoria
de Datos de Programa

Periféricos
Microcontrolador vs Microprocesador

Mientras que los microcontroladores están concebidos


fundamentalmente para ser utilizados en aplicaciones puntuales, es
decir, aplicaciones donde el microcontrolador debe realizar un pequeño
número de tareas, al menor costo posible.

https://www.youtube.com/watch?v=7vhvnaWUZjE&feature=youtu.be

https://microcontroladoressesv.wordpress.com/arquitectura-de-los-
microcontroladores/
Terminología Digital

Entradas:
Terminología Digital

Salidas:

Al contrario de las entradas, los pines configurados como salida, presentan un


voltaje VDD o VSS dependiendo si los bits del registro correspondiente tienen ya
sea, un Cero o un Uno, respectivamente.
Terminología Digital

El espacio de memoria de un PIC.

Con fines de comprender la programación en assembler de estos dispositivos, es


posible imaginarlos como un gran espacio de memoria, en donde, en la mayoria
existen 4 columnas(bancos) que apilan los registros (bytes) que componen este
espacio.
Terminología Digital

Registros Especiales:

Tienen nombre y son vitales para el funcionamiento del PIC, cada uno de sus bits
tiene algún significado o entrega información acerca del estado de funcionamiento
del microcontrolador.

Registros de Propósito General:

Son espacios libres de memoria, se pueden utilizar para almacenar información.


Terminología Digital

Registros Especiales:

Program Counter PC:

Es el ente encargado de apuntar a la posición de memoria que se desea leer o


intervenir. Podríamos decir que “lleva” al Registro de Trabajo.

Work Register (W):

Registro de trabajo. Es un byte flotante que sirve para “acarrear” información.


Terminología Digital

Algunos Registros Relevantes

A continuación, detallaremos algunos registros relevantes a tener en cuenta al


programar un PIC. Cabe notar que no hablaremos de todos, si no asolo aquellos
que nos permitan realizar una programación funcional con la que podamos realizar
tareas simples con ayuda de la lógica.
Terminología Digital

Registros PORT (PORTA-PORTB-PORTC…)

Tal como se mencionaba en el punto 2 de esta entrada, los Registros PORT, son los
que hacen el nexo Software-Hardware puesto que dan salida o entrada física a los
ceros y unos involucrados en la programación.

En base a lo anterior, es posible decir que, toda la programación en assembler


ronda en torno a poner o quitar ceros y unos de los registros PORT en función de
ceros y unos de los mismos.
Terminología Digital

Registros PORT (PORTA-PORTB-PORTC…)


ACTIVIDAD INVESTIGACION.

Los alumnos reunidos en grupos de trabajo, investigan acerca de las características


principales que tienen los lenguajes de programación para unidades programables.

Investigaran acerca de los niveles de clasificación de los lenguajes de programación,


indicando las características de cada nivel y una breve descripción del lenguaje
correspondiente al nivel.

A continuación buscan características en particular para lenguaje


Assembly
Se denomina lenguaje máquina a la serie de datos que la parte física de la
computadora o hardware, es capaz de interpretar.

La parte física de una computadora, sólo distingue datos de tipo binario, es decir,
constituidos por dos únicos valores a los que se denomina valor 0 y valor 1.

La información que hace que el hardware de la computadora realice una


determinada actividad de llama instrucción (conjunto de unos y ceros).

Las instrucciones así formadas equivalen a acciones elementales de la máquina, por


lo que al conjunto de dichas instrucciones que son interpretadas directamente por la
máquina se denomina lenguaje máquina.
Esta secuencia es fácilmente ejecutada por la computadora, pero es de difícil
interpretación, siendo aun mas difícil la interpretación de un programa (conjunto de
instrucciones) escrito de esta forma.

Por ejemplo una secuencia de dígitos binarios (bits) puede indicar a la computadora
que:

<<Traslade el contenido de la posición de memoria X a la posición de memoria Y.>>

Si lo vemos escrito de esta forma, lo entenderemos fácilmente, ya que está en


nuestro lenguaje natural, pero la máquina elemental será incapaz de entender algo.
Con la práctica en el manejo de la máquina se cayó en la cuenta de que se podría
utilizar la propia máquina para ayudar en la traducción de estos programas.

Es decir, que si a una máquina elemental se le dotaba de un programa, también


elemental, que tradujera un número determinado de caracteres alfabéticos en una
secuencia de unos y ceros, se podría escribir un programa constituido por una
secuencia de grupos de caracteres alfabéticos, en la que cada uno de los grupos
indicaría una acción a realizar por el ordenador y, una vez escrito el programa, sería
la propia máquina la que pasaría los grupos de caracteres a bits.
Al grupo alfabético se le denomina mnemotécnico, y existirá un mnemotécnico por
cada instrucción.

Se le da este nombre porque sirve para recordar con mayor facilidad el conjunto de
instrucciones de una determinada máquina.

También se introdujo la posibilidad de indicar a la computadora la dirección de un


salto en la secuencia de ejecución de un programa mediante la utilización de
etiquetas.

A los programas que permiten pasar del programa escrito de esta manera (programa
fuente, en ensamblador) al lenguaje máquina también se les denomina
normalmente ensambladores.
VENTAJAS DE LOS LENGUAJES ENSAMBLADORES

• Un programa escrito en el lenguaje ensamblador requiere considerablemente


menos memoria y tiempo de ejecución que un programa escrito en los conocidos
lenguajes de alto nivel, como C, C++, java, etc.

• El lenguaje ensamblador da a un programador la capacidad de realizar tareas muy


técnicas que serian difíciles, si no es que imposibles de realizar en un lenguaje de
alto nivel.
VENTAJAS DE LOS LENGUAJES ENSAMBLADORES

• El conocimiento del lenguaje ensamblador permite una comprensión de la


arquitectura de la maquina que ningún lenguaje de alto nivel puede ofrecer.

• Aunque la mayoría de los especialistas en Software desarrolla aplicaciones en


lenguajes de alto nivel, que son más fáciles de escribir y de dar mantenimiento, una
practica común es recodificar en lenguaje ensamblador aquellas rutinas que han
causado cuellos de botella en el procesamiento.
VENTAJAS DE LOS LENGUAJES ENSAMBLADORES

• Los programas residentes y rutinas de servicio de interrupción casi siempre son


desarrollados en el lenguaje ensamblador.

Los lenguajes de alto nivel fueron diseñados para eliminar las particularidades de
una computadora especifica, mientras que un lenguaje ensamblador esta diseñado
para una familia especifica de microprocesadores.
REGISTROS INTERNOS DEL PROCESADOR.

Los registros del procesador se emplean para controlar instrucciones en


ejecución, manejar direccionamiento de memoria y proporcionar capacidad
aritmética.

Los registros son direccionables por medio de un nombre.

Los bits por convención, se numeran de derecha a izquierda, como en:

... 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Registros de segmento

Un registro de segmento tiene 16 bits de longitud y facilita un área de memoria para


direccionamiento conocida como el segmento actual.

Registro CS (Segmento de Código).

El DOS almacena la dirección inicial del segmento de código de un programa en el


registro CS. Esta dirección de segmento, mas un valor de desplazamiento en el
registro apuntador de instrucción (IP), indica la dirección de una instrucción que es
buscada para su ejecución.
Registros de segmento

Registro DS (Segmento de Datos).

La dirección inicial de un segmento de datos de programa es almacenada en el


registro DS.

En términos sencillos, esta dirección, mas un valor de desplazamiento en una


instrucción, genera una referencia a la localidad de un byte especifico en el
segmento de datos.
Registros de segmento

Registro SS (Segmento de Pila).

El registro SS permite la colocación en memoria de una pila, para almacenamiento


temporal de direcciones y datos.

El DOS almacena la dirección de inicio del segmento de pila de un programa en le


registro SS.

Esta dirección de segmento, mas un valor de desplazamiento en el registro del


apuntador de pila (SP), indica la palabra actual en la pila que esta siendo
direccionada.
Registros de segmento

Registros ES (Segmento Extra).

Alguna operaciones con cadenas de caracteres (datos de caracteres) utilizan el


registro extra de segmento para manejar el direccionamiento de memoria. En este
contexto, el registro ES esta asociado con el registro DI (índice). Un programa que
requiere el uso del registro ES puede inicializarlo con una dirección de segmento
apropiada.

Registros de propósito general.


Son únicos en el sentido de que se puede direccionarlos como una palabra o como
una parte de un byte. El ultimo byte de la izquierda es la parte "alta", y el ultimo byte
de la derecha es la parte "baja". Por ejemplo, el registro CX consta de una parte CH
(alta) y una parte Cl (baja), y podemos referirnos a cualquier parte por su nombre.
Registros de segmento

Registro AX (Acumulador).

Es utilizado para operaciones que implican entrada/salida y la mayor parte de la


aritmética. También, algunas operaciones generan código mas eficiente si se refieren
al AX en lugar de a los otros registros.

Registro BX (Base).

Es el único registro de propósito general que puede ser índice para


direccionamiento indexado. También es común emplear el BX para cálculos.
Registro DX (datos). Alguna operaciones de entrada/salida requieren uso, y
las operaciones de multiplicación y división con cifras grandes suponen al DX
y al AX trabajando juntos.
REGISTROS APUNTADORES.

Los registros SP (apuntador de la pila) Y BP (apuntador de base) están


asociados con el registro SS y permiten al sistema acceder a datos en el segmento de
la pila.

Registro SP.
El apuntador de la pila de 16 bits esta asociado con el registro SS y proporciona un
valor de desplazamiento que se refiere a la palabra actual que esta siendo procesada
en la pila.

Registro BP.
El BP de 16 bits facilita la referencia de parámetros, los cuales son datos y
direcciones transmitidos vía pila. Los procesadores 80386 y posteriores tienen un BP
ampliado de 32 bits llamado el registro EBP.
REGISTROS ÍNDICE.

Los registros SI y DI están disponibles para direccionamiento indexado y para


sumas y restas.

Registro SI.
El registro índice fuente de 16 bits es requerido por algunas operaciones con
cadenas (de caracteres). En este contexto, el SI esta asociado con el registro
DS.

Registro DI.
El registro índice destino también es requerido por algunas operaciones con
cadenas de caracteres. En este contexto, el DI esta asociado con el registro
ES. Los procesadores 80386 y posteriores permiten el uso de un registro
ampliado de 32 bits, el EDI.
ACTIVIDAD INVESTIGACION.

Los alumnos reunidos en grupos de trabajo, investigan acerca de software de


simulación disponibles en la red.

Investigaran sobre las características y enviarán informe con detalle de su


clasificación de los software de simulación indicando las características de
cada uno.

En particular, buscaran links de descarga para MPLAB-X y Proteus que


seran los software a trabajar.
El MPLAB X IDE

Es un software gratuito, que entre otras muchísimas cosas me permite la


edición, depuración y simulación de código fuente para programar
aplicaciones usando microcontroladores PIC. Mas detalle de sus
características las puedes encontrar directamente en la página de
Microchip en el siguiente enlace:

http://www.microchip.com/pagehandler/en-us/family/mplabx/
El MPLAB X IDE

El MPLAB X viene comprimido en un archivo zip, simplemente se


descomprime y se instala como cualquier aplicación de Windows, también
dando doble clic al archivo que se descargo para el MPLAB XC8 Compiler,
se puede instalar sin problema alguno.
MPLAB XC8 Compiler

El MPLAB XC8 Compiler, es un software que se adjunta al MPLAB X IDE y


me permite programar los microcontroladores en el popular lenguaje de
programación C, sin tener la necesidad de programar en bajo nivel
(lenguaje ensamblador).

El compilador XC8 está especialmente diseñado para soportar las familias


de microcontroladores de 8 bits de Microchip: PIC10F, PIC12F, PIC16F y
PIC18F, la versión gratuita de este compilador me permite programar los
PIC con un sin número de aplicaciones, aunque la versión gratuita del XC8
el código no está optimizado aún así es suficiente para un sin número de
aplicaciones.
PICkit

Otra herramienta de software también proporcionada por Microchip es el


PICkit, software usado para transferir el programa creado en el MPLAB X
IDE hacía el microcontrolador, los detalles de instalación de este software
los puedes encontrar en el siguiente enlace:

http://www.tecdigitaldelbajio.com/software.html

Incluso en el anterior enlace, se muestra un video para su instalación.


Ejemplo #1 Encender y Apagar un LED

Cuando el software está instalado, entonces ya estamos listos para


empezar a programar en lenguaje C, el siguiente video muestra todo este
proceso:

Creación de un proyecto con el MPLAB X IDE.


Edición del código en lenguaje C, usando el MPLAB XC8 Compiler.
Compilación del código.
Programación del microcontrolador.
Resultado de la programación en la tarjeta de entrenamiento.

https://www.youtube.com/watch?v=E-_SwQMYjjs
Acerca del Software

MPLAB-X es un entorno integrado de desarrollo IDE, del inglés Integrated


Development Environment, lo que básicamente significa que es un software
para programar y desarrollar aplicaciones, en este caso, completamente
enfocadas a los microcontroladores de Microchip.

Está basado en otro IDE llamado Netbeans, alguna vez uno de los más
universales y escogido por muchos programadores, principalmente del
lenguaje Java.
Acerca del Software

Permite programar aplicaciones con diferentes compiladores y lenguajes,


principalmente fue intencionado para C y C++ con los compiladores XC,
aunque de todas maneras mantiene la misma utilidad como IDE al programar
en Assembler (MPASMWIN) u otros variantes del C como Hi-Tec C e incluso
GCC o CSS.
Acerca del Software

https://youtu.be/ZrMB2NQig0Q

https://youtu.be/4joghLlkorg

https://youtu.be/LVG7m0VWt84
Guía o tutorial del Software

A continuación, se presenta un tutorial paso a paso que cubrirá los siguientes


aspectos.

- Creación de un Proyecto.
- Creación del Código Fuente.
- Inicio del Código y Bits de Configuración del Microcontrolador.
- Compilación de un Código de Prueba.
- Visualización de bits y Simulación del código con Watch y Stimulus.
Guía o tutorial del Software

Creación de un Proyecto.

Presionar “New Project”, aparecerá una ventana, en esta seleccionar


“Microchip Embeded”, “Standalone Project”, luego presionar “Next”.
Guía o tutorial del Software

Creación de un Proyecto.

Luego escribir directamente el modelo de microcontrolador a utilizar, en este


caso 16F84A y luego “Next”.
Guía o tutorial del Software

Creación de un Proyecto.

Luego en la pantalla siguiente nos pide seleccionar el programador


(Hardware) que utilizaremos para grabar los PiC’s, en nuestro caso no
utilizaremos ninguno oficial, pero si nos interesa simular el código, por lo que
seleccionamos la opción “Simulator” y luego “Next”.
Guía o tutorial del Software

Creación de un Proyecto.

Ahora se debe seleccionar el Compilador a utilizar, esto definirá también el


lenguaje de programación, en esta ocasión se utiliza MPASM para programar
en Assembler. XC8 es el compilador para el lenguaje C++ de Microchip.
Guía o tutorial del Software

Creación de un Proyecto.

Finalmente nos pregunta por la Ubicación del Proyecto.

El nombre del proyecto hará que MPLAB-X cree una carpeta con extensión
“.X” con dicho nombre esta tendrá como ubicación la que se en “Project
Location”.

Cabe notar que existe la opción de tomar el “Project Location” como el


proyecto mismo.

Encoding hace referencia a la forma en que se almacenarán los caracteres


de cada archivo de texto, esto es útil cuando se comparten archivos entre
distintos sistemas operativos.
Guía o tutorial del Software

Creación de un Proyecto.

Anda mungkin juga menyukai