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

92   IIMEIS  AIID COUNIERS


                                                                  Labs  program (Hours,  seconds,
                                    Tlme0 usage  per  microEngineering
                      and  minutes digilai clock)  (Coniinued)
                      INCER.   IIOttR  =  SOUR  +  1
                      IF  EOttR  >=  24  IPHEN
                        HOttR  =  0
                      ENDIF
                      GOTO  DEBOUNCE
                                                           decremen!  ninutes
                      DECMIN:   MIIIuIE  =  MIIID:TE  -  1
                      tF  IIINuEIE   >=  60  tgElil
                        MIIiID:rE  =  59
                      ENDIF
                      GC|IIO  DEBOUIiICE
                                                           decrement  hours
                      DECER:   XOUR  -  EOUR  -  1
                      IA  IIOUR  >=  24  !EEN
                        ItOt R  =  23
                      ENDIF
                                                         ;  de  bounce  and delay  for  250 ns
                      D E B O U N C E T F O R I = 1 ! ! O 2 5
                        PAUSE  10                        ,  10 ns  aL  a  tine  so  no  intettupls
                      NEXT  I
                      UPDATE  =  I
                      GOTO  CEKI'P
                                                          ,  interrupt   routine  to  hddle   each

                      DIEABNE                             ;  disable   interruPEs   durinq

                        TICXINAT  EICRS  =  TICKS  +  1
                          IF  TICKS  <  51  THEN  IIE:IIIT

                                                          ;  ol1e second  eLapsed   -  update  tine
                          IICKS   =  0
                          S E C O I i I D = S E C O N D + 1
                            tF  sECOND  >=  60  IHEN
                              SECOND  =  0
                              U I N U I E = r [ I N u r E + 1
                            tF  UINITTE  >=  50  ESEN
                              UINUIE   =  0
                              l t o t t R = E O I T R + 1
                                IF  HOttR  >=  24  THEN
                                llot  R  =  0
                              ENDIF
                            EIIDIF
                          ENDIF
                          UPDAIE   =  1                   ,  se!  Lo  update  LcD
                      EIEXII:   INICON.z   -  0           ;  reset   timer   inierrupt   flael
                      RESI'ME
                      END
   97   98   99   100   101   102   103   104   105   106   107