Subido por Esme Chavez

Introducción a los microcontroladores

Anuncio
Introducción a los
microcontroladores
M.C. David Ricardo López Flores
Panorama
 Este tipo de dispositivos en la actualidad se encuentran en los
supermercados, artículos electrodomésticos, instrumentos musicales,
juguetes, equipo automotriz e industrial, etc.
 Su finalidad principal es la de interaccionar con el mundo real mediante
funciones de control y monitoreo de las condiciones de un proceso.
 Los antecesores de los microcontroladores fueron y son los
microprocesadores. Los primeros microprocesadores fueron introducidos
por INTEL familia (8080) y ZILOG ( familia Z80).
M.C. David Ricardo López Flores
Microcontrolador V.S. Procesador
 Los microcontroladores difieren de los microprocesadores en muchas
maneras. La primera y más importante es su funcionalidad.
 Un microprocesador para ser usado debe estar acompañado por
memoria y componentes que reciben y envían información; esto hace de
un µP el corazón de una PC.
 Los microcontroladores están diseñados de tal forma que todo lo anterior
se encuentra en un solo CI, no necesita* componentes externos para su
funcionamiento.
M.C. David Ricardo López Flores
Microcontrolador V.S. Procesador
M.C. David Ricardo López Flores
M.C. David Ricardo López Flores
M.C. David Ricardo López Flores
La arquitectura de John Von Neumann se caracteriza por los procesadores que
poseen el mismo dispositivo de almacenamiento tanto para los datos como para las
instrucciones.
Al ser almacenados en el mismo formato dentro de la misma memoria, utilizan un único
bus de datos para comunicarse con la CPU. Esto hace que este tipo sea eficiente en la
utilización de memoria, pero que requiera una ambigüedad para reconocer los datos.
Los ordenadores de este tipo se componen de la unidad aritmético-lógica o "ALU", la
unidad de control, una memoria, un dispositivo de entrada y salida y un bus de datos
que los comunica.
la arquitectura de Harvard, que proviene del Harvard Mark I se diferencia por la separación de
los datos y las instrucciones que se comunican con la unidad central de proceso en dos
memorias separadas, con lo que también se usan distintos buses de información. Aunque es
común un único bus de direcciones, con un control que diferencie entre ambas memorias.
Al contrario que la arquitectura de Von Neumann, esta no requiere de la ambigüedad pero no
es tan eficiente en la utilización de la memoria.
Estos ordenadores se componen por los mismos elementos que los del modelo de Von
Neumann, excepto por que tienen dos memorias, una para datos y otra para instrucciones, y no
una única memoria como el otro modelo.
M.C. David Ricardo López Flores
Familias
 mC51 - Intel, Phillips, ATMEL
 AVR’s – ATMEL
 PIC – Microchip
 MC68HCxx - Motorola, Freescale
 COPS - National Semiconductors
M.C. David Ricardo López Flores
Arquitectura de un microcontrolador
M.C. David Ricardo López Flores
Arquitectura de un microcontrolador AVR
M.C. David Ricardo López Flores
Encapsulados
M.C. David Ricardo López Flores
Lenguajes de Programación
 El lenguaje puede ser Ensamblador es el lenguaje de
programación utilizado para escribir programas
informáticos de bajo nivel, y constituye la representación
más directa del Código máquina específico para cada
arquitectura de computadoras legible por un
programador. Aun hoy se utiliza en la programación de
handler o manipuladores de dispositivos de hardware.
 El siguiente es un ejemplo del programa clásico Hola
mundo escrito para la arquitectura de procesador x86
(bajo el sistema operativo DOS) en modo texto (por
defecto).
M.C. David Ricardo López Flores
Lenguajes de
Programación

C es un lenguaje de
programación de
propósito general que
ofrece economía
sintáctica, control de
flujo y estructuras
sencillas y un buen
conjunto de
operadores. No es un
lenguaje de muy alto
nivel y más bien un
lenguaje pequeño,
sencillo y no está
especializado en ningún
tipo de aplicación. Esto
lo hace un lenguaje
potente, con un campo
de aplicación ilimitado y
sobre todo, se aprende
rápidamente. En poco
tiempo, un
programador puede
utilizar la totalidad del
lenguaje.
M.C. David Ricardo López Flores
Compilador
 Un compilador es un
programa informático, que se
encarga de traducir el código
fuente de una aplicación que
este en desarrollo, es decir
convierte un programa hecho
en lenguaje de programación
de alto nivel a un lenguaje de
máquina , el cual es conocido
como de bajo nivel, de tal
forma que sea más
entendible y mucho más fácil
de procesar en el equipo en
el que se esta ejecutando. De
igual manera un traductor es
el que toma como entrada un
texto escrito y da como salida
otro texto en un lenguaje
llamado objeto.
M.C. David Ricardo López Flores
Arduino Uno (ATMEGA 328P)
M.C. David Ricardo López Flores
Mapeo
de
Pines
M.C. David Ricardo López Flores
Compilador
M.C. David Ricardo López Flores
Ejemplo 1 en ATMEGA328P (Blink LED)
M.C. David Ricardo López Flores
Ejemplo 2 en ATMEGA328P (Puerta AND)
/*
Boole
Función AND con 2 variables
*/
int var1 = 7; //Pin de entrada del pulsador 1
int var2 = 2; //Pin de entrada del pulsador 1
int led = 5; //Pin de salida para el led(rojo)
int estado1 = 0; //Para almacenar el estado de la variable1
int estado2 = 0; //Para almacenar el estado de la variable2
int resultado = 0; //Para almacenar el resultado
void setup() {
pinMode(var1, INPUT); //Iniciliza el pin de entrada 1 como salida
pinMode(var2, INPUT); //Iniciliza el pin de entrada 2 como salida
pinMode(led, OUTPUT); //Iniciliza el pin del led como salida
}
M.C. David Ricardo López Flores
void loop(){
estado1 = digitalRead(var1); //Lee el estado del botón y lo almacena
estado2 = digitalRead(var2); //Lee el estado del botón y lo almacena
resultado = (estado1 && estado2); //Función AND con los dos estados
digitalWrite(led, resultado); //Escribimos el resultado en el led
}
M.C. David Ricardo López Flores
Ejemplo 2 en ATMEGA328P (Función Lógica)
Función Canónica: M(FC1) = NOT(A) * B + A * NOT(B)
/*
Implementación de Función lógica
*/
int var1 = 1; //Pin de entrada del pulsador 1
int var2 = 2; //Pin de entrada del pulsador 1
int led = 5; //Pin de salida para el led(rojo)
int A = 0; //Para almacenar el estado de la variable1
int B = 0; //Para almacenar el estado de la variable2
int resultado = 0; //Para almacenar el resultado
void setup() {
pinMode(var1, INPUT); //Init pin de entrada 1 como salida
pinMode(var2, INPUT); //Init pin de entrada 2 como salida
pinMode(led, OUTPUT); //Iniciliza el pin del led como salida
}
void loop(){
A = digitalRead(var1); //Lee el estado 1 y lo almacena
B = digitalRead(var2); //Lee el estado 2 y lo almacena
//Función Lógica ------ R=(â*b)+(a*^b)
resultado = (!A && B) || (A && !B);
digitalWrite(led, resultado); //Escribimos el resultado en el led
}
 La presente información es un resumen basado en información disponible
por internet, por lo tanto se han empleado figuras, textos, ejemplos de otros
autores.
M.C. David Ricardo López Flores
Descargar