Está en la página 1de 11

Diseo Digital en VHDL 01/09/2015. Mxico, Instituto Tecnolgico Superior del Sur de Guanajuato.

Salvador Ramirez Zavala


ITSUR, Bronce #92, 4451239012
Salvador.ramirez.za@gmail.com

Resumen
En el captulo 8 se analizan comandos para la realizacin de operaciones aritmticas y
lgicas.
Suma
Se realiza sin la utilizacin de signos pero afecta los flags de la siguiente manera.
Flag Z: Se pone en 1 si el resultado de una operacin es 0 y se pone en 0 si el resultado es
diferente de 0.
Flag C: Si hay acarreo del bit 7 el flag se activa.
Flag DC: Si hay acarreo del bit 3 al 4 es decir de mitad a mitad del nible el flag se pone en 1.
addlw k
Suma el contenido del registro W con una literal y el resultado se guarda en W.
addwf f,d
Suma el contenido del registro W al contenido del registro f y lo almacena en W si d=0 o en el
registro f si d=1.
Instrucciones de resta
Se realiza sumando, en binario sin signo, el registro f o el literal mas el complemento a dos
del contenido del registro W. el Flag carry en 1 indica positivo y en 0 negativo.
Sublw k
Resta en complemento a 2 el contenido de l constante k menos el contenido del registro W
y almacena el resultado en W.
subwf f,d
Resta en complemento a 2 el contenido del registro f menos el contenido del registro W.
Almacena el resultado en W si d=0 y en f si d=1.

Ingeniera Electrnica
~1~

Diseo Digital en VHDL 01/09/2015. Mxico, Instituto Tecnolgico Superior del Sur de Guanajuato.

Incrementar y decrementar.
decf f,d
El contenido del registro f se decrementa en una unidad y el resultado se almacena en W si
d=0 y en f si d=1.
incf f,d
El contenido del registro f se incrementa en una unidad. Se almacena en W si d=0 y en f si
d=1
Instrucciones Lgicas
Las instrucciones lgicas que se pueden realizar son AND,OR, OR exclusiva, Inversion,
rotacin y el intercambio de nibles.
andlw k
Efectua la operacin and lgica entre el contenido del registro W y la constante k, almacena
en W.
andwf f,d
efectua la operacin and entre el contenido del registro W y el contenido del registro f.
Almacena en W si d=0 y en f si d=1.
comf f,d
Realiza un complemento del contenido del registro f bit a bit, invirtiendo el valor, almacena
el resultado en W si d=0 y en f si d=1.
iorlw k
Efectua la operacin OR lgica entre el contenido del registro Wy la constante k, almacena el
resultado en W.
iorwf f,d
Efectua la operacin OR lgica entre el contenido del registro W y el contenido del registro f,
almacena el resultado en w si d=0 y en f si d=1.
rlf f,d
rota un bit a la izquierda del registro f pasando por el bit de acarreo. Si d=0 el resultado se
almacena en W, si d=1 el dato se almacena en f.

Ingeniera Electrnica
~2~

Diseo Digital en VHDL 01/09/2015. Mxico, Instituto Tecnolgico Superior del Sur de Guanajuato.

rrf f,d
Rota un bit a la derecha del registro f pasando por el bit de acarreo C, es similar al anterior.
Swapf f,d
Los cuatro bits de mas peso del registro f se intercambian con los 4 bits de menos peso del
mismo registro f. Si d=0 se almacena en W si d=1 se almacena en f.
xorlw k
Realiza la funcin or exclusiva entre el contenido del registro W y la constante K de 8 bits, el
resultado se almacena en W.
xorwf f,d
Realiza la funcin or-exclusiva entre el contenido del registro W y el contenido del registro f.
Almacena el resultado en f si d=1 y en W si d=0.
SLEEP
Sirve para poner los microcontroladores en reposo sin realizar ninguna intruccion, se reactiva
con un acontecimiento indicado.
Algunas Instrucciones Utiles
incf contador,f
Incrementa un registro en una unidad.
movlw d7
addwf Operando,F
Incrementa un registro en un valor n
decf Centenas,F
Decrementa un registro en una unidad
movlw 15
subwf mensajelongitud,f
Decrementa un registro en un valor n
addlw 0x01
Incrementar W
sublw
Decrementar w
xorlw b11111111

Ingeniera Electrnica
~3~

Diseo Digital en VHDL 01/09/2015. Mxico, Instituto Tecnolgico Superior del Sur de Guanajuato.

Complementar W, invirtiendo sus bits.


sublw 0
Negar W

Ingeniera Electrnica
~4~

Diseo Digital en VHDL 01/09/2015. Mxico, Instituto Tecnolgico Superior del Sur de Guanajuato.

Tarea 1 Ensam3
Para esta prctica se obtiene un valor por el puerto A, posteriormente con lneas de
comandos se mueve al puerto B el valor obtenido por el puerto A. En la figura 1.1 se muestra
el cdigo del PIC.

Figura 1.1. Cdigo


del pic para mover datos del puerto B al puerto A.

En la parte de INICIO se comienza a configurar el banco 0 pues se le asigna un bit al


comando RP0, con el comando clrf se limpia TRISB quedando en 0s y por lo tanto como
como salida, se crea un archivo de bits 00011111 y se mueve al registro W, se mueve el
archivo de bits del registro W a TRISA quedando configurado como entrada, con el comando
bcf se limpia RP0 quedando en 0 por lo que pasamos del banco 1 al banco 0.
En la parte TROLOLOL con el comando movf se mueven los datos del PORTA a W, con el
comando movwf se mueve el dato de W al PORTB y con el comando goto TROLOLOL se
hace un bucle que est ejecutando continuamente del cdigo TROLOLOL.

