Está en la página 1de 39

Programacin del Microcontrolador PIC18F455O

MANUAL DEL ALUMNO AREA: ELECTRNICA

Febrero 2012.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 1

INDICE:

Introduccin ..................................................................................................................VI Objetivo ........................................................................................................................VII Captulo 1 Introduccin 18f4550.......1 a los Microcontroladores

3 CONCEPTOS BSICOS.................................................................................................1 1.1.1ARQUITECTURA DEL PIC........................................................................1 1.1.2ARQUITECTURA VON NEUMANN............................................................2 1.1.3ARQUITECTURA HARVARD......................................................................3 1.1.4CARACTERSTICAS FUNDAMENTALES DEL 18F4550..........................4 4 PROTOCOLO RS232.......................................................................................................8 1.2.1PUERTO SERIE RS 232..............................................................................8 1.2.2 LA NORMA RS 232....................................................................................8 1.2.3CIRCUITO INTEGRADO MAX232..............................................................9 5 PROTOCOLO USB.........................................................................................................11 Captulo 2 Programacin para la adquisicin y procesamiento de datos...............................................................................................................................14 1. PROGRAMACIN PARA COMUNICACIN SERIAL RS232 BAJO AMBIENTE VISUAL BASIC.................................................................................14 2.1.1PROPIEDADES PROPIAS DEL TIEMPO DE EJECUCIN..................22 REQUERIMIENTOS BSICOS DEL MICROCONTROLADOR PARA ESTABLECER LA COMUNICACIN USB..28 2.2.1#FUSES HSPLL Y PLL5.............................................................................29

M.C. Gerardo Leyva Soto

Electrnica

Pgina 2

1.-INTRODUCCIN

Hoy en da en cualquier sistema mecatrnico es de vital importancia tener el conocimiento terico practico de protocolos de comunicacin para conocer las diferentes alternativas que podemos usar a travs de una computadora personal, como es el caso de sus puertos de comunicacin, con los cuales podemos mandar y recibir datos para controlar un proceso determinado, es por tal razn que fue diseado este curso, ya que en la actualidad el puerto paralelo y serial han ido desapareciendo dejando como sucesor al puerto USB, debido a esta situacin es importante conocer el manejo del puerto USB de las computadoras personales. Por otra parte, los participantes que toman este curso tienen que estar relacionados de alguna manera con electricidad y electrnica bsica. Se debe de tener en consideracin los conocimientos mnimos necesarios para comprender ciertos trminos que se manejan en esta disciplina y que se utilizarn en este manual. Este manual combina tres importantes aspectos: la teora, pilar base del conocimiento, los ejemplos y problemas, que permiten aplicar los conocimientos tericos y la realizacin de prcticas, que permiten experimentar y por consiguiente afianzarse en ese conocimiento adquirido. Si a todo ello se aade que la experiencia en el manejo de estas herramientas, resulta imprescindible en el desarrollo de aplicaciones con el protocolo USB. Este curso se desarrollara en tres partes, una es la parte terica explicando brevemente los elementos que necesitamos conocer y aplicar para entender el protocolo USB, la segunda es la construccin del circuito de pruebas mediante el protoboard y el material adecuado y por ltimo la realizacin de ejercicios y la comprobacin de los mismos con una duracin de 40hrs.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 3

3.-OBJETIVO
Implementar una interfaz de comunicacin USB mediante la programacin del microcontrolador 18F4550 para controlar la velocidad de un motor de corriente directa desde una computadora personal.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 4

CAPITULO I ANTECEDENTES.
1.1 BREVES ANTECEDENTES RELACIONADOS. Inicialmente cuando no existan los microprocesadores las personas se las ingeniaban en disear sus circuitos electrnicos y los resultados estaban expresados en diseos que implicaban muchos componentes electrnicos y clculos matemticos. Un circuito lgico bsico requera de muchos elementos electrnicos basados en transistores, resistencias, etc.; pero en el ao de 1971 apareci el primer microprocesador el cual origino un cambio decisivo en las tcnicas de diseo de la mayora de los equipos electrnicos. La aparicin de este circuito integrado todo sera ms fcil de entender y los diseos electrnicos seran mucho ms pequeos y simplificados.

1.2 DIFERENCIAS ENTRE MICROCONTROLADOR.

UN

MICROPROCESADOR

UN

Para realizar un diseo con un microprocesador, dependiendo del circuito se requeran algunos circuitos integrados adicionales como por ejemplo: memorias RAM para almacenar los datos temporalmente y memorias ROM para almacenar el programa que se encargara del proceso del equipo, un circuito integrado para los puertos de entrada salida y finalmente un decodificador de direcciones. Como se muestra en la figura 1.1.

Figura 1.1.- Microprocesador con sus circuitos integrados adicionales.


M.C. Gerardo Leyva Soto Electrnica Pgina 5

