8/22/2011

Ejercicios en Assembler y en C

 Para poder aprender mas de programación, decidimos realizar unos ejercicios, basados en el PIC 16f84, tanto en lenguaje C como en Asembler. A continuación dejamos constancias de los mismos:

Ejercicio 1: Por el puerto B se obtiene el dato de las cinco líneas del puerto A, al que está conectado un aray de interruptores, sumándole el valor de una constante, (por ejemplo 74).
Es decir : PORTB = (PORTA+Constante)


Ejercicio 2: Por el puerto B se obtiene el dato del puerto A, multiplicado por 2. Es decir: PORTB = (PORTA x 2)


Ejercicio 3: Por el puerto B se obtiene el dato introducido por el puerto A, pero los bits pares de la salida se fijan siempre en "1". El orden de los bits será "b7 b6 b5 b4 b3 b2 b1 b0", siendo los pares el "b6, b4, b2 y b0". Por ejemplo, si por el puerto A se introduce el dato '---01100', por el puerto B se visualiza '---11101'. Observa que:

-Los bits pares están en "1", efectivamente (puerto B) = '---1x1x1'
-Los impares permanecen con el dato del puerto de entrada, efectivamente: Puerto A = '---x1x0x' y Puerto B = '---x1x0x'


Ejercicio 4: Por el puerto B se obtiene el contenido del puerto A, pero los bits impares de la salida se fijan siempre a "0". El orden de los bits será "b7 b6 b5 b4 b3 b2 b1 b0", siendo los impares ""b7, b5, b3 y b1". Por ejemplo, si por el puerto A se introduce el dato b'---01100', por el puerto b se visualiza '000001000'. Observar que:

-Los bits impares están a "0", efectivamente: Puerto B = '0x0x0x0x'
-Los bits pares permanecen con el dato del puerto de entrada, efectivamente: Puerto A = '--- 0x1x0' y Puerto B = '---0x1x0'


Ejercicio 5: Por el puerto B se obtiene el dato del puerto A invertidos  los unos y los ceros. Por ejemplo, si por el puerto A se introduce "---11001", por el puerto B aparecerá "xxx00110". (No importa el estado de los tres bits superiores del puerto B).


Ejercicio 6: Por el puerto B se obtiene  el dato del puerto A intercambiando los nibbles alto y bajo. Por ejemplo, si por el puerto A se introduce "---1001", por el puerto B aparecerá "1001xxx1".


Ejercicio 7: Por el puerto B se obtiene el dato del puerto A desplazando un bit hacia la izquierda, por la derecha entrará un "1". Por ejemplo, si por el puerto A se introduce "---11001", por el puerto B aparecerá "xx110011".


 

Ejercicio 8: Por el puerto B se obtiene el dato del puerto A desplazando un bit hacia la derecha, por la izquierda entrará un "0". Por ejemplo, si por el puerto A se introduce "---11001", por el puerto B aparecerá "0xxx1100".



Ejercicio 9: Por el puerto B, se obtiene el dato del puerto A, pero los bits pares son invertidos. Los impares se mantienen inalterables.


Ejercicio 10: Por el puerto B, se obtiene el dato del puerto A, y luego el PIC entra en modo Standby.

No hay comentarios:

Publicar un comentario