Tutorial de Microcontroladores PIC - Parte IV - Código Para El Control Del Display Sin...

Post on 30-Sep-2015

216 views 1 download

description

tutopic2

Transcript of Tutorial de Microcontroladores PIC - Parte IV - Código Para El Control Del Display Sin...

  • ::PICParteIVCaptulo5

    CdigoparaelControldelDisplaysinDecodificador

    Enelencabezado incluimosnuestroARCHIVO.INCycomovariables incorporamosreg1, reg2 yreg3 paraelretardo,mslavariablecontquecontrolarlacuentaparaincrementarelPCLpormediodeW.

    Enlaconfiguracindepuertos,habilitamosPORTBcomosalida,ycomenzamosconlaprogramacin.

    Encabezado

    LIST P=16F84 #include

    Variablesutilizadas

    reg1 equ 0x0D 3registrosparaelretardoreg2 equ 0x0Ereg3 equ 0x0Fcont equ 0x10

    Configuracindepuertos

    ORG 0x00 GOTO inicio ORG 0x04 ORG 0X05inicioBSF STATUS,RP0 configurandopuertos CLRFTRISB PORTB=SALIDA BCF STATUS,RP0

    ProgramaPrincipal

    reini CLRFcont poneelcontadora0 MOVF cont,W pasaelcontadoraw(ndice) CALLtabla llamaalatabla MOVWF PORTB pasaeldatoobtenidoaPORTB CALLretardo

    disp_MOVF cont,W XORLW B'1001' verificasielcontadorllega9 BTFSC STATUS,Z sinoesassaltaunalnea GOTO reini sillega9loatiendeenreini INCFcont,F incrementaelcontador MOVF cont,W pasaelcontadoraw(ndice) CALLtabla llamaalatabla MOVWF PORTB pasaeldatoobtenidoenlatablaaPORTB CALLretardo GOTO disp_

    Tabla

    tablaADDWF PCL,F seincrementaelcontadordeprograma display .gfedcba segmentosdelosledsdeldisplay RETLW B'01101101' cdigoparael5 RETLW B'01100110' cdigoparael4 RETLW B'01001111' cdigoparael3 RETLW B'01011011' cdigoparael2 RETLW B'00000110' cdigoparael1 RETLW B'00111111' cdigoparael0

    RETLW B'00111000' cdigoparaelL RETLW B'00111110' cdigoparaelU RETLW B'00000110' cdigoparaelI RETLW B'11101101' cdigoparaelS.

  • RutinadeRetardo

    retardo movlw 30 Aqusecarganlosregistros movwf reg1 reg1,reg2yreg3tres movlw 20 conlosvalores30,20y35 movwf reg2dos movlw 35 movwf reg3

    uno decfsz reg3,1 Aqusecomienzaadecrementar goto uno decfsz reg2,1 goto dos decfsz reg1,1 goto tres retlw00 regresaredelretardo END

    Descripcin

    Vamosporelprogramaprincipal...

    reini CLRFcont poneelcontadora0 MOVF cont,W pasaelcontadoraw(ndice) CALLtabla llamaalatabla MOVWF PORTB pasaeldatoobtenidoaPORTB CALLretardo

    Enlaprimerlinea,ponemoselcontadoracero,enlasegunda,lopasamosalregistroW,esdecirW=00000000ynosvamosconestevaloralatabla,veamosqueocurrirall...

    tablaADDWF PCL,F seincrementaelcontadordeprograma display .gfedcba segmentosdelosledsdeldisplay RETLW B'01101101' cdigoparael5

    ADDWFPCL,FessumarlealPCL loquetraeW,ycomoW=00000000,puesPCLseguirsiendo igualaPCL,ypasaralasiguienteinstruccin...

    RETLW B'01101101', recuerda que la linea de comentario no es tenida en cuenta. En esta lnea, se carga wcon01101101,ycomosetratadeunainstruccinderetorno,regresaallugardedondevino,esdecira...

    MOVWFPORTBpasaeldatoobtenidoaPORTBCALLretardo

    AqusepasaelvalordeWaPORTBysevisualiza5enelDisplay,luegosehaceunretardo,ycuandotermina...

    disp_MOVF cont,W XORLW B'1001' verificasielcontadorllega9 BTFSC STATUS,Z sinoesassaltaunalnea GOTO reini sillega9loatiendeenreini INCFcont,F incrementaelcontador MOVF cont,W pasaelcontadoraw(ndice) CALLtabla llamaalatabla

    CargamosWconloquehayenelcontador,yluego,loquenostocahacer,esaveriguarsiyasemostrarontodoslosvaloresquefiguranenlatabla,paraesoutilizamoslainstruccindecomparacinXORLWcon9enbinario(00001001)puestoqueson10loselementosdelatabla(delelemento0alelemento9),lainstruccinXORLWyalavimosanteriormente,perosirverecordarla.

    Piensaquesielcontadoresten1001(9),yamostrotodosloselementosdelatabla,ylacomparacinXORLWdarcomoresultado00000000y labanderadecero(Z)delregistroSTATUSsepondren1, de lo contrariopermaneceren0,ahoravienelapregunta...

  • BTFSCSTATUS,Z

    EstencerolabanderaZdelregistroSTATUS...?,siesas,anfaltanelementospormostrar,entoncessaltaunalnea,yall...

    INCFcont,F incrementaelcontador MOVF cont,W pasaelcontadoraw(ndice) CALLtabla llamaalatabla

    Yestetrozodecdigoserepetirhastaquesemuestrentodosloselementos.

    Bien. Suponte ahora, que la cuenta ya termin, y se mostraron todos los elementos, eso significa que"cont=1001",cuandolleguealacomparacin(XORLW)elresultadoSdar00000000,labanderaZsepondren1,ycuandolleguesalapregunta...

    BTFSCSTATUS,Z

    Esten cero labanderaZdel registroSTATUS...?, la respuesta serNO,por lo tanto semostraron todos loselementosdelatabla,ynoserealizarelsalto,esdecirquepasara...

    GOTOreini

    ybueno,allcomenzartododenuevo...

    Bienmisqueridosamigos,esperoqueleshayaservidodeayudaestetutorial,yolohiceconalgosencillo,paraquepuedaninterpretarlaformadetrabajarconestosdispositivos.Imaginoquemasdeuno,tieneproyectosenloscualespuedeincorporarlo,otienelasintensionesdedesarrollarunonuevocontodosestoschiches,quemsd,ahoraquedaensusmanos,porloprontoyomeirajugaralMythology,jejeje

    BYE...!!!