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

📄 clock.lst

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


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

stmt level    source

   1          #include "reg58.h"
   2          #include "bus.h"
   3          #include "clock.h"
   4          #include "intrins.h"
   5          #include "timer.h"
   6          #include "lcd.h"
   7          
   8          unsigned char clock_read(unsigned char time)
   9          {
  10   1              unsigned char tempdata;
  11   1              AS128=0;
  12   1              SEL128=0;
  13   1              DATAPORT=time;
  14   1              AS128=1;
  15   1              _nop_();
  16   1              AS128=0;
  17   1      
  18   1              DATAPORT=0XFF;
  19   1              //tempdata=DATAPORT;
  20   1              
  21   1              RD=0;
  22   1              _nop_();
  23   1              _nop_();
  24   1              tempdata=DATAPORT;
  25   1              RD=1;
  26   1              SEL128=1;
  27   1              return tempdata;        
  28   1      }
  29          
  30          void clock_write(unsigned char time,unsigned char timedata)
  31          {
  32   1              AS128=0;
  33   1              //WR=0;
  34   1              SEL128=0;
  35   1              DATAPORT=time;
  36   1              AS128=1;
  37   1              _nop_();
  38   1              AS128=0;
  39   1              
  40   1              DATAPORT=timedata;
  41   1              WR=0;
  42   1              _nop_();
  43   1              WR=1;
  44   1              SEL128=1;
  45   1      }
  46          
  47          void getdatetime()
  48          {
  49   1              datetime[0]=clock_read(CCENTURY);
  50   1              datetime[1]=clock_read(CYEAR);
  51   1              datetime[2]=clock_read(CMONTH);
  52   1              datetime[3]=clock_read(CDAYOFMONTH);
  53   1              datetime[4]=clock_read(CHOURS);
  54   1              datetime[5]=clock_read(CMINUTES);
C51 COMPILER V7.01  CLOCK                                                                  03/08/2007 12:09:37 PAGE 2   

  55   1              datetime[6]=clock_read(CSECONDS);
  56   1              datetime[7]=clock_read(CDAYOFWEEK);
  57   1              secondsflag=0;
  58   1              seconds=0;
  59   1      }
  60          void init_clock()
  61          {
  62   1              //unsigned char tempdata;
  63   1              //clock_write(REGISTERA,0x20);
  64   1              //clock_write(SECONDS,0);
  65   1              //clock_write(MINUTES,32);
  66   1              //clock_write(HOURS,12);
  67   1              //clock_write(DAYOFWEEK,4);
  68   1              //clock_write(DAYOFMONTH,11);
  69   1              //clock_write(MONTH,8);
  70   1              //clock_write(YEAR,05);
  71   1              //clock_write(CENTURY,20);
  72   1      
  73   1              //clock_write(100,0x55);
  74   1              //tempdata=clock_read(100);
  75   1              clock_write(CREGISTERB,0x6);
  76   1              clock_write(CREGISTERA,0x20);
  77   1              //while(1)
  78   1              //{
  79   1              //tempdata=clock_read(SECONDS);
  80   1              //tempdata=clock_read(MINUTES);
  81   1              //tempdata=clock_read(HOURS);
  82   1              //t/empdata=clock_read(DAYOFWEEK);
  83   1              //tempdata=clock_read(DAYOFMONTH);
  84   1              //tempdata=clock_read(MONTH);   
  85   1              //tempdata=clock_read(YEAR);
  86   1              //tempdata=clock_read(CENTURY);
  87   1              //tempdata=clock_read(REGISTERA);
  88   1              //tempdata=clock_read(REGISTERB);
  89   1              //tempdata=clock_read(REGISTERC);
  90   1              //tempdata=clock_read(REGISTERD);
  91   1              //}
  92   1              //tempdata1=clock_read(USEDFLAG1);
  93   1              //tempdata2=clock_read(USEDFLAG2);
  94   1              //getdatetime(datetime);
  95   1              _nop_();
  96   1      }
  97          
  98          void checksavedate()
  99          {
 100   1              unsigned char tempdata;
 101   1              tempdata=(dispbuff[LINE2][0]-0X30)*10+dispbuff[LINE2][1]-0X30;          //20
 102   1              if(tempdata!=20)return;
 103   1      
 104   1              tempdata=(dispbuff[LINE2][2]-0X30)*10+dispbuff[LINE2][3]-0X30;          //05
 105   1              if(tempdata>99)return;
 106   1      
 107   1              tempdata=(dispbuff[LINE2][4]-0X30)*10+dispbuff[LINE2][5]-0X30;          //10
 108   1              if((tempdata>12)||(!tempdata))return;
 109   1      
 110   1              tempdata=(dispbuff[LINE2][6]-0X30)*10+dispbuff[LINE2][7]-0X30;          //11
 111   1              if((tempdata>31)||(!tempdata))return;
 112   1      
 113   1              tempdata=(dispbuff[LINE2][8]-0X30)*10+dispbuff[LINE2][9]-0X30;          //
 114   1              if(tempdata>23)return;
 115   1      
 116   1              tempdata=(dispbuff[LINE2][10]-0X30)*10+dispbuff[LINE2][11]-0X30;
C51 COMPILER V7.01  CLOCK                                                                  03/08/2007 12:09:37 PAGE 3   

 117   1              if(tempdata>59)return;
 118   1      
 119   1              tempdata=(dispbuff[LINE2][12]-0X30)*10+dispbuff[LINE2][13]-0X30;
 120   1              if(tempdata>59)return;
 121   1      
 122   1              tempdata=dispbuff[LINE2][14]-0X30;
 123   1              if((tempdata>7)||(!tempdata))return;
 124   1      
 125   1      
 126   1              tempdata=(dispbuff[LINE2][12]-0X30)*10+dispbuff[LINE2][13]-0X30;
 127   1              clock_write(CSECONDS,tempdata);
 128   1      
 129   1              tempdata=(dispbuff[LINE2][10]-0X30)*10+dispbuff[LINE2][11]-0X30;
 130   1              clock_write(CMINUTES,tempdata);
 131   1      
 132   1              tempdata=(dispbuff[LINE2][8]-0X30)*10+dispbuff[LINE2][9]-0X30;          //
 133   1              clock_write(CHOURS,tempdata);
 134   1      
 135   1              tempdata=(dispbuff[LINE2][6]-0X30)*10+dispbuff[LINE2][7]-0X30;          //11
 136   1              clock_write(CDAYOFMONTH,tempdata);
 137   1      
 138   1              tempdata=(dispbuff[LINE2][4]-0X30)*10+dispbuff[LINE2][5]-0X30;          //10
 139   1              clock_write(CMONTH,tempdata);
 140   1      
 141   1              tempdata=(dispbuff[LINE2][2]-0X30)*10+dispbuff[LINE2][3]-0X30;          //05
 142   1              clock_write(CYEAR,tempdata);
 143   1      
 144   1              tempdata=(dispbuff[LINE2][0]-0X30)*10+dispbuff[LINE2][1]-0X30;          //20
 145   1              clock_write(CCENTURY,tempdata);
 146   1      
 147   1              tempdata=dispbuff[LINE2][14]-0X30;
 148   1              clock_write(CDAYOFWEEK,tempdata);
 149   1      
 150   1              getdatetime();
 151   1      
 152   1      
 153   1              
 154   1      }
