INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

Ingeniería en Comunicaciones y Electrónica
LABORATORIO DE MICROPROCESADORES PRÁCTICA 3: “INSTRUCCIONES BÁSICAS”

GRUPO 6CM1

ALUMNO Hernández López Audomaro
Profesor: M. en C. Armando Martínez Ríos

Fecha de realización de la práctica:

lunes 5 de marzo de MMXII

.  OR  EJERCICIO  Modifique el programa del ejercicio 2 para que se muestre en el puerto D el resultado de la operación lógica AND y después el resultado del producto de los dos puertos. El resultado se debe mostrar en el puerto D.  SUSTRACCIÓN Escribir un programa en lenguaje ensamblador para el PIC18F4550 que realice la operación lógica OR con dos datos escritos en el puerto A y B respectivamente.OBJETIVO Comprobar la operación y el funcionamiento de los bancos de memoria MATERIAL Y DISPOSITIVOS USADOS       Protoboard PIC 18F4550 Tablilla de desarrollo LED’s y resistores Cable USB y conector tipo “B” Software MPLab y HID Bootloader DESARROLLO DE LA PRÁCTICA La práctica se constituye de dos partes y un ejercicio agregado:  Escribir un programa usando lenguaje ensamblador para el PIC18F4550 que lea un dato de 4 los bits menos significativos por el puerto B. le reste 10 y muestre el resultado en el puerto A.

OPERACIÓN ARITMÉTICA DE SUSTRACCIÓN El enunciado propone la enmienda de restarle el valor de “10” decimal. Diagrama eléctrico donde se muestran los elementos usados y los puertos correspondientes del PIC. que a los bits ingresados mediante el dip-switch. con los estímulos y las variables en pantalla. se construyó el siguiente código: ORG 0X1000 .10 . Se limpia el registro del puerto “A” Resta: MOVLW . es decir. Main: MOVLF 0X0F. Se habilitan los puertos del ADC como entradas digitales MOVWF ADCON1 MOVLW b'00001111' . Dirección a partir de la cual se graba la información en el micro. Implementa “10” decimal a “W” SUBWF PORTB. Resta “10” decimal al valor en binario del puerto B MOVWF PORTA . para evitar sobrescribir información propia del dispositivo. se hicieron las simulaciones correspondientes en el MPLAB v8.83. se le reste el correspondiente binario del “10” decimal.0 . A partir de lo propuesto. . se complementa la explicación del proceso con diversos diagramas. Se habilita de RB0 a RB3 como entradas MOVWF TRISB CLRF TRISA. A continuación. y con las explicaciones del docente en el aula de clases. Transfiere lo existente del puerto “A” a “W” GOTO Resta Posteriormente a la compilación. grabando después en el PIC 18F4550 con el HID BootLoader. a una entrada binaria de 4 bits.

lo anterior. se tuvo que tomar en cuenta lo siguiente: o Habría 8 pines de entrada (2 puertos). para una comparación de 4 bits simultáneos. ya que se requiere una emulación de la compuerta OR para 4 bits. La enmienda consistiría en comparar un bit del puerto A. 0 Diagrama a bloques de los elementos usados Dip-Switch PIC – Puertos B PIC – Puertos A Latches de salida Resultado de la sustracción (LED’s) OPERACIÓN LÓGICA “OR” Para esta propuesta práctica.implementa la variable VAR en la dirección 0hex . se declaran 2 variables auxiliares en el código para poder trabajar con la información de los registros sin pérdidas.Diagrama de flujo de la operación de sustracción ORG 0X1000 movwf ADCON1 movwf TRISB Resta Movlw .10 Mowf PORTA SUBWF PORTB. contra otro del puerto B. o Para emular tal compuerta. VAR equ 0x00 . Implementando lo anterior. se construyó el siguiente código. aplicando posteriormente la operación lógica OR.

para comprobar el correcto funcionamiento del código en cuestión.Transfiere el valor 00000000bin a W movwf TRISD . implementa la variable VARB en la dirección 10 hex ORG 0x0000 goto Main 0x1000 Puertos .para configurar 4 líneas de “A” como entradas movlw 0x0F .guarda lo existente de W en VARB iorwf VAR.Transferencia de W a los puertos D (de salida) goto Inicio Puertos .15 movwf TRISA movlw 0x0F movwf TRISB movlw b'00000000 movwf TRISD .guarda el contenido de W en la variable VAR movf PORTA.mover la entrada A a w movwf VARB .0 movwf VAR iorwf VAR. Diagrama de flujo del proceso seguido por el código de OR-4 bits ORG 0X1000 VAR equ 0x00 VARB equ 10H CALL Puertos movf PORTB. Ahora se presentan diagramas para complementar la explicación del algoritmo y de la implementación física del circuito. se efectuaron las simulaciones adecuadas con los estímulos en el PC.Se invoca a la subrutina para configurar puertos I/0 clrf PORTA . 4 líneas de “B” como entradas movlw b'00000000' .líneas del puerto D como salidas return END A posteriori.restablece el puerto B movf PORTB.VARB org Main: call equ 10H . Función o subrutina que configura los puertos I/O movlw 0x0F .0 .0 movf PORTA.0 .restablece puerto A clrf PORTB .Configura las entradas con el ADC como digitales movwf ADCON1 movlw .Ejecuta la operación lógica entre W y VAR y el resultado lo manda de nuevo a W movwf PORTD .0 .0 movwf VARB movwf PORTD movlw 0x0F movwf ADCON1 movlw .transfiere la entrada B a W movwf VAR .15 .Transferencia de W a f y define todas las .Transfiere el dato 15 decimal a W movwf TRISA .Mueve los datos de w a f y configura movwf TRISB .

