CICLO 02 2013 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACIÓN DE ELECTRÓNICA GUÍA DE LABORATORIO Nº 03 ASIGNATURA: Control Digital NOMBRE DE LA PRACTICA: Configuración de los Puertos I/O LUGAR DE EJECUCIÓN: Laboratorio de Microprocesadores. Salón 3.21 DOCENTE(S): Samuel Murcia / Eduardo Henríquez I. OBJETIVOS Configurar los puertos paralelos de entrada / salida del microcontrolador PIC16F88 bajo lenguaje ensamblador. Comprobar el funcionamiento de los programas realizados mediante la programación del microcontrolador. II. EQUIPO Y MATERIAL Ordenador con software MPLAB IDE v8.9 Programador PICkit 2 Microcontrolador PIC16F88 Breadboard Herramientas varias III. PROCEDIMIENTO PARTE I. CREACIÓN DEL PROYECTO 1. Ejecutar MPLAB IDE v8.x. 2. Ejecutar el creador de proyectos desde Project>>Project Wizard. Posteriormente aparecerá una ventana como la que se muestra en la figura. Dar clic en <Siguiente>. Figura 1.
3. Luego seleccionar el microcontrolador PIC16F88. Este será el dispositivo a utilizar durante el desarrollo de la práctica de laboratorio. Figura 2. 4. Ahora se procede a seleccionar la herramienta que llevara a cabo la compilación de los programas realizados en lenguaje ensamblador. La herramienta por defecto es <MPASM Assembler>. Si en la ventana de configuración no aparece seleccionada la herramienta <MPASM Assembler>, buscar su ubicación y seleccionarla. Figura 3. 5. En seguida seleccionaremos la ubicación de la carpeta donde guardaremos el proyecto en creación. En la unidad C del ordenador, crear una carpeta nueva con el nombre <Control>, en dicha carpeta guardaremos el proyecto. Se sugiere que el nombre del proyecto sea <PracticaF88>, no obstante se puede asignar cualquier otro nombre.
Figura 4. 6. En la ventana posterior se seleccionan los archivos *.asm existentes. Dado que aún no se tiene un archivo en ensamblador del programa a realizar, dar clic en <Siguiente>. En la ventana siguiente se visualizan algunos aspectos generales del proyecto en desarrollo. Seleccionar <Finalizar> para salir del asistente para la creación de proyectos. Figura 5. 7. Una vez preparado el proyecto, presione Ctrl+N para disponer de un archivo nuevo. Este archivo será guardado con el nombre <codigo.asm> en la misma carpeta donde se guardo el proyecto (carpeta <Control>). 8. En los pasos siguientes se muestra el código en lenguaje ensamblador para el primer programa.
PARTE II. CÓDIGO DEL PRIMER PROGRAMA 1. El encabezado del primer programa se muestra a continuación. En dicho encabezado esta la palabra de configuración, en la cual se definen los siguientes parámetros. _INTRC_IO _WDT_OFF _PWRTE_ON _MCLRE_OFF _BODEN_ON _LVP_OFF _DEBUG_OFF = Oscilador Interno = Temporizador Watchdog apagado = Temporizador Power-Up encendido = RA5 funciona como entrada. Función MCLR deshabilitada. = Brown-Out encendido. = Programación a bajo voltaje apagado. = Depuración en circuito apagado. LIST INCLUDE P=16F88 <P16F88.INC> CONFIG _CONFIG1, _INTRC_IO&_WDT_OFF&_PWRTE_ON&_MCLRE_OFF&_BODEN_ON&_LVP_OFF&_DEBUG_OFF ORG GOTO ORG 0x00 INICIO 0x04 2. Luego se configuran los registros iniciales y los registros correspondientes para la dirección de datos de los puertos A y B. Inicialmente se accede al banco 1 para la configuración de los registros ANSEL, OSCCON, TRISA y TRISB. El registro ANSEL permite configurar los canales ANX (canales analógicos del microcontrolador), limpiando este registro todos los canales se configuran como digitales I/O. El registro OSCCON define la frecuencia del reloj interno con la cual trabajara el microcontrolador, cargando el valor 0x7E en dicho registro se define una frecuencia de 8MHz. Posteriormente, el puerto A (PORTA) se configura como entrada, y el puerto B (PORTB) como salida, mediante los registros TRISA y TRISB respectivamente. INICIO BCF STATUS,RP1 BSF STATUS,RP0 CLRF MOVLW MOVWF MOVLW MOVWF CLRF ANSEL 0x7E OSCCON 0xFF TRISA TRISB 3. A continuación se regresa al banco 0 para acceder a los registros INTCON, PORTA y PORTB. El registro INTCON permite configurar las interrupciones del microcontrolador. Mediante el bit GIE de dicho registro se habilitan o deshabilitan todas las interrupciones, para nuestro caso, todas están deshabilitadas. BCF BCF STATUS,RP0 INTCON,GIE
4. En la última parte del código del programa se define la rutina que permite evaluar el valor del puerto A (PORTA) y transferir dicho valor al puerto B (PORTB). RUTINA MOVF PORTA,W MOVWF PORTB GOTO RUTINA END 5. Ubique la ventana de la figura 6 en el entorno del MPLAB, y sobre la carpeta <Source Files> de un clic derecho para que aparezca un menú contextual, del cual seleccionara la opción <Add Files>. Ubique el archivo <codigo.asm> agréguelo al proyecto creado. Figura 6. 6. Una vez agregado el archivo de extensión <asm> lleve a cabo su compilación desde Project>>Build All o mediante el atajo de teclado Ctrl+F10. Compruebe el funcionamiento del programa mediante MPLAB SIM y evalué el comportamiento de los registros correspondientes a medida ejecuta la simulación del programa. PARTE III. PROGRAMACIÓN DEL MICROCONTROLADOR 1. Conecte el programador PICkit 2 al ordenador y ejecute el software <PICkit v2.x>, puede encontrarlo en la carpeta <Microchip> del menú inicio de Windows. Aparecerá una ventana como la de la figura 7. 2. Conecte el programador al microcontrolador. Para ello auxíliese del esquema de la figura 8 y de la Tabla1. Programador PICkit 2 Microcontrolador PIC16F88 (pin de conexión) Vpp/MCLR 4 VDD Target 14 VSS (ground) 5 ICSPDAT/PGD 13 ICSPCLK/PGC 12 Tabla 1.
Figura 7. Figura 8. 3. En la barra de herramientas del software <PICkit 2> seleccione Tools>>Check Communication para reconocer el microcontrolador. Inmediatamente deberá aparecer en la ventana principal del software el número del microcontrolador conectado. 4. Seleccione <Erase> para borrar el contenido del microcontrolador. Para descargar el archivo de extensión <hex> al microcontrolador, se selecciona en la barra de herramientas File>>Import Hex y se ubica el archivo <PracticaF88.hex>, el cual se encuentra en la misma carpeta donde fue guardado el proyecto. 5. Posteriormente seleccione <Write> para programar el microcontrolador. Note que aparece el mensaje <Programming Succesful> lo que indica que la programación se ha realizado con éxito. PARTE IV. PRUEBA Y FUNCIONAMIENTO 1. Arme en breadboard el circuito de la figura 9 y compruebe el funcionamiento del programa diseñado. El microcontrolador deberá mostrar en el puerto B (desde RB0 a RB7) el dato presente en el puerto A (desde RA0 hasta RA7). Si el funcionamiento no fuera satisfactorio, revise los procedimientos realizados y luego consulte a su instructor.
Figura 9. 2. Escriba la siguiente modificación en el código del programa y realice el procedimiento correspondiente para comprobar su funcionamiento en el circuito de prueba. Analice su funcionamiento y explique cual es la función de la instrucción SWAPF. RUTINA SWAPF PORTA,W MOVWF PORTB GOTO RUTINA END IV. PROGRAMAS COMPLEMENTARIOS Escriba un programa que permita al microcontrolador realizar la función de un decodificador de 3 a 8 líneas, cada una de las cuales se activa en estado bajo y cuyas entradas tienen prioridad. Entradas Salidas A B C D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 V. BIBLIOGRAFÍA [1] ANGULO USATEGUI, JOSÉ. Microcontroladores PIC: Diseño práctico de Aplicaciones. McGraw Hill, España. 2da Edición. (4 ejemplares). [2] Hoja Técnica del microcontrolador PIC16F877A. Microchip.