Está en la página 1de 6

INSTITUTO TECNOLÓGICO

SUPERIOR DE COALCOMÁN

Nombre de la materia
Sistemas Programables

Nombre del alumno


Ricardo Bautista Magaña

Nombre de la tarea
Resumen Temas Unidad IV

Unidad IV
Programación de Microcontroladores

Nombre del Profesor


M.A. Sócrates Ródope Walle
Sánchez.

Fecha
13/11/2021
UNIDAD IV Programación de Microcontroladores
Sistemas Programables

PROGRAMACION DE MICROCONTROLADORES

El microcontrolador es aquel que ejecuta el programa cargado en la memoria Flash a esta


acción se le denomina código ejecutable y está compuesto por una serie de ceros y unos,
aparentemente sin significado. Dependiendo de la arquitectura del microcontrolador, el código
binario está compuesto por palabras de 12, 14 o 16 bits de anchura. Cada palabra se interpreta
por la CPU como una instrucción a ser ejecutada durante el funcionamiento del
microcontrolador. C es un lenguaje bastante conciso y en ocasiones desconcertante.
Considerado ampliamente como un lenguaje de alto nivel, posee muchas características
importantes, tales como: programación estructurada, un método definido para llamada a
funciones y para paso de parámetros, potentes estructuras de control, etc. Pero gran parte de
la potencia de C reside en su habilidad para combinar comandos simples de bajo nivel, en
complicadas funciones de alto nivel, y en permitir el acceso a los bytes y words del procesador.

4.1 Modelo de Programación

 Organigramas. Suelen utilizarse en aplicaciones sencillas o en la planificación de rutinas


en las que se divide una aplicación más compleja. Un diagrama de flujo u organigrama
es una representación esquemática de los distintos pasos de un programa.
 Máquina de estados finita (FSM). Se denomina máquina de estados a un modelo de
comportamiento de un sistema con entradas y salidas en donde las salidas dependen
no solo de las señales de entradas actuales, sino también de las anteriores.
 Estados: Son las diferentes situaciones en las que puede encontrarse el sistema.
 Entradas (señales de transición de estados): Constituyen los acontecimientos que
producen los cambios de estado.
 Salidas: Respuesta del sistema ante los cambios en las entradas.
 Funciones de transición de estado: Descripción detallada, para cada estado, de cuál es
el siguiente estado y la salida del sistema, cuando se producen las distintas entradas.

La forma en que los representan es:

 Diagrama de grafo de estado


 Tabla de transiciones.

1
UNIDAD IV Programación de Microcontroladores
Sistemas Programables

4.2 Estructura de los Registros del CPU

Los programas de los microcontroladores suelen dividirse en dos grandes grupos:

La estructura de interrupciones, formada por las rutinas de servicio a las mismas.

El programa principal, que consta de dos partes: La rutina de inicialización del sistema y Un
lazo de ejecución perpetua, en donde n perpetua, en donde se ejecutan todas se ejecutan
todas aquellas tareas que no estén ligadas a la estructura de n ligadas a la estructura de
interrupciones: máquina de estados principal, rutinas no quina de estados principal, rutinas no
críticas, inicialización del circuito de vigilancia.

4.3 Modos de Direccionamiento

Las arquitecturas de computadores varían mucho en cuanto al número de modos de


direccionamiento que ofrecen desde el hardware. Eliminar los modos de direccionamiento más
complejos podría presentar una serie de beneficios, aunque podría requerir de instrucciones
adicionales, e incluso de otro registro. Se ha comprobado que el diseño de las CPU
segmentadas es mucho más fácil si los únicos modos de direccionamiento que proporcionan
son simples.

Tipos de Direccionamiento:

 Implícito
En este modo de direccionamiento no es necesario poner ninguna dirección de forma
explícita, ya que en el propio código de operación se conoce la dirección de el/los
operandos/s al (a los) que se desea acceder o con el/los que se quiere operar.
Supongamos una arquitectura de pila, las operaciones aritméticas no requieren
direccionamiento explícito por lo que se ponen como: - add - sub ...
 Inmediato
En la instrucción está incluido directamente el operando.
En este modo el operando es especificado en la instrucción misma. En otras palabras,
una instrucción de modo inmediato tiene un campo de operando en vez de un campo de
dirección. El campo del operando contiene el operando actual que se debe utilizar en
conjunto con la operación especificada en la instrucción. Las instrucciones de modo
inmediato son útiles para inicializar los registros en un valor constante.

