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

📄 module.lst

📁 this progam is used with e_lock,and so on.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   MODULE                                                                12/04/2008 15:12:02 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MODULE
OBJECT MODULE PLACED IN Module.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Module.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "Include.h"
   2          extern unsigned char FingerRecord[26];                          //指纹记录数组,每位代表对应编号指纹有无
   3          extern unsigned char xdata CommBuf[MAX_BUF_NUMBER];     //串口缓冲
   4          extern unsigned char xdata SCC;                                         //串口接收和校验
   5          //extern unsigned char BellTimer;
   6          extern unsigned int  Tc;                                                        //超时计时器
   7          extern unsigned char NowKey;                                            //当前按键
   8          extern  bit     ReceiveOK;                                                              //数据包接收完成标志位
   9          /**********************************/
  10          bit     Add_Deal = 0;                           //线程标志位1
  11          bit Add_Deal2 = 0;                      //线程标志位2
  12          bit Add_Deal3 = 0;                      //线程标志位3
  13          /**********************************/
  14          //显示操作成功
  15          void DisplayOK(void)
  16          {
  17   1              unsigned char i = 0;
  18   1      
  19   1              for(i=0;i<4;i++)
  20   1              {
  21   2      //                BellOn();
  22   2                      LedBlueOn();
  23   2                                      LedRedOff();
  24   2                      DelayNmS(200);
  25   2      //                BellOff();
  26   2                      LedBlueOff();
  27   2                                      LedRedOn();
  28   2                      DelayNmS(200);
  29   2              }
  30   1                      LedRedOff();            
  31   1      }
  32          //显示操作失败
  33          void DisplayFail(void)
  34          {
  35   1              unsigned char i = 0;
  36   1      
  37   1              for(i=0;i<2;i++)
  38   1              {
  39   2      //                BellOn();
  40   2                      LedRedOff();
  41   2                      DelayNmS(200);
  42   2      //                BellOff();
  43   2                      LedRedOn();
  44   2                      DelayNmS(200);
  45   2              }
  46   1                      LedRedOff();
  47   1      }
  48          //显示通讯错误
  49          void DisplayErr(void)
  50          {
  51   1              unsigned char i = 0;
  52   1      
  53   1              for(i=0;i<2;i++)
  54   1              {
  55   2      //                BellOn();
C51 COMPILER V7.06   MODULE                                                                12/04/2008 15:12:02 PAGE 2   

  56   2                      LedRedOn();
  57   2                      DelayNmS(200);
  58   2      //                BellOff();
  59   2                      LedRedOff();
  60   2                      DelayNmS(200);
  61   2              }
  62   1      }
  63          //显示超时
  64          void DisplayOutTime(void)
  65          {
  66   1              unsigned char i = 0;
  67   1      
  68   1              for(i=0;i<2;i++)
  69   1              {
  70   2      //                BellOn();
  71   2                                      LedBlueOn();
  72   2                      LedRedOn();
  73   2                      DelayNmS(200);
  74   2       //               BellOff();
  75   2                                      LedBlueOff();
  76   2                      LedRedOff();
  77   2                      DelayNmS(200);
  78   2              }
  79   1      }
  80          //清空指纹库
  81          void EmptyFingerModule(void)
  82          {
  83   1              //1 指纹标识全部清零
  84   1              memset(FingerRecord,0,sizeof(FingerRecord));
  85   1      
  86   1              FingerOn();
  87   1      //              BellOn();DelayNmS(200);BellOff();
  88   1      
  89   1              //2 写入模块Flash中
  90   1              if(OK == WriteFingerFlash(FingerRecord,sizeof(FingerRecord),0,0))
  91   1              {
  92   2              }
  93   1              else
  94   1              {
  95   2                      DisplayErr();
  96   2                      FingerOff();
  97   2                      return;
  98   2              }
  99   1      
 100   1              //3 清空指纹库
 101   1              if(OK == EmptyFinger())
 102   1              {
 103   2                      DisplayOK();
 104   2              }
 105   1              else
 106   1              {
 107   2                      DisplayErr();
 108   2              }
 109   1      
 110   1              FingerOff();
 111   1      }
 112          void SearchFingerModule(void)
 113          {
 114   1              unsigned char SearchResult = 0;
 115   1              unsigned char SearchReturn = 0;
 116   1      
 117   1                      if(!Add_Deal)
C51 COMPILER V7.06   MODULE                                                                12/04/2008 15:12:02 PAGE 3   

 118   1                      {
 119   2                      FingerOn();
 120   2      //                      BellOn();DelayNmS(200);BellOff();
 121   2      
 122   2                      CommBuf[0] = C_SEARCH_FINGER;
 123   2                      CommBuf[1] = 0;
 124   2                      CommBuf[2] = 0;
 125   2                      CommBuf[3] = 0;
 126   2                      CommBuf[4] = MAX_FINGER;//最大指纹数
 127   2      
 128   2                              Clear_Uart_Variable();
 129   2                      SendCommand(C_COMMAND,5,CommBuf);//发送搜索命令 
 130   2                              
 131   2              
 132   2                              //等待接收返回
 133   2                              Tc = 2;
 134   2                              while(!ReceiveOK&&Tc);
 135   2                              Clear_Uart_Variable();
 136   2      
 137   2                              if((SCC==CommBuf[CommBuf[3]+4])&&Tc)    //数据包和校验判断 和 接收超时判断
 138   2                              {
 139   3                                      if((C_ANSWER==CommBuf[2])&&(0x01==CommBuf[4]))
 140   3                                      {
 141   4                                              Add_Deal = 1;
 142   4                                              Add_Deal2 = 1;
 143   4                                      }
 144   3                                      else
 145   3                                      {
 146   4                                              Add_Deal = 0;
 147   4                                              Add_Deal2 = 0;
 148   4                                              DisplayErr();
 149   4                              FingerOff();
 150   4                                              NowKey = NO_KEY;
 151   4                                              return;
 152   4                                      }
 153   3                              }
 154   2                              else
 155   2                              {
 156   3                                      Add_Deal = 0;
 157   3                                      Add_Deal2 = 0;
 158   3                                      DisplayErr();
 159   3                      FingerOff();
 160   3                                      NowKey = NO_KEY;
 161   3                                      return;
 162   3                              }
 163   2                      }
 164   1      
 165   1                      //探测手指
 166   1                      if(Add_Deal2&&ReceiveOK)
 167   1                      {
 168   2                              Clear_Uart_Variable();
 169   2                              if(SCC==CommBuf[CommBuf[3]+4])                          //数据包和校验判断
 170   2                              {
 171   3                      if((C_ANSWER == CommBuf[2])&&(0x02 == CommBuf[3])&&(C_SEARCH_FINGER == CommBuf[4]))
 172   3                      {
 173   4                              //接收正确
 174   4                                                      switch(CommBuf[5])
 175   4                                                      {
 176   5                                                              //指纹处理成功
 177   5                                                              case ANSWER_OK:
 178   5        //                              BellOn();
 179   5       //                               BellTimer = 6;//中断中关闭Bell
C51 COMPILER V7.06   MODULE                                                                12/04/2008 15:12:02 PAGE 4   

 180   5                                                                      Add_Deal2 = 0;
 181   5                                                                      Add_Deal3 = 1;
 182   5                                                                      
 183   5                                                                      break;
 184   5      
 185   5                                                              case ANSWER_OUT_TIME:
 186   5                                                                      DisplayOutTime();
 187   5                                              break;
 188   5              
 189   5                                                              case ANSWER_FAIL:
 190   5                                                              case ANSWER_NUMBER_E:
 191   5                                                                      DisplayFail();//增加失败
 192   5                                                                      break; 
 193   5                                                      }
 194   4                                                      if(Add_Deal2)
 195   4                                                      {
 196   5                                                              Add_Deal = 0;
 197   5                                                              Add_Deal2 = 0;
 198   5                                      FingerOff();
 199   5                                                              NowKey = NO_KEY;                                                        
 200   5                                                              return;
 201   5                                                      }
 202   4                      }
 203   3                      else
 204   3                      {
 205   4                                                      Add_Deal = 0;
 206   4                                                      Add_Deal2 = 0;
 207   4                                                      DisplayErr();
 208   4                                          FingerOff();
 209   4                                                      NowKey = NO_KEY;
 210   4                                                      return;
 211   4                      }
 212   3                              }
 213   2                              else
 214   2                              {
 215   3                                      Add_Deal = 0;
 216   3                                      Add_Deal2 = 0;
 217   3                                      DisplayErr();
 218   3                          FingerOff();
 219   3                                      NowKey = NO_KEY;
 220   3                                      return;
 221   3                              }               
 222   2                      }
 223   1      
 224   1                      //等待搜索结果
 225   1                      if(Add_Deal3&&ReceiveOK)
 226   1                      {
 227   2                              Add_Deal3 = 0;
 228   2                              Add_Deal = 0;
 229   2                              if(SCC==CommBuf[CommBuf[3]+4])                                          //数据包和校验判断
 230   2                              {
 231   3                      if((C_ANSWER == CommBuf[2])&&(C_SEARCH_FINGER == CommBuf[4]))
 232   3                      {
 233   4                          //接收正确
 234   4                                              switch(CommBuf[5])
 235   4                                              {
 236   5                                                      //指纹处理成功
 237   5                                                      case ANSWER_SEARCH_OK:
 238   5                                                                                                                      
 239   5                                                              DisplayOK();                                    
 240   5                                                              break;
 241   5      

⌨️ 快捷键说明

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