Imprimir - Tutorial MPLAB C18 Desde 0

download Imprimir - Tutorial MPLAB C18 Desde 0

of 29

Transcript of Imprimir - Tutorial MPLAB C18 Desde 0

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    1/29

    16/01/12 TutorialMPLABC18 DesdeO.

    uControlEnero 16,2012,07:05:43 B

    Curso c para PICSCurso-taller e para PIC16f887 Diplomado de programaei6n de pies

    www.commtechcomputers.netAnunci06 Coogle

    Bienvenido(a), Visitante. Por favor, ingresa 0 regfstrate.iPerdiste tu email de activacion?Siempre I Ingresarj

    Ingresar connombre de usuario, contraseiia y duraci6nde la sesi6nBuscar ]

    IN IC IO AYUDA BUSCAR INGRESAR REGISTRARSE

    uControl > Articulos, circuitos, tutoriales y Revista uControl > Tutoriales, guias y cursos en uControl > Tutorial MPLABC18Desde O.

    Paginas: 12 Ir Abajo anterior proximo

    IMPRIMIR~ Autor Tema: Tutorial MPLABCI8 Desde O. (Lefdo 62249 veces)

    o Usuarios y 1 Visitante estan viendo este tema.SukyModeradorPIC24F~o Desconectado

    Tutorial MPLAB C18 Desde O.: Mayo 03, 2009, 03:13:15 ,.

    Sexo: "Mensajes: 4529MPLAB C IS.

    Version en pdf

    Boca Cem pe on!l l

    Entorno de programacion MPLAB IDE. Ensamblador, enlazador, gestion de proyectos, depurador y simulador. La interfaz grMica delusuario MPLAB IDE sirve como un unico entorno para escribir, compilar y depurar codlqo paraaplicaciones embebidas. Permite manejar la mayorfa de los detalles del compilador,ensamblador y enlazador, quedando la tarea de escribir y depurar la aplicacion como focoprincipal del programador (usuario)

    Gratuito, se puede descargar de www.microchip.comCompilador MPLAB CIS

    MPLABC18 es un compilador cruzado que se corre en un PCy produce codtqo que puede serejecutado por la familia de microcontroladores de Microchip PIC18XXXX. AI igual que unensamblador, el compilador traduce las declaraciones humanas en unos y ceros para serejecutados por el microcontrolador.

    Sigue la norma ANSI C, salvo en particularidades de los microcontroladores Librerfas para comunicaciones SPI, I2C, UART, USART, generacion PWM, cadena decaracteres y funciones matei11Clticasde coma flotante

    Maneja nurneros reales de 32 bits (float y double) Version demo de 60 dias, descargable de www.microchip.com

    Indice Instalacion Creacion de un proyecto 10 Ejemplo. Control de un led mediante un pulsador. (Definicion de operadores, estructuras, ycontrol de bits de registros)

    20 Ejemplo. Led titilando (Definicion de Variables, librerfa de Demoras) 30 Ejemplo. Led secuenciales. 40 Ejemplo. Control Display 7 Segmentos (Definicion de Arreglos de variables) 50 Ejemplo. Control de Varios Display de 7 Segmentos por multiplexion (Declaracion yucontrol.com.ar/forosmf/. .rtutcrlal-rnplab-cta-desde-u/

    http://www.commtechcomputers.net/http://www.microchip.com/http://www.microchip.com/http://www.microchip.com/http://www.microchip.com/http://www.commtechcomputers.net/
  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    2/29

    16/01/12

    SukyModeradorPIC24F~o DesconectadoSexo: "Mensajes: 4529

    Boca Cem pe on!l l

    TutorialMPLABC18Oesdeo .definicion de funciones)

    60 Ejemplo. Control LCD 70 Ejemplo. Conversion analoqica/diqital. Manejo de interrupciones. 80 Ejemplo. Cornmtcaclon Serial RS232 Modificacion de una libreria, Cambiando el puerto de Control de LCD Control de Teclado Matricial, Interrupclon por RB4-RB7 Creaclon de una librerfa, 051302 Reloj/Calendario con 051302 y LCD, Interrupcion por desbordamiento TirnerO Cornrnlcaclon 12C, primer ejemplo l.ectura/escrltura Aleatorias Ccmmtcaclon 12C, segundo ejemplo Lectura/Escritura secuenciales Manejo de punteros. Punteros y Arreglos. Punteros y Funciones Flex_lcd mas utilizaclon de printf

    2550gif.gif (4.81 KB - descargado 45285 veces.) microchip_logo2.gif (2.24 KB - descargado 45446 veces.) Ultima madificaci6n: Septiembre 12, 2010, 05:03: 12 parSuky iltt En linea

    Curso c para PICSCurso-taller e para PIC16f887 Diplomado de proqrarnacion de pies

    www.commtechcomDuters.netAnur>

    * SkP32 Placa de desarrollo - Ejemplos en C32* Comunicaci6n DNP3 sobre TCP/IP - (Capa de enlace)

    Re: Tutorial MPLABCIS Oesde O. Respuesta #1 : Mayo 03, 2009, 03: 28: 27 ,.

    Instalaci6n5e debe bajar directarnente desde Microchip, hay disponible una version gratuita para estudiantesque es un demo de 60 dias. Tarrjbien para poder descargarlo es necesario registrarse.Una vez descargado ejecutar el instalador MPLAB-CIS-Evaluation-v3_30 version actualrnentedisponible.Para a lnstalaclon seguimos los siguientes pasos:

    ucontrol.com.ar/forosmf/..Itutorial-mplab-c18-desde-OI

    http://www.commtechcomduters.net/http://www.commtechcomduters.net/
  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    3/29

    16/01/12 Tutorial MPLAB C18 Desde O.~ WelcDme 1 R l

    W elc om e "t o t he M P L AB C 18 v3 . 3 0 E v alu at io n s et up p ro gra m.T his p ro gra m w ill in st all M .P LA B C 18 v 3.3 0 E va lu at io n o n y ou r"c om pu te r. I f a t a ny tim e b efo re th e in sta lla tio n b eg in s y ou w is ht o e xit th e s et up p ro gra m. p re ss 'C an ce l'. Y ou r c om pu te r w ill n ot. he ve b ee n a ff ec te d .

    I M P O R T A N T : I f yo ur c om pu te r is r!.ln nin g a ny v ers io n o fM P LA B IDE a t th is tim e and yo u w ish to upda te it to use then ew ly ins ta lled M PL AB C i8 or M PL IN K Linke r. e xit M PL AB ID E.n ow b efo re c on tin uin g t he s et up p ro gr am .W AR NIN G: T his p ro gra m is p ro te cte d by c op yrig ht la w a ndin terna t iona l t rea ties . . . .U na ut ho riz ed re pr od uc tio n o r d is tr ib ut io n o f t his p ro gra m . o r a nyp ortio n o f it. m ay re su lt in s ev ere c iv il a nd c rim in al p en altie s. a ndw ill b e p ro se cu te d to th e m ax im um e xt en t p os sib le u nd er la w.

    1 [ : : : : B . : ~ : x . t > : : : : : J 1 I Cance r

    :. iLicense Agreement ~~MICROCHIP

    IMPORTANTYO U MUST ACCEPT THE TERMS AND COND IT IONS OF TH IS LICENSEA GR EE ME NT T O R EC E'iV E Ii . L IC EN SE F OR T HE A CC GlM PA NY IN GSOFTW ARE . TO ACCEPT THE TERMS O f TH IS liC ENSE . C LICK"I. ACCEPT" OR OPEN TH IS PACKAGE AND PROCEED W ITH THEDO WNLO AD .oR INS TA LL. IFYO U D O N OT AC CEPT TH ES E LIC EN SETERM S. C L ICK "I DO NOT ACCEPT ." O R DO NOT OPEN TH ISP AC KA GE . D OW NLO AD . O R IN ST AL L T HIS S OF TW AR E.M PL AB [R l C 18 C OM PIL ER L IC EN SE

    (0 " [ f A c c e ~ \r I D o N ot A ccep t

    < a,;tck Next ) Cance l

    : : % Select Installation Directory ~M P LA B C 18 1 '3 .3 0 E va lu at io n w ill b e in st alle d in t he fo llo win gfolder.W A RN IN G : A ny .file in t his d ir ec to ry o r o ne o f it s s ub dir ec to rie sm ig ht b e o ve rw rit te n o r re m ov ed by th e s et up p ro gra m. If y ou 'w ish to keep an y of th ese files . p re ss 'C ance l' now a nd sa vet he se file s t o another d ir ec to ry . T o c ho os e a d if fe re nti ns ta ll at io n d ir ec to ry . p re s s 'B rowse ' ,

    [ Instelletion Di rec toryC \MCP8 B!owse. . . I I

    ucontrol.com.ar/forosmfl. ..Itutorial-mplab-c18-desde-01

    < Eack II c : : : : t I ~ A > . : : : : J Canoe l

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    4/29

    16/01/12 Tutorial MPLAB C18 Desde O.~ Select Components ~

    I n th e lis t b e lo w, s ele ct th e e he ck bo xe s fo r th e c om p on en tsth at y ou w ou ld lik e to h av e in ste lle d. T h e d isk sp ac e fie ld sre fle ct th e re qu ire m en ts o f th e c om p on en ts y ou h av e s ele cte d:

    ~ .P ro gra m file s~ As se m ble r file s[;i] L in k e r s c ri pt f il es~ S ta nd ard h ea de rs~ S ta nd ard lib ra rie s[;i]Documen ta t i on[;i] Examp les~ L ib ra ry s ou rce c od eD P re pro ce ss or s ou rc e c od e

    1 36 '1 4 k20013 k1066 k9773 k

    275544 k6369 k

    10099 k18407 k1494 k

    D is k S p ac e R e qu ir ed :D is k S p ac e R em ain in g :

    3 25 58 6 k3 43 49 72 0 k

    ~. Configuration Options ~

    Cance l

    ~ Cenfiguratien Options ~

    I n th e lis t b e lo w, s ele ct th e e he ck bo xe s fo r th e d es ir ede n v ir onme n t v a ri ab le c o nf ig u ra ti on o p ti on s

    P' A dd M P LA B C 18 to P AT H e nv iro nm en t v aria blep" A dd M P AS M to P AT H e nviro nm en t va ria bleP" S ~ ~ . h ~ ~ ~ ~ ; } i_ i ' ~ . p ~ i h i . ~ . " 0 . J . F @ . Q ( . ~ . 0 . ~ . ir ~ 0 . ~ ~ 0 . ( ~ ~ ; .i ~ b . i . ~

    ro dify P A I l-! a nd M C C _IN .C LU D E v aria ble s fo r a ll u se rs

    . ! : : ! e x t > Cance l

    ucontrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

    I n th e lis t b e lo w, s ele ct th e c he ck bo xe s fo r th e d es ir ed M P L A BI DE c o nf ig u ra ti on o p ti on s .p" IJ pd ate M P LA B ID E to use th is M P LA B C 18

    R " U pd ate M PL AB ID E to u se th is M PL IN K L in ke r,M P LIB L ib ra ria n, a nd M P AS M A ss em b le rP '" [ P i a c e ' " l it ik : t o " d o c u m e n t ' a ' i io n ' !o r ' t h i ' s " c ' o ' m j ) i "l e '; " i ~. . . . . . . . . . . . . ~ _

    M PL AB ID E H elp T op ics

    re rfo rm M P l/l;B ID E u pd ate s fo r a ll u se rs< f tack . ! : : ! e x t > . 1 Cance l

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    5/29

    16/01/12

    SukyModeradorPIC24F~oDesconectadoSexo: "Mensajes: 4529

    Boca Carnpeont!l

    Tutorial MPLAB C18 Desde O.Installing rg ]C o py in g f il e:C\MCC18\h \p18c658.h.. 14%

    Cance i

    !:~ lnstallatien Complete ~M P l Jl.B C 18 v 3.3 0 E v alu at io n h as b ee n s uc ce ss fu lly in st alle d.

    P re ss t he F in is h b ut to n t o e xit t his in st alla tio n.

    P' 0p en M P lJ l.B C 18 R ele as e N ote srp en M PL IN K R ele as e Notesrpen.MPASM Heleese.Notes

    Cance l

    * SkP32 Placa de desarrollo - Ejemplos en C32* Corn unicacic n DNP3 sabre TCP/IP - (Capa de enlace)

    Re: Tutorial MPLAB C1S Desde O. Respuesta #2 : Mayo 03, 2009, 03: 29: 28 ,.

    Creaci6n de un nuevo proyecto.

    New Project ~P ro je ct N ameI Ejemplo01P r oj ec t D i re c to ryI L . . .C_:\_P_ro_y_e_ct_o_s_C_18 _ _ , 1 [ B r ow s e . ..

    iltt En linea

    Help Cance l

    Project -> NewNos aparecera una pantalla donde Ie indicamos el nombre de nuestro proyecto y la carpeta dondesera guardado.

    Pasannos a configurar el dispositivo con el cual trabajarennos: Configure->Se/ect Device

    ucontrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    6/29

    16/01/12 Tutorial MPLAB C18 Desde O.5e lect Device ~Device: De)fice Family:1 ~ l j ~ O I ~ m ~ i # M ~ ~ I I ~ J L J v l IALL

    Microchip Tool Sup'portProgrammers PICSTART Plus MPLAB REAL ICE C I PICkil1 PRO MATE II MPLAB ICD 2 PICki12e MPLAB PM3 MPLAB ICD 3 0 P!Cki13Language and Design Tools ASSEMBLER COMPILER C I VOlv3.90 v2.40Debugger.s MPLAB SIM MPLAB ICD 2 PICki12 MPLAB REAL ICE MPLAB ICD 3 P.ICki13

    MPLAB .ICE 2000 MPLAB ICE 4000 ICEIICD .Headers@PCM18XI30 I !liP"F1 Wfi_U I eNO Header~PCM18X81

    OK Cancel :1 1 Help

    v i

    Seleccionamos el compilador: Project->Se/ect Lenguaje Too/suite y nos asegurarros que todaslas direcciones son correctas.

    Select La.nGuage Toolsuita ~I M i cr oc hip C l 8 T o o ls ui tec t ive T nnlsuite:

    Configuramos los subdirectorios de trabajo: Project->Bui/d options -> ProjectSeleccionamos ubicaci6n de ficheros de declaraciones, bibliotecas y script de enlazado.Show directories for:

    Include Search Path Library Search Path Linker-Script Search Path

    uconlrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

    T oo lsu i te Con ten t s

    Locat ionl~l IM~I~@j~@~M~. ,~, ,~~t :M~~ _ j1 1 B rows e . . .D S t or e t oo l l oc a ti on s i n p r oj ec t

    u . . . . ~ o ~ K ~ . . ! Jl [ Cance lelp

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    7/29

    16/01/12 Tutorial MPLABC18 Desde O.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Build Options For Project "EjempIo01.mcp" L 1 J ( g JMPASM Assemb le r II M P L INK L in k er J I M P LA B C 18Di rector ies I Cus tom Bu i ld II T race II M P A SMlC 1 7 / C1 8 S uit eIi re c to ri es a n d S e a rc h P a th s l ~ ~ 1h ow d ire cto rie s fo r: II n clu de S ea rch P ath

    [ New I [ Delete I I Down I r Up IIC \MCC18\H IC.. j1

    I

    [ s u it e D e faults IB u il d D i rectory Pol ic~O .As se r f) .b l e/Comp il e i n source-file directory. l in k i n o u tp u t directoryoA n em b le /C o m pile /L in k in th e p ro je ct dreclory

    II

    [I Acep t a r I I [ Cence l e r I [ Apl icar ] [ A~uda I

    r D i re c to ri es a n d S e a rc h P e th sI S h ow d ir ec lo rie s fo r: I 'L -ib -r-r ~-S -e -a r-c -hPa-t-h-

    New I [ Delele 1 r DI c \ M CC1 8 \l ib

    r D i re c to ri es a n d S e a rc h PethsShowd i re c to r ie s f o r: ' IL - in - k- e r- .S - c -r ip - t- S -e - ar -P-aN ew 1 [Dele le r D ,

    I c : \M CC18 \ lk r

    Nota: Segun la version tarnblen se debe agregar al proyecto el archivo (PIC18F uti lizado).lkrubicado en MCC18/lkr, sino produce error de corrpllaclon.

    El (!!] Pr imerProyecto.mcpa 1 ! : J S o u rc e F il es:.....~ P rim er.c

    H e ad er F ile sO b je ct F ile sL ib r a ry F il esL i nk e r S c r ip t!;i 18F2550i.lkrO th er F ile s

    Luego vamos a New File y 1 0 guardamos en nuestra carpeta eligiendo extension .c aqreqandolc anuestro proyecto. @

    ucontrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    8/29

    16/01/12

    SukyModeradorPIC24F~oDesconectadoSexo: "Mensajes: 4529

    Boca ce mpeon!u

    Tutorial MPLABC18 Desde O.

    Ultima modifica

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Guar dar como l1J~Gu a rd a r e n : IBP r oy e ct os C 1 8 ~ ~ I IQ !jl' m

    . * J j . J l l i i l ~ t o IJ!2'Illi9;S.I:AB.:55_POc..SU1C)l ~ I [ I Gua rda r 1T ipo : I As s emb lj ! S o u r c e F i le s r " ,a sm ; ", a s ;" , in c ; ", s J H I Cance la r I

    3 Placa de desarrollo - Ejemplos en C32J um p to : J . C : \P r oj !e c t! )s C 1 8 _ , _ _ j i 1 jo nurucacio n DNP_, sobre Tel',,1' - tCa"]JCdrenrlcce-)Encod ing : I A N S I ~v

    L oria~~_~!tJl~~~,Pj.~t ...

    iltt En linea* SkP* C

    Re:T Resp

    Introducci6n al CiS:Con todo esto configurado ya podemos empezar a desarrollar nuestro codlqo.La idea es ir adquiriendo conceptos a medida que los utilicemos en el desarrollo de los ejemplos, deesta manera 1 0 que se presenta teorlcarrente 1 0 asociamos inrnediatamente con la practice.Aunque claro esta que el lenguaje es muy amplio y no se pueden hacer ejemplos de cadaconcepto.En el desarrollo de este tutorial se utilizara el microcontrolador PIC18F2550, y como en todoproyecto siempre se debe tener a mano el datasheet de los dispositivos utilizados, para la correctainterpretacion y aplicacion de las configuraciones realizadas.Creando el c6digo:Lo que se presenta aqui es la estructura general de un archivo fuente de C, en donde comoprirnera medida se incluyen las librerfas, colecclon de rutinas, que se van a utilizar en el proyecto.Tenemos las librerfas estandar de Ansi C que incluye rutinas para manejo de cadenas de texto yoperaciones con datos comunes como funciones rraterrattcas, librerfas especificas delmicrocontrolador a utilizar (p18Fxxxx.h) la cual tiene estructuras de los registros delmicrocontrolador para control de sus bits, librerfas para control de pentericos del microcontrolador(UART, I2C, SPI, ect) y las librerfas propias creadas por el usuario dedicadas al control de undispositivo externo 0 una tarea en corrun,La librerfa que siempre incluiremos en el archivo principal sera la del PIC a usar:C6digo: (e)#include

    Luego viene la contlquraclon de los fuses del microcontrolador. osea conflquraclon de oscilador,watch-dog, Brown-out reset, power-on reset, proteccion del ccdiqo, etc. Esto depende delmicrocontrolador que se utilice:La sintaxis seria: #pragma config Nombre del fuse=estado.Para esto es muy util la ayuda que trae C18, recomiendo miraria :C:\MCCJ8\doc\ hipPICJ8ConfiqSetDefinicion de variables globales, son las que se utilizaran en el programa principal y funciones delproyecto.C6digo: (e)lint variableA, variableB

    Ahora viene el codtqo de nuestro programa:C6digo: (e)main{

    EI proceso de comptlaclenEItexto fuente es compilado en bloques de codlqo de programa y datos que luego son enlazados

    ucontrol.com.ar/forosmf/, ..Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    9/29

    16/01/12 Tutorial MPLAB C18 Desde O.(linked) con otros bloques de codiqo y datos, y colocados en las regiones de memoria delmicrocontrolador PIC18XXXX seleccionado. Este proceso se llama qeneraclon (build) y se suelelIevar a cabo muchas veces en el desarrollo de programas en el proceso de probado y depurado.Tamb ien tenemos la posibilidad de utilizar make que 5010 compila 105 archivos fuentes que han sidomodificados desde la ultima vez agilizando el proceso.Flujo de la generaci6n del hexEn la siguiente imagen se tiene un ejemplo de 105 pasos que lIeva un determinado proyecto, dondetenemos 2 archivos fuentes en c (*.c), 1 archivo en assembler (*.asm) y un archivo precompilado(*.0).

    I l n p l L d :'S'OUf'fl'e

    I F I I , l e s ,

    I O I t1 ; j @ ' c ti F l l l e s :

    iUbr ,ary: B n c l

    UnlcerS'c-ri 'ptI F I , l e s :

    O l lJ t J 1 : u tI F i l , l e s :

    1==

    1 ODl1.o

    Los archivos fuentes *.c son compilados por MPLAB C y el archivo *.asm es ensamblado porMPASM generando 105 archivos intermedios lIamados archivos objetos. Estos archivos junto al *.Ikrdel microcontrolador son tomados por el enlazador para generar el * .hex que sera utilizado para laqrabaclon en la memoria de programa del microcontrolador. Cabe la posibilidad de agrupar archivosobjetos para crear bibliotecas (*.Iib)EI archivo *Ikr contiene informacion de la estructura y capacidades del microcontrolador con el cualse esta trabajando, sirve como plantilla para el enlazador para organizar el codiqo de programa ydatos generados en el proceso de corrpllaclon,Ahora ya tenemos una idea general de como es la estructura de un programa desarrollado en C ycual es el proceso que sigue en la qeneraclon del *.hex necesario para embeber a nuestromicrocontrolador. Seguiremos con el estudio de las directivas utilizadas en C para el desarrollo deprogramas simples y mas adelante encararemos el tema de las librerias, su modlttcaclon, creacion,ect.

    ucontrol.com.ar/forosmf/...Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    10/29

    16/01/12 Tutorial MPLAB C18 Desde O.

    Primer ejemplo, control de leds con un pulsador.Para este sencillo ejemplo vamos a necesitar definir operadores y estructuras de control:Operadores:Aqul definiremos todos los operadores utilizados por C18.-Operadores de Comparacion:Estos operadores se encargan de comparar dos condiciones de una expresion:

    Operad:or De5'cripci1'inIgu.al.a

    >= Maryo r 0 igua l queOperadores aritmetioos:Se utilizan para realizar calculos rraterraticos:r---~--.---~~~~Op.eradar Descrip'~iJ5n

    -If Sum.8:Resta

    -If+ IAc~emerrto

    Operadores logioos:500'0' encarqados de producir ""UIdO' 169;CO~dellpo T i E F A L S E

    Operadores bitwise:Son para rnodificar los bits de una variable:r---~--r---~~~-.Operad'or Descripd6n:I OR& AND

    i1otaHilerecn.a,Estructuras:Estructura if:Esta estructura se utiliza para ejecutar instrucciones en forma condicional, de acuerdo con laevaluaclon de la expresion. Seria si una condiclon es dada entonces acclon.Codigo: (e)

    lif (condicion) {I/Accion)

    Estructura if-elseEn este caso se agrega la lnstrucclon else. Ahora se evalua una condiclon original, si es verdadera,se ejecuta y sino no 1 0 es, se ejecuta el bloque debajo de else.Codigo: (e)if (condicion) {

    //Accion

    //Acci6nelse{

    Estructura whileEjecuta un conjunto de instrucciones mientras una condlclon sea verdadera. La principalcaracterlstica de esta estructura es que, antes de cornenzar el bucle, verifica la condlclon, por 1 0ucontrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    11/29

    16/01/12 Tutorial MPLABC18 Desde O.que es posible que el bucle no lIegue a ejecutarse.Codigo: (e)

    IWhile(COTIdiCiOTI) {II Sentencias)

    Estructura do- whileEs parecida a un while solo que la condici6n se evalua al final, por 1 0 que el bucle se ejecutara por1 0 menos una vez.Codigo: (e)I d O {II Sentencias

    } whiLe (condicior j ,

    Estructura For:Esta estructura se usa para ejecutar un bloque de c6digo cierto nurrero de veces. Posee un valorde inicio, un valor final y un valor de incremento.Codigo: (e)for (valor inicial: valor final: valor de incremento) {//Sentencias

    Mas adelante explicarernos la estructura switch.

    Accediendo a los bits de un registro:Para acceder individualmente a los bits de un registro se escribe la siguiente sentencia:Registrobits.bitEjemplo:Codigo: (e)PORTBbit s .RBO

    Objetivo:Encender 4 leds del puerto B mientras se rnantenga accionado el pulsador.Hardware

    R11 [ J ;

    RCll 'T l0SOJIT1C IDAr--;---------:';;---J RB1I1\NlI1'lNT1=~L,-------o;7-i R B2Il\N8IINT2I\IlIO

    __.r=:----::i'~ RBJ i l \N9 .CC~2N~OR~w..N\1!J\11~tPR BSIWIl l )11G II

    C6digo:Codigo: (e)

    ucontrol.com.ar/forosmf/...Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    12/29

    16/01/12

    SukyModeradorPIC24F~o DesconectadoSexo: "Mensajes: 4529

    Tutorial MPLAB C18 Desde O.~include #pragma config FOSC ~ XT _X'r,FCMEN ~ OFF,IESO OFF, CPODIV OSCI PLL2-Ifpragma config PWRT ~ ON,BOR ~ OFF,BORV ~ 0#pragma config WDT ~ OFF,WDTPS ~ 3276B#pragma config MCLRE ~ ON, LP'rlOSC ~ OFF,PBADEN ~ OFF,CCP2MX ~ OFF-ifpragma config STVREN ~ OFF,LVP ~ OFF,XINST ~ O F F, DE BU G ~ OFF#pragma config CPO ~ ON,CPI ~ ON,CP2 ~ ON#pragma config CPB ~ ON,CPD ~ ON-ifpragma config WRTO ~ ON,WRTl ON,WRT2 ~ ON#pragma config WRTB ~ ON,WRTC ON,WRTD ~ ON#pragma config EBTRO ON,EB'rRl ~ ON,EB'TR2 ~ ON-ifpragma config EBTRB ~ ONvoid mai n ( voi d) {ADCON1=OxOF;//Todos entrada/salida digitales.-TR1SA=OxFF; //Todos como entrada.-~DT OD -o v oo . I~,

    Ultima moauicscion: Septiembre 12, 2010, 05: 10:35 porSuky !lit En linea

    * SkP32 Placa de desarrollo - Ejemplos en C32* Comunicaci6n DNP3 sobre TCP/IP - (Capa de enlace)

    Re: Tutorial MPLAB C1S Desde O.Respuesta #4: Mayo 03, 2009, 03:31:02 ,.

    VariablesUna variable es la aslqnaclon de un nombre a un espacio determinado en la memoria, en donde elespacio dependera del tipo de variable. CiS define los siguientes tipos:

    ucontrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    13/29

    16/01/12

    Boca Ce m p e o n!l l

    Tutorial MPLABC18 Desde O.

    Tipo T1limai'io IVIIfnimoChar -128. 1:27Unsigned Cha, o

    16 bits -32768- 327'57ntShortUnsigned shortSlliortLongUn1signedshortlong 24 bits 0 1 ]1577215

    32bits -21474R3!547U~5ignedtong

    Expf128)FloatExp{-l!25j2bitS,ouble

    Sequn donde esten declaradas, las variables pueden ser globales (declaradas fuera de todoprocedimiento 0 funcion) 0 locales (declaradas dentro de un procedimiento 0 funcicn). Las primerasseran accesibles desde todo el codiqo fuente y las segundas solo en la funcion donde estendefinidas.Modificadores de las variables:Mplab C18 utiliza los modificadores establecidos por ANSI:Auto: las variables declaradas fuera de las funciones son globales y las declaradas en la funcionson locales. Si no se inicializan toman un valor indefinido.Static: variables locales a una funclon, y sirven para retener el valor de la variable en lIamadassucesivas a dicha funcion. EI espacio de memoria es reservado unlcarrente para dicha funcion,Extern: La variable declarada pertenece a otro modulo, por 1 0 que no es necesario reservarmemoria para ella.Const: EI contenido de la variable es fijo.Volatile: el contenido de la variable puede cambiar. En interrupciones se debe utilizar este tipo dedatos.Register: La variable declarada debe guardarse en un registro del microcontrolador.Overlay: Se aplica a variables locales, hace un almacenamiento estatico y las inicializa en cadalIamada.Ram: La variable se situa en la memoria de datos.Rom: la variable se sltua en la memoria del programa. Por 1 0 general se usa para cadena decaracteres contantes.Especificacion de banco de memoria de datos:Far: La variable puede ir en cualquier banco.Near: la variable tiene que estar en el banco de acceso.Para las variables guardadas en la memoria de programa el acceso no es tan inmediato, sino que serealiza mediante las operaciones Table Reads 0 Table Writes, los cuales mueven los datos entre elespacio de memoria RAM y de Programa. Cuando se trabaja una variable NEARsolo se necesita 16-bits para su direccionamiento, en cambio para una variable FAR (Que puede estar en cualquierbanco) se necesitan 24-bits para su direcionamiento. Esto ultimo se podra observas rras clarocuando se trate punteros.Demoras:Para utilizar demoras en nuestro codigo debemos incluir la librerfa delays.h. En ella tenemos 4funciones:Delay10TCYx(i)Delay100TCYx(i)Delay1KTCYx(i)Delay10KTCYx(i)

    -> 1O.Tcy.i-> 100.Tcy.i-> 1000.Tcy.i-> 10000.Tcy.iDonde i puede tomar valores entre 0 y 255.

    Ejemplo: Leds titilando.Objetivo: Hacer titilar 10 veces los leds del puerto B al accionar el pulsador.Hardware: Idem anterior.C6digo:Codigo: (e)

    ucontrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    14/29

    16/01/12

    SukyModeradorPIC24F~oDesconectadoSexo: "Mensajes: 4529

    Boca Campe6nll'

    Tutorial MPLAB C18 Desde O.~include #include -Ifpragma config#pragma config#pragma config-ifpragma config#pragma config#pragma config-ifpragma config#pragma config#pragma config-ifpragma config#pragma config

    OFF, CPUDIV OSCl PLL2OSC = XT_XT,FCMEN = OFF,IESOPWRT ~ ON,BOR ~ OFF,BORV ~ 0WDT ~ OFF,WDTPS ~ 32766MCLRE = ON,LPTIOSC = OFF,PBADEN = OFF,CCP2MX = OFFSTVREN ~ OFF,LVr ~ OFF,XINST ~ OFF,DEBUG ~ OFFCPO = ON,CPl = ON,CP2 = ONCPB = ON,CPD = ONWRTO ~ ON,WRTl ON,WRT2 ~ ONWRTB = ON,WR~C ON,WR~D = ONEBTRO ON,EBTRl = ON,EBTR2 = ONEBTRB ON

    //Para contar 0 titilaciones.-nsigned char i;void main (void) {,nrnm -n.nv. I~,

    Ultima madificaci6n: Septiembre 12, 2010, 05: 17: 20 parSuky iltt En linea

    * SkP32 Placa de desarrollo - Ejemplos en C32* Comunicaci6n DNP3 sobre TCP/IP - (Capa de enlace)

    Re: Tutorial MPLAB C1S Desde o .Respuesta #5: Mayo 03, 2009, 03:31:20 ,.

    Ejemplo:Leds secuenciales:

    Hardware: Idem anterior.C6digo:Codigo: (e)/* ** Archivo con definicion de registros y bits del microcontrolador elegido */#include /* ** Configuracion de los Fuses del microcontrolador ** */#pragma config FOSC ~ XT_XT, FCMEN ~ OFF, IESO ~ OFF, CrUDJV ~ OSCl PLL2

    PWRT = ON, BOR = OFF, BORV = 0, WD~ = OFF, WD~PS = 32768MCLRE = ON, LPTIOSC = OFF, PBADEN = OFF, CCP2MX = OFFSTVREN ~ OFF, LVr ~ OFF, XINST ~ OFF, DEBUG ~ OFFCPO = OFF, CPl = OFF, CP2 = OFF, CPB = OFF, CPO = OFFWRTO = OFF, WRTl = OFF, WRT2 = OFFWRTB ~ OFF, WRTC ~ OFF, WRTD ~ OFF

    #pragma config-Ifpragma config#pragma config#pragma config-ifpragma config#pragma config#pragma config EBTRO OFF, EB'TRl OFF, EB'TR2 = O FF , E B' TR B = OF Funsigned char k; /* Variable utilizada para realizar efecto */void main (void) {

    ADCON1~OxOF;TR1SA=OxFF;TRISB~OxFO;

    /* Todos entradas/salidas digitales *//* 'Todos como entradas */

    /* Nible bajo como salida */

    Ultima madificaci6n: Septiembre 12, 2010, 05: 18:03 porSuky iltt En linea

    * SkP32 Placa de desarrollo - Ejemplos en C32* Comunicaci6n DNP3 sobre TCP/IP - (Capa de enlace)

    ucontrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    15/29

    16/01/12

    SukyModeradorPIC24F~o DesconectadoSexo: "Mensajes: 4529

    Boca Cem pe on!l l

    Tutorial MPLAB C18 Desde O.Re: Tutorial MPLAB C1S Oesde O.Respuesta #6: Mayo 03, 2009, 03:31:45 ,.

    Operaciones con variables de distintos tipos.Cuando se evalua una expresion donde las variables implicadas son de distinto tipos ocurre unaconversion, ya sea implicita a explicita, para lIevar ambos operando a un tipo corrun de datos canel que se pueda operar.En la aslqnaclon de una expresion de un tipo dado a una variable de un tipo menor, la conversionse hace en forma autorratica. Par ejemplo:C6digo:unsigned char k,float p ~30.56;k=p , II k~ 30, p ~ 30.56. -

    Aqui tenemos miembros de diferentes tarrafios, par 10que habria un truncamiento del valor enteroa la cantidad de bit que 10permita k. Si la parte entera excede el rango establecido par la variablek, el resultado no tendria logica aparente.Reglas de promoci6n automatlca de expresionesEstas reglas dicen que el compilador haria estrictamente las conversiones necesarias para lIevartodos los operandos al tipo del mayor. EI resultado de evaluar una operaclon aritmetica seria deltipo del mayor de sus operandos, en el sentido del tarrafio en bits de cada objeto de datos. Parejemplo:C6digo:

    lunSigned char k;float p;k ~5;p~k 12 ; II p ~ 2

    Par mas que indiquemos que el resultado es float el truncamiento se produce en la evaluacion delmiembro derecho de la aslqnaclon,Para resolver este problema existen dos formas, una es escribir cualquiera de las contantes enPunta flotante a utilizar el operador cast.C6digo:I p~ k /2. 0; I I p ~ 2. 5~ ~(( float )k /2); II p ~ 2.5No es utll implementar el cast de la siguiente forma:C6digo:p= (float )(k 12 ); II p ~ 2

    Dado que primero se realiza la operaclcn, y al resultado se aplica el cast, 10que no soluciona elproblema .-

    Arreglos de VariablesNos permite trabajar can un conjunto de variables y acceder a cada una mediante un indice iinicoque 10 identifica. Todos los valores que contienen deben ser del misrno tipo.C6digo: (e)unsigned char Vector[5J;unsigned char Matriz[3] [3J;

    //Cargamos vector y matriz:Vector[OJ~156;Matriz[lJ [lJ~85;I/Leemos vector y matriz:PORTB~Vector[4J ;PORTB~Matriz [OJ [OJ;

    En la declaraclon se pueden pre cargar los valores de la siguiente forma:C6digo: (e)unsigned char Vector[3]={1,OxlO,Ob00010l}unsigned char Matriz[3] [3J={1,2,3,4,5,6,7,B,9,lD};

    Ejemplo: Control de display 7 segmentosucontrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    16/29

    16/01/12 Tutorial MPLAB C18 Desde O.

    Objetivo: utilizaremos dos pulsadores para incrementar, decrementar 0 resetear un conteo de 0 a9 que mostraremos en un display de 7 segmentos de catodo cornm, EI reseteo sera el caso en elque se presiona 105 dos pulsadores a la vez.Hardware:

    IIID~

    RCIl'Tl0SJIT1C KIRC lIT10SLCC P2Aio"E

    RC2CCPlRCW-NIIRC&oD+NPRC6ITXCK

    RCllfl>ilDT.

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    17/29

    16/01/12

    SukyModeradorPIC24F~o DesconectadoSexo: "Mensajes: 4529

    Boca Cem pe on!l l

    Tutorial MPLABC18 Desde O.

    Ultima moditicstion: Septiembre 12, 2010, 05:22: 12 porSuky !lit En linea

    * SkP32 Placa de desarrollo - Ejemplos en C32* Cornunicacio n DNP3 sobre TCP/IP - (Capa de enlace)

    Re: Tutorial MPLAB C1S Desde O.Respuesta #7: Mayo 03, 2009, 03:32:02 ,.

    La manera I 1 1 C l S elegante de construir nuestro progranna es dividir la tarea a ejecutar en variastareas mas simples, de modo de facilitar el desarrollo y el entendimiento de la estructura del mismo.Otra ventaja que conlleva este proceder es la reutilizacion de estos rrodulos creados conanterioridad, aderras de facilitar el trabajo en equipo.Declaracion y definicion de funciones.La declaracion da a conocer la funclon al compilador, a partir de su declaracion ya se puedenrealizar invocaciones a las misnnas. La declaracion de una funcion se conoce tarrnien comoprototipo de la funcion, En el prototipo de una funcion se tienen que especificar los parametres dela funcion, as! como el tipo de dato que devuelve.La definicion estara en alqun otro punto del programa, aqul se especifican las instrucciones queforman parte de la misnna y que se utilizan para lIevar a cabo la tarea especffica de la funcion,Sintaxis:Codigo: (e)Tipo de retorno Nombre(Lista de parametros)

    Tipo de retorno: Representa el tipo del valor que devuelve la funclon, Si no devuelve ninguno dedebe colocar void.Nombre: indica el nombre que se Ie da a la funclon, se recomienda que este relacionado con latarea que llevara a cabo.Lista de peremetros : se enlista el tipo de dato y el nombre de cada pararretro, En caso de utilizarpara metros se deja el parentesls vacio 0 se incluye la palabra void.Ejemplos:Codigo: (e)unsigned int Suma(unsigned char A, unsigned char B) {

    unsigned int c ;C=A+B;return (C) ;

    Codigo: (e)void Envio_Data(unsigned char A) {

    //Sentencia.-Codigo: (e)IVOid Muestras(void) {//Sentencias.-)

    Dos formas de incluir una funcian en nuestro cadigo:Realizando la declaracion en el encabezado y despues la definicion en cualquier sector delprograma.Ejemplo:Codigo: (e)

    ucontrol.com.ar/forosmf/...Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    18/29

    16/01/12 Tutorial MPLAB C18 Desde O.

    II Llama a la funci6n.Funcion();

    II Declaracion de la funcionvoid Funcion(void);

    void main (void) {

    //Defincion de la funcioTI. (Puede estar en cualquier lugar del programa)void Funcion(void) {II Sentencias

    Otra forma es no realizar la declaracion de la funcion y realizar directamente la definicion, peroesta tiene que estar si a si antes de su invocacion.Ejemplo:C6digo: (e)

    II SentenciasIIDefincion de la funcionvoid Funcion(void) {

    void main (void) {

    II Llama a la funci6n.Funcion();

    Preprocesador y Directivas del preprocesadorEI preprocesador es el primer programa que se llama en la etapa de cornpilacion de un programa. EIpreprocesador tiene su propio lenguaje y sus directivas inician can un #.Las ventajas que tiene usar el preprocesador son:*105 programas son mas Iaciles de desarrollar,*son mas faciles de leer,*son mas faclles de modificar*se pueden generalizar para varias arquitecturas a compiladores.

    Directivas#includeEsta directiva ya la hernos utilizado, se emplea para incluir archivos y suele darse al principia de losprogramas, porque en general se desea que su efecto alcance a todo el archivo fuente. Par estarazon los archivos preparados para ser incluidos se denominan headers a archivos de cabecera. Enelias se declaran las funciones que se implementan y definiciones para su implementacion.#defineLa directiva define tiene dos tipos de usa, como si fuera un objecto a como si fuera una funcion.Las que se asemejan a funciones taman para metros mientras que las que se asemejan a abjetosno.Su formato es el siguiente:# define # define lista de parametros

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    19/29

    16/01/12 Tutorial MPLAB C18 Desde O.programa.#ifdef, #ifndef, #else, #elif y #endifEstas directivas son utilizadas para realizar compilaciones condicionadas, por ejemplo para haceruna libreria generalizada para varias arquitecturas, para ser utilizada por varios compiladores 0simplernente para seleccionar el nivel de uso de cierto proyecto.Ejemplos:Codigo:#if defined 18CXX )

    # include elif defined ( dsPIC30F# include elif defined ( dsP1C33F

    # include elif defined ( PIC24H

    # include elif defined ( PIC24F

    # include endif

    Codigo:II Para no utilizar pin RW sacar comentario a la siguiente linea11# define LCD DONT WAIT# define LCD PIN E LATCbits . LATC4# define LCD PIN RS LATCbits . LATC2

    ifndef LCD DONT WAIT- - -# define LCD PIN RW LATCbits . LATe3endif

    Codigo:II CCS#if defined PCH

    char Buffer [512J;# endifII C18# ifdef 18CXX

    # pragma udata =0 xlOOunsigned char Buffer [512J;# pragma udata

    endifII C30 Y C32#if defined ( C30 ) I I defined PIC32MX

    unsigned char attribute (( aligned (4))) Buffer [512J;# endif

    Ejemplo:Control de varios display, miltiplexion de la serial,Objetivo: Controlar 3 display de 7 segrnentos visualizando el conteo autorratlco de 0 a 999.Hardware:

    ucontrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    20/29

    16/01/12

    SukyModeradorPIC24F~oDesconectadoSexo: "Mensajes: 4529

    Boca ce mpeon!u

    Tutorial MPLAS C18 Desde O.

    U1

    RB O

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    21/29

    16/01/12

    SukyModeradorPIC24F~o DesconectadoSexo: "Mensajes: 4529

    Boca Ce m pe on!ll

    Tutorial MPLAB C18 Desde O.

    RPININOR1\1Il\N1RI\2II\N2NR EFVR EFRI\JIl\N3NREF+RI\IITOCKIC 10 UTIFICVRI\&I\N~VD IN,c:n UT

    OSG2 1>---"'-., RI\6.OJSG2.cll-D

    RCM10SOiT1C I

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    22/29

    16/01/12 Tutorial MPLAB C18 Desde O.SelChanConvADC(Unsigned char); Selecciona canal y comienza conversion.BusyADC(); Comprueba si la conversion a finalizado.Int ReadAOC(); devuelve la lectura del canal analoqlco seleccionado.

    Ejemplo: Uso del mOdulo de conversion analoqico/diqital.Objetivo: Tomar lectura de 2 valores analoqlcos y mostrarlo en un LCD. AI accionar un pulsador,leeremos los 2 canales analoqicos y los mostrarernos en el LCD durante 1 segundo.Hardware:

    IIID~

    U1L----7-1 ~i'W\NDL----------7_1 R~1U\N1r--------~__1 RP.2U\N2NREFoCVREF

    RAJU\N3NREF+~AtrTOC I--...!!!...-1 RA6.0~2Cll-D

    RCM10SOiT1C I

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    23/29

    16/01/12

    SukyModeradorPIC24F~o DesconectadoSexo: "Mensajes: 4529

    Boca Ce m pe on!l!

    Tutorial MPLABC18 Desde O. !lit En linea

    * SkP32 Placa de desarrollo - Ejemplos en C32* Cornunicacio n DNP3 sobre TCP/IP - (Capa de enlace)

    ( Re: Tutorial MPLAB C1S Oesde O. Respuesta #10 : Mayo 09, 2009, 11: 08: 32 ,.

    Interrupciones:Los dispositivos PIC18 tienen multiples fuentes de interrupcion y una caracterfstica de prioridad delnterrupcion, que permite a cada fuente de mterrupcion asignarle un nivel de prioridad bajo 0 alto.Cuando ocurre un evento de alta prioridad lnterrurmlra cualquier tnterrupclon de baja prioridad quepueda estar en progreso. EIvector de alta prioridad esta en Ox08 y el vector de baja prioridad enOx18.Cada fuente de interrupcicn tiene tres bits para controlar su operaclon, Las funciones de estes bitsson:

    Bit bandera, que indica si un evento de lnterrupclnn ha ocurrido Bit Enable, que admiten la ejecucion de la interrupcion, permitiendo la bifurcacion delprograrna a la direccion del vector de interrupcton

    Bit de prioridad, para seleccionar prioridad baja 0 altaLa caracterfstica de prioridad de interrupciones de activa seteando el bit IPEN. Si este no estaseteado, no existen prioridades y las interrupciones se comportan como en los dispositivos degarna media (PIC16) y todas las interrupciones se bifurcan al vector Ox08.Rutinas de atenclen a interrupciones:La directiva #pragma interruplow nombre define rutina de servicio de interrupcion (ISR) de bajaprioridad y #pragma interrup nombre se alta prioridad.Las ISR son funciones como cualquier otra, pero con las restricciones de que:

    No devuelven ni aceptan pararretros No se puede invocar desde otros puntos del prograrna Las variables globales que utilice se den declarar como volatile

    EIC18 no sltua autorraticarrente las ISR en las posiciones de los vectores de lnterrupclcn, por 1 0que el usuario debe ubicarlas. Ejemplos:Codigo: (e)#pragma interruplow ISRBajaPrioridadVoid ISRBajaPrioridad(void) {

    II Tratamiento de interrupcion.-

    II Creamos una nueva secci6n de c6digo a partir de la direcci6n DxlB.-#pragma code PrioridadBaja = OxISVoid VectorBajaPrioridad(void) {

    II Instruccion insertada en la direcci6n DxlB.-_asm gate ISRBajarrioridad endasm

    ~pragma code II Cerramos seccion.-

    Codigo: (e)~pragma interruplow ISRAltaPrioridadVoid ISRAltaPrioridad(void) {

    II Tratamiento de interrupci6n.-

    II Creamos una nueva secci6n de c6digo a partir de la direcci6n OxOB.-~pragma code PrioridadAlta = Ox08Void VectorAltaPrioridad(void) {

    II 1nstruccion insertada en la direcci6n OxOB.-_asm goto ISRAltaPrioridad endasm

    #pragma code II Cerramos secci6n.-

    Ultima moaittcecton: Mayo 10, 2009, 10: 12:43 por Suky ,. !lit En linea* SkP32 Placa de desarrollo - Ejemplos en C32

    ucontrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    24/29

    16/01/12

    SukyModeradorPIC24F~o DesconectadoSexo: "Mensajes: 4529

    Boca Cempeon!l!

    Tutorial MPLAB C18 Desde O.* ccmurucacren DNP3 sobre TCP/IP - (Capa de enlace)

    Re: Tutorial MPLABC18 Desde O.Respuesta #11: Mayo 10,2009,10:15:27 ,.

    Modulo USART.Para la corrumlcaclon serial es necesario agregar la libreria usart.h. Con esta libreria se configura elmodo de transrnslcn y recepclon serie de nuestro microcontrolador.Funciones:OpenUSART(unsigned char config, unsigned int spbrg);Esta funcion corresponde a la conflquraclon del rn6dulo USART, aslncronlca a sincronica, 8 bits a 9bits, velocidad de corrumcecion, etc.Para saber que colocar en cada pararretro abrir USART ubicado en C:\MCC18\doc\periph-lib.CloseUSART(); Deshabilita rn6dulo USART.putcUSART(char data); Envia un byte.putsUSART(char *buffer); Envia un string desde la memoria de datos.putrsUSART(const rom char *data); Envia un string desde la memoria de prograrna.BusyUSART(); Determina si se ha transmitido el data.DataRdyUSART(); Indica si ha lIegado un data para ser leido.getcUSART(); Lee un byte.getsUSART(char *buffer, Unsigned char len); Lee un string.Estructura switch.Esta estructura permite ejecutar un bloque de codlqo de acuerdo can el valor de una variable aexpreslon:Codigo: (e)s wi tc h ( Va ri ab le ) {

    Case OxOl://Sentencias.-

    Break;Case Ox02:

    //Sentencias.-Break;Default:

    //Sentencias.-Break;

    Default: ejecuta esa sentencia si no es ninguna de las anteriores.

    Ejemplo: Cornmlcaclon Serial RS232.Objetivo: La PC enviara comando de lectura de los canales analoqlcos. Si se recibe un Ox61 ('a'),enviar canal 0, si se recibe un Ox62 ('b') enviar canal 1 y si se recibe un Ox63 ('c') enviar los 2canales analoqtcos.Hardware:

    ucontrol.com.ar/forosmf/ .. .Itutorial-mplab-c18-desde-01

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    25/29

    16/01/12

    SukyModeradorPIC24F~o DesconectadoSexo: "Mensajes: 4529

    Boca Ce m p e o n!l l

    Tutorial MPLABC18 Desde O.

    RB I N I N 1 2 1 lN l lI 'F rrnsn LSD "R B1 / l \N 1 [ Jo l NT1 .9 : I@LR B2II\N3IINT2N118R BJ/ l \N9.CC P2I\IPORB w \N 1 1 1 l< 1 1 .OCSSPPRB&WI11IPGIIRB6I1

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    26/29

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    27/29

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    28/29

  • 5/13/2018 Imprimir - Tutorial MPLAB C18 Desde 0

    29/29