0% encontró este documento útil (0 votos)
39 vistas6 páginas

Programación en MPLAB con PIC 16F877A

Este resumen describe un programa en MPLAB para un PIC 16F877A. El programa incluye 5 pulsadores (incrementar, decrementar, setear, borrar y cero) y una salida de visualización. Almacena 4 números ingresados en registros y realiza cálculos para obtener una fecha de cumpleaños. Explica las instrucciones de ensamblador utilizadas y cómo cada pulsador manipula los números almacenados y los muestra.

Cargado por

Kelvin Martínez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
39 vistas6 páginas

Programación en MPLAB con PIC 16F877A

Este resumen describe un programa en MPLAB para un PIC 16F877A. El programa incluye 5 pulsadores (incrementar, decrementar, setear, borrar y cero) y una salida de visualización. Almacena 4 números ingresados en registros y realiza cálculos para obtener una fecha de cumpleaños. Explica las instrucciones de ensamblador utilizadas y cómo cada pulsador manipula los números almacenados y los muestra.

Cargado por

Kelvin Martínez
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Práctica #2: Aplicaciones Assembler

Gabriel Alfonzo C.I: 28.236.992

Kelvin Martínez C.I: 28.029.423

Universidad Nacional Experimental Politécnica de la Fuerza Armada Nacional (UNEFA)

Maracay, Venezuela

gabrielalfonzo09@[Link]

kelvinalejandro2030@[Link]

Profesor: Andrés Duque

Objetivo general: Aprender a manejar el MPLAB, Debe utilizar los 4 números ingresados. Un sexto
sus funciones, el manejo de sus códigos, cada pulsador permitirá mostrar en un Display el
comando, configuraciones y así poder realizar nuestro resultado.
programa.
I. INTRODUCCIÓN
Objetivo específico: Realizar un montaje donde se
Esta práctica se propone aprender a manejar la
compruebe de manera práctica el funcionamiento del
herramienta software y de desarrollo MPLAB,
micro controlador, a su vez adquirir destreza en el uso
realizando un programa en ensamblador para el
de los programas y así realizar una correcta
microcontrolador PIC 16F877A, así como poner en
programación.
práctica el ciclo de diseño completo, que va desde las
Resumen. Elaboración de un programa en especificaciones del problema hasta la puesta en
MPLAB, utilizando un PIC 16F877A. Donde debe marcha y optimización del programa.
contar con 5 pulsadores (1. Incremento; 2.
Decremento; 3. Set; 4. Borrar; 5. Cero). Debe
haber una salida que muestre el número al
momento de hacer la configuración inicial. Se
deben setear por lo menos 4 números diferentes,
procurando que ninguno de los números se repita,
y que sea capaz realizar las operaciones
matemáticas que sean necesarias para poder
obtener como resultado una fecha de cumpleaños.
II. DESARROLLO DE CONTENIDOS MOVF, se utiliza para mover una copia del registro F
al acumulador W
En primer lugar el PIC usado es el 16F877A como
se muestra en la figura 1.0 MOVWF, para mover una copia del acumulador W a
un registro F

BSF, para poner en uno un bit de un registro F

BCF, para poner en cero un bit de un registro F

CLRF, se usa para borrar el contenido de un registro

GOTO, salta a una etiqueta

CALL, salta a una subrutina

RETURN, regresa de una subrutina

TRIS F, el contenido del acumulador define las


entradas y salidas del puerto F
Figura 1.0 PIC 16F877A
ADDWF, suma el contenido del acumulador W con el
Este será el encargado de ejecutar las acciones que contenido de un registro F
se le van a indicar en el programa, las cuales son que,
SUBWF, resta el contenido del acumulador W con el
deberá contar con 5 pulsadores los cuales tienen que
contenido de un registro F
cumplir con las siguientes funciones: Incrementar,
decrementar, setear, borrar y colocar en cero. BTFSC, prueba un bit del registro F y salta a la
siguiente instrucción si es cero, y si es uno continua
Para iniciar con la programación primeramente
debemos conocer las instrucciones más comunes INCF, Incrementa el contenido y guarda en registro F
presentes en el código, las cuales son:
ORG, Origen donde comienzan las instrucciones
CBLOCK para crear una lista de variables que se
posicionaran en memoria a partir de la dirección DECFSZ, Decrementa el contenido del registro y

asignada a la primer variable (la dirección después del salta si es cero

comando Cblock). Una vez conocida las instrucciones presentes,

MOVLW, se utiliza para colocar un número en el primero incluimos el fichero del PIC 16F877A, como

acumulador W, se puede escribir en hexadecimal, muestra en la figura 1.0, para definir listado y micro

decimal y binario controlador


