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

tHE ftci2ga  t2-BfT A-to.D  coltvERtEn  |ltso  usED tN socxEf  u6t   123



                  .|!i9,9{iS!t:!!{l  Program lo read from 12-bit LTc1298 A-to-D chip by
                    microEngineering Labs  (Cort,ued)

                   RESUIJT  l/AR  }IORD
                   X  VAR  WORD


                   IiICH  CS                      chip  select  inactive
                                                  set  PORTA, PORTE Lo  digritaf
                    LOW PORTE.2                   LcD R/W Line  lor  (ld)
                    PAVSE  100                    wait  for  LcD  to  s!ar!
                   GOTO  MAINIJOOP                skip  subroutines
                                                  subrourine  to  read  a/d  converLer
                    GETA.D:
                                                  chip  select  active
                                                  send  address  /  mode

                     SHIFTOUT DII  CK'  MSBFIRSTI  T1\1'  A'DDR\3'  O\1]
                     SHIFEIN  DO,  CK,  MSBPRET  [RESItLlr\l2l  ;  get  12-bi!   result
                     Cg  -  l,                  ;  chip  seLecl  inaclive
                    RETURN
                                                              . o  9 e .  /  . d l r e  c - d r e l  0
                    GEII':
                     iDDR  =  %00000101         ;  sinerte  ended,  channel  0,  MSBF high
                     GOSUB GETAD
                     X  =  RESUIJT              ;
                    RETT'RII                    ;
                                                                           Le  '  c fLate  '   I  I
                     ADDR  =  %00000111         ;  sinqle  ended,  channel  1,  MSBF high
                     GOSUB GEEAD
                     Y  =  REgUt l
                    REIURN
                                                ;  subroutine   !o  ge!  z  watue
                                                ;  (differentiat)
                    GEtZ:
                     ADDR  =  %00000001         ;  diff   (chO =  +,  ch1  =  -),  MSBF hish
                     GOSI'B GEEAD
                     Z  -  RISULI
                   RETI'RII                     i

                   MAINI,OOP:                   i
                     GOSttB GETX                ,  get  z  value
                     GOSIIB GETY                ;  lret  y  value
                     GOSttB GEIZ                ,  get  z  value
                     IiCDOIJT  $FE.  1,   'X-",   *x,  ;  send  values  lo  LCD
                     \y=t,       \z=n,
                            *y,        *z
                     PAUSE 100                  ;  do  it  about  10  tines   a  second
                   GOIO MAtllt OOP              ;  do  it   forever
                   END                          ;  end  progran
   130   131   132   133   134   135   136   137   138   139   140