⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.lst

📁 指纹识别源代码,用于智能门紧,还有配合MF800卡使用
💻 LST
字号:
C51 COMPILER V7.01  TIMER                                                                  03/08/2007 12:09:36 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN timer.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE timer.c OPTIMIZE(7,SPEED) REGFILE(.\fingerPRJ.ORC) BROWSE FLOATFUZZY(0) NOA
                    -REGS DEBUG OBJECTEXTEND CODE

stmt level    source

   1          #include "reg58.h"
   2          
   3          #define _TIMER_C_
   4          #include "timer.h"
   5          #include "clock.h"
   6          #include "setup.h"
   7          #include "sram.h"
   8          
   9          unsigned char data timerl,timerh,timeruh;
  10          unsigned char data datetime[8],seconds;
  11          bit secondsflag;
  12          ///////////////////////////////////////////////////////////////////////////////////////////
  13          ///////////////////////////////////////////////////////////////////////////////////////////
  14          
  15          void init_timer()
  16          {
  17   1              unsigned char tempdata;
  18   1              TMOD=0X22;              //timer0:8bits reload ,timer1:8bits reload
  19   1              TCON=0X50;              //start timer0 and timer1
  20   1              TH0=31;
  21   1      
  22   1              //SCON=0X70;            //seted in rxd.c        //10bits asynchronous variable
  23   1              //SCON1=0X70;           //seted in rxd.c        //10bits asynchronous   variable
  24   1      
  25   1              T2CON=0X34;             //serial port 0 using timer2 as timebase
  26   1              T2MOD=0;
  27   1      
  28   1              SMOD1=1;
  29   1              RCAP2H=0XFF;
  30   1              RCAP2L=0XB8;            //set uart0 baudrate 9600
  31   1      
  32   1              tempdata=readbaudrate();
  33   1              TH1=baudratetimer[tempdata];            //set baudrate of uart1
  34   1      
  35   1              getdatetime();
  36   1      
  37   1              IE=0X52;                //enable uart1,uart0,timer0     
  38   1              PCON=0X80;
  39   1              //IE=0X12;
  40   1              EA=1;
  41   1      }
  42          
  43          void timer0() interrupt 1 using 1
  44          {
  45   1              timerl++;
  46   1              if(!timerl)
  47   1              {
  48   2                      timerh++;
  49   2      
  50   2                      if(!(timerh&0x1f))
  51   2                      {
  52   3                              secondsflag=1;
  53   3                              seconds++;
  54   3                      }
C51 COMPILER V7.01  TIMER                                                                  03/08/2007 12:09:36 PAGE 2   

  55   2      
  56   2                      if(!timerh)
  57   2                      {
  58   3                              timeruh++;
  59   3                      }
  60   2              }
  61   1      }
  62          
  63          void timer1() interrupt 3 using 1
  64          {
  65   1      }
  66          
  67          void timer2() interrupt 5 using 1
  68          {
  69   1      }
  70          void delayTimerl(unsigned char delaytime)
  71          {
  72   1              unsigned char temptimer;
  73   1              temptimer=timerl;
  74   1              while((timerl-temptimer)<delaytime);
  75   1      }
  76          void delaytimerh(unsigned char delaytime)
  77          {
  78   1              unsigned char temptimer;
  79   1              temptimer=timerh;
  80   1              while((timerh-temptimer)<delaytime);
  81   1      }
  82          
  83          void delay50us()
  84          {
  85   1              unsigned char i=100;
  86   1              for(;i;i--);
  87   1      }
  88          
  89          void delay500ms()
  90          {
  91   1              unsigned char i,j;
  92   1              for(i=0;i<100;i++)
  93   1              {
  94   2                      for(j=0;j<100;j++)
  95   2                      {
  96   3                              delay50us();
  97   3                      }
  98   2              }
  99   1      }
 100          /*void delaytimeruh(unsigned char delaytime)
 101          {
 102                  unsigned char temptimer;
 103                  temptimer=timeruh;
 104                  while((timeruh-temptimer)<delaytime);
 105          }*/
 106          //void delay(unsigned char delaytime)
 107          //{
 108          //      unsigned char temptimer;
 109          //
 110          //      temptimer=timerl;
 111          //      while((timerl-temptimer)<delaytime);
 112          //      
 113          //}
C51 COMPILER V7.01  TIMER                                                                  03/08/2007 12:09:36 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION init_timer (BEGIN)
                                           ; SOURCE LINE # 15
                                           ; SOURCE LINE # 16
                                           ; SOURCE LINE # 18
0000 758922            MOV     TMOD,#022H
                                           ; SOURCE LINE # 19
0003 758850            MOV     TCON,#050H
                                           ; SOURCE LINE # 20
0006 758C1F            MOV     TH0,#01FH
                                           ; SOURCE LINE # 25
0009 75C834            MOV     T2CON,#034H
                                           ; SOURCE LINE # 26
000C E4                CLR     A
000D F5C9              MOV     T2MOD,A
                                           ; SOURCE LINE # 28
000F D2DF              SETB    SMOD1
                                           ; SOURCE LINE # 29
0011 75CBFF            MOV     RCAP2H,#0FFH
                                           ; SOURCE LINE # 30
0014 75CAB8            MOV     RCAP2L,#0B8H
                                           ; SOURCE LINE # 32
0017 120000      E     LCALL   readbaudrate
;---- Variable 'tempdata' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 33
001A EF                MOV     A,R7
001B 900000      E     MOV     DPTR,#baudratetimer
001E 93                MOVC    A,@A+DPTR
001F F58D              MOV     TH1,A
                                           ; SOURCE LINE # 35
