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

📄 setup.lst

📁 可视门铃的主机软件
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V6.02  SETUP                                                                  03/10/2006 14:34:53 PAGE 1   


C51 COMPILER V6.02, COMPILATION OF MODULE SETUP
OBJECT MODULE PLACED IN SETUP.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE SETUP.C DB OE SMALL ROM(LARGE) 

stmt level    source

   1          /*
   2          设置菜单程序
   3          */
   4          //修改记录
   5          //修改内容:把判断是否又信息调(!disinfo())改为:判断(infoindex[0]==0)
   6          //DATA:2005-02-20
   7          
   8          //修改记录
   9          //修改内容:通知其他门口机房号更新
  10          //DATA:2005-03-16
  11          #include "defineh.h"
  12          #include "externh.h"
  13          #include "setup.h"
  14          
  15          void dis3010();  //删除所有用户开锁密码
  16          
  17          sbit mIdCard0   = P1^6;
  18          sbit mIdCard1   = P1^7;
  19          
  20          //功能描述:按房号比较开锁密码
  21          //入口参数:楼层号,房号,旧密码(四位)
  22          //出口参数:若密码正确,返回真,否则返回假
  23          bit c_mima()
  24          {
  25   1      
  26   1       uint xdata temproom1;
  27   1       uint xdata tempfloor1; 
  28   1       uint xdata mimaaddr;
  29   1       //uchar xdata *is62addr;
  30   1       uchar xdata i;
  31   1       uchar xdata j;
  32   1       uchar xdata m;
  33   1       uchar xdata n;
  34   1       mima_bit=0;
  35   1       mimaNOTact=0;//密码还没有激活
  36   1       //取的楼层号及房号
  37   1       /*m=keyroom[0];
  38   1       m=m&0x0f;
  39   1       m=m<<4; 
  40   1       n=keyroom[1];
  41   1       n=n&0x0f;
  42   1       */
  43   1       tempfloor1=keyroom[0]*10+keyroom[1]; 
  44   1       
  45   1       temproom1 =keyroom[2]*10+keyroom[3];
  46   1       
  47   1       //计算存储的目的地址
  48   1       mimaaddr = tempfloor1-1;
  49   1       mimaaddr*=0x40;
  50   1       mimaaddr+=ROOMMIMASTART;
  51   1       temproom1--;
  52   1       temproom1<<=1;
  53   1       mimaaddr+=temproom1;
  54   1      
  55   1       
C51 COMPILER V6.02  SETUP                                                                  03/10/2006 14:34:53 PAGE 2   

  56   1       //取得密码
  57   1       /*m=keymima[0];
  58   1       m=m&0x0f;
  59   1       m=m<<4; 
  60   1       n=keymima[1];
  61   1       n=n&0x0f;
  62   1       i=m|n;
  63   1       n=keymima[2];
  64   1       n=n&0x0f;
  65   1       m=n<<4;
  66   1       n=keymima[3];
  67   1       n=n&0x0f;
  68   1       j=m|n;
  69   1       */
  70   1       i=keymima[0]*10+keymima[1];
  71   1       j=keymima[2]*10+keymima[3];
  72   1       m=Read24(mimaaddr);
  73   1       n=Read24(mimaaddr+1);
  74   1       /* 
  75   1       mimaNOTact=0; 
  76   1       mimaNOTchange=0;//密码还没有修
  77   1       if((m==0xfa)&&(n==0xfa))
  78   1          { //密码已经激活,还没有修改,暂时不能使用
  79   1           mimaNOTact=1;
  80   1           return NO; 
  81   1          }
  82   1       else if((m==0xfb)&&(n==0xfb))
  83   1          {
  84   1           mimaNOTchange=1;//密码还没有修
  85   1           return NO;  
  86   1          }
  87   1       else */if((m==i)&&(n==j))   //若密码正确,返回真
  88   1         { 
  89   2              mima_bit=1;
  90   2       	   return YES;  
  91   2       	   
  92   2          }         
  93   1        
  94   1       else  
  95   1         {
  96   2         mima_bit=0;    
  97   2         return NO;
  98   2         }
  99   1       
 100   1      }
 101          
 102          
 103          //功能描述:保存用户开锁密码
 104          //入口参数:楼层号,房号,密码(四位)
 105          
 106           uchar saveopenmima()
 107          {
 108   1       uchar xdata temproom1;
 109   1       uchar xdata temproom2;
 110   1       uchar xdata tempfloor1; 
 111   1       uint xdata mimaaddr;
 112   1       uchar xdata *is62addr;
 113   1       uchar xdata i;
 114   1       uchar xdata j;
 115   1       uchar xdata m;
 116   1       uchar xdata n;
 117   1      
C51 COMPILER V6.02  SETUP                                                                  03/10/2006 14:34:53 PAGE 3   

 118   1       //取的楼层号及房号
 119   1       tempfloor1=keyroom[0]*10+keyroom[1]; 
 120   1       temproom1 =keyroom[2]*10+keyroom[3];
 121   1       temproom2 =temproom1;  //备份房号
 122   1       /*m=keyroom[0];
 123   1       m=m&0x0f;
 124   1       m=m<<4; 
 125   1       n=keyroom[1];
 126   1       n=n&0x0f;
 127   1       tempfloor1=m|n;
 128   1       n=keyroom[2];
 129   1       n=n&0x0f;
 130   1       m=n<<4;
 131   1       n=keyroom[3];
 132   1       n=n&0x0f;
 133   1       temproom1=m|n;
 134   1       */
 135   1       //计算存储的目的地址
 136   1       mimaaddr = tempfloor1-1;
 137   1       mimaaddr*=0x40;
 138   1       mimaaddr+=ROOMMIMAADDR;
 139   1       temproom1--;
 140   1       temproom1<<=1;
 141   1       mimaaddr+=temproom1;
 142   1       
 143   1       //取得密码
 144   1       /*m=keymima[0];
 145   1       m=m&0x0f;
 146   1       m=m<<4; 
 147   1       n=keymima[1];
 148   1       n=n&0x0f;
 149   1       i=m|n;
 150   1       n=keymima[2];
 151   1       n=n&0x0f;
 152   1       m=n<<4;
 153   1       n=keymima[3];
 154   1       n=n&0x0f;
 155   1       j=m|n;
 156   1       */
 157   1       i=keymima[0]*10+keymima[1];
 158   1       j=keymima[2]*10+keymima[3];
 159   1       Write24(mimaaddr,i);
 160   1       Write24((mimaaddr+1),j);
 161   1       if(Read24(mimaaddr)==i)
 162   1         {
 163   2          mimaaddr-=ROOMMIMAADDR;   //
 164   2          mimaaddr+=ROOMMIMASTART;  //可能还要修改
 165   2          is62addr=mimaaddr;
 166   2          *is62addr=i;
 167   2          m=0;
 168   2          m=*is62addr;
 169   2          *(is62addr+1)=j;
 170   2          n=0;
 171   2          n=*(is62addr+1);
 172   2          updateOTHERdata(MIMAUPDATE,tempfloor1,temproom2,i,j);
 173   2          return YES;
 174   2         }
 175   1       else
 176   1         return NO;
 177   1      
 178   1      }
 179          #if DOORFIVE   //为05款门口机