Ingeniera Electrnica
~5~

Diseo Digital en VHDL 01/09/2015. Mxico, Instituto Tecnolgico Superior del Sur de Guanajuato.

Para la simulacin se mueve el dato en la entrada 10101 y se mueve al puerto B o a la


salida, la figura 1.2 muestra la simulacin con esta entrada.

Figura 1.2. Simulacin con entrada 10101.

Ingeniera Electrnica
~6~

Diseo Digital en VHDL 01/09/2015. Mxico, Instituto Tecnolgico Superior del Sur de Guanajuato.

Tarea 2 Elemental 1
Para esta prctica se obtiene un valor de datos por el Puerto A y se le debe sumar una literal,
el resultado aparece en el Puerto B. La figura 1.3 muestra el cdigo utilizado.

Figura 1.3. Cdigo para sumar una literal al dato obtenido en PORTA y mostrar el
resultado en PORTB

En la parte de CONFIGURACION se comienza a configurar el banco 0 pues se le asigna un


bit al comando RP0, con el comando clrf se limpia TRISB quedando en 0s y por lo tanto
como como salida, se crea un archivo de bits 00011111 y se mueve al registro W, se mueve
el archivo de bits del registro W a TRISA quedando configurado como entrada, con el
comando bcf se limpia RP0 quedando en 0 por lo que pasamos del banco 1 al banco 0.
El cdigo movf mueve el dato que hay en PORTA a W, con el comando addlw d22 suma el
dato W con el nmero 22 decimal, movwf PORTB mueve el resultado de la suma al PORTB
mostrndolo en la salida y finalmente goto TROLOLOL cicla el programa haciendo que esta
operacin se repita.
La figura 1.4 muestra la simulacin de este programa.

Ingeniera Electrnica
~7~

Diseo Digital en VHDL 01/09/2015. Mxico, Instituto Tecnolgico Superior del Sur de Guanajuato.

Figura 1.4. Simulacin del cdigo para sumar un dato con una literal.

En el puerto A se insert el nmero 7 en binario, el programa lo sumo con la literal 22 y


finalmente se muestra el resultado 29 en el puerto B.
Tarea 3 Elemental 2
Por el puerto A se introduce un dato, en el puerto B se muestra la multiplicacin del puerto A
por 2. La figura 1.5 muestra el cdigo.

Figura 1.5. cdigo para multiplicar por 2 un valor obtenido por PORTA

Ingeniera Electrnica
~8~

Diseo Digital en VHDL 01/09/2015. Mxico, Instituto Tecnolgico Superior del Sur de Guanajuato.

En la parte de CONFIGURACION se comienza a configurar el banco 0 pues se le asigna un


bit al comando RP0, con el comando clrf se limpia TRISB quedando en 0s y por lo tanto
como como salida, se crea un archivo de bits 00011111 y se mueve al registro W, se mueve
el archivo de bits del registro W a TRISA quedando configurado como entrada, con el
comando bcf se limpia RP0 quedando en 0 por lo que pasamos del banco 1 al banco 0.
El comando rlf rota a la izquierda los valores obtenidos en el puerto A y los guarda en el
registro W, movwf mueve los datos del registro W al puerto B es decir a la salida y el
comando goto TROLOLOL cicla el cdigo. La figura 1.6 muestra la simulacin del cdigo.

Figura 1.6 Simulacin para multiplicar por 2 el dato obtenido en el puerto A y mostrarlo
en el puerto B.

En la simulacin se inserta el nmero 3 en binario 011 con el comando rlf se rota cada bit a la
izquierda quedando 110 binario es decir el numero 6 decimal.

Ingeniera Electrnica
~9~

Diseo Digital en VHDL 01/09/2015. Mxico, Instituto Tecnolgico Superior del Sur de Guanajuato.

Tarea 4 Elemental 3
Se obtiene un dato por el puerto A, los bits pares b0, b2, b4, b6 estarn en 1
independientemente del dato ledo por el puerto A y el resultado se muestra en el puerto B.
La figura 1.7 muestra el cdigo utilizado.

Figura 1.7. Codigo del pic para poner activos los bits pares de un dato.

En la parte de CONFIGURACION se comienza a configurar el banco 0 pues se le asigna un


bit al comando RP0, con el comando clrf se limpia TRISB quedando en 0s y por lo tanto
como como salida, se crea un archivo de bits 00011111 y se mueve al registro W, se mueve
el archivo de bits del registro W a TRISA quedando configurado como entrada, con el
comando bcf se limpia RP0 quedando en 0 por lo que pasamos del banco 1 al banco 0.
El comando movf PORTA, W mueve el dato que se obtiene por el puerto A y lo mueve a W, el
comando iorlw pone en 1 los bits que indica, los bits en 0 son respetados por lo que
superpone los unos en el dato guardado en W, movwf mueve los datos guardados en W al
registro PORTB es decir a la salida y el comando goto TROLOLOL ocasiona un bucle que
repite el cdigo. La figura 1.8 muestra la simulacin del cdigo.

Ingeniera Electrnica
~10~

Diseo Digital en VHDL 01/09/2015. Mxico, Instituto Tecnolgico Superior del Sur de Guanajuato.

Figura 1.8. Simulacin del cdigo

Por el puerto A se insert el dato 01010 con la accin del comando iorlw pone en 1 los datos
que se le indicaron, es decir los bits pares por lo que en la salida se obtiene 1011111.

Ingeniera Electrnica
~11~

También podría gustarte