Un microcontrolador es solo un circuito integrado que contiene todos los elementos electrnicos que se utilizaban para hacer un sistema basado con un microprocesador; es decir contiene en un solo integrado la Unidad de Proceso, la memoria RAM, memoria ROM, puertos de entrada salida y otros perifricos. Como se muestra en la figura 1.2.

Figura 1.2.- Estructura de un microcontrolador.

1.3. VENTAJAS DE UN MICROCONTROLADOR VS UN MICROPROCESADOR. Las diferencias ms importantes son: La configuracin mnima bsica de un microprocesador estaba constituida por un Micro de 40 Pines. Una memoria RAM de 28 pines, una memoria ROM de 28 pines y un decodificador de 18 pines; pero un microcontrolador Incluye todos estos elementos en uno solo Circuito Integrado por lo que implica una gran ventaja en varios factores. En el circuito impreso por amplia simplificacin de circuitera, el costo para un sistema basado en microcontrolador es mucho menor y, lo mejor de todo, el tiempo de desarrollo de su proyecto electrnico disminuye considerablemente. Existen unos microcontroladores ms avanzados que otros por los componentes especiales que estos incluyen. Algunos solamente tienen puertos contienen puertos de entrada y de salida, otros incluyen pines hasta de 12 bits para conversiones analgicas digitales entre otros. Podemos mencionar algunas caractersticas especiales que poseen los microcontroladores actuales: Modulacin por ancho de pulso, Comunicacin Serial Sincrona, Comunicacin Serial Asncrona, Temporizadores, Contadores, etc.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 6

1.4 QU ES UN MICROCONTROLADOR?

Un microcontrolador es un circuito integrado programable que contiene internamente todos los componentes de una computadora. Este es utilizado para controlar una tarea especfica. Sus pines de entrada y salida se utilizan para conectar motores, relays, actuadotes, etc. Una vez que el microcontrolador est programado, se encargar de ejecutar al pie de la letra la tarea encomendada. El microcontrolador PIC18F4550 es actualmente uno de los ms utilizados para el control de perifricos por medio de USB, la razn de esto es que son sencillos, contiene una velocidad aceptable, modernos y econmicos, se pueden escribir programas y borrarlos muchsimas veces.

1.5 CARACTERSTICAS BSICAS DEL PIC18F4550.

El microcontrolador PIC18F4550 es un circuito integrado de 40 pines fabricado con tecnologa CMOS, existen diferentes encapsulados que son: DIP (versin convencional) y SOIC (montaje superficial). La frecuencia de trabajo est entre 4 Mhz y 20 Mhz. Las versiones que se estipulan en una frecuencia de trabajo de 4 Mhz podrn trabajar sin ningn problema hasta los 10 Mhz. En la figura 1.3 se muestra la organizacin de los pines del PIC18F4550.

Figura 1.3 Pines del microcontrolador PIC18F4550 (Encapsulado tipo DIP)

M.C. Gerardo Leyva Soto

Electrnica

Pgina 7

1.6 IDENTIFICACIN DE LOS PINES UTILIZADOS PARA LOS PUERTOS DE ENTRADAS Y SALIDAS.

En la figura 1.3 se puede observar claramente que el microcontrolador tiene cinco puertos denominados A, B, C, D y E. El puerto A tiene 6 lneas disponibles (RA0,RA1,RA2,RA3,RA4,RA5), el puerto B tiene 8 lneas disponibles (RB0,RB1,RB2,RB3,RB4,RB5,RB6,RB7), el puerto C tiene 8 lneas disponibles (RC0,RC1,RC2,RC3,RC4,RC5,RC6,RC7), el puerto D tiene 8 lneas disponibles (RD0,RD1,RD2,RD3,RD4,RD5,RD6,RD7) y el puerto E tiene 3 lneas disponibles (RE0,RE1,RE2) todos puertos suman un total de 33 lneas que podrn ser programadas independientemente como entradas o salidas, que son la comunicacin a los perifricos.

1.7 OSCILADOR PARA EL PIC18F4550

Todo circuito digital requiere de un circuito que le indique a la velocidad con la que va a procesar la informacin. Este circuito es conocido como oscilador de frecuencia, ste es el corazn del microcontrolador por lo tanto, este pequeo circuito no debe faltar. En el caso del microcontrolador PIC18F4550 el Pin No 13 con nomenclatura OSC1 y Pin No 14 con nomenclatura OSC2 son utilizados para introducir la frecuencia de reloj. Este microcontrolador requiere de un circuito externo de oscilacin o generador de pulsos de reloj (Cristal de 4Mhz). El microcontrolador PIC16F84A utiliza cuatro periodos completos de reloj por cada instruccin, por lo tanto, si se trabaja con una frecuencia de 4 Mhz, internamente en el microcontrolador se est operando a 1 Mhz debido a que se toman cuatro pulsos de reloj completos para cada instruccin. El PIC18F4550 puede utilizar tres tipos diferentes de oscilador externo, el tipo de oscilador depender de la precisin (ej: para las rutinas de tiempo), velocidad y potencia que se necesite en la aplicacin. Los diferentes tipos de osciladores se enlistan a continuacin:

