Sei sulla pagina 1di 10

TECNOLÓGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE TLÁHUAC

PRACTICA #4

Elaborado por

Gutiérrez Cortes Omar


Sierra Hernández Gerardo
Vaca Centeno Giovana Arely
Zárate Ramírez Verónica Lucero

Materia: Sistemas Programables

Profesor:
Muñiz Elizalde José David

Fecha: 04/Mayo/2018
Índice

Programa #1 ........................................................................................................................................ 3
Programa #2 ........................................................................................................................................ 5
Programa #3 ........................................................................................................................................ 7
Programa #1

Realizar la aplicación en LE para el PIC16F84A, la cual ejecute un corrimiento de bits por


el puerto B.
1)

La siguiente aplicación de MPLAB ocupa un espacio de trabajo dentro de un proyecto nuevo.


Para esto debemos tomar en cuenta siempre tener la palabra INCLUDE para agregar el PIC con el
que estaremos trabajando y esa será nuestra librería.
Después limpiamos el registro 06H.
El uso de etiquetas lo utilizamos en los saltos para crear ciclos dentro del programa.
Las etiquetas siempre tendrán un nombre y se inician con la palabra GOTO.
Y el programa siempre terminara con la palabra END.
DECFSZ 0CH disminuye f en 1 y sal so el resultado es 0 y es colocado el f.
Declaramos un GOTO INICIO y volvimos a colocar un ORG ahora en el registro 50H,
posteriormente inicia el GOTO INICIO para que se cree el bucle en las instrucciones y colocamos la
instrucción BSF STATUS el cual coloca a 1 al bit de registro F.
Después borramos el contenido de F del puerto B con CLRF TRISB, después ponemos a F en 0 con
la instrucción BCF STATUS.
Después movemos 80H a W con la instrucción MOVLW y posteriormente movemos lo que hay en
W a F con la instrucción MOVWF PORTB.
Una vez hecho comenzamos a rotar a la izquierda hasta que el bit llegue a él bit numero 7.de no ser
así la etiqueta GOTO corre volverá a recorrer el bit hasta que esté en esa posición.
Una vez que se encuentre en el bit 7 la etiqueta corre 2 recorrerá a la derecha el número hasta que
este se encuentre en el bit 0.
Una vez en el bit 0 regresara la instrucción el GOTO CORRE y este hará un bucle infinito.
Imagen. Archivo ASM agregado al proyecto.

Imagen. Código del programa.


Programa #2

Realizar la aplicación en LE para el PIC16F84A, la cual ejecute un corrimiento de bits por


el puerto B.
2)
Para realizar la aplicación en Lenguaje ensamblador se utilizó la aplicación MPLAB, lo primero que
realizamos fue crear el proyecto y enseguida abrir un espacio de Trabajo y lo agregamos al proyecto,
después configuramos el Pic que utilizaríamos.
Posteriormente comenzamos a programar, lo primero que se coloco fue la Librería que que tiene las
funciones para programar el Pic elegido en este caso es el Pic 16F84A.
Después el ORG que hace mención del origen para que ese programa inicie en ese registro.
Enseguida declaramos un GOTO INI, el cual iniciara más adelante, despues volvimos a colocar un
ORG ahora en el registro 50H , posteriormente inicia el GOTO INI para que se cree el bucle en esas
instrucciones y después colocamos la instrucción BSF el cual coloca a 1 al bit de registro F.
Después borramos el contenido de F del puerto B con la instrucción CLRF TRISB, después ponemos
a F en 0 con la instrucción BCF.
Después movemos 80H a W con la instrucción MOVLW y posteriormente movemos lo que hay en
W a F con la instrucción MOVWF.
Luego debemos de rotar lo que hay en F a la derecha y esto lo hacemos con la ayuda de la instrucción
RRF PORTB , 1 , lo cual el resultado se guarda en F.
Después si el Bit b del registro F es 1 saltarlo y esto se hizo poniendo la instrucción BTFSS y este lo
guardamos en W.
Posteriormente para hacer el ciclo se declara un GOTO ROTA y este inicia o regresa a la parte en
donde rota lo que hay en F, es decir donde se declara la instrucción RRF PORTB, 1.
Después se declara otro GOTO llamado INICIA y este regresa a la parte en donde movemos lo que
hay en F a W.
Y es así como se crean los ciclos y finalizan cuando es correspondiente, para finalizar el programa
escribimos END.
A continuación se muestran las imágenes del código, su ejecución y como es que está almacenado en
el proyecto.

