práctica 1

35
Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Práctica No. 1 Encender un led a través de un push botton con el PIC18F4550 01/02/2013 Programa Educativo Microprocesadores e Interfaces Docente M.C. Nicolás Quiroz Hernández Período Primavera 2013

Upload: adrian-juarez

Post on 13-Aug-2015

153 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: Práctica 1

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

Page 3: Práctica 1

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

Page 4: Práctica 1

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

Page 5: Práctica 1

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

Page 6: Práctica 1

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

Page 7: Práctica 1

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

Page 8: Práctica 1

Práctica No.1

Encender un Led a través de un push botton con el PIC18F4550

4 Desarrollo

FCC-BUAP Página 8

Page 9: Práctica 1

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

Page 10: Práctica 1

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

Page 11: Práctica 1

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

Page 12: Práctica 1

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

Page 13: Práctica 1

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

Page 14: Práctica 1

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

Page 15: Práctica 1

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

Page 16: Práctica 1

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

Page 17: Práctica 1

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

Page 18: Práctica 1

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

Page 19: Práctica 1

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

Page 20: Práctica 1

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

Page 21: Práctica 1

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

Page 22: Práctica 1

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

Page 23: Práctica 1

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

Page 24: Práctica 1

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

Page 25: Práctica 1

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

Page 26: Práctica 1

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

Page 27: Práctica 1

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

Page 28: Práctica 1

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

Page 29: Práctica 1

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

Page 30: Práctica 1

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

Page 31: Práctica 1

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