1.- Oscilador tipo HS para frecuencias mayores de 4 Mhz. 2.- Oscilador tipo XT para frecuencias no mayores de 4 Mhz. 3.- Oscilador tipo RC para frecuencias no mayores de 5.5 Mhz.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 8

A la hora de utilizar la programacin de microcontroladores se deber especificar en los parmetros el tipo de oscilador que se utilizar en el proyecto electrnico basado especficamente en la frecuencia de trabajo.

Oscilador tipo HS basado en un cristal para frecuencias mayores a 4 Mhz, es un poco costosa pero en forma prctica es ms fcil de implementar por el nmero de conexiones. Oscilador tipo RC es el ms econmico porque tan solo se utiliza un condensador no polarizado y una resistencia. Tiene problemas de estabilidad en la Frecuencia. Es importante saber que para resistencia menor a 4 k, el sistema se vuelve inestable o se podra detener la frecuencia de oscilacin totalmente. Para valores de resistencia mayores a 100 Megas, el oscilador se hace susceptible al ruido, la humedad y a la temperatura, por lo tanto se recomienda un rango de 5 K < R < 100 k. Oscilador tipo XT para frecuencias no mayores de 4 Mhz. Una condicin importante pata este tipo de oscilador es que los capacitores deben ser idnticos. En la Tabla 1 se muestran algunos valores de los capacitores para obtener la frecuencia de oscilacin

Frecuencia de oscilacin 455 khz 2 Mhz 4 Mhz

C1

C2

47 -100 pF 47 -100 pF 15 -33 pF 15 -33 pF 15 -33 pF 15 -33 pF

Tabla 1.- Algunos valores para la frecuencia de oscilacin

1.8.-IDENTIFICACIN DE LOS PINES MICROCONTROLADOR PIC18F4550.

DE

ALIMENTACIN

DEL

El microcontrolador se alimenta con un voltaje de 5 Volts DC y los pines para ello son el pin No 11 VDD, el pin 32 VDD y tierra para los pines No 12 VSS, el pin 31 VSS.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 9

En la figura 1.4 mostramos la configuracin bsica obligatoria que debe tener el microcontrolador PIC18F4550 para poder funcionar; utilizando la configuracin del oscilador XT, con un cristal de 4 Mhz, capacitores de 22 pF, resistencia de 10 K y un interruptor.

Figura 1.7.- Configuracin bsica del microcontrolador para funcionar

M.C. Gerardo Leyva Soto

Electrnica

Pgina 10

CAPITULO II INTRODUCCIN A LOS MICROCONTROLADORES PIC18F4550.


En el siguiente captulo se describe la arquitectura interna del microcontrolador 18F4550, as como sus principales caractersticas que nos permitirn conocer las ventajas que tengan esta clase de dispositivos con respecto a los de la familia 16FXXXX y que nos permitirn manejar el protocolo USB.

2. CONCEPTOS BSICOS 2.1.1 ARQUITECTURA DEL PIC Desde la aparicin del microprocesador en 1971 (Intel), los circuitos integrados programables han tenido una evolucin continua y acelerada en el tiempo. En 1978 aparece el 8048, la primera microcomputadora (llamada ms tarde microcontrolador) en un slo circuito integrado. El hecho fundamental fue que por primera vez se integra en un slo empaque:

1) La unidad central de procesamiento. El CPU de este microcontrolador ofreca menores prestaciones comparadas con el Z80, 8085 o el 6800 de esa poca. Estuvo orientado al manejo de bits y posea una entrada de interrupcin externa. 2) Memoria de almacenamiento de programa de 1 KB (ROM o EPROM, segn la versin). 3) Memoria de datos RAM de 64 bytes. 4) Temporizador de 8 bits.

Sobre dos arquitecturas se ha basado la fabricacin de Microcontroladores: la arquitectura de von Neumann y la de Harvard. La Arquitectura de von Neumann se considera la clsica, fue utilizada por la mayora de los primeros microprocesadores de la poca. Un slo bus de datos y direcciones enlazaba la unidad central de procesamiento a una nica memoria. La arquitectura de Harvard, en cambio, tiene dos memorias: una de datos y una de programa. Al CPU se conectan estas dos memorias por buses independientes. Muchos son los fabricantes de microcontroladores, sin embargo Microchip a nivel mundial lidera el mercado con sus productos.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 11

2.1.2 ARQUITECTURA VON NEUMANN