0021 120000      E     LCALL   getdatetime
                                           ; SOURCE LINE # 37
0024 75A852            MOV     IE,#052H
                                           ; SOURCE LINE # 38
0027 758780            MOV     PCON,#080H
                                           ; SOURCE LINE # 40
002A D2AF              SETB    EA
                                           ; SOURCE LINE # 41
002C 22                RET     
             ; FUNCTION init_timer (END)

             ; FUNCTION timer0 (BEGIN)
0000 C0E0              PUSH    ACC
                                           ; SOURCE LINE # 43
                                           ; SOURCE LINE # 45
0002 0500        R     INC     timerl
                                           ; SOURCE LINE # 46
0004 E500        R     MOV     A,timerl
0006 7012              JNZ     ?C0005
                                           ; SOURCE LINE # 47
                                           ; SOURCE LINE # 48
0008 0500        R     INC     timerh
                                           ; SOURCE LINE # 50
000A E500        R     MOV     A,timerh
000C 541F              ANL     A,#01FH
000E 7004              JNZ     ?C0003
                                           ; SOURCE LINE # 51
                                           ; SOURCE LINE # 52
0010 D200        R     SETB    secondsflag
                                           ; SOURCE LINE # 53
C51 COMPILER V7.01  TIMER                                                                  03/08/2007 12:09:36 PAGE 4   

0012 0500        R     INC     seconds
                                           ; SOURCE LINE # 54
0014         ?C0003:
                                           ; SOURCE LINE # 56
0014 E500        R     MOV     A,timerh
0016 7002              JNZ     ?C0005
                                           ; SOURCE LINE # 57
                                           ; SOURCE LINE # 58
0018 0500        R     INC     timeruh
                                           ; SOURCE LINE # 59
                                           ; SOURCE LINE # 60
                                           ; SOURCE LINE # 61
001A         ?C0005:
001A D0E0              POP     ACC
001C 32                RETI    
             ; FUNCTION timer0 (END)

             ; FUNCTION timer1 (BEGIN)
                                           ; SOURCE LINE # 63
                                           ; SOURCE LINE # 65
0000 32                RETI    
             ; FUNCTION timer1 (END)

             ; FUNCTION timer2 (BEGIN)
                                           ; SOURCE LINE # 67
                                           ; SOURCE LINE # 69
0000 32                RETI    
             ; FUNCTION timer2 (END)

             ; FUNCTION _delayTimerl (BEGIN)
                                           ; SOURCE LINE # 70
;---- Variable 'delaytime' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 71
                                           ; SOURCE LINE # 73
;---- Variable 'temptimer' assigned to Register 'R6' ----
0000 AE00        R     MOV     R6,timerl
0002         ?C0008:
                                           ; SOURCE LINE # 74
0002 C3                CLR     C
0003 E500        R     MOV     A,timerl
0005 9E                SUBB    A,R6
0006 C3                CLR     C
0007 9F                SUBB    A,R7
0008 40F8              JC      ?C0008
                                           ; SOURCE LINE # 75
000A         ?C0010:
000A 22                RET     
             ; FUNCTION _delayTimerl (END)

             ; FUNCTION _delaytimerh (BEGIN)
                                           ; SOURCE LINE # 76
;---- Variable 'delaytime' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 77
                                           ; SOURCE LINE # 79
;---- Variable 'temptimer' assigned to Register 'R6' ----
0000 AE00        R     MOV     R6,timerh
0002         ?C0011:
                                           ; SOURCE LINE # 80
0002 C3                CLR     C
0003 E500        R     MOV     A,timerh
0005 9E                SUBB    A,R6
0006 C3                CLR     C
C51 COMPILER V7.01  TIMER                                                                  03/08/2007 12:09:36 PAGE 5   

0007 9F                SUBB    A,R7
0008 40F8              JC      ?C0011
                                           ; SOURCE LINE # 81
000A         ?C0013:
000A 22                RET     
             ; FUNCTION _delaytimerh (END)

             ; FUNCTION delay50us (BEGIN)
                                           ; SOURCE LINE # 83
                                           ; SOURCE LINE # 84
                                           ; SOURCE LINE # 85
;---- Variable 'i' assigned to Register 'R7' ----
0000 7F64              MOV     R7,#064H
                                           ; SOURCE LINE # 86
0002         ?C0014:
0002 DFFE              DJNZ    R7,?C0014
                                           ; SOURCE LINE # 87
0004         ?C0017:
0004 22                RET     
             ; FUNCTION delay50us (END)

             ; FUNCTION delay500ms (BEGIN)
                                           ; SOURCE LINE # 89
                                           ; SOURCE LINE # 90
                                           ; SOURCE LINE # 92
;---- Variable 'i' assigned to Register 'R6' ----
0000 E4                CLR     A
0001 FE                MOV     R6,A
0002         ?C0018:
                                           ; SOURCE LINE # 93
                                           ; SOURCE LINE # 94
;---- Variable 'j' assigned to Register 'R5' ----
0002 E4                CLR     A
0003 FD                MOV     R5,A
0004         ?C0021:
                                           ; SOURCE LINE # 95
                                           ; SOURCE LINE # 96
0004 120000      R     LCALL   delay50us
                                           ; SOURCE LINE # 97
0007 0D                INC     R5
0008 BD64F9            CJNE    R5,#064H,?C0021
                                           ; SOURCE LINE # 98
000B         ?C0020:
000B 0E                INC     R6
000C BE64F3            CJNE    R6,#064H,?C0018
                                           ; SOURCE LINE # 99
000F         ?C0024:
000F 22                RET     
             ; FUNCTION delay500ms (END)



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    119    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -