Manual PICC

Embed Size (px)

Citation preview

  • 5/28/2018 Manual PICC

    1/14

    MIGUEL TORRES TORRITI 3.6. Circuito del Ejemplo 1.

    En la figura 6 se muestra el circuito parael Ejemplo 1. Con excepcin de loscomponentes conectados a RB7 (pin 13),los cuales corresponden a elementos

    especficos del ejemplo, el resto de loscomponentes constituyen la circuiteramnima para el funcionamiento delPIC16F84.El LED conectado a RB7 se encenderde acuerdo al estado de la variable leden el cdigo del Programa del microcontrolador. Cuando el estado lgico dela variable led es 1, un voltaje de 5 Vser aplicado al LED. Para limitar elexceso de corriente que podra daar elLED o el puerto del PIC se coloca una

    resistencia en serie con el LED. Unaconfiguracin alternativa es conectardesde Vdd (5 V) el LED en serie con laresistencia a RB7. Esto causara que elLED se encienda cuando la variable ledtenga un estado lgico 0. Al disear otrasaplicaciones es importante tenerpresente la corriente mxima que puedeentregar o recibir un pin en el caso de lalgica positiva o negativa,respectivamente.4. Ejemplo 2: Programacin en PICC Lite

    4.1. Descripcin.Este ejemplo ilustra la respuesta aestmulos externos utilizandointerrupciones implementada en lenguajeC para el compilador PICC Lite. Elprograma permite encender y apagar unLED al presionar un botn pulsador.Antes de encender o apagar el LED esteparpadea tres veces anunciando elcambio de estado.4.2. Paso 1: Instalacin y Configuracindel Compilador PICC Lite.

    (1) Obtenga el MPLAB IDE en:http://www.microchip.com/(2) Instale el MPLAB siguiendo todos losde la instalacin.(3) Obtenga el compilador PICC Lite en:http://www.htsoft.com/products/compilers

    /PICClite.php(4) Instale el compilador siguiendo todoslos pasos de la instalacin.

    Figura 6. Circuito del ejemplo 1.

    (5) Una vez instalado el PICC Lite, inicie

    el MPLAB IDE y actualice la lista decompiladores para que funcione juntocon PICC Lite mediante los siguientespasos:(a) En la opcin de la barra de men elijaProject/Set Language Tool Locations/HI-TECH Universal Toolsuite...(b) Elija la opcin HI-TECH UniversalToolSuite/Executables/HI-TECH/CCompiler y fije la ubicacin donde instaloel compilador picl.exe, por ejemplo:C:\Program\Files\HI-

    TECH\Software\PICC\lite\9.60\bin\picl.ex(c) Si es necesario agregue la ubicacindonde se ubiquen archivos include (.h)bajo la opcin HI-TECH UniversalToolSuite/Default Search Path &Directories/Include Search Path. 4.3.

    Paso 2: Creacin del Proyecto enMPLAB IDE.(1) Cree un directorio donde guardara losarchivos del proyecto, por ejemplo: ej2.(2) Copie los archivos delay.h y delay.c

    ubicados en la directorio:C:\Program\Files\HI-TECH\Software\PICC\lite\9.60\sampleso donde haya instalado PICC Lite a lacarpeta del proyecto que creo en el pasoanterior.(3) Elija la opcin de la barra de menProject/Project Wizard y luego presioneNext.

  • 5/28/2018 Manual PICC

    2/14

    (4) Elija elC seleccionando PIC16F84A.(5) Elija la herramienta de compilacinactiva HI-TECH Universal ToolSuite yactualice la ubicacin del compilador deser necesario.(6) Escriba el nombre del proyecto, por

    ejemplo:ej2, y luego fije la ubicacin deldirectorio del proyecto creado en el paso1.(7) Seleccione los archivos delay.h ydelay.c, y agrguelos al proyecto con elbotn Add.(8) Si todas las opciones elegidas estn

    conformes, presiones Next, de locontrario retroceda a los pasos anterioresy haga las correcciones necesarias.(9) Elija la opcin de la barra de menFile/New para crear el archivo quecontendr el programa del ejemplo.

    Escriba el cdigo que se muestra acontinuacin y guarde el archivo conextensin .c, por ejemplo con el nombreej2.c en el directorio del proyecto. Paraguardar el archivo utilice la opcinFile/Save As.

    1: #include 2: #include "delay.h"3:4: // Configuration Bits (a.k.a.Fuses)5: // Estas lneas sonopcionales, ya que se puedenfijar externamente6: // en MPLAB IDE bajo la opcinde la barra de men7: // 8: // Definiciones:9: // RC/HS/XT/LP: Oscilador RC,High-speed XTAL, XTAL, Low-powerXTAL10: // WDT: Watchdog Timer(EN/DIS: Enable, Disable)

    11: // PWRT: Power-up Timer(EN/DIS: Enable, Disable)12: // PROTECT: Code writeprotection13:__CONFIG(XT&WDTDIS&PWRTDIS&PROTECT);14://__CONFIG(RC&WDTEN&PWRTEN&UNPROTECT);15:16: //#define XTAL_FREQ 20MHZ17:

    18: #define PORTBIT(adr, bit)((unsigned)(&adr)*8+(bit))19:20: // Variables Globales21: static volatile bit led @PORTBIT(PORTB,7);22: static volatile bit boton =0;23:24: // Funcion Interrupcion

    25: static void interruptisr(void)26: {27: if(INTF){ // -- FlagInterrupcin en pin INT --28: // INTE = 0; // Deshabilitainterrupciones en pin INT29: boton = 1; // Botonpresionado30: INTF = 0; // Limpia flag deinterrupcin INTF31: }32: }33:34: // Rutina Parpadeo35: void blink(void){ // Parpadea

    el una veces antes de cambiar36: // de estado

    37: char i;38: for(i=0;i

  • 5/28/2018 Manual PICC

    3/14

    58: // (en alta impedancia).59: INTE = 1; // Habilitacion deinterrupciones externas.60: GIE = 1; // Habilitacionglobal de interrupciones.61: // ei(); // Habilita todoslos tipos de interruptciones62: // di(); // Deshabilita todaslas interrupciones63:64: for(;;){ // -- Loop sin fin --

    65: if(boton){ // Botonpresionado66: boton = 0; // Limpia flag delboton presionado67: led = !led; // Cambia elestado del led68: DelayUs(10); // Espera 10microsegundos69: blink();70: // INTE = 1; // Habilitainterrupciones en pin INT71: }72: }73: }

    Comentarios Generales del Programa:En la lnea 1 se incluye las definicionesgenerales para la compilacinempleando PICC Lite. Estas definiciones

    especifican direcciones de memoria deprograma, interrupciones, puertos deentrada y salida de cada C..En la lnea 2 se incluye el archivo delay.hespecifico a este ejemplo con lasdefiniciones de las funciones de retardodelayUs() y delayMs(). Estas funcionesreciben como argumento un nmeroentero entre 0 y 255 para generarretardos de microsegundos omilisegundos, respectivamente. En elcaso de la funcin delayUs() se

    recomienda utilizar valores bastantemenores a 255.En lenguaje C // indica el inicio de uncomentario en una lnea. Comentarios demltiples lneas pueden realizarsecolocando /* al inicio y */ al final de laseccin de comentarios.En la lnea 13 se utiliza la macro

    __CONFIG() para fijar los bits deconfiguracin tambin conocidos comofuses (fusibles). Estos indican al C eltipo de oscilador, tpicamente un cristal(XT), la habilitacin del Watchdog Timer,la habilitacin delPower-up Timer y la

    proteccin contra escritura de lamemoria. Esta lnea es opcional, si no sefija en el programa, los bits deconfiguracin debern fijarse mediantela opcin Configure/Configuration Bits...de la barra de men.

    La lnea 16 muestra la manera de definirla frecuencia del cristal. Esta opcin yafue agregada a las opciones decompilacin, por lo que no es necesaria

    en el cdigo. Si se quisiese definir en elcdigo, deber removerse de lasopciones de compilacin y colocarseantes de los #include , ya que esrequerida por las rutinas de retardoespecificadas en delay.h.La lnea 18 permite indicar un bitespecifico de una direccin de memoriaadr mediante el texto PORT(adr, bit).Como las direcciones de memoria sonbytes, el valor de bitpuede estar entre 0

    y 7.

    En la lnea 21 se utiliza la definicinPORT(adr, bit)para asignar el bit 7 delpuerto B a la variable led, es decir lavariable led est asociada a RB7 en el

    pin 13. La variable botn se define demanera similar en la lnea 22 y seemplea ms adelante para indicar si el

    pulsador ha sido presionado o no. Ambasvariables son declaradas como staticvolatile bit. El tipo bit indica que son unbit de un registro.El calificador volatile se utiliza paraindicar al compilador que no estgarantizado que la variables retendrn suvalor entre llamadas sucesivas. Estoevita que el optimizador elimine mltiplesreferencias a las variables que de otromodo pudiesen ser consideradasredundantes, ya que eliminarlas podraalterar el comportamiento del programa.Todas las variables que estn asociadas

  • 5/28/2018 Manual PICC

    4/14

    a puertos (pines) de entrada/salida o queson modificadas en rutinas deinterrupcin siempre deben serdeclaradas volatile. El calificador static seemplea para indicar al compilador quereserve una posicin fija de la RAM para

    almacenar la variable. Aquellas variablesque no son static se crean en posicionesque son asignadas en forma dinmica amedida que se necesitan.Entre las lneas 25 y 32 se define lafuncin interrupcin isr(void) empleandoel calificador interrupt. El nombre de lafuncin no tiene importancia. La funcininterrupcin es ejecutada cuando ocurrecualquiera de las interrupciones posibles,

    por ejemplo un overflow del timer o uncambio de estado en el pin RB0. La

    variable INTF (flag de interrupcin)cambiara de 0 a 1 cuando se produceuna interrupcin externa en RB0 (pin 4).Otros flags de interrupcin son el deltimer (T0IF) y las interrupciones porcambio de estado en alguno de los pines4, 5, 6 o 7 del puerto B (RBIF). Todosestos flags, as como los bits dehabilitacin de interrupciones GIE, INTE,

    T0IE, RBIE, son bits del registroINTCON. Ms informacin sobre lasinterrupciones y su manejo se puedenencontrar en la hoja de especificacionesdel C PIC16F84 o tambin en:http://www.mikroe.com/en/books/picbook/

    2_07chapter.htmEn el cdigo del programa la funcin deinterrupcin se encarga de reconocer elevento colocando nuevamente en 0 elflag de interrupcin INTF y colocando lavariable botn en 1 para indicar que elbotn fue presionado.La des habilitacin de la interrupcionesse puede realizar fijando INTE en 0 comose muestra en la lnea 28. Sin embargo,en la prctica las funciones de retardohacen innecesaria la lnea 28, por esta

    razn ha sido comentada. El propsito dedeshabilitar las interrupciones externases evitar nuevas interrupciones porrebotes del botn pulsador. El rebote deun botn se refiere a las oscilaciones quese producen antes de que el botn secierre completamente y la tensin senivele en su valor final. Este fenmenose muestra en la figura 7.

    Figura 7. Rebote del botn.

    Las funcin blink(void) se utiliza parahacer parpadear el led cambiando suestado repetidas veces por periodos detiempo controlados por la funcinDelayMs(...).La funcin main(void) contiene parte del

    programa principal. En primer lugar seenciende el LED colocando su estado en1 (lnea 54). En la lnea 57 se fija el pinRB0 como una entrada. El registro

    TRISB se utiliza para indicar los pines delpuerto B que son de alta impedancia(entradas). Siempre al iniciar todo

    programa es importante fijar los bits quesern utilizados como entradas de lospuertos A y B. Esto se realiza asignandoun 1 a los bits correspondientes de losregistros TRISA y TRISB. Luego sehabilitan las interrupciones (lneas 59 y60). Una alternativa es utilizar la funcinei() comentada en la lnea 61.Por ltimo se inicia un loop sin fin, el cual

    permanentemente est detectando elestado de la variable botn, la cualcambiara a 1 si ocurre una interrupcin

    externa. De ser as, se reconoce que elbotn pulsador fue presionado colocandola variable de estado botn nuevamenteen 0. Luego, el estado de la variable ledse invierte mediante el operador ! denegacin, es decir si estaba en 0 secoloca en 1, y si estaba en 1 se colocaen 0. Antes de cambiar de estadofinalmente, se hacer parpadear al LED

  • 5/28/2018 Manual PICC

    5/14

    invocando la funcin blink(void) creadapara dicho propsito.La lnea para volver habilitar lasinterrupciones (lnea 70) fue comentada,

    puesto que estas no son deshabilitadasen ningn momento. Si estas fuese

    deshabilitadas por la funcin interrupcinen la lnea 28, entonces sera necesariovolverlas a habilitar en la lnea 70 para

    poder reconocer nuevas interrupciones.

    (10) Agregue el archivo con el cdigo enlenguaje C (creado en el paso anterior alproyecto) empleando la opcinProject/Add Files to Project..., y

    seleccione el archivoej2.c creado en elpaso anterior. Verifique que el tipo dearchivo esta fijado en Source (*.c, *.as) yque la opcin Auto esta seleccionada.Presione Open, esto deber agregar elarchivo a a seccin Source Files en la

    ventana con la lista de archivos delproyecto. Otra manera de agregar unarchivo es seleccionando con el botnderecho del mouse la seccin deseadaen la lista de archivo del proyecto. Eneste caso, la seccin sera Source Files.Del men desplegado elija la opcin AddFiles y siga los pasos ya explicados eneste punto para seleccionar el archivo.

    (11) De la lista de archivos del proyecto,seleccione con el botn derecho delmouse el ttulo del proyecto, por ejemplo

    ej2.mcb. Del men desplegado elija laopcin Save para grabar el proyecto.

    4.4. Paso 3: Compilacin del Proyectocon PICC Lite.(1) Seleccione la opcin Project/BuildOptions.../Project. Luego seleccione laseccin Compiler y agregue la siguientedefinicin de macro:XTAL_FREQ=20MHZEsto agregara la opcin de compilacin -DXTRAL_FREQ=20MHZ (ver el paso

    siguiente).Alternativamente puede definir la macrocon el pragma:#define XTAL_FREQ 20MHZantes de colocar las lneas #include# en el cdigo del programa.La definicin de esta macro es necesariapara ajustar el ciclo de operacin de lasrutinas de retardo a la frecuencia delcristal oscilador.(2) Existen dos opciones para compilar elprograma:

    MPLAB IDE: Para compilar el proyectoseleccione la opcin de la barra demen Project/Build o presione las teclasCTRL+F10. Se abrir una ventana conel nombre Output, la cual mostrara elestado de la compilacin. Lnea de Comando: Para compilar elproyecto para la versin actual delPIC16F84, el PIC16F84A, con un cristal

    de 20 MHz desde la lnea de comandoen una ventana DOS ejecute lassiguientes instrucciones:

    picl --chip=16F84A -DXTAL_FREQ=20MHZ -C delay.cpicl --chip=16F84A -DXTAL_FREQ=20MHZ -C ej2.cpicl --chip=16F84A -DXTAL_FREQ=20MHZ -oej2.cof-mej2.map delay.obj ej2.objAlternativamente puede ejecutar lasinstrucciones con ms opciones, porejemplo, fijando el formato de losmensajes de error y advertencias, lageneracin de cdigo Assembly,

    definiendo el tipo de dato para loscaracteres, etc., como se muestra acontinuacin.picl -q -g --asmlist --chip=16F84A"--errformat=Error [%n] %f; %l.%c %s""--msgformat=Advisory[%n] %s""--warnformat=Warning [%n] %f; %l.%c%s"-P --char=unsigned-DXTAL_FREQ=20MHZ -C delay.cpicl -q -g --asmlist --chip=16F84A"--errformat=Error [%n] %f; %l.%c %s"

    "--msgformat=Advisory[%n] %s""--warnformat=Warning [%n] %f; %l.%c%s"-P --char=unsigned-DXTAL_FREQ=20MHZ -C ej2.cpicl -q -g --asmlist --chip=16F84A"--errformat=Error [%n] %f; %l.%c %s""--msgformat=Advisory[%n] %s"

  • 5/28/2018 Manual PICC

    6/14

    "--warnformat=Warning [%n] %f; %l.%c%s"-P --char=unsigned-DXTAL_FREQ=20MHZ -oej2.cof -mej2.map delay.obj ej2.objEs importante considerar que las lneas

    anteriores deben ser ejecutadas en unasola lnea. Por razones de espacio estasfueron divididas en tres lneas en estedocumento.En ambos casos la compilacin seejecutar por partes, primero de losarchivos con las definiciones para lasfunciones de retardo delayUs() ydelayMs(). Luego se compila el cdigoprincipal del ejemplo. Finalmente, serealiza el proceso de unin (linking)de los cdigos objetos delay.obj y ej2.obj

    para generar el archivo ej2.hex con elcdigo de mquina para el C. En todoslos casos la compilacin se realiza contodas las optimizaciones (espacio,velocidad, Assembler) activas. Esimportante que estas estn activas paraeste ejemplo, ya que las funciones deretardo las requieren. En otros casos, esposible desactivar o controlar el nivel deoptimizaciones con la opcin--OPT, donde puedetomar distintos valores que se

    especifican en el manual del compiladorPICC Lite.4.5. Paso 4: Programacin delC.Puede programar el C usando elMPLAB IDE si posee algn programadorMicrochip como el PICSTART Plus. Acontinuacin se explican los pasos deprogramacin desde MPLAB IDEasumiendo que ha realizado los pasosdescritos en la etapa de creacin delproyecto y compilacin. Si el archivo .hexfue creado usando el PICC mediante

    compilacin fuera del ambiente MPLABIDE, deber entonces realizar lossiguientes pasos:(1) Verifique las opciones deconfiguracin de MPLAB IDE. Enparticular verifique en la opcinConfigure/Select Device... de la barra demen que el dispositivo corresponde al

    C PIC16F84 o 16F84A. Verifiquetambin que los bits de configuracin dela opcin Configure/Configuration Bits...de la barra de men son: Oscillator= XT,Watchdog Timer = Off, Power UpTimer = Off, Code Protect = On.

    (2) Seleccione el hardware programador,por ejemplo el PICSTART Plus,empleando la opcin Programmer/SelectProgrammer de la barra de men.(3) Borre la memoria delC presionandoel icono de pgina en blanco a C o laopcin Programmer/Erase Flash Devicede la barra de men.(4) Programe el dispositivo presionandoel icono de pgina llena (amarilla) aC ola opcin Programmer/Program de labarra de men.

    (5) Normalmente el programadorentregara un mensaje indicando si laprogramacin fue exitosa. Sin embargo,si desea verificar si efectivamente laprogramacin se realiz en formacorrecta, emplee el botn de verificacin(pgina con check) o la opcinProgrammer/Verify de la barra de men.Tambin puede ver los contenidos de lamemoria del C utilizando la opcinView/Program Memory de la barra demen. Si la programacin se realiz en

    forma correcta tanto el cdigo compiladocomo el cdigo ledo de vuelta del Cdeben tener el mismo checksum que semuestra en la barra de men del MPLABIDE.

    4.6. Circuito del Ejemplo 2.

    En la figura 8 se muestra el circuito parael Ejemplo 2. Como se puede apreciar enla figura, el circuito de este ejemplo esmuy similar al del Ejemplo 1. La nica

    modificacin al circuito del ejemploanterior es la adicin de un botnpulsador B1 entre 5 V y RB0/INT con unaresistencia Pull-Down R3. La resistenciaPull-Down mantiene el puerto en LOW(0), mientras el pulsador no seapresionado y cambie la seal a HIGH (1).Si se desea que la interrupcin se genereal soltar el botn, entonces debern

  • 5/28/2018 Manual PICC

    7/14

    intercambiarse la resistencia Pull-Downpor el botn pulsador.

    Figura 8. Circuito del ejemplo 2.

    5. Desarrollos ms all de esteDocumento existe una variedad deCs yposibles aplicaciones tan grande quepuede parecer abrumadora al punto dedificultar o confundir la decisin de cmoabordar nuevos temas y cul es el mejorcamino a seguir. En esta seccin sesugieren algunos caminos parainvolucrarse en el desarrollo deaplicaciones ms complejas.Para dominar el PIC16F84 u otros Cses esencial conocer y comprender a

    cabalidad la hoja de datos del Cprovista por el fabricante. Microchipprovee tambin de documentos llamados

    Application Notes (Notas de Aplicacin),los cuales describen tcnicasespecficas, aplicaciones y suimplementacin con un gran nivel dedetalles. Estos documentos son muyilustrativos, fciles de comprender ymantienen la rigurosidad tcnica de losfabricantes. Por otro lado, existe unagran cantidad de ejemplos y recursos en

    libros y la Internet. Consulte lasnumerosas referencias incluidas al finalde este documento. Se recomienda enparticular leer y hacer los ejemplospresentados en [11]. En la seccin deeducacin de Microchip tambin esposible encontrar referencias de varioslibros sobre losCs PIC [23].

    Las aplicaciones posibles del PIC16F84solo estn limitadas por la imaginacin.

    En Internet pueden encontrarseaplicaciones sorprendentementecreativas a pesar de la simplicidad y

    restricciones de esteC bsico.

    5.1. PIC16F87x.El PIC16F87x es el ms popular paraaplicaciones de nivel intermedio, y esuna excelente opcin cuando serequieren ms lneas de entrada/salida,convertidores A/D, seales PWM,comunicacin serial por hardware, entreotros aspectos. Existen versiones condistintas caractersticas como el tamaode la memoria y nmero de pines.

    Una vez que se ha dominadoadecuadamente el PIC16F84, adquirir losconocimientos para utilizar este nuevoPIC es considerablemente ms fcil. Elcosto de la versin PIC16F877, que es laque cuenta con ms caractersticas de laserie, es aproximadamente el doble queel del PIC16F84 con valores entorno aUSD $10 versus USD $ 5.

    5.2. Freescale MC68HC08.Otros fabricantes pueden tener productos

    considerablemente diferentes, tanto ensu funcionamiento, instrucciones de CPUo mtodo de programacin. Sin embargo,los Cs de nivel de entrada (entry-level)tienen mucho en comn. Este es el casode los Cs Freescale MC68HC08(originalmente Motorola HC08). Estosfueron introducidos al mercado paracompetir con los Cs de Microchip. Apesar que actualmente la popularidad ydisponibilidad de herramientas desoftware para estos Cs es an menor

    que la de los Cs PIC, esta familia dedispositivos tiene ciertos atractivos, comoun menor costo frente al PIC16F84,convertidores A/D en casi todas susversiones, seales PWM, osciladorinterno, y la disponibilidad gratuita delpopular entorno de desarrolloCodeWarrior. Adems estn disponiblesen encapsulados de 8 y 16 pines. Para

  • 5/28/2018 Manual PICC

    8/14

    mayor informacin consulte la seccin demicro controladores de Freescale(http://www.freescale.com/).

    AgradecimientosEste tutorial fue posible gracias a una

    versin anterior del tutorial preparad porJuan Pablo

    Cmo establecer PIC12F675bits de configuracin en elcdigo?

    Este mensaje proporciona el mtodo paraestablecer los bits de configuracin en elcdigo para el micro controladorPIC12F675. Usted tiene que fijar los bits de

    configuracin con el fin de hacer que el

    trabajo micro controlador PICcorrectamente. Aqu voy a explicar elprocedimiento de seleccin de los bits deconfiguracin para el PIC12F675. Un

    cdigo de ejemplo tpico para ajustar losbits de configuracin en el cdigo tambin

    se proporciona (usando MPLAB + HI-TECH C compilador). Se requieren lospasos siguientes para configurar los bits de

    configuracin para PIC12F675.

    Paso 1:

    El primer paso para empezar a escribir losbits de configuracin es comprobar"Caractersticas especiales de la CPU" enla seccin de la hoja de datos delPIC12F675. En esta seccin, captulo

    primero se trata de "bits deconfiguracin". Usted debe leer estaseccin y determinar cules son los valoresque usted quiere poner en los bits deconfiguracin.

    Paso 2:

    Abra el archivo "pic12f675.h" en el

    directorio " C: \ Archivos de programa \ HI-TECH Software \ PICC \ 9.83 \ include ". En el inicio de se definen este archivo deconfiguracin bits macros. Instantnea de

    estas macros se muestra a continuacin.

    http://www.freescale.com/http://www.freescale.com/http://www.freescale.com/http://saeedsolutions.blogspot.com/2012/06/how-to-set-pic12f675-configuration-bits.htmlhttp://saeedsolutions.blogspot.com/2012/06/how-to-set-pic12f675-configuration-bits.htmlhttp://saeedsolutions.blogspot.com/2012/06/how-to-set-pic12f675-configuration-bits.htmlhttp://saeedsolutions.blogspot.com/2012/06/how-to-set-pic12f675-configuration-bits.htmlhttp://saeedsolutions.blogspot.com/2012/06/how-to-set-pic12f675-configuration-bits.htmlhttp://saeedsolutions.blogspot.com/2012/06/how-to-set-pic12f675-configuration-bits.htmlhttp://www.freescale.com/
  • 5/28/2018 Manual PICC

    9/14

    Figura 1. Bits de configuracin configurar macros

    Paso 3:

    Aqu tenemos que elegir macrosadecuadas para ser utilizadas en el cdigopara configurar correctamente los bits deconfiguracin. En la figura anterior, esclaro que si quiero elegir oscilador internodel PIC12F675 con el mantenimiento deGP4 y GP5 como propsito general pines

    IO , entonces tengo que seleccionar lamacro FOSC_INTRCIO. Del mismo modo,para convertir watchdog off, WDTE_OFFmacro se puede utilizar. De esta manera se

    pueden seleccionar todas las macros.

    Para cada bit de configuracin quetenemos que elegir entre algunosmacros. Por ejemplo, para el temporizadorde vigilancia permitir a poco, tenemos queelegir entre WDTE_ON o WDTE_OFF. Siqueremos activar el temporizador devigilancia, entonces WDTE_ON macro sedebe utilizar en el cdigo. Pero si

    queremos desactivar la vigilancia,entonces WDTE_OFF macro se debeutilizar en el cdigo para establecer el bit

    de configuracin en consecuencia. Delmismo modo, puede seleccionar macrosadecuadas para otros bits deconfiguracin.

    CdigoPodemos programar los bits deconfiguracin en el cdigoutilizando__CONFIGmacro[1]. El cdigopara hacer un parpadeo del LED conPIC12F675 [2] A continuacin se muestraen la figura. Usted puede vercmo__CONFIG

    se utiliza macro aqu,para ajustar los bits de configuracin quedesee en el cdigo.

  • 5/28/2018 Manual PICC

    10/14

    Hay que colocar la__CONFIGmacro fuerade la funcin principal, preferiblemente enel inicio del archivo. Todas las macrosseleccionadas se separan con la Y (ANDoperador) en el cdigo. En este cdigo debits de configuracin seleccionados para

    PIC12F675 son [3], Oscilador interno se selecciona con GP4 y

    GP5 como pines IO. Watchdog est desactivado. Poder temporizador est activada. GP3/MCLR pin es utilizado como IO pin

    digital, en lugar de un pin de reset maestro. Deteccin a Brown est habilitada.

    Proteccin del cdigo de memoria delprograma est desactivada.

    Proteccin del cdigo de memoria de datosest desactivado.Mediante este procedimiento se puedeescribir fcilmente los valores de bit deconfiguracin en el cdigo. Puedes dejartus comentarios en la seccin decomentarios a continuacin.

    http://2.bp.blogspot.com/-t8Tsu5mbUZU/T-X6xclmNbI/AAAAAAAAAkE/Ghn2RG6tlRA/s1600/PIC12F675+LED+Blinking+Code+Example.JPG
  • 5/28/2018 Manual PICC

    11/14

    Cmo escribir bits deconfiguracin para microcontroladores PIC?

    Muchas veces nos enfrentamos alproblema de escribir los bits deconfiguracin (configuracin de fusibles)para micro controladores PIC. Estemensaje proporciona una manera fcil deresolver este problema con la ayuda de unejemplo de PIC18F452 micro controlador(usando MPLAB con HI-TECH compiladorC), pero el mtodo se puede aplicar acualquier micro controlador PIC.

    Paso 1: Para cualquier configuracin debits de configuracin del microcontrolador

    PIC se dan en la seccin "Caractersticasespeciales de la CPU" en la hoja dedatos. En primer lugar tenemos queentender lo que la configuracin de bits deconfiguracin exactas que necesitamospara nuestro controlador PIC de la hoja dedatos.

    Paso 2: Despus de explorar laconfiguracin de bits de configuracin en laficha tcnica, tenemos que buscar lo que elarchivo de cabecera exacta se estutilizando en el cdigo. Por ejemplo, para

    cualquier microcontrolador PIcincluimos htc.h archivo en elproyecto. Este archivo se encuentra en laruta de acceso " C: \ Archivos de programa\ HI-TECH Software \ PICC-18 \ PRO \ 9.65\ include. "(tengo PRO C18 HI-TECHinstalado para microcontrolador PIC18F452Para PIC16, PIC12 etc El camino ser " C: \

    Archivos de programa \ HI-TECH Software

    \ PICC \ PRO \ 9.65 \ include"). Busque elarchivo y abrirlo. Tendr algo as como:

    Figura 1. archivo htc.h para microcontroladores PIC

    Por HI-TECH PICC-18 "pic18.hse estincluyendo el archivo ". Abrir este archivo(No estar presente en la misma

    carpeta). Busque el nombre de sumicrocontrolador PIC en este archivo (UseCTRL + F y escribir el nmero decontrolador, por ejemplo 18F452 y aprietebuscar). Por ejemplo, para el PIC18F452que era algo as como:

    Figura 2. Archivo PIC18.h para microcontroladores PIC

    As que en realidad "pic18fxx2.harchivo"se utiliza para el microcontroladorPIC18F452.

    Paso 3:Abra el "pic18fxx2.harchivo "yencontrar la configuracin de fusibles en elmismo. Se ver algo como esto,

    http://saeedsolutions.blogspot.com/2012/05/how-to-write-configuration-bits-for-pic.htmlhttp://saeedsolutions.blogspot.com/2012/05/how-to-write-configuration-bits-for-pic.htmlhttp://saeedsolutions.blogspot.com/2012/05/how-to-write-configuration-bits-for-pic.htmlhttp://saeedsolutions.blogspot.com/2012/05/how-to-write-configuration-bits-for-pic.htmlhttp://saeedsolutions.blogspot.com/2012/05/how-to-write-configuration-bits-for-pic.htmlhttp://saeedsolutions.blogspot.com/2012/05/how-to-write-configuration-bits-for-pic.html
  • 5/28/2018 Manual PICC

    12/14

    Figura 3. Bits de configuracin de macros

    Aqu puedes encontrar todas las macrosnecesarias para escribir los bits de

    configuracin. Por ejemplo, paraPIC18F452 he seleccionado HSPLL (HS +PLL activado) etc.

    Paso 4:En el manual de HI-TECH C paraescribir bits de configuracin se mencionaque (figura siguiente),

    La Figura 4. Manual de HI-TECH C de la configuracin deprogramacin de los bits

    Por lo tanto, podemos programar los bitsde configuracin en el cdigo utilizando el'__CONFIGmacro '. Por ejemplo, hay 7palabras de configuracin del

    microcontrolador PIC18F452, despus deseleccionar los ajustes de configuracinque desee el cdigo resultante fue,

    Figura 5. Simple cdigo toggle LED para PIC18F452

  • 5/28/2018 Manual PICC

    13/14

    En el cdigo anterior, los ajustesseleccionados para PIC18F452 son,

    Conmutacin oscilador se desactiva y seutiliza el modo SA junto con PLL.

    Brownout, PWRT y WDT se desactivan. Mdulo CCP2 est unido a la clavija de

    RC1. DEBUG est activada, programacin de

    bajo voltaje se activa y la pila sobre el flujoprovocar reiniciar.

    La memoria es sin proteccin (legible). La memoria se puede escribir. Boot Block no protegido.

    Puedes dejar tus comentarios en la seccinde comentarios a continuacin.

    NOTA: solucin al error:Halting build on first failure asrequested porque no se incluye elarchivo htc.h.

    RTA: PICC-18 versin 9.50, as comoPICC 9.50, dsPICC 9.60, y las ltimasversiones de otros compiladores, tieneneste archivo. PICC-18 8.35PL3 yversiones anteriores no lo hacen - sedebe reemplazar la lnea de cdigo:-------------# Include ------------------

    Con la lnea de cdigo:-----------# Include -----------------O la lnea:-------------# Include -------------------(O, por supuesto, la actualizacin a laltima versin del compilador, pero nonos fuerce a hacer eso). --------------------

    Marcos Pappin - HI-TECH Software

    DIRECTIVAS C:

    #define: es una directiva del preprocesadorde C que sirve para definir constantesliterales o macros. En C y C++, las lneas de

    cdigo que empiezan con # son directivas delpreprocesador. Este se encarga no decompilar, sino de realizar modificaciones enel texto del cdigo fuente, como reemplazarun smbolo definido con #define por un texto,o incluir un archivo en otro archivo, con#include. Tambin para indicar parmetros alcompilador, con #pragma.

    Ejemplos de #define

    #define x y: le indica al preprocesador

    reemplace el texto "x" por el texto "y" justoantes de la compilacin.

    #define PI 3.1415926535897932384626-Esto hace que donde aparezca el texto "PI",el compilador entienda el nmero3.1415926535897932384626*/

    #includecarga ficheros de inclusin(include files), ficheros decabecera (header files) osimplemente cabeceras, y los inserta en elcdigo fuente (en el punto de la directiva) quedesde ese momento queda sustituida por eltexto contenido en el fichero.

    Tiene tres versiones:

    #include #include "nombre_de_cabecera"#include macro_identificador

    Ejemplos#include #include "D:\Cabeceras\Cpp\versiones.h"#include VERSIONUS.....#define VERSIONUS "D:\Cabeceras\Cpp\

    VersionUs."

    En la primera y la segunda versin de la

    sintaxis no se intenta ninguna macro-sustitucin. En otras palabras:nombre_de_cabecera debe ser un nombrevlido de fichero con una extensin.Tradicionalmente esta extensin es .h (por"header").La diferencia entre ambas se limita almecanismo empleado para localizar elfichero a incluir:La primera forma supone que el fichero,generalmente con la extensin .h, serbuscado en el directorio de cabecerasestndar (generalmente /usr/include/CC).

    La segunda forma se utiliza para cualquierfichero situado en directorio distinto al decabeceras estndar. Debe incluir de formaexplcita su "paht" para que pueda sercargado por el preprocesador. La ausenciade "path" supone el directorio actual (dondeest el fuente que se compila). En estoscasos solo se busca en el directorio indicado.La tercera versin supone que el primercarcter no blanco despus de #includeno

  • 5/28/2018 Manual PICC

    14/14

    es < (60) ni " (34) y que hay definida unamacro que puedetransformarmacro_identificador en un nombrede cabecera vlido en elformato o "nombre_de_cabecera".En cualquiera de los tres casos el resultadoes el mismo. El preprocesador elimina lalnea #includey la reemplaza con el textocompleto del fichero de cabecera en dichopunto [1]. Por tradicin los #includesecolocan siempre al comienzo del ficherofuente, pero desde luego su situacin tieneinfluencia en el mbito y duracin de losidentificadores que haya en el fichero aincluir.

    http://www.zator.com/Cpp/E4_9_10g.htm#[1]http://www.zator.com/Cpp/E4_9_10g.htm#[1]