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

📄 lock.lst

📁 用4*4键盘组成0-9数字键及确认键。 用8位数码管显示电路提示信息
💻 LST
📖 第 1 页 / 共 2 页
字号:
 165   4                                              break;
 166   4                              }
 167   3                              temp=P0;
 168   3                              temp=temp&0xf0;
 169   3                              while(temp!=0xf0)   //松手检测
 170   3                              {
 171   4                                      temp=P0;
 172   4                                      temp=temp&0xf0;
 173   4                              }
 174   3                      }
 175   2              }
 176   1              return(num);                            
 177   1      }
 178          void main()
C51 COMPILER V8.02   LOCK                                                                  04/28/2009 09:34:47 PAGE 4   

 179          {       
 180   1              unsigned char i;
 181   1              TMOD=0x01;
 182   1              TH0=(65536-500)/256;
 183   1              TL0=(65536-500)%256;
 184   1              EA=1;
 185   1              ET0=1;
 186   1              TR0=1;
 187   1              IO_int();
 188   1              while(1)
 189   1              {
 190   2                      key=Scankey();
 191   2                      if((key>=0)&&(key<10))
 192   2                      {
 193   3                              if(keycount<6)
 194   3                              {
 195   4                                      getps[keycount]=key;
 196   4                              }       
 197   3                              keycount++;
 198   3                              if(keycount==6)
 199   3                              {
 200   4                                      keycount=6;
 201   4                              }
 202   3                              if(keycount>6)
 203   3                              {
 204   4                                      keycount=6;
 205   4                                      keyoverflag=1;//keyoverflow
 206   4                              }
 207   3                      }
 208   2                      if(key==14)
 209   2                      {
 210   3                              if(keycount>0)
 211   3                              {
 212   4                                      keycount--;
 213   4                                      getps[keycount]=0;
 214   4                              }
 215   3                              else
 216   3                              {
 217   4                                      keyoverflag=1;//delete completely
 218   4                              }
 219   3                      }
 220   2                      if(key==15)             //enter key
 221   2                      {
 222   3                              if(keycount!=pslenth)
 223   3                              {
 224   4                                      errorflag=1;
 225   4                                      rightflag=0;
 226   4                                      second3=0;
 227   4                              }
 228   3                              else
 229   3                              {
 230   4                                      i=0;
 231   4                                      while(i<keycount)
 232   4                                      {
 233   5                                              if(getps[i]!=ps[i])
 234   5                                              {
 235   6                                                      i=keycount;
 236   6                                                      errorflag=1;
 237   6                                                      rightflag=0;
 238   6                                                      second3=0;
 239   6                                                      goto next;
 240   6                                              }
C51 COMPILER V8.02   LOCK                                                                  04/28/2009 09:34:47 PAGE 5   

 241   5                                              i++;
 242   5                                      }
 243   4                                      errorflag=0;
 244   4                                      rightflag=1;
 245   4                              next:break;        
 246   4                              }
 247   3                      }
 248   2                      Display(keycount);
 249   2              }
 250   1      }
 251          void time0() interrupt 1
 252          {
 253   1              TH0=(65536-500)/256;
 254   1              TL0=(65536-500)%256;
 255   1              if((errorflag==1)&&(rightflag==0))
 256   1              {
 257   2                      bb++;
 258   2                      if(bb==800)
 259   2                      {
 260   3                              bb=0;
 261   3                              alarmflag=~alarmflag;
 262   3                      }
 263   2                      if(alarmflag==1)        //sound alarm signal
 264   2                      {
 265   3                              SPK=~SPK;       
 266   3                      }
 267   2                      aa++;
 268   2                      {
 269   3                              if(aa==800)
 270   3                              {
 271   4                                      aa=0;
 272   4                                      LIGHT=~LIGHT;
 273   4                              }       
 274   3                      }
 275   2                      second3++;
 276   2                      if(second3==6400)
 277   2                      {
 278   3                              second3=0;
 279   3                              errorflag=0;
 280   3                              rightflag=0;
 281   3                              alarmflag=0;
 282   3                              bb=0;
 283   3                              aa=0;   
 284   3                      }
 285   2              }
 286   1              if((errorflag==0)&&(rightflag==1))
 287   1              {
 288   2                      JDQ=0;
 289   2                      cc++;
 290   2                      if(cc>200)
 291   2                      {
 292   3                              errorflag=0;
 293   3                              rightflag=0;
 294   3                              JDQ=1;
 295   3                      }
 296   2                      SPK=1;
 297   2              }
 298   1              if(keyoverflag==1)
 299   1              {
 300   2                      SPK=~SPK;
 301   2              }
 302   1      }
C51 COMPILER V8.02   LOCK                                                                  04/28/2009 09:34:47 PAGE 6   

 303          void Display(uchar count)
 304          {
 305   1              unsigned int k;
 306   1              if(count==0)
 307   1              {
 308   2                      P1=0x00;
 309   2                      P2=0x00;
 310   2              }
 311   1              else
 312   1              {
 313   2                      for(k=0;k<count;k++)
 314   2                      {
 315   3                              P1=0x07&k;
 316   3                              P2=table[getps[k]];
 317   3                              Delay(50);
 318   3                              P2=0;
 319   3                      }
 320   2              }               
 321   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    739    ----
   CONSTANT SIZE    =     17    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     24    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      4    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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