C51 COMPILER V7.01  CLOCK                                                                  03/08/2007 12:09:37 PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _clock_read (BEGIN)
                                           ; SOURCE LINE # 8
;---- Variable 'time' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 9
                                           ; SOURCE LINE # 11
0000 C2B4              CLR     AS128
                                           ; SOURCE LINE # 12
0002 C2A0              CLR     SEL128
                                           ; SOURCE LINE # 13
0004 8F80              MOV     P0,R7
                                           ; SOURCE LINE # 14
0006 D2B4              SETB    AS128
                                           ; SOURCE LINE # 15
0008 00                NOP     
                                           ; SOURCE LINE # 16
0009 C2B4              CLR     AS128
                                           ; SOURCE LINE # 18
000B 7580FF            MOV     P0,#0FFH
                                           ; SOURCE LINE # 21
000E C2B7              CLR     RD
                                           ; SOURCE LINE # 22
0010 00                NOP     
                                           ; SOURCE LINE # 23
0011 00                NOP     
                                           ; SOURCE LINE # 24
;---- Variable 'tempdata' assigned to Register 'R7' ----
0012 AF80              MOV     R7,P0
                                           ; SOURCE LINE # 25
0014 D2B7              SETB    RD
                                           ; SOURCE LINE # 26
0016 D2A0              SETB    SEL128
                                           ; SOURCE LINE # 27
                                           ; SOURCE LINE # 28
