El Intel MCS-51 (comúnmente denominado 8051 ) es un conjunto de instrucciones de computadora de conjunto de instrucciones complejas (CISC) de arquitectura interna de Harvard, microcontrolador de un solo chip (µC) desarrollado por Intel en 1980 para su uso en sistemas integrados.
El microcontrolador tiene un total de cuarenta pines en total. La mayoría de los pines del microcontrolador 8051 tienen más de una función. La primera función es la operación de entrada / salida y la segunda función puede ser alguna función especial, ya que pueden usarse como contadores o para la comunicación en serie.
- ¿Cómo se usa el lenguaje ensamblador en la ingeniería de control?
- ¿Cuál es la diferencia entre AVR y ARM?
- Cómo enviar datos a servidores HTTP usando el módulo GPRS SIM908
- ¿Cuál es la razón detrás del microcontrolador 8051 no está ejecutando el código hasta que lo reinicie manualmente?
- ¿Qué microcontroladores pueden admitir la programación inalámbrica (OTA)?
En el microcontrolador hay cuatro puertos (colección de pines) P0, P1, P2 y P3. Estos puertos tienen 8 pines cada uno
Todos los puertos de 8051 se pueden usar para entrada o salida.
Programado el microcontrolador para alternar los pines de salida del puerto 1 y, por lo tanto, se activará continuamente.
ORG 0H
MOV A, # 55H; // A = 55 hex
ESPALDA: MOV P1, A; // P1 = A
RETARDO DE LLAMADA; // Espere “digamos 256 contadores”
CPL A; // complemento A
SJMP BACK; // sigue haciendolo
RETARDO: // retrasar la subrutina para 256 recuentos
MOV R1, # 0FFH; // carga FF hex en R1 “contador”
OTRA VEZ: DJNZ R1, OTRA VEZ; // un bucle de retraso
RET; // volver a la persona que llama
FIN
Ahora supongamos que deseamos recibir datos en el puerto 0 y enviarlos al puerto 2. En otras palabras, la entrada en el puerto 0 se puede dirigir como salida al puerto 2.
Recuerde que para recibir la entrada, los pines de entrada o el puerto deben inicializarse a la lógica ALTA, es decir, 1 y, en el ejemplo posterior, se ha utilizado el puerto completo para recibir la entrada. Entonces, en lugar de asignar una lógica alta a cada pin, el valor hexadecimal FF, es decir, el binario 11111111 se carga en el puerto de entrada.
ORG 0H
MOV A, # 0FFH; // A = FF hexadecimal o binario 11111111
MOV P0, A; // convierte a P0 en un puerto de entrada inicializando la lógica alta en los 8 pines
ESPALDA: MOV A, P0; // obtener datos de P0
MOV P1, A; // envíalo al puerto1
SJMP BACK; //sigue haciendolo
FIN