Sei sulla pagina 1di 7

http://www.micros-designs.com.

ar/tutorial-xc8-introduccion/

Introduccin
AGOSTO 22, 2012 | POSTED IN PROGRAMACIN PIC | COMENTARIOS DESACTIVADOS

Aqu se presenta un tutorial del compilador XC8 que pretende proporcionar los conocimientos bsicos para comenzar a desarrollar con el mismo, para ello daremos una introduccin de cmo es un microcontrolador PIC y su funcionamiento, los lenguajes de programacin y la ventaja de usar C, como crear un proyecto, la estructura de un programa en C y lo necesario para ir creando ejemplos. Espero sea de utilidad Licencia La misma se expresa al pie de cada articulo. Indice Introduccin al microcontrolador El lenguaje de programacin Comenzando a desarrollar en C Nuestro primer proyecto en un PIC18F4550 y XC8 Operadores, variables y estructura for Estructura if y arreglos de variables Introduccin al microcontrolador Un microcontrolador es un dispositivo electrnico capaz de ejecutar una secuencia de comandos previamente programados. Estos comandos son proyectados por el usuario utilizando algn lenguaje de programacin y luego grabados en la memoria del microcontrolador. Los microcontroladores PIC de gama baja poseen arquitectura Harvard, esto quiere decir que utilizan dos memorias distintas, una para almacenar las instrucciones y otra para manejar los datos. Entonces est compuesto principalmente por un procesador (CPU), memoria RAM, memoria ROM y buses de comunicaciones (cada tipo de memoria tiene un bus de datos, uno de direcciones y uno de control). Adicionalmente tambin dispone de puertos de entrada y salida, y diversos perifricos que nos facilitan el desarrollo tales como osciladores, temporizadores/contadores, mdulos de comunicacin serial y paralela, comparadores analgicos, conversores analgicos a digital, memoria eeprom, etc.

Pero vayamos por partes, as entenderemos como es su funcionamiento, igualmente cabe aclarar que seremos concisos, sin describir profundamente.

La memoria ROM es del tipo no voltil, esto significa que los datos almacenados no se pierden aunque no est energizada. Se destina principalmente a contener la lista de instrucciones que conforman la aplicacin, por ello suele llamarse memoria de programa y en microcontroladores de la actualidad ronda desde los 512 bytes a 128 kbytes, correspondientes a los de gama baja de Microchip. Son del tipo Flash, de bajo consumo, que se pueden escribir y leer, y de gran densidad de almacenamiento. Adems tienen la ventaja que permiten ser reprogramadas en circuito, sin necesidad de extraer el circuito integrado de la tarjeta. La memoria RAM, memoria voltil, es la destinada a guardar las variables y datos temporales que sern utilizados por el procesador para realizar clculos u otro tipo de operaciones lgicas. El espacio de direcciones de memoria RAM se divide en dos sectores: registros de propsito general (GPR), espacio destinado para crear variables por el usuario y variables propias del compilador; y registros de funciones especiales (SFR), espacio que contiene bits de configuracin y control de los perifricos del microcontrolador. En la actualidad se pueden encontrar microcontroladores con memoria RAM de unos 32 bytes hasta 4 kbytes. Un registro es una pequea porcin de la memoria y su tamao se mide generalmente en bits (8-bits, 16-bits, 32-bits). Est representado por un numero que denominamos direccin de memoria, pero dentro del lenguaje de programacin existe la posibilidad de asignarle un nombre, de esta manera es ms sencillo de manejar. El CPU o unidad central de procesamiento es el encargado de direccionar la memoria ROM, decodificar la instruccin y ejecutar la operacin que implica. El primer paso es leer la instruccin de la memoria, la posicin es controlada por un contador de programa ( PC) que almacena un nmero que identifica la posicin actual a ejecutar. La instruccin que el CPU lee desde la memoria es usada para determinar qu operacin debe hacer el CPU, en este paso hay una decodificacin, en donde la instruccin es dividida en partes que tienen significado para otras unidades del CPU. Despus de los pasos de lectura y decodificacin, es llevado a cabo el paso de la ejecucin de la instruccin. Durante este paso, varias unidades del CPU son conectadas de tal manera que ellas pueden realizar la operacin deseada. Si, por ejemplo, una operacin de adicin fue solicitada, una unidad aritmtico lgica (ALU) ser conectada a un conjunto de entradas (nmeros a ser sumados) y un conjunto de salidas (suma). Luego el paso final, simplemente la obtencin del resultado, escribindolo en un registro interno del CPU de acceso rpido, modificando un registro de la memoria RAM o modificando el contador de programa para generar saltos o bucles, etc.