La arquitectura tradicional de computadoras y microprocesadores se basa en el esquema propuesto por John Von Neumann, en el cual la unidad central de proceso, o CPU, est conectada a una memoria nica que contiene las instrucciones del programa y los datos. El tamao de la unidad de datos o instrucciones est fijado por el ancho del bus de la memoria. Es decir que un microprocesador de 8 bits, que tiene adems un bus de 8 bits que lo conecta con la memoria, deber manejar datos e instrucciones de una o ms unidades de 8 bits (bytes) de longitud. Cuando deba acceder a una instruccin o dato de ms de un byte de longitud, deber realizar ms de un acceso a la memoria. Por otro lado este bus nico limita la velocidad de operacin del microprocesador, ya que no se puede buscar de memoria una nueva instruccin, antes de que finalicen las transferencias de datos que pudieran resultar de la instruccin anterior. Es decir que las dos principales limitaciones de esta arquitectura tradicional son: a) Que la longitud de las instrucciones est limitada por la unidad de longitud de los datos, por lo tanto el microprocesador debe hacer varios accesos a memoria para buscar instrucciones complejas. b) Que la velocidad de operacin (o ancho de banda de operacin) est limitada por el efecto de cuello de botella que significa un bus nico para datos e instrucciones que impide superponer ambos tiempos de acceso. La figura 2.1.1 indica el diagrama de bloques de la arquitectura tratada:

Figura 2.1.1.- Arquitectura de Von Neumann

M.C. Gerardo Leyva Soto

Electrnica

Pgina 12

2.1.3 ARQUITECTURA HARVARD

La arquitectura conocida como Harvard, consiste simplemente en un esquema en el que el CPU est conectado a dos memorias por intermedio de dos buses separados. Una de las memorias contiene solamente las instrucciones del programa, y es llamada Memoria de Programa. La otra memoria solo almacena los datos y es llamada Memoria de Datos. Ambos buses son totalmente independientes y pueden ser de distintos anchos. Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instruccin Set Computer), el set de instrucciones y el bus de la memoria de programa pueden disearse de manera tal que todas las instrucciones tengan una sola posicin de memoria de programa de longitud. Adems, como los buses son independientes, el CPU puede estar accediendo a los datos para completar la ejecucin de una instruccin, y al mismo tiempo estar leyendo la prxima instruccin a ejecutar. Se puede observar claramente que las principales ventajas de esta arquitectura son: a) Que el tamao de las instrucciones no est relacionado con el de los datos, y por lo tanto puede ser optimizado para que cualquier instruccin ocupe una sola posicin de memoria de programa, logrando as mayor velocidad y menor longitud de programa. b) Que el tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad de operacin. Una pequea desventaja de los procesadores con arquitectura Harvard, es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas, ya que estas tablas se encontraran fsicamente en la memoria de programa (por ejemplo en la EPROM de un microprocesador). La figura 2.1.2 muestra el diagrama de bloques de la arquitectura de Harvard.

Figura 2.1.2 Arquitectura harvard

M.C. Gerardo Leyva Soto

Electrnica

Pgina 13

2.1.4 CARACTERSTICAS FUNDAMENTALES DEL 18F4550 El PIC 18F4550, pertenece a los microcontroladores PIC18 de gama alta. Posee una arquitectura RISC (reduced instruction set computer) de 16 bits longitud de instrucciones y 8 bits de datos. La tabla 2.1.1 muestra en resumen las caractersticas fundamentales de este microcontrolador y de sus antecesores los PIC18F2455/2550/4455 CARACTERSTICAS Frecuencia de Operacin Memoria de Programa (bytes) Memoria RAM de Datos (bytes) Memoria EEPROM Datos (bytes) Interrupciones Lneas de E/S Temporizadores Mdulos de Comparacin/Captura/PW M (CCP) Mdulos de Comparacin/Captura/PW M mejorado (ECCP) Canales de Comunicacin MSSP.EUSAR MSSP.EUSAR MSSP.EUSA MSSP.EUSA Serie Canal USB Puerto Paralelo de T 1 0 T 1 0 R 1 1 R 1 1 0 0 1 1 2 2 1 1 PIC18F2455 Hasta 48MHz PIC18F2450 PIC18F4455 PIC18F4550

Hasta 48MHz Hasta 48MHz Hasta 48MHz

24.576

32.768

24.576

32.768

2.048

2.048

2.048

2.048

256 19 24 4

256 19 24 4

256 20 35 4

256 20 35 4

M.C. Gerardo Leyva Soto

Electrnica

Pgina 14

Transmisin de Datos (SPP) Canales de Conversin A/D de 10 bits Comparadores analgicos Juego de instrucciones 10 Canales 2 75 (83 ext.) 10 Canales 2 75 (83 ext.) 13 Canales 2 75 (83 ext.) 13 Canales 2 75 (83 ext.)

PDIP40 pines PDIP40 pines Encapsulados PDIP28 pines SOIC28 pines PDIP28 pines QFN 40 pines QFN 40 pines SOIC28 pines TQFP 40 pines Tabla 2.1.1 caractersticas del PIC 18F4550 TQFP 40 pines

En la figura 2.1.3 se muestra la distribucin de los pines del PIC18F4550

Figura 2.1.3 Pines del microcontrolador 18F4550

M.C. Gerardo Leyva Soto

Electrnica

Pgina 15

En la figura 2.1.4. se muestra la estructura interna a diagrama a bloques del PIC18F4550.

