No sé cómo resolver algunas preguntas sobre el microcontrolador MCS-51. Mañana por la tarde habrá un examen. ¿Puede alguien de buen corazón ayudarme? ! !
El espacio de direcciones de memoria del microcontrolador MCS-51 requiere varias páginas.
Una breve introducción es la siguiente:
La memoria del MCS-51 tiene tres espacios: RAM en el chip, RAM fuera del chip y ROM.
RAM en chip:
El rango de direcciones es de 00H a 7FH (la serie 52 se extiende a FFH).
Entre ellos 00H a 1FH, ***32 bytes, divididos en cuatro áreas de registro de trabajo, cada área tiene registros R0~R7.
Para esta área, puede usar R0~R7 para operar, pero actualmente solo se puede leer y escribir un área de esta manera.
Para esta área, también puedes utilizar direcciones de bytes para lectura y escritura.
20H-2FH, 16 bytes, es un área de direccionamiento de bits, con 128 "bits", dirección de bits: 00~7FH.
Esta área también se puede leer y escribir según el direccionamiento de bytes.
30H-7FH no tiene características especiales y solo realiza direccionamiento de bytes.
80H-FFH, existen 128 números de dirección, entre los que se distribuyen discretamente 21 registros de funciones especiales, que deben direccionarse directamente para lectura y escritura.
(La Serie 52, en esta gama, también dispone de 128 bytes de RAM, que hay que direccionar indirectamente para lectura y escritura).
Para leer y escribir el espacio anterior, es necesario utilizar la instrucción MOV.
----
RAM fuera del chip:
El rango de direcciones de la RAM fuera del chip es de 0000H a FFFFH y la capacidad es de 64 KB.
Para leer y escribir en la RAM fuera del chip, debe utilizar la instrucción MOVX.
----
ROM:
El rango de direcciones de la ROM es de 0000H a FFFFH y la capacidad es de 64 KB.
Entre ellos, 0000~0FFFH, que es 4K, está dentro del chip y los demás están fuera del chip.
(Para 8031, todas estas ROM de 64K están fuera del chip).
Para leer la ROM, debe utilizar la instrucción MOVC.
------------------------------------------- ----- --------------------------------
El proceso de enviar un bit de datos, el resto es igual, excepto que la velocidad en baudios es diferente y la velocidad de transmisión es diferente. Generalmente, los protocolos superior e inferior son los mismos, generalmente como 9600, N, 8, 1
<. p>Como se muestra en la figura: cuando la línea de transmisión, cuando está de mayor a menor (bit de inicio), comienza a enviar datos (de menor a mayor, envía ocho bits, un byte) y luego súbelo (bit final) a envía un byte de datos para finalizar y el resto de los datos se envía en la misma duración.---------------------. ------------------------ -------------------------- ----------
MOV R7, #6; asignará el número decimal 6 a R7, el valor de 07H es 6
MOV R0, #40H ; asigna el número hexadecimal 40h a R0, el valor de 00H es 40H
MOV A, # 1; Asigna el número decimal 1 al acumulador A
LOOP: MOV @R0, A asigna el valor del acumulador A a la dirección 40H indicada por el valor R0, y el valor de 40H es 1
INC A El valor del acumulador A aumenta en 1 A=2
INC R0 El valor de R0 aumenta en 1 00H el valor es 41H
DJNZ R7, LOOP; 5 El valor de R7 disminuye en 1, el valor no es 0, saltará a la etiqueta LOOP si es. es 0, se ejecutará hacia abajo. El valor de R7 es 5
SJMP $; 6 salta a la instrucción actual, lo que significa realizar un bucle en esta instrucción
FIN del programa<. /p>
---------------------------------------- ---- ------------------------------
¡Solo puedo responder estas pocas!