¿Cuáles son las diferencias de detalle entre el microcontrolador ATmega 16 y 8051, cuál de estos dos es mejor?

Ambos son microcontroladores, así que fundamentalmente ambos son iguales. Pero lo que los hace diferentes es cómo y para qué quieres usarlos.

8051, es un microcontrolador muy bueno para aprender sistemas embebidos convencionales (o al menos lo que enseñan en las universidades), es lo suficientemente potente como para ejecutar la mayoría de sus proyectos. Ahora hay días que hay variantes avanzadas (S8051XC3).

Pero al comparar el 8051 original (o incluso mejor AT89C51RD2, que está optimizado para una ejecución de código más rápida en modo X2) con Atmega16, Atmega16 tiene que ver con la creación de prototipos de alta velocidad y hacer que su proyecto se ejecute de la manera más simple y rápida con el menor recuento de piezas posible.

Atmega16 gana en muchas cuentas:

  • Con Atmega16 puede poner en marcha su proyecto en el menor tiempo posible con un recuento mínimo de piezas, mientras que con 8051 al principio tendrá que lidiar con las resistencias pull-up y los componentes que 8051 requiere para al menos funcionar correctamente en El primer lugar.
  • Atmega16 tiene un mejor conjunto de instrucciones RISC, la mayoría de ellas son ejecuciones de un solo ciclo y, por lo tanto, una ejecución de código más rápida, mientras que 8051 aún admite CISC más lento que requiere múltiples ciclos de máquina para la ejecución.
  • Atmega16 tiene un montón de periféricos en chip como temporizadores (tanto de 8 como de 16 bits), ADC de 8 canales y 10 bits, bus I2C, bus SPI, interfaz UART, temporizador de vigilancia, mientras que el 8051 original solo tiene 2 temporizadores más UART y mejores variantes como RD2 solo tiene SPI agregado.
  • Atmega16 tiene mayor memoria de código y RAM en comparación con 8051.
  • Atmega16 es simple de programar y el hardware de programación compatible también es fácil de aprender y usar.

Y no solo Atmega16, sino que toda la serie AVR puntúa muy por encima de la familia 8051 (Mire, no estoy aquí para tomar partido, pero existe una variante 8051 C8051F120 que molesta a todo Atmega16 en términos de velocidad y conteo periférico).

El 8051 original tiene las funcionalidades primitivas con solo el UART de serie y los pines del puerto y los circuitos de soporte, y fue construido en la arquitectura CISC donde se requerían varios ciclos de reloj para realizar una sola ejecución de instrucción. No albergaba la interfaz SPI que tiene el famoso sabor de 8051 AT89s / c52.

Mientras que la arquitectura AVR posterior en la que se basan el atmega 16 y similares se construyó utilizando el conjunto de instrucciones RISC donde las instrucciones se ejecutaron en un solo ciclo de reloj agregando el rendimiento. Tenían circuitos incorporados para ADC, SPI, I2C, UART, registros internos de extracción, etc. con sus registros L&H de 8 bits, eran capaces de realizar operaciones primitivas de 16 bits al descomponer los datos en valores de H y L de 8 bits. Incluso tenían osciladores internos en ciertos sabores.

El hardware ATmega16 difiere en muchos aspectos del 8051, pero en algunos casos es un reemplazo fácil. Algunos de los AVR anteriores, el AT90S8515, por ejemplo, eran compatibles con los pines del 8051, y para ellos era un reemplazo directo, las únicas diferencias eran la polaridad del RESET y que PORT0 (PORTA en el AVR) no era coleccionista abierto. No es difícil convertir software. Los programas C se pueden volver a compilar con pocos cambios, y los programas ensambladores se pueden traducir línea por línea una vez que tenga un poco de conocimiento de las diferencias arquitectónicas.

Una gran diferencia es que el AVR es mucho más rápido . Ejecuta la mayoría de las instrucciones en un solo ciclo de reloj, en comparación con 12 para un 8051 estándar o 6 para una de las variantes de alta velocidad. Si está convirtiendo un proyecto existente, es realmente importante tener esto en cuenta, o todo el tiempo será incorrecto. Además, los AVR tienen una opción de reloj calibrado interno, por lo que en muchos casos no necesita un cristal y obtiene dos pines de puerto adicionales.

8051 puede direccionar memoria externa y también ejecutar desde ella. Algunos AVR pueden abordar la RAM externa (el mega16 no es uno de ellos) pero ningún AVR puede ejecutar código desde la memoria externa. Los AVR (en su mayoría) tienen mucha más RAM interna que 8051, y una pila real y un puntero de pila. Tienen 32 registros, cada uno de los cuales se comporta como el acumulador del 8051, es decir, puede ser el destino de una operación aritmética. Tienen tres registros de puntero de 16 bits. Mucho de esto no importa si programa en C porque está abstraído del hardware, pero ciertamente notará la ventaja en el tamaño y el rendimiento del código.

Ah, y puedes obtener un emulador en circuito por alrededor de $ 50. ¿Existe uno para el 8051?

8051 es muy bueno si quieres aprender a programar microcontroladores, pero Atmega16 es bueno ya que tiene muchos periféricos como adc, pwm, wathcdog, i2c. Estas características no están disponibles en 8051. Por lo tanto, depende de su propósito.

Como se mencionó anteriormente por muchos usuarios. Hay muchas diferencias entre atmega16 y 8051.

Estoy señalando algunas diferencias importantes aquí:

  1. Atmega16 tiene más periféricos en comparación con 8051.
  2. Hay adc incorporado en caso de atmega16.
  3. Hay pwm mientras no hay pwm en el caso de 8051.
  4. Tiene un oscilador rc interno y sus frecuencias son: 1, 2, 4 y 8 MHz. Entonces el oscilador externo es opcional. Este no es el caso con 8051.
  5. El programador de 8051 es barato.
  6. Costo sabio 8051 es más barato.

PD: Hay muchas familias de 8051. Estoy tomando At89s52 en consideración.

Hay muchas diferencias entre estos dos
1. Atmega16 funciona a 16Mhz clock.8051 funciona a una velocidad de reloj más baja
2. Atmega16 tiene ADC incorporado. 8051 no
3.La memoria RAM y ROM de Atmega16 es más de 8051
4.El factor de forma de Atmega 16 es menor en comparación con 8051
5.Programmer para Atmega 16 es más barato que el 8051
Estas son pocas diferencias entre los dos. Atmega 16 es mucho mejor que el 8051.

Bueno, todas las respuestas son totalmente correctas hasta donde yo sé, pero lo que me fascina mucho sobre AVR es la instalación incorporada de DAC / ADC. S0 con un controlador de este tipo es como trabajar con un sistema embebido completo, los sensores pueden intercambiar directamente la información con un AVR sin ningún requisito de hardware adicional. Sin embargo, hay muchas cosas que tiene que organizar para un sistema de trabajo, pero este gran problema se soluciona de AVR. El resto de los beneficios son los mencionados en las otras respuestas.

es un controlador de 8 bits, lo que significa que puede manejar 8 bits de datos a la vez, tiene un bus de datos de 8 líneas y una capacidad de direccionamiento de 16 bits, lo que significa que puede direccionar aproximadamente 64K bytes de memoria y dispositivos de E / S. Es como el abuelo, ya que es obsoleto y no se utiliza en ninguna aplicación industrial.
Atmega es uno de 16 bits, puede manejar operaciones más complejas y se ejecuta más rápido que este último.

ATMEGA es avanzado y fácil de usar … para ser utilizado;
Mientras
8051 es como trabajar con opamp 741, es decir, tenía que conectar algunos componentes de hardware adicionales (al menos para que funcione normalmente);

Atmega 16 es mejor si buscas rendimiento si buscas una solución barata, entonces elige el 8051. Por cierto, existen soluciones aún más baratas y mejores, como las MCU de 32 centavos de STmicro.