Figura 2.1.4 Diagrama a bloques interno del PIC

M.C. Gerardo Leyva Soto

Electrnica

Pgina 16

CAPITULO 3 PROGRAMACIN EN EL COMPILADOR DE C.


En este captulo se explicara los requerimientos bsicos necesarios que se tienen que tomar en cuenta tanto en la parte de software como en la de hardware para correcta programacin y implementacin del PIC18F4550 y viceversa, lo cual es lo ms importante de nuestro curso.

3.1 Introduccin

Los programas para el microcontrolador debern escribirse en el editor de textos del PCW C o tambin pueden escribirse en el Block de Notas de Windows indiferentemente. Dentro del editor de textos, el programa deber escribirse en forma estructura como la programacin en C, pero cada lnea tendr el comentario pertinente de lo que hace la sentencia utilizada.

Manejo del editor En la figura 3.1 mostramos la ventana principal del compilador en C

M.C. Gerardo Leyva Soto

Electrnica

Pgina 17

Figura 3.1.- Pantalla del compilador C Antes de empezar a capturar el programa en el editor del compilador, es necesario crear una carpeta de trabajo designa con el nombre que decida, por ejemplo tareas_micros. Entonces de la pantalla principal del editor del compilador en C, seleccionamos la opcin File, presione enter, aparecer un submen como el que se muestra en la figura 3.2.

Figura 3.2.- Pantalla de inicio.


M.C. Gerardo Leyva Soto Electrnica Pgina 18

En la figura 3.2 seleccione la opcin de New, y presione enter nos aparecer una ventana como se muestra en la figura 3.3. Podemos observar de la figura 3.3 que tenemos que guardar el nombre del archivo del proyecto que se va a implementar en la carpeta antes creada con el nombre de tareas_micros. Una vez que se inserta el nombre del archivo y la carpeta donde se va a guardar presione enter en la opcin de Guardar de la ventana de Guardar como

Figura 3.3.- Guardado de archivo de trabajo.

En la figura 3.3 presionamos enter para que se guarde el proyecto, automticamente nos manda al editor del software. Como se muestra en la figura 3.4.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 19

Figura 3.4.- Editor del software.

Ahora en la figura 3.4 estamos listos para insertar el cdigo del compilador en C, para un problema especifico. A continuacin realizaremos un ejemplo. Ejemplo 3.1.-Realice un programa que mande un uno lgico a un puerto b en el pin 7 del microcontrolador PIC18F4550 para encender un LED. En el listado 1 se muestra el cdigo que se va insertar en el editor. Listado 3.1.-Encendido de un led. #include <18F4550.h> // #fuses xt,nolvp,nowdt,noprotect #use delay (clock=4000000) //Declaracin del cristal que se ocupa para la operacin. //Habilitar puertos #bit portb=0XF81.7 //Direccin de la memoria donde se localiza el Puerto B. //Habilitacion de puertos como entrada o salida inicializar(){ set_tris_b(0x00); //Configurar el puerto b como salida output_b(0); //Limpio el puerto b de cualquier basura }
M.C. Gerardo Leyva Soto Electrnica Pgina 20

//Programa principal void main() { inicializar(); while(1) { portb=1; //Envia estado alto (prendido) en el pin 7 del puerto b } } Dentro de la lnea de # fuses aqu se declara que tipo de oscilador vamos a trabajar, en este caso el tipo XT que soporta hasta cuatro Mhz, si se ocupan ms de 4 se utiliza otro tipo de cristal como HS, adems de las siguientes instrucciones nolvp ,nowdt, noprotect, ahora para declarar la habilitacin de los puertos del microcontrolador se requiere la siguiente lnea #bit portb=0XF81.7, donde 0xF81 es la direccin de memoria donde se encuentra el puerto B y el punto 7 nos indica el pin del puerto que se va a utilizar, con la instruccin #bit estamos indicando que solamente vamos a utilizar un solo bit de salida, con la instruccin set_tris_b(0x00) estamos habilitando el puerto B como salida (con la denominacin 0x00, que esta decodificado en hexadecimal, donde se coloca un cero si es salida y un uno si es entrada, la decodificacin para un uno a la entrada en el bit 7 del puerto b, se puede hacer en forma hexadecimal y binaria, si es binaria por ejemplo quedara la instruccin como sigue: set_tris_b(0x0b1000000) Si es en forma hexadecimal quedara la instruccin como sigue: set_tris_b(0x80) Las lneas para la habiltacin de los puerto se pueden checar en la hojas de datos del microcontrolador nos indica que los puertos estan en las siguientes direcciones de memoria en forma hexadecimal, como se indica a continuacin. porta= 0x80; Direccin de memoria del puerto A. portb= 0x81; Direccin de memoria del puerto B. portc= 0x82; Direccin de memoria del puerto C.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 21

portd= 0x83; Direccin de memoria del puerto D. porte= 0x84; Direccin de memoria del puerto E. Estas direcciones de los puertos del microcontrolador del PIC18F4550 se pueden checar en la tabla 3.1.

Tabla 3.1.- Direccin de memoria de los puertos del microcontrolador.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 22

El cdigo del listado 3.1 queda capturado en el editor como se muestra en la figura 3.5.

Figura 3.5.- Captura del ejercicio uno.

Cuando se termina de capturar , hay que compilar el proyecto para verificar si el cdigo tiene errores, para esto seleccione de la ventana principal la opcin de compile o presione la tecla F9 como se muestra en la figura 3.6, presione enter y aparecer una segunda ventana indicando el porcentaje de la compilacin, como se muestra en la figura 3.7, si la ventana desaparece y no manda ningn mensaje de error quiere decir que el proyecto est bien, en el momento de la compilacin el software nos genera varios archivos con diferentes extensiones, estos archivos son guardados en la carpeta que se creo, al inicio.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 23

Figura 3.6.- Compilacin del proyecto.

Figura 3.7.- Compilacin del proyecto.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 24

En caso que haya errores en el cdigo, el editor marca cuales son los errores del cdigo, por ejemplo como se muestra en la figura 3.8, por lo tanto cuando se corrigen estos errores se vuelve a compilar

Figura 3.8.- Compilacin con errores.

Como podemos observar de la figura 3.8 el error lo marca y lo encierra en un rectngulo azul, y en la parte inferior de editor pone un mensaje en color rojo, de cul es el problema. Si ya no tiene uno errores se vuelve a compilar para que genere el archivo con extensin punto HEX, Por lo tanto hay que buscar este archivo en la carpeta que se cre o en la ruta que pone por default el compilador, como se muestra en la figura 3.9.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 25

Figura 3.9.- Archivo con extensin punto HEX.

Despus de generar el archivo con extensin punto hex, guardar este en un dispositivo de almacenamiento para grabarlo por medio de un programador de PIC o un programador universal en el microcontrolador PIC18F4550, para su implementacin en el protoboard o sistema mnimo, a continuacin en la figura 3.10 se muestra el diagrama de conexin del microcontrolador PIC18F4550 para la implementacin del ejemplo 3.1.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 26

Figura 3.10.- Diagrama del circuito para la implementacin.

Ejemplo 3.2.- Realice un progama en el compilador en C (PICC) en donde se enciendan cuatro bits a la vez que sean RD0, RD2, RD4 y RD6. A continuacin se muestra el cdigo en el listado 3.2. Implemente en protoboard o sistema mnimo, el ejemplo 3.2. Listado 3.2.-Encendido de cuatro bits. //Ejemplo 3.2 #include <18F4550.h> #fuses xt,nolvp,nowdt,noprotect #use delay (clock=4000000)

//Direccionamiento de puerto D
M.C. Gerardo Leyva Soto Electrnica Pgina 27

#bit portd=0XF83.0 #bit portd1=0XF83.2 #bit portd2=0XF83.4 #bit portd3=0XF83.6 //Se crea la funcion inicializar() para la habilitacin del puerto inicializar(){ set_tris_d(0x00); //Configurar el puerto d como salida output_d(0); //Limpio el puerto d de cualquier basura } //Programa principal void main( ) { inicializar( ); while(1) { portd=1; //Envia estado alto (prendido) en el pin 0 del puerto d portd1=1; //Envia estado alto (prendido) en el pin 2 del puerto d portd2=1; //Envia estado alto (prendido) en el pin 4 del puerto d portd3=1; //Envia estado alto (prendido) en el pin 6 del puerto d } } En la lnea de while(1) con esta instruccin estamos haciendo el bucle infinito en donde el grupo de sentencias siempre deben de estar dentro de este bucle otra forma de hacerlo infinito es con la siguiente instruccin: while(TRUE).

En la figura 3.11 se muestra el circuito a implementar.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 28

Figura 3.11.- Diagrama del circuito para la implementacin. Otra forma de configurar el puerto las salidas del puerto D de los bits RD0, RD2, RD4 y RD6 es utilizando la instruccin #byte port=0x83, aqu trabajamos con todos los bits, para no estar declarando bit por bit, entonces en la instruccin de salida del puerto D, hacemos la decodificacin en forma hexadecimal para encender los cuatro bits a la vez como sigue: portd=0x55; Con la instruccin anterior podemos realizar el encendido de los cuatro bits a la vez. Como se realiza lo explicaremos a continuacin, el puerto D contiene 8 bits por lo tanto se divide de cuatro bits para trabajar e forma hexadecimal como se muestra en la figura 3.12.

Figura 3.12.- Agrupacin de bits de cuatro en cuatro.


M.C. Gerardo Leyva Soto Electrnica Pgina 29

