Page 190 - Programming Microcontrollers in C
P. 190

Timers    175

                   0000 #define RT0 0
                   0001 #define RT1 1
                   0004 #define RTIE 4
                   0005 #define TOFE 5
                   0006 #define RTIF 6
                   0007 #define TOF 7


                   0001 #define TRUE 1
                   0000 #define FALSE 0
                   0001 #define FOREVER while(TRUE)


                   00C0 00C1 00C2 int hrs,mts,sec;
                   00C3 int count;
                          main(void)
                          {
                   0300 3F C3 CLR $C3 count=0;
                   0302 11 08 BCLR 0,$08 TCST.RT0=0;
                   0304 13 08 BCLR 1,$08 TCST.RT1=0;
                   0306 18 08 BSET 4,$08 TCST.RTIE=1;
                   0308 1D 08 BCLR 6,$08 TCST.RTIF=0;
                   030A 1F 08 BCLR 7,$08 TCST.TOF=0;
                   030C 9A        CLI CLI();
                           FOREVER
                           {
                   030D B6 C2 LDA $C2 if(sec==60)
                   030F A1 3C CMP #$3C
                   0311 25 18 BCS $032B
                           {
                   0313 3F C2 CLR $C2 sec=0;
                   0315 3C C1 INC $C1 if(++mts==60)
                   0317 B6 C1 LDA $C1
                   0319 A1 3C CMP #$3C
                   031B 26 0E BNE $032B
                           {
                   031D 3F C1 CLR $C1 mts=0;
                   031F 3C C0 INC $C0 if(++hrs==13)
                   0321 B6 C0 LDA $C0
                   0323 A1 0D CMP #$0D
   185   186   187   188   189   190   191   192   193   194   195