Benemrita Universidad Autnoma de Puebla
Facultad de Ciencias de la Computacin
Prctica No. 1
Encender un led a travs de un push botton con el PIC18F4550
01/02/2013
Programa Educativo
Microprocesadores e Interfaces
Docente
M.C. Nicols Quiroz Hernndez
Perodo
Primavera 2013
Integrantes del Equipo
Nayeli Prez Torres Felicitas Martnez Martn Miriam Luna Prez Adrin Alfonso Jurez Hernndez Luis Daniel Oidor Jurez 200725645 200724939 200633306 200826219 200722955
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Prctica No. 1
Laboratorio de Nombre de la Prctica
Microprocesadores e Interfaces Encender un Led a travs de un push botton con el PIC18F4550
Introduccin
Encenderemos un led a travs del microcontrolador PIC18F4550 de la empresa Microchip que est programado en ensamblador, con el propsito de conocer la arquitectura del mismo y realizar todo el desarrollo en MPLAB y la simulacin en PROTEUS. Con esta prctica estaremos aplicando los conocimientos ya expuestos en clase de acuerdo al programa educativo, donde se hace referencia a las caractersticas bsicas de la familia PIC18F, como est constituido este microcontrolador, la organizacin interna que tiene y la estructura, as como el manejo de interrupciones, el conjunto de instrucciones que contiene este microcontrolador, sus mtodos de direccionamiento y la estructura de programacin bsica como lo es ensamblador.
Objetivos Identificar y conocer las caractersticas de los microcontrolador PIC18F4550. Ubicar los pines del PIC18F4550 e identificar sus funciones (Puertos, Oscilador, AD, PWM, Tx, Rx). Identificar los pines VDD, VSS, ~MCLR, PGD y PGC para programar el microcontrolador. Conocer y manejar el software MPLAB para el desarrollo de proyectos, simular y programar un microcontrolador. Realizar un programa en ASM para encender y apagar un LED, conectado a RB0, mediante un push boton pulsador conectado a RB4. Realizar la simulacin del circuito en ISIS PROTEUS, cargando el archivo con la extensin .hex al PIC18F4550. Programar el microcontrolador mediante Pickit2
FCC-BUAP
Pgina 2
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Marco terico
En el siguiente imagen se muestran los puertos disponibles en el PIC18F4550, sus ubicaciones y las posibles funciones de cada pin.
Figura 1. Diagrama de pines del PIC18F4550
En la siguiente tabla estn las instrucciones en ensamblador para programar el microcontrolador.
FCC-BUAP
Pgina 3
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Figura 2. Conjunto de instrucciones del PIC18F4550
FCC-BUAP Pgina 4
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Hemos visto que un microcontrolador es considerado como una computadora, pues posee una ALU (Unidad de Aritmtica y Lgica), registros, buses y unidad de control, es decir tiene una CPU (Unidad Central de Procesamiento). La mayora de los dispositivos de lgica secuencial, entre ellos los CPU, son de naturaleza sncrona. Es decir, estn diseados y operan en funcin de una seal de sincronizacin. Esta seal, conocida como seal de reloj, usualmente toma la forma de una onda cuadrada peridica. Calculando el tiempo mximo en que las seales elctricas pueden moverse en las varias bifurcaciones de los muchos circuitos de un CPU, los diseadores pueden seleccionar un perodo apropiado para la seal de reloj. Para el correcto funcionamiento del microcontrolador debemos definir la frecuencia del oscilador pues determinar los ciclos de instruccin; podemos utilizar un oscilador interno o externo, sin embargo es recomendable utilizar un oscilador de cristal externo para evitar un mal funcionamiento frente a las variaciones de temperatura dentro del microcontrolador. A continuacin mostramos la tabla del registro de configuracin del oscilador.
Figura 3. Registro OSCCON para la configuracin del oscilador.
FCC-BUAP
Pgina 5
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Podemos ver que por default tiene cargado el valor: 0100 X000, pero para esta prctica se utilizar una frecuencia de 4MHz y, y trabajaremos con el oscilador interno, por lo cual tendremos que modificar los bits de configuracin a: 01100010= 62 hex.
Clculos
Dado que se configur el oscilador interno del microcontrolador a 4MHz, se tiene:
Ciclo de reloj:
Ciclo de instruccin:
Para limitar la corriente que circula por el LED se propone una resistencia de 330:
Y para limitar la corriente del pin de Reset y el botn pulsador a 0.5mA, utilizar una resistencia de 10k.
FCC-BUAP
Pgina 6
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
4 Desarrollo A
EQUIPO
MATERIAL - 1 PIC18F4550 - 3 LEDs, - 2 push botton - 1 resistencia de 330 - 2 resistencias de 10k - 1 oscilador de 4 MHz. DIAGRAMA
- Multmetro - Programador para PICs - Protoboard
U1
2 3 4 5 6 7 14 13 33 34 35 36 37 38 39 40 RA0/AN0 RC0/T1OSO/T1CKI RA1/AN1 RC1/T1OSI/CCP2/UOE RA2/AN2/VREF-/CVREF RC2/CCP1/P1A RA3/AN3/VREF+ RC4/D-/VM RA4/T0CKI/C1OUT/RCV RC5/D+/VP RA5/AN4/SS/LVDIN/C2OUT RC6/TX/CK RA6/OSC2/CLKO RC7/RX/DT/SDO OSC1/CLKI RB0/AN12/INT0/FLT0/SDI/SDA RB1/AN10/INT1/SCK/SCL RB2/AN8/INT2/VMO RB3/AN9/CCP2/VPO RB4/AN11/KBI0/CSSPP RB5/KBI1/PGM RB6/KBI2/PGC RB7/KBI3/PGD RD0/SPP0 RD1/SPP1 RD2/SPP2 RD3/SPP3 RD4/SPP4 RD5/SPP5/P1B RD6/SPP6/P1C RD7/SPP7/P1D RE0/AN5/CK1SPP RE1/AN6/CK2SPP RE2/AN7/OESPP RE3/MCLR/VPP 15 16 17 23 24 25 26
19 20 21 22 27 28 29 30 8 9 10 1
R2
10k
D1
LED-RED 18 VUSB PIC18F4550
R3
330
R1
10k
DESARROLLO DE LA PRCTICA Para el desarrollo de esta prctica vamos a crear un nuevo proyecto en MPLAB, y tambin creamos un nuevo archivo, el cual contendr toda la configuracin por software y el programa en ensamblador. Al terminar de codificar, vamos a compilar nuestro proyecto y si todo est correcto vamos a poder simular instruccin por instruccin en el simulador de MPLAB. Tambin al compilar si est bien nuestro programa nos va a generar un archivo con extensin .hex, con el cual vamos a programar el microcontrolador o en su caso se cargara en la simulacin hecha en PROTEUS. Conectamos el microcontrolador con todos los dems componentes para ver los resultados en forma real y podemos apreciar el funcionamiento del proyecto. A continuacin detallaremos como crear un nuevo proyecto en MPLAB y hacer una simulacin en PROTEUS, para que posteriormente se haga referencia de las siguientes prcticas a este punto de la creacin de un proyecto.
FCC-BUAP
Pgina 7
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Procedimiento en MPLAB:
Figura 4.1 Abrimos el programa MPLAB. Vamos a generar un proyecto nuevo, por lo cual vamos a la barra de herramientas y seleccionamos Project Project wizard.
Figura 4.2 Abrir el asistente
FCC-BUAP Pgina 8
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
El asistente para generar el proyecto nos va a dar la bienvenida y le damos en continuar.
Figura 4.3 Bienvenida del asistente Tenemos que seleccionar el PIC con el cual vamos a trabajar, por lo cual procedemos a buscar el PIC18F4550, una vez que ya lo seleccionamos damos click en siguiente.
Figura 4.4 Seleccin del PIC
FCC-BUAP Pgina 9
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Posteriormente seleccionaremos el Active Toolsuite Microchip MPASM Toolsuite, y damos en siguiente.
Figura 4.5 Seleccin del Active Toolsuite A continuacin proporcionaremos en nombre del proyecto y la carpeta de trabajo. Damos click en Browser
Figura 4.5 Browser para la carpeta de trabajo y nombre del proyecto
FCC-BUAP
Pgina 10
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Escogemos la carpeta de trabajo y proporcionamos el nombre de nuestro proyecto y damos click en guardar.
Figura 4.6 Asignar carpeta y nombre del proyecto Le damos siguiente y nos mostrara si queremos agregar a nuestro proyecto un archivo ya existente o podemos seguir sin agregar ningn archivo. Y proseguimos a darle siguiente.
Figura 4.7 Agregar archivos al proyecto
FCC-BUAP Pgina 11
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Y finalizamos el asistente.
Figura 4.8 Finalizar el asistente Ahora agregamos un nuevo archivo al proyecto.
Figura 4.9 Agregar un nuevo archivo al proyecto
FCC-BUAP
Pgina 12
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Le damos nombre con la extensin ASM y le decimos guardar.
Figura 4.10 Nombre al nuevo archivo del proyecto Vamos a ver que tenemos nuestro archivo vaco.
Figura 4.11 Archivo vaco
FCC-BUAP
Pgina 13
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Proseguimos a codificar en nuestro archivo.
Figura 4.12 Codificar Despus de haber terminado de programar, compilamos nuestro archivo.
Figura 4.13 Compilar
FCC-BUAP Pgina 14
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Cuando termina de compilar podremos ver si esta correcto o hay errores de sintaxis, en este caso nos indica que est correcto.
Figura 4.14 Estado de la compilacin Vamos a simular nuestro programa aqu en MPLAB, as que nos vamos a Debugger Select tool MPLAB SIM.
Figura 4.15 Simular en MPLAB
FCC-BUAP Pgina 15
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Con esto se van a desplegar nuevos iconos que nos van a permitir simular nuestro cdigo
Figura 4.16 Nuevos iconos para la simulacin Ahora seleccionamos Debugger Stimulus New workbook. Nos ayuda a introducir datos al microcontrolador
Figura 4.17 New workbook
FCC-BUAP
Pgina 16
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Vamos abrir el stop watch para poner en cero el conteo de instrucciones ejecutadas.
Figura 4.18 Abrir el stop watch Abrimos Settings que nos ayudar para poner la frecuencia del oscilador
Figura 4.19 Seleccionar settings
FCC-BUAP
Pgina 17
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Seleccionamos View Watch. Que esto nos servir nos ayudar a monitorear nuestros registros Por ahora podremos cerrar MPLAB y vamos a simular en PROTEUS si funciona nuestro programa, para realizar la simulacin vamos a realizar lo siguiente:
Procedemos a simular con el botn run.
Figura 4.20 Correr la simulacin
FCC-BUAP
Pgina 18
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Paramos la simulacin con el botn de pausa y podremos ver como se modificaron los campos del stop watch como los ciclos de instruccin.
Figura 4.21 Parar la simulacin Vamos a ver como en la simulacin cambian los ciclos de instruccin ya que son los que realizo durante este proceso.
Figura 4.22 Modificacin de los ciclos de instruccin
FCC-BUAP Pgina 19
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Tambin podemos realizar la simulacin paso a paso, esto se puede lograr por medio de un botn que trae MPLAB.
Figura 4.23 Simular instruccin por instruccin SIMULAR EN PROTEUS Abrimos PROTEUS para poder introducir el circuito y cargar el archivo con extensin .hex
Figura 5.1 Abrir PROTEUS
FCC-BUAP Pgina 20
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
En la opcin de devices podemos seleccionar los diferentes dispositivos y componentes que contenga nuestro circuito para que funcione de manera eficiente.
Figura 5.2 Seleccionar dispositivos Nos aparecer la siguiente pantalla en la cual podemos introducir el nombre de nuestro componente y seleccionarlo
Figura 5.3 Insertar nombre del componente
FCC-BUAP Pgina 21
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Cundo realizamos una bsqueda de nuestros componentes as nos aparecer.
Figura 5.4 Resultados de la bsqueda Le damos ok, y nos aparecer el componente del lado izquierdo para que lo podamos insertar cuando sea necesario.
Figura 5.5 Dispositivo cargado
FCC-BUAP Pgina 22
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Lo seleccionamos y lo insertamos en nuestro diseo.
Figura 5.6 Insertar dispositivo o componente As insertamos todos nuestros componentes hasta tener el circuito completo.
Figura 5.6 Insertar todos los componentes y conectarlos
FCC-BUAP
Pgina 23
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Para que se simule tenemos que insertar nuestro cdigo en el PIC que est en PROTEUS, pero para esto vamos a dar doble click en el PIC y nos aparecer la edicin del componente.
Figura 5.6 Cargar archivo .hex En el campo de PROGRAM FILE tenemos que indicarle donde se encuentra nuestro programa con la extensin .HEX donde este archivo se genera al compilar correctamente y este es el que nos servir para programarlo fsicamente y virtualmente.
Figura 5.7 Seleccionar el archivo .hex
FCC-BUAP Pgina 24
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Le damos ok y ok, y podremos simular nuestro programa.
Figura 5.8 Correr simulacin Y podremos observar como est simulado.
Figura 5.9 Simulacin corriendo
FCC-BUAP
Pgina 25
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Programar el PIC con el Pickit 2
En esta parte presentamos una gua bsica sobre el uso del dispositivo de programacin de Microprocesadores "PICkit 2" , ya que es una herramienta muy utilizada en la electrnica. Esta una gua simple para ayudar a las personas que por primera vez quieren empezar a utilizar esta herramienta . Primero debemos conocer los pines del dispositivo PICKit 2 y los dems componentes de este.
Figura 6.1 Pines del Pickit 2 Lo conectamos a la tarjeta de desarrollo donde deben de coincidir los pines y abrimos nuestro software. Y va a detectar nuestro PIC conectado y nos va aparecer algo similar a esto.
Figura 6.2 Aplicacin del programador
FCC-BUAP Pgina 26
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Una Vez establecida la conexin con nuestro microprocesador PICkit 2 v2.5 posee dos botones de uso simple para traspaso de Datos que son: Auto Import Hex +Write Device (sirve para seleccionar un programa de tu computadora y en el pic). Read Device + Export Hex File ( sirve para leer un programa de un pic y copiarlo a tu computadora.
Figura 6.3 Cargar archivo
Prctica Real
A continuacin mostramos el circuito conectado ya de una forma real.
Figura 7.1 Circuito conectado
FCC-BUAP Pgina 27
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Podemos observar el push botton con el cual se activar el led
Figura 7.2 Push botton Se puede observar que al presionar el push botton se enciende el led.
Figura 7.3 Encendiendo el led con el push botton
Figura 7.3.1 Encendiendo el led con el push botton
FCC-BUAP
Pgina 28
Prctica No.1
Encender un Led a travs de un push botton con el PIC18F4550
Figura 7.3.2 Encendiendo el led con el push botton
Resultados y conclusiones
Hemos visto el funcionamiento del PIC as como la arquitectura que tiene, y los pines de los puertos de E/S con los que se interactan para poder realizar que se encienda un led a travs de un PIC programado en ensamblador.
Anexos
Referencias
[Link]
FCC-BUAP
Pgina 29