De la figura 3.12 podemos observar que el byte se divide en dos grupos de cuatro bits para su decodificacin en hexadecimal, quedando con la parte Alta (Higt) y la parte Baja (Low), por lo tanto tenemos un uno en RDO que equivale su valor de posicin a uno, RD2 su posicin equivale a cuatro, se realiza la suma de estos dos bits de acuerdo a su valor posicional obteniendo la suma de 4 + 1 = 5 para la parte baja del byte, realizando el mismo procedimiento anterior y verificando en la figura 3.12 la parte alta del byte tiene tambien una suma de 4 + 1 = 5, que son los valores posicionales de los bits RD4 y RD6 respectivamente, dando como resultado en forma hexadecimal 0x55, donde un cinco es de la parte baja y el otro de la parte alta. A continuacin en el listado 3.3 se muestra el cdigo para el encendido de los cuatro bits utilizando la instruccin byte. Por ejemplo que instrucciones se necesitan, si deseamos configurar el puerto A con la siguiente asignacin que se muestra en la tabla 3.2: Puerto A Asignacin RA0 Salida RA1 Salida RA2 Salida RA3 Salida RA4 Entrada RA5 Entrada RA6 Entrada Tabla 3.2.- Asignacin del Puerto A. Las instrucciones que podemos utilizar son: set_tris_a(0b1110000) set_tris_a(0x70) configuracin en binario

configuracin en hexadecimal.

Realice el siguiente ejercicio, que instrucciones se necesitan, si deseamos configurar el puerto D con la siguiente asignacin que se muestra en la tabla 3.3: Puerto D Asignacin RD0 Entrada RD1 Salida RD2 Entrada RD3 Salida RD4 Entrada RD5 Salida RD6 Entrada RD7 Salida Tabla 3.3.- Asignacin del Puerto D. Es importante que para los puertos A y E se puedan manejar como entradas o salidas digitales se ponga la siguiente instruccin: setup_adc(NO_ANALOGS)
M.C. Gerardo Leyva Soto Electrnica Pgina 30

En el listado 3.3. Se muestra la otra forma de programacin utilizando la instruccin byte para el mismo encendido de los cuatro bits mencionados en el ejemplo 3.2.

Listado 3.3.-Encendido de cuatro bits utilizando la instruccin byte. //Ejemplo 3.3 #include <18F4550.h> #fuses xt,nolvp,nowdt,noprotect #use delay (clock=4000000) //Direccionamiento de puerto D #byte portd=0XF83 //Se crea la funcion inicializar( ) para la habilitacin del puerto inicializar(){ set_tris_d(0x00); //Configurar el puerto d como salida output_d(0); //Limpio el puerto d de cualquier basura } //Programa principal void main( ) { inicializar( ); while(1) { portd=0x55; //Envia estado alto (prendido) a los pins 0,2,4 y 6 del puerto } } Compile el listado 3.3 en el compilador en C para verificar que no tiene errores, y implementelo en protoboard o sistema mnimo.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 31

Ejemplo 3.3.- Realice un progama en el compilador en C (PICC) en donde se enciendan en forma secuencial en forma descendente todos los bits del puerto B durante un segundo cada uno. A continuacin se muestra el cdigo en el listado 3.4. Implemente en protoboard o sistema mnimo, el ejemplo 3.3. Listado 3.4.-Encendido de todos los bits del puerto B durante un segundo cada uno. //Ejemplo 3.3 #include <18F4550.h> #fuses xt,nolvp,nowdt,noprotect #use delay (clock=4000000) //Habilitar puerto B #byte portb=0XF81 Inicializar( ) { set_tris_b(0x00); //Configurar el puerto b como salida output_b(0); //Limpio el puerto b de cualquier basura } //Programa principal void main( ) { Inicializar( ); while(1) { portb=0x01; Delay_ms(1000); portb=0x02; Delay_ms(1000); portb=0x04; Delay_ms(1000); portb=0x08;
M.C. Gerardo Leyva Soto Electrnica Pgina 32

Delay_ms(1000); portb=0x10; Delay_ms(1000); portb=0x20; Delay_ms(1000); portb=0x40; Delay_ms(1000); portb=0x80; Delay_ms(1000); } }

Del listado 3.4 podemos observar que la instruccin Delay_ms(1000) le esta dando el retardo de un segundo a cada bit del puerto B para que se apaguen en forma secuencial. A continuacin se muestra la instruccin siguiente: Delay_ms (retardo por software)

Descripcin: Crea un retardo por software dado el tiempo en milisegundos (constante). El rango de constantes aplicables a la funcin depende de la frecuencia del oscilador. Es una funcin interna; El cdigo es generado en el lugar donde se hace la llamada, as que la llamada de esta funcin no cuenta dentro del limite de llamadas anidadas. void Delay_ms(const time_in_ms) Ejemplo: Generar un retardo de 1 segundo Delay_ms(1000);

Ejemplo 3.4.- Realice un progama en el compilador en C (PICC) que encienda y apague un led, ubicado en la terminal RB7 del puerto B. El tiempo de encendido es de 1000 milisegundo y el de apagado de 300 milisegundos. A continuacin se muestra el cdigo en el listado 3.5. Implemente en protoboard o sistema mnimo el ejemplo 3.4.
M.C. Gerardo Leyva Soto Electrnica Pgina 33