La siguiente animacin intenta dar a comprender como es el funcionamiento, pero tener en cuenta que es muy genrica:

Actualmente existen 3 tipos de arquitectura: CISC (Computadores de juego de instrucciones complejo): Disponen de un conjunto amplio de instrucciones donde muchas de ellas son complejas, permitiendo realizar operaciones sofisticadas y potentes, pero que ocupan varios ciclos. RISC (Computadores de juego de instrucciones reducido): En este caso el repertorio de instrucciones mnimo y muy sencillo, y generalmente ocupa entre 1 o 2 ciclos. La ventaja de stos es que la sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador.

SISC (Computadores de juego de instrucciones especficos): Se utiliza para microcontroladores destinados a aplicaciones concretas, donde el set de instrucciones es reducido y especfico para las tareas a desarrollar, adaptndose a las necesidades de la aplicacin prevista. Los microcontroladores de gama baja de Microchip se basan en la arquitectura RISC, con 35 instrucciones para los 16F y 75 instrucciones para los 18F, en este ltimo caso parecen muchas pero son simples y que ocupan pocos ciclos. El PIC18F4550 Ahora tenemos un conocimiento general de que compone un microcontrolador y como es su funcionamiento, as que pasaremos a uno puntual. En este tutorial nos basaremos en el microcontrolador PIC18F4550 de la familia PIC18 de Microchip que tiene las siguientes caractersticas bsicas:

Arquitectura RISC avanzada Harvard de 16-bits con 8-bits de datos. Mxima frecuencia de operacin 48 MHz, 12 MIPS. Memoria de programa de 32 kBytes. Memoria RAM de 2 kBytes. Memoria EEPROM de 256 Bytes. Multiplicador por hardware de 88 Pila de 32 niveles. 2 niveles de prioridad para las interrupciones. 20 fuentes de interrupcin. 4 temporizadores. 2 comparadores analgicos. 13 canales de conversin analgica. Comunicacin UART, SPI, I2C, USB. PLL y oscilador interno de 8 MHz. En el mismo datasheet podemos encontrar el siguiente diagrama de bloques de su estructura interna:

Su memoria de programa de de 32768 bytes, pero las instrucciones ocupan 2 bytes (excepto call, goto, movff, lsfr que ocupan 4), por lo que se pueden almacenar hasta 16384 instrucciones como mximo. Las direcciones especiales son 000 que corresponde al reset del microcontrolador, 008correspondiente a la interrupcin de alta prioridad y 018 correspondiente a la interrupcin de baja

prioridad. Las prioridades de interrupciones pueden no habilitarse y comportarse como un PIC16F, o habilitarse y cada fuente de interrupcin (excepto la interrupcin externa por RB0, solo es de alta prioridad) tiene un bit que la configura como de alta prioridad o baja prioridad.

La memoria RAM es de 2048 bytes, 8 bancos de 256 bytes donde 4 de ellos son utilizados por el mdulo USB en caso de utilizarlo. Adems se tiene 160 bytes dedicados a los registros de funciones especiales utilizados para la configuracin de los mdulos del microcontrolador.

Fsicamente es

un

dispositivo de 40/44 pines donde, excepto los de alimentacin, los pines tienen varias funciones segn como se lo configure. Se puede encontrar con los package TQFP, QFN o DIP. Este ltimo, el ms utilizado para el aprendizaje y los hobbystas, tiene el siguiente pinout:

Hay mucho ms por agregar respecto a este microcontrolador, pero no es la intensin de este tutorial, para profundizar ms es recomendable leer el datasheet. Continuar

Potrebbero piacerti anche