Informe de Practica5

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 21

UNIVERSIDAD ESTATAL

PENÍNSULA
DE SANTA ELENA

FACULTAD DE SISTEMAS Y
TELECOMUNICACIONES
CARRERA DE ELECTRONICA Y
TELECOMUNICACIONES

MATERIA:
Microcontroladores

TEMA:
Informe de practica #5 Mplab-Proteus
(SALTO)

AUTOR:
Bryan Malavé De la O

DOCENTE
Ing. Sendey Vera G.

SEMESTRE
Electrónica 7/1

FECHA DE ELABORACIÓN
8 de agosto del 2020

SANTA ELENA – ECUADOR


2020 – 2021
Contenido
INTRODUCCION............................................................................................................................3
OBJETIVOS....................................................................................................................................3
Objetivo principal.....................................................................................................................3
Objetivos específicos................................................................................................................3
CODIGO FUENTE (ASEMBLER)-MPLAB.........................................................................................4
CIRCUITO ELECTRONICO-PROTEUS..............................................................................................7
ALGORITMO DE PRACTICA...........................................................................................................7
DEPURACION DEL PROGRAMA (PROTEUS)................................................................................17
CONCLUSIONES..........................................................................................................................21
INTRODUCCION

Los microcontroladores es un avance tecnológico que cambio el mundo como lo conocemos.


Estos dispositivos están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en
general. Se los puede encontrar en cualquier dispositivo electrónico, controlando el
funcionamiento de los dispositivos comunes como ratones y teclados de los computadores, en
los teléfonos y en los hornos microondas y los televisores de nuestro hogar.
Las extensas áreas de aplicación de los microcontroladores, que se pueden considerar
ilimitadas,
exigirán un gigantesco trabajo de diseño y fabricación.
La aplicación de los microcontroladores se sigue desarrollando y se pueden considerar
ilimitadas.

OBJETIVOS

Objetivo principal

- Diseñar un ejemplo de simulación para garantizar un correcto manejo de los


simuladores que utilizaremos en la realización del ejercicio y facilitar la información
necesaria para que los estudiantes logren una mayor comprensión sobre los
microcontroladores conceptos básicos, algoritmos y software que se necesitan saber al
momento de programar este tipo de dispositivos.

Objetivos específicos

- Conocer el entorno del software Mplap.


- Conocer el entorno del software de Proteus.
- Determinar los pasos necesarios para programar un microcontrolador con el software
Mplab y simularlo en conjunto con el software Proteus.
- Formular un ejemplo para lograr editar, ensamblar, depurar y simular el programa.
- Corroborar los resultados de la simulación con la parte real.
CODIGO FUENTE (ASEMBLER)-MPLAB
Lenguaje ensamblador

El lenguaje máquina es difícil de utilizar por el hombre ya que se aleja de su forma natural de
expresarse, por esto se utiliza el lenguaje ensamblador, que es la forma de expresar las
instrucciones de una forma más natural al hombre y que, sin embargo, es muy cercana al
microcontrolador porque cada una de sus instrucciones se corresponde con otra en código
máquina que el microcontrolador es capaz de interpretar.

El lenguaje ensamblador utiliza nemónicos que son grupos de caracteres alfanuméricos que
simbolizan las órdenes o tareas a realizar con cada instrucción. Los nemónicos se
corresponden con las iniciales del nombre de la instrucción en inglés, de forma que
"recuerdan" la operación que realiza la instrucción, lo que facilita su memorización.

Programa ensamblador

El programa ensamblador es un software que se encarga de traducir los nemónicos y símbolos


alfanuméricos del programa escrito en ensamblador por el usuario a código máquina, para que
pueda ser interpretado y ejecutado por el microcontrolador.

El programa escrito en lenguaje ensamblador recibe la denominación de código fuente,


archivo fuente o fichero fuente. Suele tener la extensión *.asm. El archivo fuente debe ser
traducido a código máquina, de lo cual se encarga el programa ensamblador. La mayoría de los
ensambladores proporcionan a su salida un fichero que suele tener la extensión *.hex. Este
fichero puede ser grabado en la memoria de propia mediante la utilización de un grabador de
microcontroladores.

El ensamblador mas utilizado para los PIC es el MPASM, que trabaja dentro de un entorno
software denominado MPLAB.

Código fuente

El código fuente está compuesto por una sucesión de líneas de programa. Todos los ficheros
fuente poseen una estructura similar independiente del procesador utilizado. Cada línea de
programa suele estar compuesta por 4 campos o columnas separados por uno o más espacios
o tabulaciones. Los campos son:

1. Campo de etiquetas.
2. Campo del código de operación.
3. Campo de operandos y datos.
4. Campo de comentarios.

CODIGO DE LA PRACTICA

;****************************** Saltos_05.asm *********************************


