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

📄 mimasuo.lst

📁 2010年新增TX-1C程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 186   5                case 0x7d:
 187   5                     key=7;
 188   5                                 wei++;
 189   5                     break;
 190   5               }
 191   4               while(temp!=0xf0)
 192   4               {
 193   5                 temp=P3;
 194   5                 temp=temp&0xf0;
 195   5                 beep=0;
 196   5               }
 197   4               beep=1;
 198   4            }
 199   3            }
 200   2          P3=0xfb;
 201   2          temp=P3;
 202   2          temp=temp&0xf0;
 203   2          if(temp!=0xf0)
 204   2          {
 205   3            delay(10);
 206   3            if(temp!=0xf0)
 207   3            {
 208   4              temp=P3;
 209   4              switch(temp)
 210   4              {
 211   5                case 0xeb:
 212   5                     key=8;
 213   5                                 wei++;
 214   5                     break;
 215   5      
 216   5                case 0xdb:
 217   5                     key=9;
 218   5                                 wei++;
 219   5                     break;
 220   5                                 
 221   5                case 0xbb:
 222   5                     genggai=1;
 223   5                                 wei=0;
 224   5                     break;
 225   5      
 226   5                case 0x7b:
 227   5                                 if(allow)
 228   5                     ok=1;
 229   5                     break;
 230   5               }
 231   4              while(temp!=0xf0)
 232   4               {
 233   5                 temp=P3;
 234   5                 temp=temp&0xf0;
 235   5                 beep=0;
 236   5               }
 237   4               beep=1;
 238   4            }
 239   3            }
 240   2                P3=0xf7;
 241   2          temp=P3;
C51 COMPILER V8.02   MIMASUO                                                               07/14/2010 14:24:02 PAGE 5   

 242   2          temp=temp&0xf0;
 243   2          if(temp!=0xf0)
 244   2          {
 245   3            delay(10);
 246   3            if(temp!=0xf0)
 247   3            {
 248   4              temp=P3;
 249   4              switch(temp)
 250   4              {
 251   5                case 0xe7:
 252   5                                 retry=1;
 253   5                     break;
 254   5      
 255   5                case 0xd7:
 256   5                                 close=1;
 257   5                     break;
 258   5               }
 259   4              while(temp!=0xf0)
 260   4               {
 261   5                 temp=P3;
 262   5                 temp=temp&0xf0;
 263   5                 beep=0;
 264   5               }
 265   4               beep=1;
 266   4            }
 267   3            }
 268   2      }
 269   1      }
 270          
 271          void shumima()          //对按键采集来的数据进行分配
 272          {
 273   1              if(!wanbi)
 274   1              {
 275   2              switch(wei)
 276   2              {
 277   3                      case 1:new1=key; 
 278   3                                  if(!allow)  a=17;
 279   3                                 else a=key;  break;
 280   3                      case 2:new2=key;
 281   3                                      if(a==17) b=17;
 282   3                                      else b=key;     break;
 283   3                      case 3:new3=key; 
 284   3                                      if(a==17) c=17;
 285   3                                      else c=key;     break;
 286   3                      case 4:new4=key;
 287   3                                      if(a==17) d=17;
 288   3                                      else d=key;     break;
 289   3                      case 5:new5=key; 
 290   3                                      if(a==17) e=17;
 291   3                                      else e=key;     break;
 292   3                      case 6:new6=key; 
 293   3                                      if(a==17) f=17;
 294   3                                      else f=key;
 295   3                                      wanbi=1;        break;
 296   3              }
 297   2              }
 298   1      }
 299          
 300          void yanzheng()   //验证密码是否正确
 301          {
 302   1              if(wanbi)        //只有当六位密码均输入完毕后方进行验证
 303   1              {
C51 COMPILER V8.02   MIMASUO                                                               07/14/2010 14:24:02 PAGE 6   

 304   2              if((new1==old1)&(new2==old2)&(new3==old3)&(new4==old4)&(new5==old5)&(new6==old6))
 305   2                      allow=1;        //当输入的密码正确,会得到allowe置一
 306   2              }
 307   1      }
 308          
 309          void main()
 310          {
 311   1              while(1)
 312   1              {
 313   2                      keyscan();
 314   2                      shumima();
 315   2                      yanzheng();
 316   2                      if(allow)        //验证完后,若allow为1,则开锁
 317   2                      {
 318   3                              P1=0x00;
 319   3                              if(!genggai)
 320   3                                      wanbi=0;
 321   3                      }
 322   2                      if(genggai)       //当S16更改密码键被按下,genggai会被置一
 323   2                      {
 324   3                              if(allow)        //若已经把锁打开,才有更改密码的权限
 325   3                              {
 326   4                                      while(!wanbi)   //当新的六位密码没有设定完,则一直在这里循环
 327   4                                      {
 328   5                                              keyscan();
 329   5                                              shumima();
 330   5                                              if(retry|close)  //而当探测到重试键S18或者关闭密码锁键S19被按下时,则跳出
 331   5                                              {       wanbi=1;
 332   6                                                      break;
 333   6                                              }
 334   5                                              display(a,b,c,d,e,f);
 335   5                                      }
 336   4                              }
 337   3                      }
 338   2                      if(ok)    //更改密码时,当所有六位新密码均被按下时,可以按下此键,结束密码更改
 339   2                      {                 //其他时间按下此键无效
 340   3                              ok=0; wei=0;
 341   3                              genggai=0;
 342   3                              old1=new1;old2=new2;old3=new3; //此时,旧的密码将被代替
 343   3                              old4=new4;old5=new5;old6=new6;
 344   3                              a=16;b=16;c=16;d=16;e=16;f=16;
 345   3                      }
 346   2                      if(retry)       //当重试按键S18被按下,retry会被置位
 347   2                      {
 348   3                      retry=0; wei=0;wanbi=0;
 349   3                      a=16;b=16;c=16;d=16;e=16;f=16;
 350   3                      new1=0;new2=0;new3=0;new4=0;new5=0;new6=0;              
 351   3                      }
 352   2                      if(close)  //当关闭密码锁按键被按下,close会被置位
 353   2                      {
 354   3                              close=0;genggai=0;//所有变量均被清零。
 355   3                              wei=0;  wanbi=0;
 356   3                              allow=0;
 357   3                              P1=0xff;
 358   3                              a=16;b=16;c=16;d=16;e=16;f=16;
 359   3                              new1=0;new2=0;new3=0;new4=0;new5=0;new6=0;
 360   3                      }
 361   2                      display(a,b,c,d,e,f); //实时显示
 362   2              }
 363   1      }


C51 COMPILER V8.02   MIMASUO                                                               07/14/2010 14:24:02 PAGE 7   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    871    ----
   CONSTANT SIZE    =     18    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     21       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      6    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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