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

us|ltc flfiEEl tN cou[TEF t{ooE  251



                   l!l!bi{m&;!i5    Basic marble counting  routine to count directly to lhe Timerl
                                                      lorthis  progmm
                    counler reglster  pair     diagram            is in Figurc 17.5)(Cortnued)
                                      Clhewiring
                        ;  bi!1=1   Use  external  cLock
                        ;  biL0=1   Start  Tinerl,   This  bit  turns  in  ON
                    oPtIoN  REG  =%01111111       ;  sel  biis.   Page 21  of  the  datasheet
                        ;  bitT=O   Pu1ls  up  all  of  PoRTB
                        ;  bi!6=1   hterrupl   edse  select.   Rising
                        ,  bit5=1   Clock  source.  F,A4
                        '  h i . r  "  T
                        ;  bit3=1   prescarar   assigned  to  hrDT therefore  prescate=1
                        ;  bi!2=1   Prescalar  seLection
                        ;  bill=1   Prescalar  selection
                        ;  bit0=1   Prescalar  selection
                    I N T C O N  = U 1 0 0 1 0 0 0 0  :  s o l  b i  s  t o r  - n , e r ! - p .  c o _ _ ] o
                                                     ;  Page 22
                        ;  bit?=1   G1oba1 interrupt   enable
                        ;  b i . 6 - 0  e n a b l e s  d 1 1  o e  ; p r e r o  - o  s F L  i ,  L e r r u p L
                        ;  bit5=0   enables  flag  for  TMRo overflod-  Goes  with  bit2
                        ;  bi!4=1   Enables  inLerrupL  for  bit  0  on  PORTB. Goes  oiLh  biLl
                        ;  bit3=0   enables  interupt   any  bit  on  PoRTB. Goes vilh  bit0
                        ;  b1!2=0   TMRo overflow flag  or  bit,   TMRO  is  always  on.
                        ;  bitl=o   flaq  for  bilo  on  PoRrB.  see  bit4
                        ;  bit0=0   flag  for  any  bit  on  PORI'B. See bit3

                    PAUSE  5OO
                    LCDOUT  $FE,  1,   "CI,EJARS  THE  T,CD.   ':
                    PAUSE 500

                    t'URIL=0
                    IIIRlH=0
                    ON INTERRUPT  GOTO  INT_ROUTTNE  ;  inLeTTupt    IATgE!
                    LOOP:                            ,  nain  loop
                                          \X=/,
                      LCDOUT  $FB.  $80,        DEC5 x,u
                                          \I:"
                      ICDOUT  $FE,  $8Ar        ,BlNe  INICON  ;
                                         'B=",BINa        "   *,DEC3        "  ',DEC3
                      LDOuE  $FE,  9C0,            PORTB'            TURIA.          TMR1L
                    GoIo  l,ooP                      ;  end  of  toop
                     DrsaBtE                         ;  disable  interrupts
                       INr-ROUTIIIE:                 ;  interrupt   routine

                        TOGGIJE PORTB.l
                        x=256*rrdR1H  +  T!'RIL
                        rMlcoN.l=o                   ;  rese!   lhe  interrupt   flag  for:  B0
                        PAUSE 25
                      REgUlrlE                       ;  resune  progran
                     E![aBrJE                        ;  enable  interrupts

                     END                             ;  end  of  progran
   248   249   250   251   252   253   254   255   256   257   258