C51 COMPILER V6.02  SETUP                                                                  03/10/2006 14:34:53 PAGE 4   

              #else   //为其他款门口机             
 181                          
 182          //************************************************
 183          //功能描述:根据屏幕上第13、14、15三位数字转化成解码器号
 184          //入口参数:三位输入的数字
 185          //出口参数:解码器号码
 186          uchar togetjienum()
 187          {
 188   1      uchar xdata m;
 189   1      uchar xdata n;
 190   1      uchar xdata l;
 191   1      l=0x00;
 192   1      if((keymima[0]==0)&&(keymima[1]==0)&&(keymima[2]==0))
 193   1      	return 0;
 194   1      if(keymima[0]>3)
 195   1        return 0XFF;
 196   1      if((keymima[0]>2)&&(keymima[1]>5))
 197   1         return 0XFF;
 198   1      m=keymima[0]*100+keymima[1]*10+keymima[2];
 199   1      if(m>250)
 200   1      	return 0XFF;
 201   1      n=m/0x10;
 202   1      l=n<<4;
 203   1      n=m%0x10;
 204   1      l|=n;
 205   1      return l;
 206   1      
 207   1      }
 208          #endif
 209          
 210          /***********************************************/
 211          uchar uuint(uchar i)
 212          {
 213   1       return   ((keymima[i]<<=4)|keymima[i+1]);
 214   1      }
 215          /************************************************/
 216          bit compcenmi(void)
 217          {
 218   1       if((uuint(0)==Read24(GUANLIMIMA))&&(uuint(2)==Read24(GUANLIMIMA+1))&&(uuint(4)==Read24(GUANLIMIMA+2)))
 219   1         return OK;
 220   1       else if((keymima[0]==0x00)&&(keymima[1]==0x01)&&(keymima[2]==0x03)&&(keymima[3]==0x05)&&(keymima[4]==0x07
             -)&&(keymima[5]==0x09))
 221   1             return OK;
 222   1       return NO;
 223   1      }
 224          /************************************************/
 225          bit compsysmi(void)
 226          {
 227   1       if(((uuint(0)==sysmima[0])&&(uuint(2)==sysmima[1])&&(uuint(4)==sysmima[2]))|((uuint(0)==0x01)&&(uuint(2)=
             -=0x35)&&(uuint(4)==0x79)))
 228   1         return OK;
 229   1       return NO;
 230   1      }
 231          /************************************************/
 232          bit compday(uchar i)
 233          {
 234   1       uint daynum;
 235   1       if(i==1)
 236   1         daynum=keymima[0];
 237   1       else if(i==2)
 238   1         daynum=keymima[0]*10+keymima[1];
 239   1       else if(i==3)
C51 COMPILER V6.02  SETUP                                                                  03/10/2006 14:34:53 PAGE 5   

 240   1         {
 241   2          daynum=(uint) keymima[0];
 242   2          daynum=daynum*100+keymima[1]*10+keymima[2];
 243   2         }
 244   1       if(daynum<=250)
 245   1         {
 246   2          Write24(TRYDAYADDR,daynum);
 247   2          usedays=daynum;
 248   2          return YES;
 249   2         }
 250   1       else
 251   1         return NO;
 252   1      }
 253          /************************************************/
 254          /*void savemima(void)
 255          {
 256           Write24(OPENLOCKMIMA,uuint(0));
 257           Write24(OPENLOCKMIMA+1,uuint(2));
 258          }
 259          */
 260          /************************************************/
 261          bit savecenmima(void)
 262          {
 263   1       uchar i,j,k;
 264   1       i=uuint(0);
 265   1       j=uuint(2);
 266   1       k=uuint(4);
 267   1       Write24(GUANLIMIMA,i);
 268   1       Write24((GUANLIMIMA+1),j);
 269   1       Write24((GUANLIMIMA+2),k);
 270   1       if(Read24(GUANLIMIMA)==i)
 271   1         return YES;
 272   1       else
 273   1         return NO;
 274   1      }
 275          /*void actmima(void)
 276          {
 277           uchar xdata temproom1
 278           uchar xdata temproom2;
 279           uchar xdata tempfloor1; 
 280           uint xdata mimaaddr;
 281           uchar xdata *is62addr;
 282           
 283           uchar xdata m;
 284           uchar xdata n;
 285          
 286           //取的楼层号及房号
 287           tempfloor1=keyroom[0]*10+keyroom[1]; 
 288           temproom1 =keyroom[2]*10+keyroom[3];
 289           temproom2 =temproom1;  //备份房号
 290           
 291           //计算存储的目的地址
 292           mimaaddr = tempfloor1-1;
 293           mimaaddr*=0x40;
 294           mimaaddr+=ROOMMIMAADDR;
 295           temproom1--;
 296           temproom1<<=1;
 297           mimaaddr+=temproom1; 
 298           m=Read24(mimaaddr);
 299           n=Read24(mimaaddr+1); 
 300           if((m==0xfb)&&(n==0xfb)
 301              {
C51 COMPILER V6.02  SETUP                                                                  03/10/2006 14:34:53 PAGE 6   

 302               keymima[0]=0;
 303               keymima[1]=0;
 304               keymima[2]=0;
 305               keymima[3]=0;
 306               
 307              }
 308           
 309           
 310          }
 311          */
 312          /************************************************/
 313          bit  writeroomnum(uchar jiema,uchar duankou)
 314          {
 315   1       uint roomaddr;
 316   1       uchar xdata *is62addr;
 317   1       uchar i,j;
 318   1       uchar m,n,k;
 319   1       roomaddr= jiema-1;
 320   1       roomaddr*=0x10;
 321   1       roomaddr+=ROOMSTARTADDR;
 322   1       k=duankou;
 323   1       duankou--;
 324   1       duankou<<=1;
 325   1       roomaddr+=duankou;
 326   1       m=keyroom[0];
 327   1       m=m&0x0f;
 328   1       m=m<<4; 
 329   1       n=keyroom[1];
 330   1       n=n&0x0f;
 331   1       i=m|n;
 332   1       n=keyroom[2];
 333   1       n=n&0x0f;
 334   1       m=n<<4;
 335   1       n=keyroom[3];
 336   1       n=n&0x0f;
 337   1       j=m|n;
 338   1       
 339   1       Write24(roomaddr,i);
 340   1       Write24((roomaddr+1),j);
 341   1       if(Read24(roomaddr)==i)
 342   1         {
 343   2          roomaddr-=ROOMSTARTADDR;
 344   2          roomaddr+=ROOMSTART;
 345   2          is62addr=roomaddr;
 346   2          *is62addr=i;   
 347   2          *(is62addr+1)=j;   
 348   2          
 349   2          updateOTHERdata(FANGHAOUPDATE,jiema,k,i,j);
 350   2          return YES;
 351   2         }

⌨️ 快捷键说明

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