10
 PIC Simulador IDE Reference Manual BASIC Compiler   Tabla de Contenidos Información general editorBasicCompilerestácompuestop orpanelde editor(paralae dicióndelprogra ma deusuario)yex ploradordeorig en(paraunafácil navegacióna travésdetodoslo s elementosdel programadeusu ario-variables,símbo los,constantes,sub rutinas, procedimientos yfunciones).FormatosEditorycolorea entradolíneas deprogramade usuario,quesimplificaelprocesode depuración.El resultadoprincipaldelcompilador esunarchivod ecódigofuenteen ensamblador.Si nembargo,conun comando correspondien teenelmenúse puedemontarein clusocargado enelsimuladorconun soloclic.Loscomandosdemenúyl asopcionesson ricos,asícomoloscomandosde losmenúsemerg entesdeclicd erechoparaeleditoryexploradorde origen.Salidade ensambladord elcompiladorBa siccontienemuchaslíneasdeco mentariosútiles,que lohacemuyútilparafineseducativos,también. Mostraradvertencias SilaopciónMostraravisosestáactivada,enlaventana deadvertencias del compiladorsicomostraráinformac iónacercade lasdeclaracion esnoutilizados, subrutinas,procedi mientosyfunci onesenelprogra mabásicodeusuario. Noloscompilecódigonoutilizado Siseactivaestaopción,elcompilad orBasicnocompil arálasdeclaraci onesno utilizados,subrutin as,procedimi entosyfunciones,conelfindeahorrarrecursosde memoria. InicializarVariablesOnDeclaración Siestaopciónestáactivada,compila dorbásicosepo ndráacerotodas lasubicaciones dememoriaasi gnadosparala svariables,enla posicióndesudeclaraciónenel programabási co.Estaopcióne sútilparalosprincipi antes,yaquela memoriaRAM estállenadevaloresaleatorioseneldispositivodepuestaenmarcha,yesfácil cometerunerro rsuponerque todaslasvaria blesseponena ceroenelencendido.Los usuariosexper imentadospue denahorraral godememoriad eprograma,me diantela desactivaciónd eestaopciónytoma relcontroldelo svaloresiniciales devariablespo r programadeu suariocuando seanecesario . OptimizarVariablesDeclaración Estaopciónsea ctivarálarutinainte rnacompiladorque optimiceelord endela declaración devariablesenba sealafrecuencia deusodelasva riables.Deesta manera,lasvari ablesutilizadassfrecuentementesealmacenan enposicione sde memoriaRAMmásbajos,loque resultaentamaño,p osiblementespequeñade l códigogenerado.

PIC Simulador IDE

Embed Size (px)