2
UNIDAD IV Programación de Microcontroladores
Sistemas Programables

 Directo o absoluto
El campo de operando en la instrucción contiene la dirección en memoria donde se
encuentra el operando.
En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El
operando reside en la memoria y su dirección es dada directamente por el campo de
dirección de la instrucción. En una instrucción de tipo ramificación el campo de dirección
especifica la dirección de la rama actual.
 Indirecto
El campo de operando contiene una dirección de memoria, en la que se encuentra la
dirección efectiva del operando.
Si hace referencia a un registro de la máquina, la dirección de memoria (dirección
efectiva) que contiene el dato estará en este registro y hablaremos de direccionamiento
indirecto a registro; si hace referencia a una posición de memoria, la dirección de
memoria (dirección efectiva) que contiene el dato estará almacenada en esta posición
de memoria y hablaremos de direccionamiento indirecto a memoria.

4.4 Conjunto de Instrucciones

Un conjunto de instrucciones, es una especificación que detalla las instrucciones que una
unidad central de procesamiento puede entender y ejecutar, o el conjunto de todos los
comandos implementados por un diseño particular de una CPU.

Existen principalmente tres tipos:

 CISC (Complex Instruction Set Computer), RISC (Reduced


 Instruction Set Computer) y SISC (Simple Instruction Set Computing).

La arquitectura del conjunto de instrucciones (ISA) se emplea a veces para distinguir este
conjunto de características de la microarquitectura, que son los elementos y técnicas que se
emplean para implementar el conjunto de instrucciones. Entre estos elementos se encuentran
las microinstrucciones y los sistemas de caché.

3
UNIDAD IV Programación de Microcontroladores
Sistemas Programables

4.5 Lenguajes Ensambladores

Existen varios tipos de lenguaje ensamblador, aunque finalmente todos realizan las mismas
tareas.

 ENSAMBLADORES DE DOS FASES: se llaman así por que realizan la traducción en


dos etapas, en la primera fase revisan el código fuente y lo construyen en una tabla de
símbolos, en la segunda fase vuelven a leer el programa fuente y pueden traducirlo por
completo. Estos ensambladores son los más utilizados en la actualidad.
 ENSAMBLADORES RESIDENTES: permanecen en la memoria de la computadora, y
cargan para su ejecución al programa objeto producido. Es el indicado para el desarrollo
de pequeños sistemas de control.
 MACROENSAMBLADORES: permiten el uso de macroinstrucciones, son programas
grandes que no permanecen en memoria una vez que se a generado el código objeto,
normalmente son programas complejos y residentes.
 ENSAMBLADORES CRUZADOS: permiten el soporte de medios físicos como
pantallas, impresoras, teclado, etc. y la programación que ofrecen maquinas potentes
que luego serán ejecutados en sistemas especializados.
 MICROENSAMBLADORES: Indica al interprete las instrucciones de cómo debe actuar
la CPU.
 ENSAMBLADORES DE UNA FASE: leen una línea de programa fuente y la traducen
directamente para producir una instrucción en lenguaje máquina, estos ensambladores
son sencillos, baratos y ocupan poco espacio.

4
UNIDAD IV Programación de Microcontroladores
Sistemas Programables

4.6 Codificación

Una vez que los algoritmos de una aplicación han sido diseñados, ya se puede iniciar la fase de
codificación. En esta etapa se tienen que traducir dichos algoritmos a un lenguaje de
programación específico, en nuestro caso C; es decir, las acciones definidas en los algoritmos
las vamos a convertir en instrucciones, también llamadas sentencias, del lenguaje C.

EJEMPLO Al codificar en C el algoritmo del programa Sumar, visto en el apartado anterior


(Diseño), se escribirá algo parecido a:

#include <stdio.h>
int main()
{
int a, b, c;
printf( "\n Introduzca el primer n%cmero (entero): ", 163 );
scanf( "%d", &a );
printf( "\n Introduzca el segundo n%cmero (entero): ", 163 );
scanf( "%d", &b );
c = a + b;
printf( "\n La suma es: %d", c );
return 0;
}
Para codificar un algoritmo hay que conocer la sintaxis del lenguaje al que se va a traducir. Sin
embargo, independientemente del lenguaje de programación en que esté escrito un programa,
será su algoritmo el que determine su lógica..

También podría gustarte