pic simulador ide

Post on 14-Oct-2015

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

  • 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

top related