(8051) Comprobar si un único bit se establece
-
26-09-2019 - |
Pregunta
Estoy escribiendo un programa para un microcontrolador 8051. En la primera parte del programa que hago algunos cálculos y basado en el resultado, o bien la luz el LED o no (usando CLR P1.7
, donde P1.7 es el puerto el LED está unido a en el microcontrolador).
En la siguiente parte del programa Quiero recuperar el bit, tal vez almacenarlo en alguna parte, y utilizarlo en una instrucción de salto si-como JB
. ¿Cómo puedo hacer eso?
Además, he visto el MOV C, P1.7
instrucción en un ejemplo de código. ¿Cuál es la C
aquí?
Solución
El C
aquí es de la bandera de acarreo 8051 - llamado así debido a que puede ser usada para sostener el "acarreo" al hacer operaciones de suma de múltiples bytes
Puede también ser utilizado como un registro de un solo bit - así (como en este caso) en la que desea mover bits alrededor, puede cargarlo con un valor de puerto (como P1.7
) y luego almacenarla en otro lugar, por ejemplo:
MOV C, P1.7
MOV <bit-address>, C
A continuación, más adelante se puede ramificar en él usando:
JB <bit-address>, <label>
Otros consejos
Algunos de los registros de funciones especiales también son poco direccionable. Creo que sus todos los que terminan en 0 ó 8. no tienen una referencia frente a mí, pero se puede hacer algo como r0.1 SETB. De esta forma si usted necesita el transporte por algo que no tiene que preocuparse acerca de empujar y el uso de espacio en la pila.