0018         ?C0001:
0018 22                RET     
             ; FUNCTION _clock_read (END)

             ; FUNCTION _clock_write (BEGIN)
                                           ; SOURCE LINE # 30
;---- Variable 'timedata' assigned to Register 'R5' ----
;---- Variable 'time' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 31
                                           ; SOURCE LINE # 32
0000 C2B4              CLR     AS128
                                           ; SOURCE LINE # 34
0002 C2A0              CLR     SEL128
                                           ; SOURCE LINE # 35
0004 8F80              MOV     P0,R7
                                           ; SOURCE LINE # 36
0006 D2B4              SETB    AS128
                                           ; SOURCE LINE # 37
0008 00                NOP     
                                           ; SOURCE LINE # 38
0009 C2B4              CLR     AS128
                                           ; SOURCE LINE # 40
000B 8D80              MOV     P0,R5
                                           ; SOURCE LINE # 41
000D C2B6              CLR     WR
                                           ; SOURCE LINE # 42
C51 COMPILER V7.01  CLOCK                                                                  03/08/2007 12:09:37 PAGE 5   

000F 00                NOP     
                                           ; SOURCE LINE # 43
0010 D2B6              SETB    WR
                                           ; SOURCE LINE # 44
0012 D2A0              SETB    SEL128
                                           ; SOURCE LINE # 45
0014 22                RET     
             ; FUNCTION _clock_write (END)

             ; FUNCTION getdatetime (BEGIN)
                                           ; SOURCE LINE # 47
                                           ; SOURCE LINE # 48
                                           ; SOURCE LINE # 49
0000 7F32              MOV     R7,#032H
0002 120000      R     LCALL   _clock_read
0005 8F00        E     MOV     datetime,R7
                                           ; SOURCE LINE # 50
0007 7F09              MOV     R7,#09H
0009 120000      R     LCALL   _clock_read
000C 8F00        E     MOV     datetime+01H,R7
                                           ; SOURCE LINE # 51
000E 7F08              MOV     R7,#08H
0010 120000      R     LCALL   _clock_read
0013 8F00        E     MOV     datetime+02H,R7
                                           ; SOURCE LINE # 52
0015 7F07              MOV     R7,#07H
0017 120000      R     LCALL   _clock_read
001A 8F00        E     MOV     datetime+03H,R7
                                           ; SOURCE LINE # 53
001C 7F04              MOV     R7,#04H
001E 120000      R     LCALL   _clock_read
0021 8F00        E     MOV     datetime+04H,R7
                                           ; SOURCE LINE # 54
0023 7F02              MOV     R7,#02H
0025 120000      R     LCALL   _clock_read
0028 8F00        E     MOV     datetime+05H,R7
                                           ; SOURCE LINE # 55
002A E4                CLR     A
002B FF                MOV     R7,A
002C 120000      R     LCALL   _clock_read
002F 8F00        E     MOV     datetime+06H,R7

⌨️ 快捷键说明

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