Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A) Generalidades:
Un Microcontrolador es Circuito integrado o chip que incluye en su interior las tres
unidades funcionales de un ordenador: CPU, Memoria y Unidades de Entrada/Salida, es
decir, se trata de un computador completo en un solo circuito integrado. Aunque sus
prestaciones son limitadas, además de dicha integración, su característica principal es su
alto nivel de especialización para tareas concretas.
En esta arquitectura, los datos y las instrucciones circulan por el mismo bus ya que estos son
guardados en la misma memoria, su principal ventaja es el ahorro de líneas de entrada-salida,
pero esto supone una disminución en la velocidad con la que se realizan los procesos.
Arquitectura Harvard
A diferencia de la anterior, en la arquitectura Harvard existe una memoria específica para datos y
una memoria específica para las instrucciones, de esta forma se usan dos buses bien
diferenciados. Con esto se logra trabajar con las dos memorias simultáneamente y en
consecuencia se obtiene mucha más velocidad en la ejecución de los programas.
(Estructura interna del Microcontrolador PIC16F887)
1)-Lenguaje ensamblador:
Características:
-El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido
directamente por un ser humano ya que su estructura se acerca más bien al lenguaje máquina, es
decir, lenguaje de bajo nivel.
-Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un
microcontrolador por lo que se pueden crear segmentos de código difíciles de programar en un
lenguaje de alto nivel.
-También se puede controlar el tiempo en que tarda una Rutina en ejecutarse, e impedir que se
interrumpa durante su ejecución.
2)-Lenguaje C
La programación en C tiene una gran facilidad para escribir código compacto y sencillo a su misma
vez. En el lenguaje C no tenemos procedimientos como en otros lenguajes solamente tenemos
funciones los procedimientos los simula y esta terminante mente prohibido escribir funciones,
procedimientos y los comandos en mayúscula todo se escribe en minúsculas (a no ser las
constantes J) Los archivos en la C se escriben en texto puro de ASCII del Dos.
I)Atmega328
El Atmega328 AVR 8-bit es un Circuito integrado de alto rendimiento que está basado un
microcontrolador RISC, combinando 32 KB ISP flash una memoria con la capacidad de leer-
mientras-escribe, 1 KB de memoria EEPROM, 2 KB de SRAM, 23 líneas de E/S de propósito general,
32 registros de proceso general, tres temporizadores flexibles/contadores con modo de
comparación, interrupciones internas y externas, programador de modo USART, una interfaz serial
orientada a byte de 2 cables, SPI puerto serial, 6-canales 10-bit Conversor A/D (canales
en TQFP y QFN/MLF packages), "watchdog timer" programable con oscilador interno, y cinco
modos de ahorro de energía seleccionables por software. El dispositivo opera entre 1.8 y 5.5
voltios. Por medio de la ejecución de poderosas instrucciones en un solo ciclo de reloj, el
dispositivo alcanza una respuesta de 1 MIPS, balanceando consumo de energía y velocidad de
proceso.
Características:
PARÁMETROS VALORES
Flash 32 Kbytes
SRAM 2 Kbytes
Cantidad Pines 28
Interrupciones internas 24
SPI 1
UART 1
Canales ADC 8
Resolución de ADC 10
Eeprom 1K
Canales PWM 6
Timers 3
II) PIC16F84
Características:
En los últimos años se ha popularizado el uso de este microcontrolador debido a su bajo costo y
tamaño. Se ha usado en numerosas aplicaciones, que van desde los automóviles a decodificadores
de televisión. Es muy popular su uso por los aficionados a la robótica y electrónica.
Puede ser programado tanto en lenguaje ensamblador como en Basic y principalmente en C, para
el que existen numerosos compiladores (Por ejemplo: mikroC PRO for PIC: ambiente de desarrollo
de programación de microcontroladores PIC en lenguaje C).
Cuando se utilizan los compiladores Basic, es posible desarrollar útiles aplicaciones en tiempo
récord, especialmente dirigidas al campo doméstico y educacional.
El PIC16F84 posee una UAL (Unidad Aritmética Lógica) limitada que impide hacer cálculos
matemáticos básicos, como, por ejemplo, una multiplicación de dos números a 8 bits en una única
instrucción, o una división en una única instrucción. Por lo que el programador debe valerse de
otras técnicas matemáticas que se apoyan en el juego de instrucciones aritméticas disponibles en
este PIC para realizar este cálculo matemático básico.
Proyecto con Microcontroladores:
-Contador
Contador de pulsos desde 0 hasta 9. Se utiliza el PIC16F628A y un pulsador normalmente abierto
esto para generar los pulsos manualmente, estos pulsos serán mostrados en el display de 7
segmentos para representar el conteo.
(Esquema de conexiones)
//Contador.c
//Declaracion de variables
char contador=0; //La variable contador es de tipo char y tiene valor inicial d
e 0.
//Función principal
void main(){
PORTB=0x00; //Estado inicial del puerto B.
CMCON=0x07; //Pines RA<3:0> como E/S digital.
TRISB=0x00; //Puerto B como salida.
while (1){
if (BOTON==PRESIONADO){ //Si se pulsa,
Delay_ms(10); //esperar 10ms,
if (BOTON==PRESIONADO){ //revisar si el boton sigue pulsado,
while (BOTON==PRESIONADO); //y esperar mientras siga presionado.
contador++; //Al soltar incrementar el contador,
if (contador>9) contador=0; //y reiniciarlo a 0 si supera el valor de 9.
}
}
PORTB=Bin2_7seg(contador); //Convertir y enviar al puerto B el valor
//presente en la variable contador.
}
}//Fin de la función principal