;
; ===================================================================
; Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
; E. Palacios, F. Remiro y L. López. www.pic16f84a.com
; Editorial Ra-Ma. www.ra-ma.es
; ===================================================================
;
; Compara el dato del puerto de entrada PORTA con un "NUMERO". Tres posibilidades:
; - Si (PORTA) = NUMERO se encienden todos los LEDs de salida.
; - Si (PORTA) > NUMERO se activan los LEDs pares de salida.
; - Si (PORTA) < NUMERO se encienden los LEDs del nibble alto y se apagan los del bajo.
;
; Hay que destacar que al no haber instrucciones de comparación, estas se realizan
; mediante restas.

; *****************************ZONA DE DATOS*******************************

LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

NUMERO EQU d'13' ; Por ejemplo, este número a comparar.

; ****************************ZONA DE CÓDIGOS******************************

ORG 0 ; El programa comienza en la dirección 0.


Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salida.
movlw b'00011111' ; Las 5 líneas del Puerto A se configuran como entrada.
movwf TRISA
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
movlw NUMERO ; Carga el número a comparar.
subwf PORTA,W ; (PORTA) - NUMERO --> (W).
movlw b'11110000' ; Supone (PORTA) es menor.
btfss STATUS,C ; ¿C=1?, ¿(W) positivo?, ¿(PORTA) >= NUMERO?.
goto ActivaSalida ; No. C=0, por tanto (PORTA) < NUMERO.
movlw b'11111111' ; Supone que son iguales.
btfsc STATUS,Z ; ¿Z=0?, ¿son distintos?.
goto ActivaSalida ; No. Son iguales ya que Z = 1.
movlw b'01010101' ; Sí, por tanto (PORTA) > NUMERO.
ActivaSalida
movwf PORTB ; Resultado se visualiza por el puerto de salida.
goto Principal ; Crea un bucle cerrado e infinito.

END ; Fin del programa.

; ===================================================================
; Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
; E. Palacios, F. Remiro y L. López. www.pic16f84a.com
; Editorial Ra-Ma. www.ra-ma.es
; ===================================================================
INTRUCCIONES UTILIZADAS EN EL PROGRAMA

- List P=16F84A: Indica el tipo de procesador utilizado.


- Include <P16F84A.INC>: Indica el fichero donde se localizan las etiquetas que nombran
a los diferentes registros y el valor que le corresponde a cada uno, es decir, en el
fichero P16F84A.INC se muestra cómo hay que nombrar a todos los registros propios
del microcontrolador. Este fichero se localiza en el directorio principal del programa
ensamblador.
- __CONFIG: esta directiva indica la configuración elegida para el proceso de grabación
del microcontrolador. En este caso:
1) No hay protección de código (_CP_OFF).
2) No se habilita el Watchdog (_WDT_OFF).
3) Se habilita el reset mediante Power_Up Timer (_PWRTE_ON).
4) Se utiliza el oscilador por cristal de cuarzo (_XT_OSC).

Es importante resalta que “__CONFIG” se inicia con dos subrayados (guion bajo), no
con uno. Este error es muy frecuente en los primeros programas.

- EQU: Numero a comparar.


- org (Set program origin): Esta directiva indica al programa ensamblador la dirección en
memoria de programa a partir de la cual deben ensamblarse las instrucciones del
código fuente. Es decir, la dirección de la memoria de programa donde se van a
almacenar esas instrucciones es la fijada por la <expr> de la directiva.
- bsf f,b (Bit set f): Pone a uno el bit ‘b’ del registro ‘f’.
- clrf f (Clear f): El contenido del registro ‘f’ se borra (se carga con b’00000000’) y el flag
Z se activa a uno. Esta instrucción también se podría considerar como aritmética.
- bcf f,b (Bit Clear f): Pone a cero el bit ‘b’ del registro ‘f’.
- movlw k (Move liberal to W): El registro W se carga con el valor de los 8bits de la
constante ‘k’. Ningún flag del registro de estado es afectado.
- movwf f (Move W to f): Carga el contenido del registro W al registro ‘f’. Ningún flag
del registro de estado es afectado.
- goto k: En casi todos los programas se usa la instrucción de salto incondicional goto k
(Unconditional Branch) que produce un salto a la dirección del programa indicada por
‘k’. la constante literal “k” es la dirección de destino del salto, es decir, la nueva
dirección de memoria de programa a partir de la cual comenzaran a leerse las
instrucciones después de ejecutar la instrucción goto. Así pues, esta instrucción
simplemente carga la constante k en el constante k en el contador de programa (PC).
- btfsc f,b (Bit Test f, Skip if Clear): Esta instrucción puede actuar de dos formas:
1. Si el bit numero ‘b’ del registro ‘f’ es “1” la instrucción que sigue a esta se ejecuta
normalmente.
2. Si el bit numero ‘b’ del registro ‘f’ es “0” la instrucción que sigue a esta se ignora y se
salta.
- Btfss f,b (Bit Test f, skip if Set): esta instrucción actúa de forma contraria a la
instrucción anterior:
1. Si el numero ‘b’ del registro ‘f’ es “0” la instrucción que sigue a esta se ejecuta
normalmente.
2. Si el bit numero ‘b’ del registro ‘f’ es “1” la instrucción que sigue a esta se ignora y se
salta.
- END (End Program Block): Indica el fin del programa. Es la única directiva obligatoria.
Al ensamblar un programa, el programa ensamblador debe saber dónde tiene que
detener el proceso, para eso está la directiva END, la cual debe estar en la última línea
del programa y explícitamente le indica al ensamblador el fin de aquel. Todas las líneas
posteriores a la línea en la que se encuentra esta directiva son ignoradas y no se
ensamblan.

