Informe de Practica2
Informe de Practica2
PENÍNSULA
DE SANTA ELENA
FACULTAD DE SISTEMAS Y
TELECOMUNICACIONES
CARRERA DE ELECTRONICA Y
TELECOMUNICACIONES
MATERIA:
Microcontroladores
TEMA:
Informe de practica #2 Mplab-Proteus
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
b. OBJETIVOS
I. Objetivo principal.
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 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
; ZONA DE CÓDIGOS
****************************************************************************
ORG 0 ; El programa comienza en la dirección 0 de la
Inicio ; memoria de programa.
bsf STATUS,RP0 ; Pone a 1 el bit 5 del STATUS.Acceso al Banco1.
clrf TRISB ; Las líneas del Puerto B configuradas como salida.
bcf STATUS,RP0 ; Pone a 0 el bit 5 del STATUS. Acceso al Banco 0.
movlw CONSTANTE ; Carga el registro de trabajo W con la constante.
Principal
movwf PORTB ; El contenido de W se deposita en el puerto de salida.
goto Principal ; Crea un bucle cerrado e infinito
; ===================================================================
; 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
; ===================================================================
Es importante resalta que “__CONFIG” se inicia con dos subrayados (guion bajo), no
con uno. Este error es muy frecuente en los primeros programas.
- 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).
- 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 lo único que sucede es que siempre va a mantener seteado la salida
‘01010101’, por mas que se cambien las entradas, esto pasa en el comando movlw el cual
siempre toma el valor de la constante.
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 Ensam_01.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
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á ensam_01.
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.
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
Cambiamos las señales de entrada conforme a nuestros gustos y confirmamos los resultados
esperados en este caso las entradas no nos generaran ningún cambio en las salidas del PIC ya
que siempre saldrá el valor ‘01010101’.
CASO 1: combinación 0 0 0
CASO 1: combinación 0 0 1
CASO 1: combinación 0 1 0
CASO 1: combinación 0 1 1
CASO 1: combinación 1 0 0
CASO 1: combinación 1 0 1
CASO 1: combinación 1 1 0
CASO 1: combinación 1 1 1
En todos los casos de combinaciones, tenemos como resultado el valor de ‘01010101’ tal
como definimos en la codificación del software Mplab.
f. CONCLUSIONES