Sie sind auf Seite 1von 8

Practica 1

Complemento a 2

Edgar Reyes
Practica 1
Practica 1
Objetivo
Se realizará la compilación, simulación e implementación de un proyecto enfocado a la configuración
y manejo de puertos digitales de entrada-salida.
Materiales: Fuente de 5 volts , Protoboard , PIC16f887,8 resistencias de 470Ω,8 LEDs o una barra
de LEDs ,Dipswitch de 8 interruptores , Cable calibre 22 o 24 colores rojo, azul, naranja y amarillo
Introducción
Hasta antes de la aparición de los microprocesadores (1971), la mayor parte de las aplicaciones
digitales en electrónica se basaban en la llamada lógica cableada, es decir, si existía un problema este
era analizado y se sintetizaba una función en base a la lógica de boole que era la solución al problema
planteado.
Con la aparición de los microprocesadores, se varió el esquema de diseño de tal forma que un
problema era descompuesto en una serie de tareas mas simples, el microprocesador ejecutaba una serie
de pasos o instrucciones para llevar a efecto cada una de las tareas, en ocasiones no era necesario
volver a armar un circuito para solucionar otro problema sino que se cambiaba las instrucciones
(programa) para obtener otra aplicación
Un micro controlador es una máquina electrónica basada en un ordenador; con base en entradas
realiza operaciones lógicas y aritméticas que puede almacenar (datos), para generar salidas; estas
operaciones se implementan mediante instrucciones en orden secuencialmente lógico (programa).
PARTES BÁSICAS
Un MCU consta de tres partes básicas (Figura 1.1):
1. ALU: Unidad Lógica Aritmética.
2. I/O: Dispositivos de entrada (input) y salida (output).
3. Memoria: Almacenamiento de datos y programa
I/O (INPUT / OUTPUT )
Éstas son las unidades básicas que tiene un MCU para comunicarse con el mundo exterior; por ellas
entran y salen los datos. Como unidades básicas, están los puertos digitales que son
agrupaciones de pines bajo un mismo nombre (PORTA, PORTB); la denominación de los pines
contiene el nombre del puerto correspondiente (RA1 RA2 o RB5, RB7).

Memoria
La memoria es aquella unidad que maneja los datos y puede ser: de datos (RAM: Random Access
Memory) y de programa (ROM: Read Only Memory). Los datos RAM permanece mientras haya
suministro de energía, y los datos en ROM permanece aunque no haya suministro de energía.
Estos bloques de memoria son accedidos por diferentes periféricos mediante buses de datos y
direcciones, y sus correspondientes latch y buffer para el adecuado transporte de los datos. La
distribución de estas áreas de memoria es conocida como mapa de memoria mapa de memoria mapa
de memoria.
Problema de diseño
Se debía diseñar un programa en lenguaje ensamblador para un micro controlador PIC16F887 que
lea 8 bits a través del puerto B y entregue su complemento a dos a través del puerto D.
Posteriormente, prueba tu programa en el simulador MPLAB SIM e implementa tu circuito
físicamente para su validación.
Desarrollo
Lo primero que debemos realizar es nuestro diagrama de flujo para la solución del problema

Inicio

Configurar puertos

Leer el dato de entrada

Realizar el complemento a 2

Mostrar el dato a la salida

Fin

Una vez realizado el diagrama de flujo procedimos a la captura del mismo

#include <P16F887.INC>
__CONFIG _CONFIG1, _INTOSCIO & _MCLRE_OFF & _WDT_OFF & _LVP_OFF &
_CPD_OFF & _CP_OFF & _BOR_OFF &_PWRTE_ON & _FCMEN_OFF & _IESO_OFF ;
ORG 00h
Init ; etiqueta de inico
BCF STATUS,RP1 ; Cambio al banco 1
BSF STATUS,RP0

MOVLW b'11111111' ;Configurar puerto B como entrada


MOVWF TRISB

MOVLW B'00000000' ;Configurar el puerto D como salida


MOVWF TRISD

BSF STATUS, RP0


BSF STATUS, RP1

CLRF ANSELH
BCF STATUS,RP0
BCF STATUS,RP1

CLRF PORTD

MAIN
COMF PORTB,W
ADDLW b'00000001'
MOVWF PORTD ;ANEXO SALIDA
GOTO MAIN
END

Una vez compilado el programa procedimos a realizar algunas simulaciones en el propio entorno
activamos el simulador MPLAB SIM en el menú <Debugger → Select tool →MPLAB SIM>.
Abrimos la ventana watch desde el menú <View →watch> y agregamos los registros en la lista de
símbolos: a. STATUS b. PORTB c. TRISB d. PORTDe. TRISD f. WREG g. ANSELH
Creamos una nueva ventana del generador de estímulos asíncronos desde el menú <Debugger
→Stimuls →New Work Book> y agregamoslos pines desde RB0 hasta RB1 con la acción
<Set High> y nuevamente los mismos pines con la acción <Set Low>.
Realizamos la simulación paso a paso del programa presionando F8 mientras visualizamos el
código fuente y la ventana watch. Analizamos el contenido de cada símbolo de la ventana watch
Como etapa final realizamos la simulación de entradas digitales a través del puerto B
presionando en el botón correspondiente en el generador de estímulos asíncronos mientras
seguíamos simulando paso a paso con F8.
Una vez observado el comportamiento correcto se construyó el circuito que se muestra

También podemos realizar la simulación proteus para corroborar su funcionamiento


Ejemplo de funcionamiento
Sea : 11100110 Su complemento a 2 es : 00011010

Sea: 11000100 Su complemento a 2 es: 00111100

Así comprobamos el correcto funcionamiento


Conclusión:
Esta práctica pudimos hacer uso del pic16877 de manera muy básica haciendo uso del manejo de los
puertos y de la aritmética lógica.
Es muy interesante saber cómo es que gracias a funciones predeterminadas establecidas por el
fabricante llamadas instrucciones podemos realizar funciones muy específicas Este proyecto ha sido
de mucha importancia para ampliar nuestros conocimientos sobre Microcontroladores
principalmente el uso de los puertos y las instrucciones

Das könnte Ihnen auch gefallen