Microcontrolador Pic16f628 e Instrucciones Gama Media

download Microcontrolador Pic16f628 e Instrucciones Gama Media

of 35

Transcript of Microcontrolador Pic16f628 e Instrucciones Gama Media

  • Facilitador: Ing. Pal RomeroRiobamba, Marzo 2009

  • PIC de MicrochipNomenclaturaUn microcontrolador se identifica por su nombre, y este tiene varias partes.MarcaGamaMemoria-ProgramableModeloFrecuencia

    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: mxima frecuencia que soporta el microcontrolador usando reloj externo (en MHz).Ejemplo, modelo de microcontrolador: PIC16F628/04MarcaGamaMemoria-ProgramableModeloFrecuenciaPIC16F628/04Marca: 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.

  • PIC16F628Comentarios del ModeloEs uno de los modelos estrella de MicroChip, siendo adems el sucesor del anterior modelo ms importante (y todava vigente) 16F84.

    Siendo un micro de la gama media tiene varias funcionalidades incorporadas que describiremos ms 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 verstil familia de chips de alta performance, bajo costo PIC16CXX que tienen entre sus caractersticas relevantes utilizar tecnologa CMOS, ser microcontroladores de 8 bits, soportar interrupciones externas e internas y ser reprogramables.

    Estos microcontroladores tienen caractersticas especiales que permiten la reduccin de componentes externos, y por lo tanto la reduccin de costos, reforzando la confiabilidad y reduciendo el consumo elctrico.

  • MEMORIALa memoria es el sitio donde se almacenan los datos e instrucciones a ser procesadas en la unidad central del un microcontrolador. En la actualidad un microcontrolador est creado con 3 tipos de memoria:

    RAM EEPROM FLASHDISPOSITIVOS DE MEMORIA

  • MEMORIA RAM (Random Access Memory)La memoria RAM es la parte de la memoria que un microcontrolador utiliza para almacenar variables temporales en tiempo de ejecucin. Todo lo que se almacena en la RAM se pierde al cortar la energa.

  • 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 leda un nmero ilimitado de veces, slo puede ser borrada y reprogramada entre 100.000 y 1.000.000 de veces.

    A diferencia de la RAM, la EEPROM mantiene la informacin an cuando el PIC no est alimentado.

  • 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 voltil. Tienen la ventaja de que sus posiciones de memoria pueden ser programadas y borradas mediante impulsos elctricos muchas veces, permiten un acceso ms rpido

  • LENGUAJES DE PROGRAMACION DE MICROCONTROLADORESUn lenguaje de programacin es una herramienta que permite realizar el programa de control que un microcontrolador debe ejecutar.

  • Lenguaje de mquina

    Es una secuencia de bytes que el microcontrolador interpreta como un programa y los ejecuta paso a paso. 0x0000: 0x3000 movlw 0x000x0001: 0x008A movwf 0x0A0x0002: 0x2978 goto 0x1780x0003: 0x0000 nop 0x0004: 0x00FF movwf 0x7F0x0005: 0x0E03 swapf 0x03 , W0x0006: 0x0183 clrf 0x030x0007: 0x00A1 movwf 0x210x0008: 0x087F movf 0x7F , W0x0009: 0x00A0 movwf 0x200x000A: 0x080A movf 0x0A , W0x000B: 0x00A8 movwf 0x28

  • Sin embargo, esta secuencia de bytes es difcilmente entendible por el humano, por lo que cada cdigo de comando tiene una traduccin directa a un lenguaje de texto. Debido a estos motivos, aparecen diferentes lenguajes de Programacin, de bajo nivel y de alto nivel.

  • Lenguaje de Bajo Nivel ASSEMBLEREs un lenguaje de bajo nivel, con mucha cercana al microcontrolador y poca al humano, consiste en un set de instrucciones equivalentes a la codificacin HEX, es decir, una numeracin corresponde a una instruccin de texto. Por ejemplo; HEX ASM0x3000 movlw 0x00

    El lenguaje Assembler, genera archivos con extensin ASM.

  • A continuacin un ejemplo de programa en Assembler para un microcontrolador de la familia PIC:

    El lenguaje ASM, esta mas cercano hacia el microcontrolador que hacia el ser humano, es por ello por lo que aparecen los lenguajes de alto nivel y los compiladores, que permiten escribir los programas en un lenguaje mucho ms descifrable, siendo el compilador el encargado de traducir dicho programa a Assembler.;SUMA.ASM Suma dos nmeros almacenados en la memoria de datos *Autor: Pal Romero Fecha:;************************************************************************#INCLUDE ;ARCHIVO PADRON MICROCHIP PARA 16F628A__CONFIG _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _INTRC_OSC_NOCLKOUT;************************************************************************; VARIABLES *;************************************************************************;definicin de nombres y direcciones de las variables usadas por el sistemaCBLOCK 0x20 ;direccion inicial de la memoria del usuarioOPERADOR_1OPERADOR_2RESULTADOENDC ;fin del bloque de memoria;************************************************************************ORG 0x00 ;direccin inicial de la memoria de programaGOTO INICIO ;************************************************************************ ; INICIO DEL PROGRAMA *;************************************************************************INICIOMOVLW B'00000111'MOVWF CMCON ;define el modo de operacin del comparador ;analgicoMOVLW D'9' ;9 => WMOVWF OPERADOR_1 ;W => OPERADOR_1MOVLW D'6' ;6 => WMOVWF OPERADOR_2 ;W => OPERADOR_2MOVFW OPERADOR_1 ;OPERADOR_1 => WADDWF OPERADOR_2,W ; W + OPERADOR => WMOVWF RESULTADO ;W => RESULTADO END ;indica fin del programa

  • Lenguaje de alto nivelEs un lenguaje de programacin en el que no existe una traslacin directa de cada instruccin con comandos de lenguaje mquina. Las instrucciones en un lenguaje de alto nivel pueden llegar a traducirse por macros complejas en lenguaje mquina. El objetivo de un Lenguaje de alto nivel es facilitar la comprensin al humano, disminuyendo el tiempo de desarrollo de las aplicaciones y facilitando su depuracin. Ejemplos de lenguajes de alto nivel son:

    C Basic Pascal

  • Un compilador acepta programas escritos en un Lenguaje de alto nivel y los traduce a Lenguaje de mquina, o Assembler.

    FamiliaTipo LenguajeCompiladoresPICCCCS PCWHitech PCCMikroCIAR WorkbenchBASICPic Basic PRO PBPProton PlusMikroBasicPASCALMikroPascal

  • A continuacin, se hace referencia al proceso de programacin de un microcontrolador en un lenguaje de alto nivel.

  • ArquitecturaLa distribucin de las patas de un chip de este modelo es la que sigue:

  • Es ms importante, la imaginacin que el conocimiento A. Einstein