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

📄 mima.lst

📁 基于89s51单片机开发板创建的密码锁程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 168                          disp_busf[1]=i&0xf0;
 169                          disp_busf[1]>>=4;
 170                  }*/
 171          ////////////////////////////////////////////////////
 172          //密码设置
 173          uchar mima[4];
 174          int config;                                      //验证修改密码是否有足够的权限
 175          void mima_setup(void)
 176                  {
 177   1                      uchar i,twice=0;
 178   1                      uchar mima1[4];
 179   1                      weishu=0;
C51 COMPILER V8.02   MIMA                                                                  08/31/2007 15:30:05 PAGE 4   

 180   1                      if(config==0)
 181   1                      {
 182   2                              P0&=0x0f;
 183   2                              return;
 184   2                      }
 185   1              loop:
 186   1                      i=key();
 187   1              if(i==0xff)
 188   1                              goto loop;
 189   1              else if(i<10&&weishu<4)
 190   1                              {
 191   2                                      disp_busf[3]=disp_busf[2];
 192   2                                      disp_busf[2]=disp_busf[1];
 193   2                                      disp_busf[1]=disp_busf[0];
 194   2                                      disp_busf[0]=i;
 195   2                                      weishu++;
 196   2                              }
 197   1                   else if(i==0x0d)
 198   1                              {
 199   2                                      if(weishu!=0)
 200   2                                      {
 201   3                                              disp_busf[0]=disp_busf[1];
 202   3                                              disp_busf[1]=disp_busf[2];
 203   3                                              disp_busf[2]=disp_busf[3];
 204   3                                              weishu--;
 205   3                                      }
 206   2                              }
 207   1                      else if(i==0x0f&&weishu==4)
 208   1                                      {
 209   2                                              if(twice==0)
 210   2                                              {
 211   3                                                      for(i=0;i<4;i++)
 212   3                                  {mima1[i]=disp_busf[i];}
 213   3                                                      twice=1;
 214   3                                              }
 215   2                                              P0|=0xf0;
 216   2                                              if(twice==1)
 217   2                                              {
 218   3                                                      for(i=0;i<4;i++)
 219   3                                                              {
 220   4                                                                      if(mima1[i]!=disp_busf[i])
 221   4                                                                              break;
 222   4                                                              }
 223   3                                                      if(i==4)
 224   3                                                      {
 225   4                                                              for(i=0;i<4;i++)
 226   4                                        {
 227   5                                                                      mima[i]=disp_busf[i];
 228   5                                                                      P0|=0xf0;
 229   5                                                                }
 230   4                                                              config=0;
 231   4                                                              return;
 232   4                                                      }
 233   3                                              }
 234   2                                      }
 235   1                              else
 236   1                                      goto loop;
 237   1              }
 238          //////////////////////////////////////////////////////
 239          //输入数据子程序
 240          void shuru(void)
 241                  {
C51 COMPILER V8.02   MIMA                                                                  08/31/2007 15:30:05 PAGE 5   

 242   1                      uchar i,wrong=0;
 243   1              loop:
 244   1                      i=key();
 245   1              if(i==0xff)
 246   1                              goto loop;
 247   1              else if(i<10)
 248   1                              {
 249   2                                      if(weishu!=4)
 250   2                                      {
 251   3                                              disp_busf[3]=disp_busf[2];
 252   3                                              disp_busf[2]=disp_busf[1];
 253   3                                              disp_busf[1]=disp_busf[0];
 254   3                                              disp_busf[0]=i;
 255   3                                              weishu++;
 256   3                                      }
 257   2                              }
 258   1                   else if(i==0x0d)
 259   1                              {
 260   2                                      if(weishu!=0)
 261   2                                      {
 262   3                                              disp_busf[0]=disp_busf[1];
 263   3                                              disp_busf[1]=disp_busf[2];
 264   3                                              disp_busf[2]=disp_busf[3];
 265   3                                              weishu--;
 266   3                                      }
 267   2                              }
 268   1                              else if(i==0x0f&&weishu==4)
 269   1                                      {
 270   2                                              for(i=0;i<4;i++)
 271   2                              {if(disp_busf[i]!=mima[i]) break;}
 272   2                                              if(i!=4)
 273   2                                                      {
 274   3                                                              P0&=0x0f;
 275   3                                                              wrong++;
 276   3                                                              if(wrong==3)
 277   3                                                                      {
 278   4                                                                              P3|=0x40;
 279   4      //                                                                      TH1=10000/256;
 280   4      //                                                              TL1=10000%256;
 281   4                                                                              for(i=0;i<10000;i++)
 282   4                                                                                      {
 283   5                                                                                              i=key();
 284   5                                                                                              if(i==0x0c)
 285   5                                                                                                      break;
 286   5                                                                                      }
 287   4                                                                              P3&=0xbf;
 288   4                                                                              wrong=0;
 289   4                                                                      }
 290   3                                                      }
 291   2                                              else
 292   2                                                      { 
 293   3                                                              P0|=0xf0;
 294   3                                                              config=1;
 295   3                                                              wrong=0;
 296   3                                                      }
 297   2                                              return;
 298   2                                      }
 299   1                              else if(i==0x0e)
 300   1                                      {
 301   2                                              mima_setup();
 302   2                                              return;
 303   2                                      }
C51 COMPILER V8.02   MIMA                                                                  08/31/2007 15:30:05 PAGE 6   

 304   1                              else
 305   1                                      goto loop;
 306   1              }
 307          //////////////////////////////////////////////////////////////
 308          //主程序                        
 309          void main(void)
 310                  {
 311   1                      TMOD=0x11;
 312   1                      TH0=50000/256;
 313   1                      TL0=50000%256;
 314   1                      ET0=1;
 315   1                      TR0=1;
 316   1                      EA=1;
 317   1                      mima[0]=1;//密码初始化
 318   1                      mima[1]=0;
 319   1                      mima[2]=2;
 320   1                      mima[3]=5;
 321   1                      config=0;
 322   1                      weishu=0;//LED初始状态不显示
 323   1              loop:
 324   1                      shuru();
 325   1                      goto loop;
 326   1              }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    636    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     45       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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