You are on page 1of 35

Facilitador: Ing.

Paúl Romero

Riobamba, Marzo 2009

PIC de Microchip
Nomenclatura

Un microcontrolador se identifica por su nombre, y este tiene varias partes. Marca Gama Memoria-Programable Modelo Frecuencia Marca: Fabricante o tipo de microcontrolador.  Gama: escala de microcontroladores(14 baja, 16 media, 18 alta).  Memoria Programable: Tipo de memoria para el área de programa (F Flash, el micro se puede reprogramar, C el micro se puede programar una sola vez).  Modelo: modelo del microcontrolador.  Frecuencia: máxima frecuencia que soporta el microcontrolador usando reloj externo (en MHz). Ejemplo, modelo de microcontrolador: PIC16F628/04
Marca Gama Memoria-Programable Modelo Frecuencia PIC 16 F 628 /04 Marca: PIC es el tipo de microcontrolador, fabricado por MicroChip. Gama: 16 indica la gama, este chip es de gama media. Memoria Programable: F memoria Flash. Modelo: 628. Frecuencia: 04 MHz.

PIC16F628 Comentarios del Modelo

Es uno de los modelos estrella de MicroChip, siendo además el sucesor del anterior modelo más importante (y todavía vigente) 16F84. Siendo un micro de la gama media tiene varias funcionalidades incorporadas que describiremos más adelante. Es comercializado en 3 versiones que soportan velocidades de reloj diferentes, 4 MHz, 10 MHz y 20 MHz.

Los PIC16F62X son chips de 18 pines, basados en memoria FLASH, miembros de la versátil familia de chips de alta performance, bajo costo PIC16CXX que tienen entre sus características relevantes utilizar tecnología CMOS, ser microcontroladores de 8 bits, soportar interrupciones externas e internas y ser reprogramables. Estos microcontroladores tienen características especiales que permiten la reducción de componentes externos, y por lo tanto la reducción de costos, reforzando la confiabilidad y reduciendo el consumo eléctrico.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

En la actualidad un microcontrolador está creado con 3 tipos de memoria:    RAM EEPROM FLASH .DISPOSITIVOS DE MEMORIA MEMORIA La memoria es el sitio donde se almacenan los datos e instrucciones a ser procesadas en la unidad central del un microcontrolador.

Todo lo que se almacena en la RAM se pierde al cortar la energía. Memory) MEMORIA RAM (Random Access La memoria RAM es la parte de la memoria que un microcontrolador utiliza para almacenar variables temporales en tiempo de ejecución. .

A diferencia de la RAM.000 de veces. la EEPROM mantiene la información aún cuando el PIC no esté alimentado. sólo puede ser borrada y reprogramada entre 100.EEPROM (Electrically-Erasable Programmable Read-Only Memory) Es en esta memoria donde se almacenan los datos permanentes que se deseen guardar. Aunque una EEPROM puede ser leída un número ilimitado de veces.000.000 y 1. .

permiten un acceso más rápido .FLASH Es en esta memoria es donde. se almacena el programa. La Memoria flash es una forma evolucionada de las memorias EPROM Y EEPROM no volátil. Tienen la ventaja de que sus posiciones de memoria pueden ser programadas y borradas mediante impulsos eléctricos muchas veces.

LENGUAJES DE PROGRAMACION DE MICROCONTROLADORES Un lenguaje de programación es una herramienta que permite realizar el programa de control que un microcontrolador debe ejecutar. .

W 0x0006 : 0x0183 clrf 0x03 0x0007 : 0x00A1 movwf 0x21 0x0008 : 0x087F movf 0x7F . W 0x000B : 0x00A8 movwf 0x28 . W 0x0009 : 0x00A0 movwf 0x20 0x000A : 0x080A movf 0x0A . 0x0000 : 0x3000 movlw 0x00 0x0001 : 0x008A movwf 0x0A 0x0002 : 0x2978 goto 0x178 0x0003 : 0x0000 nop 0x0004 : 0x00FF movwf 0x7F 0x0005 : 0x0E03 swapf 0x03 .Lenguaje de máquina Es una secuencia de bytes que el microcontrolador interpreta como un programa y los ejecuta paso a paso.

Debido a estos motivos.Sin embargo. esta secuencia de bytes es difícilmente entendible por el humano. aparecen diferentes lenguajes de Programación. de bajo nivel y de alto nivel. . por lo que cada código de comando tiene una traducción directa a un lenguaje de texto.

consiste en un set de instrucciones equivalentes a la codificación HEX. extensión ASM. es decir. con mucha cercanía al microcontrolador y poca al humano.Lenguaje de Bajo Nivel ASSEMBLER Es un lenguaje de bajo nivel. HEX ASM 0x3000 movlw 0x00 El lenguaje Assembler. genera archivos con . una numeración corresponde a una instrucción de texto. Por ejemplo.

VARIABLES * .ASM Suma dos números almacenados en la memoria de datos * Autor: Paúl Romero Fecha: .************************************************************************ #INCLUDE <P16F628A.fin del bloque de memoria .W .dirección inicial de la memoria de programa GOTO INICIO .SUMA.definición de nombres y direcciones de las variables usadas por el sistema CBLOCK 0x20 . siendo el compilador el encargado de traducir dicho programa a Assembler.ARCHIVO PADRON MICROCHIP PARA 16F628A __CONFIG _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _INTRC_OSC_NOCLKOUT .************************************************************************ .W => OPERADOR_2 MOVFW OPERADOR_1 .W => OPERADOR_1 MOVLW D'6' . que permiten escribir los programas en un lenguaje mucho más descifrable. W + OPERADOR => W MOVWF RESULTADO .9 => W MOVWF OPERADOR_1 . INICIO DEL PROGRAMA * .OPERADOR_1 => W ADDWF OPERADOR_2. esta mas cercano hacia el microcontrolador que hacia el ser humano.analógico MOVLW D'9' .6 => W MOVWF OPERADOR_2 .define el modo de operación del comparador .direccion inicial de la memoria del usuario OPERADOR_1 OPERADOR_2 RESULTADO ENDC .************************************************************************ INICIO MOVLW B'00000111' MOVWF CMCON .INC> .W => RESULTADO END . es por ello por lo que aparecen los lenguajes de alto nivel y los compiladores.A continuación un ejemplo de programa en Assembler para un microcontrolador de la familia PIC: .************************************************************************ ORG 0x00 .indica fin del programa El lenguaje ASM.************************************************************************ .************************************************************************ . .

Ejemplos de lenguajes de alto nivel son:    C Basic Pascal . El objetivo de un Lenguaje de alto nivel es facilitar la comprensión al humano.Lenguaje de alto nivel Es un lenguaje de programación en el que no existe una traslación directa de cada instrucción con comandos de lenguaje máquina. Las instrucciones en un lenguaje de alto nivel pueden llegar a traducirse por macros complejas en lenguaje máquina. disminuyendo el tiempo de desarrollo de las aplicaciones y facilitando su depuración.

o Assembler. Familia Tipo Lenguaje CCS PCW C Compiladores Hitech PCC MikroC IAR Workbench Pic Basic PRO PBP P I C BASIC PASCAL Proton Plus MikroBasic MikroPascal .Un compilador acepta programas escritos en un Lenguaje de alto nivel y los traduce a Lenguaje de máquina.

.A continuación. se hace referencia al proceso de programación de un microcontrolador en un lenguaje de alto nivel.

Arquitectura  La distribución de las patas de un chip de este modelo es la que sigue: .

.

.

.

la imaginación que el conocimiento” A.“Es más importante. Einstein .