Listado 3.5.-Encendido de un led en el pin RB7 con un tiempo determinado //Ejemplo 3.3 #include <18F4550.h> #fuses xt,nolvp,nowdt,noprotect #use delay (clock=4000000) //Habilitar puerto B #byte portb=0XF81 Inicializar( ) { set_tris_b(0x00); //Configurar el puerto b como salida output_b(0); //Limpio el puerto b de cualquier basura } //Programa principal void main ( void ) { Inicializar( ); while( 1 ) { output_high(pin_b7 ); Delay_ms( 1000 ); output_low(pin_b7 ); Delay_ms( 300 ); } } En el listado 3.5 podemos observar que tenemos un nueva instruccin que tambin s puede utilizar para el envi de datos a la salida la cual se muestra a continuacin: output_high(pin_#puerto)

M.C. Gerardo Leyva Soto

Electrnica

Pgina 34

Con la instruccin anterior, como lo muestra el ejemplo del listado 3.5 para mandar el sato a la salida se tiene: output_high(pin_b7); Pero tambin sera correcta la instruccin siguiente que se ha venido trabajando: portb= 0x80; Para el apagado del mismo pin se utiliza la siguiente instruccin: output_low(pin_b7); Tambin sera correcta con la siguiente instruccin: portb= 0x00; De acuerdo al usuario con la compresin de estas instrucciones puede manejar las que hayan comprendido ms. Capture el listado 3.5 y realice la implementacin de este.

Condicionante if

La sintaxis de esta sentencia if es:

if (expresin) conjunto 1 [else conjunto 2] Cuando la expresin evaluada es verdadera, Las instrucciones del conjunto 1 son ejecutadas. Si la expresin es falso, las instrucciones del conjunto 2 es ejecutada. La expresin debe ser evaluada a un valor entero. Los parntesis que encierra la expresin son obligatorios. La palabra especial else conjunto 2 es opcional.

Los smbolos que se utilizan en esta sentencia if son los siguientes:

M.C. Gerardo Leyva Soto

Electrnica

Pgina 35

Operador Operacin == Igual != No igual > Mayor que < Menor que >= Mayor que o igual a <= Menor que o igual a

Ejemplo 3.5.- Realice un programa que por medio de un push botn en el pin 5 del puerto D se encienda y se apague

SECCION DE PRCTICAS.
CBTis 118 ELECTRNICA PRACTICA No. 1 MANEJO DE BITS

Nombre del alumno Nombre de la materia Programacin del Microcontrolador Nombre del Maestro Duracin: Calificacin: Lugar : Laboratorio de Fecha: Electrnica. Objetivo Aprender las instrucciones bsicas que permitan manipular un bit Microcontrolador 18F4550, barra de leds, interruptor (PB), multmetro, resistencias de 330 capacitores (varios) cristal de 4MHz
Electrnica Pgina 36

Material y equipo:

M.C. Gerardo Leyva Soto

Fundamentos tericos:

Tener conocimientos bsicos necesarios en electrnica y microcontroladores para su realizacin Realizar un programa que encienda y apague un led, ubicado en la terminal RB7 del puerto B. El tiempo de encendido es de 1000 milisegundo y el de apagado de 300 milisegundos. 1. 2. 3. Arme el circuito que corresponde a la prctica. Desarrolle el programa que se le pide y grbelo en el microcontrolador. Pruebe su programa.

Instrucciones:

Procedimiento:

Se evaluara limpieza y orden en el circuito as como el buen Criterios y medios de funcionamiento de su programa. evaluacin Conclusiones:

PRACTICA No. 2

MANEJO DE ENTRADAS DIGITALES

Nombre del alumno Nombre de la materia Programacin del Microcontrolador Nombre del Maestro Duracin: Calificacin: Lugar : Laboratorio de Fecha: Electrnica. Objetivo Aprender las instrucciones bsicas que permitan manipular un bit Microcontrolador 18F4550, barra de leds, interruptor (PB), multmetro, resistencias de 330 capacitores (varios) cristal de 4MHz Tener conocimientos bsicos necesarios en electrnica y microcontroladores para su realizacin Basndose en la prctica anterior realice un programa que prenda y apague un led (RB0) con un interruptor conectado en
Electrnica Pgina 37

Material y equipo:

Fundamentos tericos:

Instrucciones:
M.C. Gerardo Leyva Soto

Procedimiento:

RD0. 4. Arme el circuito de la figura 4.1 que corresponde a la prctica. 5. Desarrolle el programa que se le pide y grbelo en el microcontrolador. 6. Pruebe su programa.

Se evaluara limpieza y orden en el circuito as como el buen Criterios y medios de funcionamiento de su programa. evaluacin Conclusiones:

M.C. Gerardo Leyva Soto

Electrnica

Pgina 38

Figura 4.1.- Circuito a implementar.

M.C. Gerardo Leyva Soto

Electrnica

Pgina 39

También podría gustarte