Page 209 - Making PIC Microcontroller Instruments and Controllers
P. 209

l{otEs oit ustNc SEVE  -SEG  EIT Dtsplays  205


                 iAi0i.ai!n:!9d:ll  code for  usins the 4 seven-sesment disptays  (corrinued)
                  DIGIT1   VAR  BYTE        ;  each  diqit   in  display
                  DIGIT2   VAR  BYIE        ;  each  digit   in  dispLay
                  DIGIT3   VAR  BYIE        ,  each  diqit   in  dispLay
                  DIGIT4   vAR  BYIE        ;  each  digit   in  dispLay

                                            ;  sets  lhe  initial   value  for  x
                                            '  . e L  p d . s -  , _  b -  |  n -  . o r a ( o - d s




                  IiIAIN:                   ,  nain   Loop  of  proqrran
                    D I G I T I = - I                  a d 9 -     o " b _ " !
                    D I G I T z = - 1                  r  d ' . g i  s  ' o  a  b _ d  !
                    D I G I T 3 = - I                  r  d . g i  L o  "  b _ . - l
                    DIGIT4=-1               ;  seL  all   4  digits   to  a  blank
                    QEQ+I                   ;  counter   ro  rake  jiLrer   our  of  display
                    IF  0<15  TIIEN         ;  don,t   do  anything
                    E',SE
                      COttNT  PORTA.a,   250r   PUiSES   ;  read   the  pulses
                      Q=0                             ;  reset   counter
                    ENDIF
                    VAIJIIE=4*P(ILSES       ;  converts   pulses   Lo  count
                    IF  V!!nE>1000   THEN  DIGtEl-   2000  +  VALUE/1000   ,  Separate
                    lF  VAITUE>1oo THEN Dlcttz-   2000  +  (VALUE//1000)/100   ;  our  rhe
                    IF  VAI:IJE>1o TAE{  DIclT3=   2000  +  ( (lIAtUE//1000)   / /!OO,  lLO;   tanr
                    IF  VArjrE>o  THEN Drclt4=   2000  +  ( (VA!UE//1000)  / lLOOI / lt0t   digiLs
                    GOSUB DISPLAY           i  ,ho^  vol  re              seg.  oisp  or/s
                  GOIIO llAlN               ;  do  i   ov-r
                  DISPLAY3                  ;  reads   each  diqi!   and  then
                    REIAD DIGItl,   VAI-UE   ;  dispfays   it
                    POREA-%o0000001
                    GOSUB  SHOW
                    PORFA=%00000010
                    RSAD  DTGIT2,   VALI'E
                    GOSttB  SttOW
                    PoRIA=%o0001000
                    READ  DIGIT3,   VAIUE
                    GOSUB  SIIOW
                    PORIA=%o0100000
                    REA.D  DIGlT4,   VAI-UE
                    GOSUB  SHOIV
                  RE![URN

                  SIIOW,                    ;  shows  each  segnent   one  a!  a  tine
                    2=%11111110             ;  selecls   one  seqrenL  ar  a  rine
                    FOR x=1  EO  A          t  do  the  8  segments,   includes   dec.  point
                                                                                (C.,ntinueo
   204   205   206   207   208   209   210   211   212   213   214