Académique Documents
Professionnel Documents
Culture Documents
GRUPO 6CM1
OBJETIVO
Comprobar la operacin y el funcionamiento de los bancos de memoria
MATERIAL Y DISPOSITIVOS USADOS Protoboard PIC 18F4550 Tablilla de desarrollo LEDs y resistores Cable USB y conector tipo B Software MPLab y HID Bootloader
DESARROLLO DE LA PRCTICA
La prctica 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. SUSTRACCIN Escribir un programa en lenguaje ensamblador para el PIC18F4550 que realice la operacin lgica OR con dos datos escritos en el puerto A y B respectivamente. El resultado se debe mostrar en el puerto D. OR
EJERCICIO
Posteriormente a la compilacin, se hicieron las simulaciones correspondientes en el MPLAB v8.83, con los estmulos y las variables en pantalla, grabando despus en el PIC 18F4550 con el HID BootLoader. A continuacin, se complementa la explicacin del proceso con diversos diagramas.
Diagrama elctrico donde se muestran los elementos usados y los puertos correspondientes del PIC.
ORG 0X1000
movwf ADCON1
movwf TRISB
Resta
Movlw .10
Mowf PORTA
SUBWF PORTB, 0
Dip-Switch
PIC Puertos B
OPERACIN LGICA OR
Para esta propuesta prctica, se tuvo que tomar en cuenta lo siguiente: o Habra 8 pines de entrada (2 puertos), ya que se requiere una emulacin de la compuerta OR para 4 bits. o Para emular tal compuerta, se declaran 2 variables auxiliares en el cdigo para poder trabajar con la informacin de los registros sin prdidas. La enmienda consistira en comparar un bit del puerto A, contra otro del puerto B, aplicando posteriormente la operacin lgica OR; lo anterior, para una comparacin de 4 bits simultneos. Implementando lo anterior, se construy el siguiente cdigo.
VAR equ 0x00 ;implementa la variable VAR en la direccin 0hex
VARB
equ 10H ; implementa la variable VARB en la direccin 10 hex ORG 0x0000 goto Main 0x1000 Puertos ;Se invoca a la subrutina para configurar puertos I/0
clrf PORTA ;restablece puerto A clrf PORTB ;restablece el puerto B movf PORTB,0 ;transfiere la entrada B a W movwf VAR ;guarda el contenido de W en la variable VAR movf PORTA,0 ;mover la entrada A a w movwf VARB ;guarda lo existente de W en VARB iorwf VAR,0 ;Ejecuta la operacin lgica entre W y VAR y el resultado lo manda de nuevo a W movwf PORTD ;Transferencia de W a los puertos D (de salida) goto Inicio
Puertos ; Funcin o subrutina que configura los puertos I/O movlw 0x0F ;Configura las entradas con el ADC como digitales movwf ADCON1 movlw .15 ;Transfiere el dato 15 decimal a W movwf TRISA ;para configurar 4 lneas de A como entradas movlw 0x0F ;Mueve los datos de w a f y configura movwf TRISB ; 4 lneas de B como entradas movlw b'00000000' ;Transfiere el valor 00000000bin a W movwf TRISD ;Transferencia de W a f y define todas las ;lneas del puerto D como salidas return END
A posteriori, se efectuaron las simulaciones adecuadas con los estmulos en el PC, para comprobar el correcto funcionamiento del cdigo en cuestin. Ahora se presentan diagramas para complementar la explicacin del algoritmo y de la implementacin fsica del circuito. Diagrama de flujo del proceso seguido por el cdigo de OR-4 bits
ORG 0X1000
CALL Puertos
iorwf
VAR,0
movwf
PORTD
Diagrama elctrico
Dip-Switch 4 bits
Puerto de entrada A
Puerto de salida D
Dip-Switch 4 bits
EJERCICIOS Modifique el programa del ejercicio 2 para que se muestre en el puerto D el resultado de la operacin lgica AND
VAR VARB equ equ ORG 0x00 ; Implementacin de variables con sus correspondientes 10H ; localidades 0x0000
Ini; Identificador clrf PORTA ;Restablece el puerto A clrf PORTB ;Restablece el puerto B movf PORTB,0 ;Transfiere el dato del puerto B a w movwf VAR ;Almacena el contenido de W en VAR movf PORTA,0 movwf VARB ;Almacena el contenido de W en VARB andwf VAR,0 ;Implementa la operacin lgica AND y guarda en W movwf PORTD ;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 .15 ;Mueve 15 decimal a W TRISA ; para configurar 4 pines de A como entradas 0x0F ;Mueve 0x0Fhex a W TRISB ; para configurar 4 lneas de B como entradas b'00000000' ; Configura todas las lneas de D como salidas TRISD
VAR VARB
equ
0x00
org Main:
;Implementacin de variables y sus correspondientes localidades 10H ;go to start of main code
call Puertos Ini ; Identificador clrf PORTA clrf PORTB movf PORTB,0 movwf VAR movf PORTA,0 movwf VARB mulwf VAR,0 multiplicacin y guarda en W movwf PORTD goto Ini Puertos movlw movwf movlw movwf movlw movwf movlw movwf return END
;Subrutina para configurar puertos E/S ;Restablece el puerto A ;Restablece el puerto B ;Transfiere el dato del puerto B a w ;Almacena el contenido de W en VAR ;Almacena el contenido de W en VARB ;Implementa la operacin aritmtica ;Transfiere de W a los puertos de salida D
de
0x0F
ADCON1 .15 ;Mueve 15 decimal a W TRISA ; para configurar 4 pines de A como entradas 0x0F ;Mueve 0x0Fhex a W TRISB ; para configurar 4 lneas de B como entradas b'00000000' ; Configura todas las lneas de D como salidas TRISD
CONCLUSIONES Y OBSERVACIONES
Esta prctica deja diversas lecciones al estudiante, entre ellas: tener mucho precaucin en el manejo de los PICs, as como hacer un diagrama de flujo antes de programar en lenguaje ensamblador. La primera hace referencia a la anomala presentada al tratar de comunicar la tarjeta de desarrollo con la PC (HID Bootloader), cambiando de tarjeta y de PC en alternadas ocasiones. La segunda mencin concierne a los problemas presentados sobre la marcha en la construccin del cdigo, solventados el da de entrega en el Laboratorio gracias a la lluvia de ideas de diversos colegas que presentaron propuestas y soluciones a los obstculos existentes en la programacin del cdigo. En otro tenor, la prctica tambin devela una introduccin y una pequea proporcin de todo el podero de un microcontrolador (microprocesador) para ejecutar diversas tareas encomendadas al cumplimiento de cierto objetivo, as como la eficiencia que puede llegar a tener, apuntalando as todo lo visto durante cursos anteriores en lo relativo a los procesos digitales. Para finalizar, se hace el imprescindible apunte, concerniente al somero y elemental manejo del IDE MPLab a pesar de no ser la ms reciente versin, pero que sin embargo queda el propsito personal de lograr un manejo fluido del entorno para cumplir con las enmiendas durante el curso de manera ms que satisfactoria.