Diagrama eléctrico Diagrama a bloques de los elementos del circuito Dip-Switch 4 bits Puerto de entrada A Operación lógica OR (Procesamiento) Puerto de salida D Dip-Switch 4 bits Puerto de entrada B LED’s .

Transfiere el dato del puerto B a w movwf VAR .0 . Identificador clrf PORTA .Transfiere de W a los puertos de salida “D” goto Ini Puertos movlw 0x0F digitales movwf movlw movwf movlw movwf movlw movwf return END ADCON1 .0 .15 .Implementación de variables y sus correspondientes localidades 10H .0 movwf VARB .Restablece el puerto A clrf PORTB .Configura mediante el ADC las entradas como PRODUCTO entre los puertos A y B.go to start of main code . Implementación de variables con sus correspondientes 10H .EJERCICIOS Modifique el programa del ejercicio 2 para que se muestre en el puerto D el resultado de la operación lógica AND VAR VARB equ equ ORG 0x00 .Mueve “15” decimal a W TRISA .Restablece el puerto B movf PORTB. localidades 0x0000 org 0x1000 Main: call Puertos . Función para la configuración de puertos I/O Ini.Implementa la operación lógica AND y guarda en W movwf PORTD . mostrando el resultado en puerto D VAR VARB equ 0x00 org Main: equ ORG 0x0000 goto Main 0x1000 . Configura todas las líneas de D como salidas TRISD .Almacena el contenido de W en VAR movf PORTA.Mueve 0x0Fhex a W TRISB .Almacena el contenido de W en VARB andwf VAR.… para configurar 4 líneas de B como entradas b'00000000' .… para configurar 4 pines de “A” como entradas” 0x0F .

Restablece el puerto A . . La primera hace referencia a la anomalía presentada al tratar de comunicar la tarjeta de desarrollo con la PC (HID Bootloader). pero que sin embargo queda el propósito personal de lograr un manejo fluido del entorno para cumplir con las enmiendas durante el curso de manera más que satisfactoria. En otro tenor. La segunda mención concierne a los problemas presentados sobre la marcha en la construcción del código. entre ellas: tener mucho precaución en el manejo de los PIC’s.… para configurar 4 líneas de B como entradas b'00000000' .0 movwf VAR movf PORTA.Configura mediante el ADC las entradas como digitales ADCON1 . Para finalizar.0 multiplicación y guarda en W movwf PORTD goto Ini Puertos movlw movwf movlw movwf movlw movwf movlw movwf return END . concerniente al somero y elemental manejo del IDE MPLab a pesar de no ser la más reciente versión. la práctica también devela una introducción y una pequeña proporción de todo el poderío de un microcontrolador (microprocesador) para ejecutar diversas tareas encomendadas al cumplimiento de cierto objetivo. apuntalando así todo lo visto durante cursos anteriores en lo relativo a los procesos digitales. Identificador clrf PORTA clrf PORTB movf PORTB.15 . Configura todas las líneas de D como salidas TRISD CONCLUSIONES Y OBSERVACIONES Esta práctica deja diversas lecciones al estudiante.Almacena el contenido de W en VAR . así como la eficiencia que puede llegar a tener.Mueve “15” decimal a W TRISA .Restablece el puerto B . cambiando de tarjeta y de PC en alternadas ocasiones.call Puertos Ini .0 movwf VARB mulwf VAR.Transfiere de W a los puertos de salida “D” de 0x0F . solventados el día de entrega en el Laboratorio gracias a la lluvia de ideas de diversos colegas que presentaron propuestas y soluciones a los obstáculos existentes en la programación del código.… para configurar 4 pines de “A” como entradas” 0x0F .Subrutina para configurar puertos E/S . así como hacer un diagrama de flujo antes de programar en lenguaje ensamblador.Mueve 0x0Fhex a W TRISB .Implementa la operación aritmética . se hace el imprescindible apunte.Transfiere el dato del puerto B a w .Almacena el contenido de W en VARB .

Sign up to vote on this title
UsefulNot useful