Beruflich Dokumente
Kultur Dokumente
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
Realizar el complemento a 2
Fin
#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
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