Así mismo y como muestra en la figura 1.2,
volvemos al banco cero de memoria con BCF
Figura 1.0. Incluir librería. PIC16F877A STATUS, RP1 y BCF STATUS, RP0, y se colocan
los puertos D y C en cero para que comience en ese
Colocamos la directiva CBLOCK para crear la
numero
lista de variables que se posicionaran en memoria
Vamos a la etiqueta puertos como se observa en la
Estas variables son: NUM, NUEVE, PROBE,
figura 1.4, donde se observan los 5 botones a usar :
REGISTRO1, REGISTRO2, REGISTRO3,
INCREMENT, DECREMENT, SETEAR, BORRAR
REGISTRO4, SETE, PROBE2, BO, BO1
y CERO.

Así tambien el procedimiento correspondiente para


realizar la suma de los 4 registros y que sea mostrado
por el puerto C

Figura 1.1. Lista de variables

Como muestra en la figura 1.2 Abrimos el banco 1


de memoria con las directivas BSF STATUS, RP0 y
BCF STATUS, RP1 para definir las entradas y
salidas.

Se define el puerto B como entrada y los puertos D


y C como salidas. Así tambien se habilitan entradas y
salidas digitales Figura 1.4. Botones y suma de los numeros

Botón de Incremento: cómo se muestra en la


figura 1.5, primero se analiza el bit 0 del puerto B, si
se coloca en alto continua a la etiqueta ANALISIS
donde comprueba que el numero no pase de nueve al
incrementar con la ayuda de un número de prueba,
por lo tanto si el número de prueba es menor o igual a
9 va a incrementar el registro NUM y si es mayor a
nueve salta a la etiqueta MAYOR como muestra en la
Figura 1.2. Entradas y salidas figura 1.6 por lo que se reiniciara y comenzara de
nuevo desde cero. Y si el bit 0 del puerto B esta en muestra en el puerto D y si es cero salta a la etiqueta
cero se mantiene en la etiqueta PUERTOS SALTA y por lo tanto se reinicia desde el número 9

Figura 1.5. Botón Incremento

Figura 1.7. Botón Decremento

Botón de Setear: Primero que todo los números


seleccionados se guardarán en el registro NUM y
estos números se guardan en registros diferentes, esto
se logra incrementando un registro llamado SETE y
comparandolo con 2, por lo que dependiendo del
resultado de la comparación guardará en un registro u
otro. Esto se traduce en que, cada vez que se setee un
numero se incrementa esa variable

Como se observa en la figura 1.8, si el resultado de


la comparacion es menor a cero saltara a la etiqueta
Figura 1.6. Botón Incremento
REG1 donde guardara el número en el registro 1
Botón de Decremento: cómo se muestra en la
Si el resultado es cero continuara a la etiqueta
figura 1.7, primero se analiza el bit 1 del puerto B, si
REG234
se coloca en alto continua a la etiqueta
DECREMENTO donde va a decrementar el registro
NUM, si el registro es mayor a cero continua y
Botón borrar: se realiza el mismo proceso de
comparacion que usa para setear, solo que, se borrará
el registro con CLRF y se decrementa SETE y en el
caso del registro 3 y 4, se decrementa SETE y
PROBE2 para que se pueda volver a introducir el
numero. Como se observa en la figura 2

Figura 1.8. SETEAR

Una vez en la etiqueta REG234 como se muestra


en la figura 1.9, se analiza la comparacion, si el
numero es cero continua a la etiqueta REG2 donde Figura 2. Borrar registro 1
guardara en el registro 2, si el numero es mayor a cero
Botón cero: Simplemente se borran todos los
salta a la etiqueta REG34 donde se reliza otra
registros con la instrucción CLRF . Como se observa
comparacion incrementando el registro PROBE2 y
en la figura 2
comparando con 1

Si el resultado es cero continua a la etiqueta REG3


donde guardara en el registro 3 y si el resultado es
mayor a cero va a etiqueta REG4 donde guardara en
el registro 4

Figura 2. Botón cero

Figura 1.9. SETEAR


ANÁLISIS DE LOS RESULTADOS

Durante la práctica, se elaboró un programa en


MPLAB con un microprocesador PIC 16F877A.
Donde el programa cuenta con 5 pulsadores (1.
Incremento; 2. Decremento; 3. Set; 4. Borrar; 5.
Cero). El programa tiene una salida que muestra los
números de la configuración inicial, también permite
setear al menos 4 números diferentes, tomando en
cuenta que ninguno de los 4 números se repita y es
capaz realizar operaciones matemáticas necesarias
para obtener como resultado una fecha de
cumpleaños.

III. CONCLUSIÓN

Los resultados obtenidos del diseño del


circuito del contador fueron los esperados de acuerdo
los objetivos planteados anteriormente. A través de
esta práctica aprendimos un poco sobre el lenguaje
Assembler y sus instrucciones, así como también para
que sirve cada una y que se pueden hacer con ellas, en
este caso se hicieron 5 pulsadores los cuales tienen
que cumplir con las siguientes funciones:
Incrementar, decrementar, setear, borrar y colocar en
cero. Así mismo, se setean 4 números diferentes y se
realiza la suma de los 4. Por otra parte, se pudo
comprobar el óptimo funcionamiento del programa
realizado en el PIC 16F877A.

También podría gustarte