Imagen. Archivo ASM agregado al proyecto.


Imagen. Código de la aplicación

Imagen. Código en ejecución satisfactoria.

Programa #3

Realizar la aplicación en LE para el PIC16F84A, la cual ejecute un corrimiento de bits por


el puerto B.
3)

Para realizar la aplicación en Lenguaje ensamblador se utilizó la aplicación MPLAB, lo primero que
realizamos fue crear el proyecto y enseguida abrir un espacio de Trabajo y lo agregamos al proyecto,
después configuramos el Pic que utilizaríamos.
Colocamos el INCLUDE <P16F84A.INC> para dar inicio al programa, a continuación
Después el ORG 00H que hace mención del origen para que ese programa inicie en ese registro.
Enseguida declaramos un GOTO INICIO, el cual iniciara más adelante, despues volvimos a colocar
un ORG ahora en el registro 50H , posteriormente inicia el GOTO INICIO para que se cree el bucle
en esas instrucciones y después colocamos la instrucción BSF STATUS el cual coloca a 1 al bit de
registro F.
Después borramos el contenido de F del puerto B con la instrucción CLRF TRISB, después ponemos
a F en 0 con la instrucción BCF STATUS.
Después movemos 81H a W con la instrucción MOVLW y posteriormente movemos lo que hay en
W a F con la instrucción MOVWF PORTB.

A continuación mandamos a llamar la subrutina CALL TIME.


A hora movemos 42H a W con la instrucción MOVLW y posteriormente movemos lo que hay en W
a F con la instrucción MOVWF PORTB.
Y volvemos a llamar la subrutina CALL TIME.
A hora movemos 24H a W con la instrucción MOVLW y posteriormente movemos lo que hay en
W a F con la instrucción MOVWF PORTB.
Y volvemos a llamar la subrutina CALL TIME.
A hora movemos 18H a W con la instrucción MOVLW y posteriormente movemos lo que hay en
W a F con la instrucción MOVWF PORTB.
Y volvemos a llamar la subrutina CALL TIME.
A hora movemos 24H a W con la instrucción MOVLW y posteriormente movemos lo que hay en
W a F con la instrucción MOVWF PORTB.
Y volvemos a llamar la subrutina CALL TIME.
A hora movemos 42H a W con la instrucción MOVLW y posteriormente movemos lo que hay en
W a F con la instrucción MOVWF PORTB.
Y volvemos a llamar la subrutina CALL TIME.
A hora movemos 81H a W con la instrucción MOVLW y posteriormente movemos lo que hay en
W a F con la instrucción MOVWF PORTB.
Y terminamos con el GOTO INICIO.

La subrutina TIME
MOVLW mueve la instrucción 57H a W .
MOVWF mueve la instrucción 0CH a f .
MOVWF mueve la instrucción 0DH a f .
MOVWF mueve la instrucción 0EH a f .
DECFSZ 0EHdisminuye f en 1 y sal so el resultado es 0 y es colocado el f.
GOTO DEC1 es el salto que si no se cumple con lo que indica regresa a la etiqueta DEC1 hasta
cumplir lo pedido.
DECFSZ 0DH disminuye f en 1 y sal so el resultado es 0 y es colocado el f.
GOTO DEC2 es el salto que si no se cumple con lo que indica regresa a la etiqueta DEC2 hasta
cumplir lo pedido.
DECFSZ 0CH disminuye f en 1 y sal so el resultado es 0 y es colocado el f.
GOTO DEC3 es el salto que si no se cumple con lo que indica regresa a la etiqueta DEC3 hasta
cumplir lo pedido.
RETURN retorna al inicio y con el END damos fin al programa en ensamblador.
A continuación se muestran las imágenes del código, su ejecución y como es que está almacenado en
el proyecto.

Potrebbero piacerti anche