Citation preview

  • 5/24/2018 PIC Simulador IDE

    1/10

    PIC Simulador IDEReference Manual BASIC CompilerTabla de Contenidos

    Informacin general

    editorBasicCompilerestcompuestoporpaneldeeditor(paralaedicindelprograma

    deusuario)yexploradordeorigen(paraunafcilnavegacinatravsdetodoslos

    elementosdelprogramadeusuario-variables,smbolos,constantes,subrutinas,

    procedimientosyfunciones).FormatosEditorycoloreaentradolneasdeprogramade

    usuario,quesimplificaelprocesodedepuracin.Elresultadoprincipaldelcompilador

    esunarchivodecdigofuenteenensamblador.Sinembargo,conuncomando

    correspondienteenelmensepuedemontareinclusocargadoenelsimuladorconun

    soloclic.Loscomandosdemenylasopcionessonricos,ascomoloscomandosde

    losmensemergentesdeclicderechoparaeleditoryexploradordeorigen.Salidade

    ensambladordelcompiladorBasiccontienemuchaslneasdecomentariostiles,que

    lohacemuytilparafineseducativos,tambin.

    Mostraradvertencias

    SilaopcinMostraravisosestactivada,enlaventanadeadvertenciasdel

    compiladorbsicomostrarinformacinacercadelasdeclaracionesnoutilizados,subrutinas,procedimientosyfuncionesenelprogramabsicodeusuario.

    Noloscompilecdigonoutilizado

    Siseactivaestaopcin,elcompiladorBasicnocompilarlasdeclaracionesno

    utilizados,subrutinas,procedimientosyfunciones,conelfindeahorrarrecursosde

    memoria.

    InicializarVariablesOnDeclaracin

    Siestaopcinestactivada,compiladorbsicosepondracerotodaslasubicaciones

    dememoriaasignadosparalasvariables,enlaposicindesudeclaracinenelprogramabsico.Estaopcinestilparalosprincipiantes,yaquelamemoriaRAM

    estllenadevaloresaleatorioseneldispositivodepuestaenmarcha,yesfcil

    cometerunerrorsuponerquetodaslasvariablesseponenaceroenelencendido.Los

    usuariosexperimentadospuedenahorraralgodememoriadeprograma,mediantela

    desactivacindeestaopcinytomarelcontroldelosvaloresinicialesdevariablespor

    programadeusuariocuandoseanecesario.

    OptimizarVariablesDeclaracin

    Estaopcinseactivarlarutinainternacompiladorqueoptimiceelordendela

    declaracindevariablesenbasealafrecuenciadeusodelasvariables.Deesta

    manera,lasvariablesutilizadasmsfrecuentementesealmacenanenposicionesde

    memoriaRAMmsbajos,loqueresultaentamao,posiblementemspequeadel

    cdigogenerado.

  • 5/24/2018 PIC Simulador IDE

    2/10

    Optimizarlamemoriadelprogramadepaginacin

    Siestaopcinestactivada,larutinainternacompiladoroptimizarlagestindelos

    bitsdelregistroPCLATH3y4,quecontrolanlaejecucindesentenciasGOTOy

    convocatoriaparalosprogramasqueutilizanmsdeunapginadelamemoriadel

    programa.Serecomiendaactivarestarutinadeoptimizacinslosieltamaodel

    cdigogeneradoseacercalautilizacindelamemoriadelprogramacasitodoslosdisponibles,yaquepuedeaumentarnotablementeeltiempototaldelacompilacindel

    programa.Sinembargo,suejecucintendrunimpactosignificativoeneltamaodel

    cdigogenerado,haciendoespacioadicionalparalaslneasmsbsicasdel

    programa.

    Acerca de las variables

    seadmitencincotiposdedatos:

    Bit- 1 bits, 0 o 1

    Byte- nmeros enteros de 1 byte en el rango de 0 a 255

    Word-enterosde2bytesenelrangode0a65.535

    Long-enterosde4bytesenelrangode0a4.294.967.295

    Single-4deunsolobyteprecisinnmerosdepuntos,7dgitosdeprecisin,

    modificadasestndarIEEE754flotante

    Variablespuedenserglobales(declaradaenelprogramaprincipal,antesdela

    instruccinEnd)olocal(declaradaensubrutinas,procedimientosy

    funciones).Nombredelavariableutilizadaparaunavariableconalcanceglobalpuede

    serutilizadodenuevoparalosnombresdevariableslocales.Elcompiladorreservar

    posicionesdememoriaseparadosparaellos.Elnmerototaldevariableseslimitado

    porlamemoriaRAMdelmicrocontroladordisponible.Lasvariablessedeclaran

    mediantesentenciaDIM:

    Dim i As Bit

    Dim j As Byte

    Dim k As Word

    Dim x As Long

    Dim y As Single

    Siesnecesario,ladireccindelavariablesepuedeespecificardurantela

    declaracin:

    Dim x As Byte @ 0x050

    EsposibleutilizarunoarraysunidimensionalesparaByte,Word,Longylasvariables

    individuales.Porejemplo:

    Dim x (10) As Byte

    Declaraunarrayde10variablesByteconndicedematrizenelrango[0-9]tipode

    datosLong(apoyoaritmticaenterade32bits)esuncomplementoopcionalparael

  • 5/24/2018 PIC Simulador IDE

    3/10

    mdulointegradocompiladorbsico.tipodedatosSingle(apoyodematemticasde

    puntoflotante)esunadd-onopcionalmduloparaelcompiladorbsicointegrado.

    DeclaracinRESERVApermiteelusoavanzadomediantelareservadealgunosdelos

    lugaresdememoriaRAMparaserusadoporlasrutinasdeensambladorencdigoo

    MPLABdepuradorencircuito.Porejemplo:

    Reserva 0x70

    AltaybajadebytesdeunavariablePalabrasepuedeabordar.HByextensiones.LB.

    Losbitsindividualespuedenserabordadaspor0,0,0,1,...,0.14y0.15

    extensiones.EsposiblehacerconversionesentreByteylostiposdedatosdeWord

    utilizandoLByextensionesdeHBodirectamente:..

    Dim x As Byte

    Dim y As Word

    x = y.HB

    x = y.LB 'This statement is equivalent to x = y

    y.HB = x

    y.LB = x y = x 'This statement will also clear the high byte of y

    variable

    Palabraalta(compuestaporbytes3y2)ybajopalabra(compuestaporlosbytes1y0)

    deunlargo(Single)variablepuedeserabordadopor.HWy.ExtensionesLW.Byte0

    puedeserdirigidapor.LByelbyte1.PorextensionesdeHB.Elterceroyelcuarto

    bytedelargoylasvariablesindividualessepuedenabordarpor0,3By0,4B

    extensiones.Losbitsindividualespuedenserabordadaspor0,0,0,1,...,0.31extensiones.Porejemplo:

    Dim i As Byte

    Dim j As Word

    Dim x As Long

    i = x.LB j = x.HW

    Todoslosregistrosdefuncionesespeciales(SFR)estndisponiblescomovariables

    byteenlosprogramasbsicos.LosbitsindividualesdeunavariableBytepuedenser

    abordadaspor0.0,0.1,0.2,0.3,0.4,0.5,0.6y0.7lasextensionesoelusodelos

    nombresoficialesdelosbits:

    Dim x As Bit

    Dim y As Byte

    x = y.7

    y.6 = 1

    TRISA.1 = 0

    TRISB = 0

    PORTA.1 = 1

    PORTB = 255

    STATUS.RP0 = 1 INTCON.INTF = 0

    Formascortasestndarparaaccesoalosregistrosdepuertosypinesdechips

    individualestambinestndisponibles(RA,RB,RC,RD,REsepuedeutilizarcomo

  • 5/24/2018 PIC Simulador IDE

    4/10

    variablesByte;RA0,RA1,RA2,...,RE6,RE7estndisponiblescomovariablesde

    bit):

    RA = 0xff

    RB0 = 1

    Esposibleutilizarnombressimblicos(smbolos)enlosprogramas,paraatender

    fcilmentelasvariablesdelsistema.Lossmbolospuedenserglobalesolocales.

    Directivasmboloseutilizaparadeclararlosnombressimblicos:

    Symbol led1 = PORTB.0

    led1 = 1

    Symbol ad_action = ADCON0.GO_DONE

    Lasconstantessepuedenutilizarenelsistemanumricodecimalsinmarcas

    especiales,ensistemadenumeracinhexadecimalcon0xoldernotacin$(oconH

    alfinal)yenelsistemabinarioconlasprincipalesmarca%(oconBalfinal).Valor

    ASCIIdeuncarcterpuedeserexpresadaenformatodecadena(porejemplo,

    "A").PalabrasclaveVerdaderoyFalsotambinestndisponiblesparalasconstantes

    detipobit.Porejemplo:

    Dim x As Bit

    Dim y As Byte

    x = True

    y = 0x55

    y = %01010101 y = "Y"

    LasconstantessepuedenasignaralosnombressimblicosdirectivausingCONST.

    Lasconstantespuedenserglobalesolocales.Unejemplo:

    Dim x As Single

    Dim y As Word

    Const pi = 3.14159

    Const high = 1023

    x = pi y = high

    CualquiervariableenterasepuedeutilizarcomounpunteroalamemoriaRAMde

    usuariocuandoseusacomounargumentodelafuncindepuntero.Elvalorcontenido

    enlavariablequeseutilizacomounpunterodebeestarenelrangode0-511.Heaqu

    unejemplo:

    Dim x As Word

    Dim y As Byte

    x = 0x3f

    y = Pointer(x)

    y = y + 0x55

    x = x - 1

    Pointer(x) = y y = 0xaa

    x = x - 1

    Pointer(x) = y

  • 5/24/2018 PIC Simulador IDE

    5/10

    Esposibleutilizarloscomentariosenlosprogramasdecdigobsicas.Los

    comentariosdebencomenzarconelsmbolodecomillasimple(')ysepuedeponeren

    cualquierpartedelprograma.

    Lneasdecdigofuenteensambladorsepuedencolocarencualquierlugarenel

    programafuentebsicaydebencomenzarconASM:prefijo.Siseutilizanetiquetas,nohayespaciodebedejarseentreelASM:prefijoylaetiqueta.Porejemplo:

    ASM: NOP

    ASM:LABEL1: MOVLW 0xFF

    Nombressimblicosdetodaslasvariables,smbolosyconstantes(globalylocal)

    puedenutilizarsecomoargumentosdedeclaracionesdeensamblador.Estotambin

    esvlidoparalasvariablesdebitseinstruccionesdeensambladororientadosabits.El

    compiladorreemplazaresenombresimblicoconlacorrespondientedireccin

    variableovalorconstante:

    Dim varname As Byte

    varname = 0

    ASM: MOVLW 0xFF

    ASM: MOVWF VARNAME

    Cuandosetrabajaconcdigoensambladorenlnea,puedesertilelusoderegistro

    detrabajocomoorigenodestinoenlosestadosasignar.Atalefectolapalabraclave

    WREGdebeutilizarseyelcompiladorseencargadelcontroldelbanco:

    Dim varname As Byte

    ASM: MOVLW 0xFF

    varname = WREG

    Sisedebeutilizargrancantidaddecdigoensamblador,quesepuedecargardesde

    unarchivoensambladorexternoeincluyalprogramaactualmedianteDirectiva

    IncludeASM.Sunicoargumentoesunacadenaquecontienelarutadeaccesoal

    archivoexterno.ASM.Estopuedeserlarutacompletaosloelnombredelarchivo,si

    elarchivoexternoseencuentraenlamismacarpetaqueelarchivoactualprograma

    bsico.Duranteelprocesodecompilacindelcdigoensambladorexternose

    adjuntaralprogramaactualensuextremo,ynoenlaposicindeladirectiva.Varios

    archivospuedenserincluidosconlasdirectivasIncludeASMseparadas.Archivosde

    ensambladorexternosnodebencontenerASM:prefijoqueseutilizaparaelcdigoensambladorenlnea.TambinsesugiereencarecidamentenousardirectivasORG

    enelcdigoensambladorexterno.

    Matemticos y operaciones lgicas

    cincooperacionesaritmticas(+,-,*,/,MOD)estndisponiblesparalostiposdedatos

    enteros.OperacinMODnoesaplicableparalasvariablesindividualesdetiposde

    datos.Elcompiladorescapazdecompilartodaslasposiblesexpresionesaritmticas

    complejas,incluidoslosquecontienenfuncionesmatemticasyfuncionesdefinidas

    porelusuario.Porejemplo:

    Dim i As Word

    Dim j As Word

    Dim x As Word

  • 5/24/2018 PIC Simulador IDE

    6/10

    i = 123

    j = i * 234

    x = 2

    x = (j * x - 12345) / (i + x)

    Razcuadradadeunnmeroentero(0-65535rango)sepuedecalcularutilizandola

    funcinSQR:

    Dim x As Word

    x = 3600

    x = Sqr(x)

    Haycincofuncionesindividualesdeprecisinmatemtica(SQRT,LOG,EXP,SIN,

    COS)quesepuedenutilizarconvariablesdetipodedatosnico.LOGcalcularel

    logaritmonaturaldeunnmeroreal.Todaslasfuncionesmatemticastambinse

    puedenutilizarenexpresionesmatemticascomplejas.Porejemplo:

    Dim x As Single

    x = 2

    x = Sqrt(x)

    ParalasvariablesdetipodedatosBitsieteoperacioneslgicasdisponibles.Sepuede

    hacerslounaoperacinlgicaenunasolasentencia.Lasoperacioneslgicas

    tambinestndisponiblesparaotrostiposdevariables.Porejemplo:

    Example1:

    Dim i As Bit

    Dim j As Bit

    Dim x As Bit

    x = Not i

    x = i And j

    x = i Or j

    x = i Xor j

    x = i Nand j

    x = i Nor j

    x = i Nxor j

    Example2: Dim x As Word

    Dim y As Word

    x = x Or y

    PORTB = PORTC And %11110000

    Haytresafirmacionesqueseutilizanparalamanipulacindebits-alto,bajoy

    basculantes.Sielargumentodeestosestadosesunpocoenunodelosregistros

    PORT,elmismobitenelregistroTRIScorrespondienteseborraautomticamente,

    estableciendoelpinafectadoscomounpindesalida.Algunosejemplos:

    High PORTB.0 Low ADCON0.ADON

    Toggle OPTION_REG.INTEDG

  • 5/24/2018 PIC Simulador IDE

    7/10

    SaltosincondicionalessonrealizadosporinstruccinGOTO.Utilizalalneanombrede

    laetiquetacomoargumento.Etiquetasdelneapuedeserglobalolocal.Etiquetasde

    lneadebenserseguidosporelsignodedospuntos':'.Heaquunejemplo:

    Dim x As Word

    x = 0 loop: x = x + 1

    Goto loop

    Cuatroestructurasbsicasestndarsoncompatibles:FOR-A-PASOSIGUIENTE,

    CUANDO-FSlaIF-THEN-ELSE-ENDIFySELECTCASE-CASE-ENDSELECT.Aqu

    hayvariosejemplos:

    Example1:

    Dim x As Byte

    TRISB = 0

    x = 255 While x > 0

    PORTB = x

    x = x - 1

    WaitMs 100

    Wend

    PORTB = x

    Example2:

    TRISB = 0

    loop:

    If PORTA.0 Then

    PORTB.0 = 1

    Else

    PORTB.0 = 0

    Endif

    Goto loop

    Example3:

    Dim x As Word

    TRISB = 0

    For x = 0 To 10000 Step 10 PORTB = x.LB

    Next x

    Example4:

    Dim i As Byte

    Dim j As Byte

    Dim x As Byte

    j = 255

    x = 2

    TRISB = 0 For i = j To 0 Step -x

    PORTB = i

    Next i

  • 5/24/2018 PIC Simulador IDE

    8/10

    Example5:

    Dim x As Byte

    loop:

    Select Case x

    Case 255 x = 1

    Case ,>=,

  • 5/24/2018 PIC Simulador IDE

    9/10

    Wend

    Return

    Elementos del lenguaje microcontrolador relacionadospuertosypinesdelmicrocontroladorsepuedenconfigurarcomoentradasosalidas

    mediantelaasignacindevalorespropiosregistrosTRISXosusbits.Estatarease

    puederealizartambinporunadeclaracinCONFIGPIN.Susintaxisesevidentea

    partirdelossiguientesejemplos:

    ConfigPin PORTB = Output

    ConfigPin RA0 = Output

    ConfigPin PORTC.3 = Input

    ConfigPin RD = Input

    TodoslosmicrocontroladoresPICquecuentanconcapacidadesanalgicas

    (convertidoresA/Dy/ocomparadoresanalgicos)seconfiguranenelencendido

    parausarlospinscomplicadoparaestosefectosanalgicos.Parautilizarlospines

    comoentradas/salidasdigitales,debenserconfiguradosparausodigitalcambiando

    losvaloresenalgunasdelasfuncionesespecialesdelosregistroscomoseespecifica

    enlasfichastcnicas.Paraconfigurartodoslospinesparafinesdigitales,declaracin

    ALLDIGITALsepuedeutilizareneliniciodelprogramabsico.

    HaydosparmetrosdeconfiguracinCONFIG(CONFIG1,CONF_WORD)y

    CONFIG2(CONF_WORD_2)(nodisponibleparatodoslosdispositivos)quesepuede

    ajustarusandodirectivaDEFINEparaanularlosvalorespredeterminados.La

    frecuenciaderelojdeldispositivodedestinosepuedeespecificarestableciendoel

    parmetroCLOCK_FREQUENCY(elvalorestexpresadoenMHz).Estosparmetros

    debenserdeconfiguracineneliniciodelprogramabsico.Porejemplo:

    Define CONFIG = 0x3f72

    Define CLOCK_FREQUENCY = 20

    LalistacompletadetodoslosparmetrosdisponiblesparaladirectivaDefinir,junto

    consusvalorespordefectoypermiteintervalosdevalores,sepuedenencontrarenel

    ltimotemadeestedocumento.

    ContenidodelamemoriaEEPROMsepuededefinirenlosprogramasbsicosde

    instruccinusingEEPROM.Suprimerargumentoesladireccindelprimerbyteenla

    listadedatos.DeclaracionesEEPROMmltiplespuedenserutilizadasparallenaren

    diferentesreasdelamemoriaEEPROM,siesnecesario.Porejemplo:

    EEPROM 0, 0x55

    EEPROM 253, 0x01, 0x02, 0x03

    Elementos especiales bsicos de idioma

    declaracionesWaitmsyWAITUSpuedenserusadosparaforzarelprogramaqueesperaraqueelnmeroespecificadodemilisegundosomicrosegundos.Tambines

    posibleutilizarargumentosvariabledeByteotipodedatosdeWord.Estasrutinas

    utilizanRelojparmetrodefrecuenciaquesepuedecambiarenelmende

  • 5/24/2018 PIC Simulador IDE

    10/10

    Opciones.RutinaWAITUStieneunretrasomnimoyelpasoquetambindependedel

    parmetroFrecuenciadereloj.

    Dim x As Word

    x = 100

    WaitMs x WaitUs 50