Programación Del Microcontrolador
Programación Del Microcontrolador
Programación Del Microcontrolador
REPERTORIO DE INSTRUCCIONES.
REGISTRO STATUS
El registro de ESTADO, contiene el estado aritmético de la ALU. Como con cualquier otro
SFR, se puede modificar con cualquier instrucción.
Si el registro ESTADO es el destino de una instrucción que afecte a los bits N, OV, Z, DC o C,
los resultados de la instrucción no se escriben, en cambio, el registro ESTADO se actualiza según la
instrucción realizada. Por lo tanto, el resultado de una instrucción con el registro ESTADO como
destino puede ser diferente al previsto.
Ejemplo, CLRF STATUS activará el bit Z y el resto de los bits no cambian (‘000u u1uu’).
Donde:
R = bit de lectura, W = bit de escritura,
U = bit no implementado leído como "0",
-n = Valor en POR
'1' = El bit en set
'0' = El bit en clear
x = El bit es desconocido
Nota: 1: Para Borrow, la polaridad se invierte. Una resta se ejecuta agregando el complemento
de 2 del segundo operando. Para las instrucciones de rotación (RRF, RLF), este bit se carga
con el bit 4 o el bit 3 del registro fuente.
1 1111
1 0 1 0 1 1 1 0 = AEH
+ 1 0 1 1 0 1 0 1 = B5H
1 0 1 1 0 0 0 1 1 = 63H
C=1 DC = 1 Z=0
Luego de realizada la anterior operación aritmética el registro queda:
STATUS: Registro estado
Cada puerto tiene tres registros para operar. Estos registros son:
Registro TRIS (registro de la dirección de los datos)
Registro PORT (lee los niveles en los pines del dispositivo)
Registro LAT (latch de salida)
Varios pines de PORTA se multiplexan con las entradas analógicas, las entradas
analógicas de VREF+ y de VREF- y la salida de referencia de la tensión del comparador.
La operación de los pines RA5 y RA3:RA0 como entradas del convertidor A/D se
seleccionan al borrar/activar los bits de control en el registro ADCON1 (registro de control
A/D1).
El resto de los pines de PORTA tienen niveles de introducción de datos de TTL y
drivers de salida de CMOS.
Leyenda: — = no implementado, se lee ‘0’. Las celdas sombreadas no las usa el PORTA.
Nota 1: El RA6 y sus bits de direcciones y latch asociados se activan como pines de E/S
basándose en la configuración del oscilador; en otro caso, se leen como ‘0’.
LATA = 0b11111111; Todos los pines del Puerto A con una salida de 5v.
LATA = 0b00000000; Todos los pines del Puerto A con una salida de 0v.
LATA = 0b00001111; Los pines Altos a 0v y los pines Bajos a 5v.
3. Lectura de un PUERTO
Permite el ingreso de datos a través de los puertos del microcontrolador y almacenarlos
en una o más variables.
Ejemplos:
variable=PORTA; //Los bits del puerto A se almacenan en la variable
LATB=PORTA; //Los bits del puerto A se envían hacia los pines del puerto B
También se puede leer el estado individual de cada bit de un puerto usando cualesquiera
de las siguientes instrucciones:
variable=PORTB.F3; //Lee el estado del pin RB3 y lo guarda en la variable
variable=RB3_bit;
Valor = PORTA [ RA0 ]; // El estado lógico del pin A0 se escribe en la variable valor
Valor = PORTA; // El estado lógico del todo el Puerto A se escribe en valor.