En este código ensambler esta codificado para comparar un numero determinado en el cual si
es menor que en número realizara una acción y presentara en su salida lo codificado para esa
acción mientras que hace lo mismo en el caso de ser igual o mayor.

CIRCUITO ELECTRONICO-PROTEUS

En el software de Proteus observamos la parte física de lo que sería la parte de la


programación en Mplab conectada con sus respectivas entradas.

ALGORITMO DE PRACTICA
1. Abrir el software Mplab.

Al abrir el Mplab solo se trabaja en la pestaña de Unitled Workspace.


2. Escoger el pic1684 en el software Mplab.

Para realizar esa configuración entrar en la opción de configure en la barra de tareas


de programa y escoger la opción select device, buscar el dispositivo a utilizar en la
simulación y seleccionamos ok.

3. Transcribir el código del archivo


Tener mucho cuidado al transcribir la codificación cualquier fallo en la codificación
podría generar un error.

4. Guardar el archivo nombre_del_archivo.asm.

Una vez listo el código procedemos a guardar el archivo con su nombre respectivo y extensión
correcta .asm, en este caso el archivo será guardado como Salto_05.asm.
5. Compilar

Para compilar nuestro programa ir a la opcion de Proyect y seleccionar Quickbuild (no .asm
file), esperamos a que compile y debera salir lo de la imagen a la derecha si aparece un
mensaje con letras color rojo el programa tiene un error debera revisar la codificacion si esta
correcta.

PROTEUS

6. Abrir el software de Proteus


Para crear un archivo en proteus deberá seleccionar la opción de new proyect, asignarle un
nombre y escoger el tipo de simulación por defecto dándole siguiente hasta que salga la
pantalla de trabajo. En este caso nuestro practica en Proteus se llamará “salto”.

7. Seleccionar el pic16f84a en la librería de proteus.

Para colocar un dispositivo a utilizar en la simulación seleccionamos la opción Component


Mode ubicada 2da de las opciones del lado izquierdo de la pantalla, seleccionamos la P en
devices para que nuestra pestaña se abra y buscar nuestro dispositivo.

8. Colocar los dispositivos de la simulación en la ventana de trabajo.

Una vez encontrado los dispositivos por su nombre (PIC16F84A, Logicstate, res) selecciona ok
para colocarlos en el panel de trabajo.

9. Construir en el simulador el esquema correspondiente para el esquema dado del


ejercicio.

Una vez teniendo todos los dispositivos necesarios para realizar la simulación, se realiza la
respectiva conexión.
10. Configuración del PIC16F84A en Proteus.

Una vez concluido el esquema, dar un clip sobre el pic, aparece un cuadro de dialogo, en la
sección de program file. Colocar el archivo nombre_del_archivo.cof generado por MPLAB, y
cambiando la frecuencia de operación del PIC a 4Mhz.

11. Simular el circuito electrónico

Cambiamos las señales de entrada conforme a nuestros gustos y confirmamos los resultados
esperados la comparación del número de las señales de entrada con el numero definido en la
codificación.
- Todos los números menores a 13 siempre darán como resultado de salida: ‘11110000’
como lo vemos a continuación.

Combinación 0000 en decimal el #0

Combinación 0001 en decimal el #1

Combinación 0010 en decimal el #2


Combinación 0011 en decimal el #3

Combinación 0100 en decimal el #4

Combinación 0101 en decimal el #5


Combinación 0110 en decimal el #6

Combinación 0111 en decimal el #7

Combinación 1000 en decimal el #8


Combinación 1001 en decimal el #9

Combinación 1010 en decimal el #10

Combinación 1011 en decimal el #11


Combinación 1100 en decimal el #12

Combinación 1101 en decimal el #13: Al introducir el número 13 en la simulación se activarán


todas las salidas ‘11111111’. Esto da a saber que el numero ingresado es igual al programado.

Combinación 1110 en decimal el #14: al introducir un numero mayor al programado nuestra


salida quedara como ‘01010101’.
Combinación 1111 en decimal el #15

DEPURACION DEL PROGRAMA (PROTEUS)


Al momento de ir depurando la codificación nos damos cuenta cuando cumplen los casos de
comparación y realiza el salto cuando este se active aquí el ejemplo en el caso de comparar un
número menor al programado.
A partir de esta figura observamos el salto que da al momento de ir ejecutando el programa
linea por linea.

Salto realizado una vez se cumple la condición de ser menor.


CONCLUSIONES

- Después de realizar la respectiva codificación, simulación y compilación en los


software utilizados en la práctica #5 definimos los pasos para realizar una depuración
del programa línea por línea y ver los cambios que se van ejecutando, además se
conocen las instrucciones de salto muy importantes al momento de programar un
proyecto mas complejo.

También podría gustarte