Download - Práctica 1
Benemérita Universidad Autónoma de Puebla
Facultad de Ciencias de la Computación
Práctica No. 1Encender un led a través de un push botton con el PIC18F4550
01/02/2013
Programa EducativoMicroprocesadores e Interfaces
DocenteM.C. Nicolás Quiroz Hernández
PeríodoPrimavera 2013
Integrantes del EquipoNayeli Pérez Torres 200725645Felicitas Martínez Martín 200724939Miriam Luna Pérez 200633306Adrián Alfonso Juárez Hernández 200826219Luis Daniel Oidor Juárez 200722955
Práctica No. Laboratorio de Microprocesadores e Interfaces1 Nombre de la Práctica Encender un Led a través de un push botton con el PIC18F4550
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
1 Introducción
Encenderemos un led a través del microcontrolador PIC18F4550 de la empresa Microchip que está programado en ensamblador, con el propósito de conocer la arquitectura del mismo y realizar todo el desarrollo en MPLAB y la simulación en PROTEUS.
Con esta práctica estaremos aplicando los conocimientos ya expuestos en clase de acuerdo al programa educativo, donde se hace referencia a las características básicas de la familia PIC18F, como está constituido este microcontrolador, la organización interna que tiene y la estructura, así como el manejo de interrupciones, el conjunto de instrucciones que contiene este microcontrolador, sus métodos de direccionamiento y la estructura de programación básica como lo es ensamblador.
2 Objetivos
Identificar y conocer las características 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 simulación del circuito en ISIS PROTEUS, cargando el archivo con la extensión “.hex” al
PIC18F4550.
Programar el microcontrolador mediante Pickit2
FCC-BUAP Página 2
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
3 Marco teórico
FCC-BUAP Página 3
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
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 están las instrucciones en ensamblador para programar el microcontrolador.
FCC-BUAP Página 4
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Figura 2. Conjunto de instrucciones del PIC18F4550
FCC-BUAP Página 5
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Hemos visto que un microcontrolador es considerado como una computadora, pues posee una ALU (Unidad de Aritmética y Lógica), registros, buses y unidad de control, es decir tiene una CPU (Unidad Central de Procesamiento).
La mayoría de los dispositivos de lógica secuencial, entre ellos los CPU, son de naturaleza síncrona. Es decir,
están diseñados y operan en función de una señal de sincronización. Esta señal, conocida como señal de reloj,
usualmente toma la forma de una onda cuadrada periódica. Calculando el tiempo máximo en que las señales
eléctricas pueden moverse en las varias bifurcaciones de los muchos circuitos de un CPU, los diseñadores
pueden seleccionar un período apropiado para la señal de reloj.
Para el correcto funcionamiento del microcontrolador debemos definir la frecuencia del oscilador pues
determinará los ciclos de instrucción; 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 continuación mostramos la tabla del registro de configuración del oscilador.
Figura 3. Registro OSCCON para la configuración del oscilador.
FCC-BUAP Página 6
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Podemos ver que por default tiene cargado el valor: 0100 X000, pero para esta práctica se utilizará una frecuencia de 4MHz y, y trabajaremos con el oscilador interno, por lo cual tendremos que modificar los bits de configuración a: 01100010= 62 hex.
Cálculos
Dado que se configuró el oscilador interno del microcontrolador a 4MHz, se tiene:
Ciclo de reloj:
Ciclo de instrucción:
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 botón pulsador a 0.5mA, utilizar una resistencia de 10kΩ.
FCC-BUAP Página 7
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
4 Desarrollo
FCC-BUAP Página 8
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
A EQUIPO MATERIAL
- Multímetro- Programador para PIC’s- Protoboard
- 1 PIC18F4550- 3 LED’s,- 2 push botton- 1 resistencia de 330 Ω- 2 resistencias de 10kΩ- 1 oscilador de 4 MHz.
B DIAGRAMA
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA3/AN3/VREF+5
RA4/T0CKI/C1OUT/RCV6
RA5/AN4/SS/LVDIN/C2OUT7
RA6/OSC2/CLKO14
OSC1/CLKI13
RB0/AN12/INT0/FLT0/SDI/SDA33
RB1/AN10/INT1/SCK/SCL34
RB2/AN8/INT2/VMO35
RB3/AN9/CCP2/VPO36
RB4/AN11/KBI0/CSSPP37
RB5/KBI1/PGM38
RB6/KBI2/PGC39
RB7/KBI3/PGD40
RC0/T1OSO/T1CKI 15
RC1/T1OSI/CCP2/UOE 16
RC2/CCP1/P1A 17
VUSB18
RC4/D-/VM 23
RC5/D+/VP 24
RC6/TX/CK 25
RC7/RX/DT/SDO 26
RD0/SPP0 19
RD1/SPP1 20
RD2/SPP2 21
RD3/SPP3 22
RD4/SPP4 27
RD5/SPP5/P1B 28
RD6/SPP6/P1C 29
RD7/SPP7/P1D 30
RE0/AN5/CK1SPP 8
RE1/AN6/CK2SPP 9
RE2/AN7/OESPP 10
RE3/MCLR/VPP 1
U1
PIC18F4550
R110k
R210kD1
LED-RED
R3330
C DESARROLLO DE LA PRÁCTICAPara el desarrollo de esta práctica vamos a crear un nuevo proyecto en MPLAB, y también creamos un nuevo archivo, el cual contendrá toda la configuración 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 instrucción por instrucción en el simulador de MPLAB. También al compilar si está bien nuestro programa nos va a generar un archivo con extensión .hex, con el cual vamos a programar el microcontrolador o en su caso se cargara en la simulación hecha en PROTEUS. Conectamos el microcontrolador con todos los demás componentes para ver los resultados en forma real y podemos apreciar el funcionamiento del proyecto.
A continuación detallaremos como crear un nuevo proyecto en MPLAB y hacer una simulación en PROTEUS, para que posteriormente se haga referencia de las siguientes prácticas a este punto de la creación de un proyecto.Procedimiento en MPLAB:
FCC-BUAP Página 9
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
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 asistenteEl asistente para generar el proyecto nos va a dar la bienvenida y le damos en continuar.
FCC-BUAP Página 10
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
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 Selección del PICPosteriormente seleccionaremos el Active Toolsuite “Microchip MPASM Toolsuite”, y damos en siguiente.
FCC-BUAP Página 11
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Figura 4.5 Selección del Active Toolsuite
A continuación 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
Escogemos la carpeta de trabajo y proporcionamos el nombre de nuestro proyecto y damos click en guardar.
FCC-BUAP Página 12
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
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 ningún archivo. Y proseguimos a darle siguiente.
Figura 4.7 Agregar archivos al proyectoY finalizamos el asistente.
FCC-BUAP Página 13
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Figura 4.8 Finalizar el asistenteAhora agregamos un nuevo archivo al proyecto.
Figura 4.9 Agregar un nuevo archivo al proyecto
FCC-BUAP Página 14
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Le damos nombre con la extensión ASM y le decimos guardar.
Figura 4.10 Nombre al nuevo archivo del proyectoVamos a ver que tenemos nuestro archivo vacío.
Figura 4.11 Archivo vacío
FCC-BUAP Página 15
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Proseguimos a codificar en nuestro archivo.
Figura 4.12 CodificarDespués de haber terminado de programar, compilamos nuestro archivo.
Figura 4.13 CompilarCuando termina de compilar podremos ver si esta correcto o hay errores de sintaxis, en este caso nos indica
FCC-BUAP Página 16
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
que está correcto.
Figura 4.14 Estado de la compilaciónVamos a simular nuestro programa aquí en MPLAB, así que nos vamos a Debugger Select tool MPLAB SIM.
Figura 4.15 Simular en MPLABCon esto se van a desplegar nuevos iconos que nos van a permitir simular nuestro código
FCC-BUAP Página 17
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Figura 4.16 Nuevos iconos para la simulación
Ahora seleccionamos Debugger Stimulus New workbook. Nos ayuda a introducir datos al microcontrolador
Figura 4.17 New workbook
Vamos abrir el stop watch para poner en cero el conteo de instrucciones ejecutadas.
FCC-BUAP Página 18
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Figura 4.18 Abrir el stop watch
Abrimos Settings que nos ayudará para poner la frecuencia del oscilador
Figura 4.19 Seleccionar settings
Seleccionamos View Watch. Que esto nos servirá nos ayudará a monitorear nuestros registros
FCC-BUAP Página 19
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Por ahora podremos cerrar MPLAB y vamos a simular en PROTEUS si funciona nuestro programa, para realizar la simulación vamos a realizar lo siguiente:
Procedemos a simular con el botón run.
Figura 4.20 Correr la simulación
Paramos la simulación con el botón de pausa y podremos ver como se modificaron los campos del stop
FCC-BUAP Página 20
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
watch como los ciclos de instrucción.
Figura 4.21 Parar la simulación Vamos a ver como en la simulación cambian los ciclos de instrucción ya que son los que realizo durante este proceso.
Figura 4.22 Modificación de los ciclos de instrucción
FCC-BUAP Página 21
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
También podemos realizar la simulación paso a paso, esto se puede lograr por medio de un botón que trae MPLAB.
Figura 4.23 Simular instrucción por instrucciónSIMULAR EN PROTEUS
Abrimos PROTEUS para poder introducir el circuito y cargar el archivo con extensión .hex
Figura 5.1 Abrir PROTEUS
FCC-BUAP Página 22
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
En la opción de devices podemos seleccionar los diferentes dispositivos y componentes que contenga nuestro circuito para que funcione de manera eficiente.
Figura 5.2 Seleccionar dispositivosNos 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 Página 23
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Cundo realizamos una búsqueda de nuestros componentes así nos aparecerá.
Figura 5.4 Resultados de la búsquedaLe 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 Página 24
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Lo seleccionamos y lo insertamos en nuestro diseño.
Figura 5.6 Insertar dispositivo o componenteAsí insertamos todos nuestros componentes hasta tener el circuito completo.
Figura 5.6 Insertar todos los componentes y conectarlos
FCC-BUAP Página 25
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Para que se simule tenemos que insertar nuestro código en el PIC que está en PROTEUS, pero para esto vamos a dar doble click en el PIC y nos aparecerá la edición del componente.
Figura 5.6 Cargar archivo .hexEn el campo de PROGRAM FILE tenemos que indicarle donde se encuentra nuestro programa con la extensión .HEX donde este archivo se genera al compilar correctamente y este es el que nos servirá para programarlo físicamente y virtualmente.
Figura 5.7 Seleccionar el archivo .hex
FCC-BUAP Página 26
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Le damos ok y ok, y podremos simular nuestro programa.
Figura 5.8 Correr simulaciónY podremos observar como está simulado.
Figura 5.9 Simulación corriendo
Programar el PIC con el Pickit 2
FCC-BUAP Página 27
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
En esta parte presentamos una guía básica sobre el uso del dispositivo de programación de Microprocesadores "PICkit 2" , ya que es una herramienta muy utilizada en la electrónica. Esta una guía 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 demás componentes de este.
Figura 6.1 Pines del Pickit 2Lo 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 Aplicación del programadorUna Vez establecida la conexión con nuestro microprocesador PICkit 2 v2.5 posee dos botones de uso simple para traspaso de Datos que son:
FCC-BUAP Página 28
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
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
Práctica RealA continuación mostramos el circuito conectado ya de una forma real.
Figura 7.1 Circuito conectado
Podemos observar el push botton con el cual se activará el led
FCC-BUAP Página 29
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
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 Página 30
Práctica No.1
Encender un Led a través de un push botton con el PIC18F4550
Figura 7.3.2 Encendiendo el led con el push botton
5 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 interactúan para poder realizar que se encienda un led a través de un PIC programado en ensamblador.
6 Anexos
7 Referencias
http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf
FCC-BUAP Página 31