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

📄 clockdingshi.lst

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

 242   4              while(temp!=0xf0)
 243   4               {
 244   5                 temp=P3;
 245   5                 temp=temp&0xf0;
 246   5                 beep=0;
 247   5               }
 248   4               beep=1;
 249   4            }
 250   3            }
 251   2      }
 252   1      }
 253          
 254          void main()
 255          {
 256   1              TMOD=0x01;
 257   1      
 258   1              TH0=(65536-46080)/256;// 由于晶振为11.0592,故所记次数应为46080,计时器每隔50000微秒发起一次中断。
 259   1              TL0=(65536-46080)%256;//46080的来历,为50000*11.0592/12
 260   1              ET0=1;
 261   1              EA=1;
 262   1              
 263   1              while(1)
 264   1              {       keyscan0();
 265   2                      
 266   2                      if(ok==1)
 267   2                      {       TR0=1;
 268   3                              wei=0;
 269   3                      
 270   3                      if(pp==20)
 271   3                      {       pp=0;
 272   4                              m++;
 273   4                              if(m==60)
 274   4                              {
 275   5                                      m=0;
 276   5                                      f++;
 277   5                                      if(f==60)
 278   5                                      {
 279   6                                              f=0;
 280   6                                              s++;
 281   6                                              if(s==24)  //为24h一个循环,若要12h,只需在此改为12即可。
 282   6                                              {
 283   7                                                      s=0;
 284   7                                              }
 285   6                                      }
 286   5                              }
 287   4                      }
 288   3                      
 289   3                      a0=s%10;
 290   3                      a1=s/10;
 291   3                      b0=f%10;
 292   3                      b1=f/10;
 293   3                      c0=m%10;
 294   3                      c1=m/10;
 295   3                      display(a1,a0,b1,b0,c1,c0);
 296   3              }
 297   2              else
 298   2              {
 299   3              if(change==1)
 300   3              {       TR0=0;
 301   4                      keyscan();
 302   4                      if(key!=10)
 303   4                      {
C51 COMPILER V8.02   CLOCKDINGSHI                                                          06/22/2010 11:22:43 PAGE 6   

 304   5                      
 305   5                      switch(wei)
 306   5                      {
 307   6                              case 1: if(key<3)               //小时最高位为2
 308   6                                              a1=key;
 309   6                                              else
 310   6                                              wei--;
 311   6                                              break;
 312   6                              case 2: if(a1==1|a1==0)
 313   6                                              a0=key;
 314   6                                              else
 315   6                                              if(key<5)
 316   6                                              a0=key;            //当小时最高位为2时,低位最高为4
 317   6                                              break;
 318   6                              case 3: if(key<6)               //分钟最高位为5
 319   6                                              b1=key;
 320   6                                              else
 321   6                                              wei--;
 322   6                                              break;
 323   6                              case 4: b0=key; break;
 324   6                              case 5: if(key<6)               //秒最高位为5
 325   6                                              c1=key; 
 326   6                                              else
 327   6                                              wei--;
 328   6                                              break;
 329   6                              case 6: c0=key; break;
 330   6                      }
 331   5                      key=10;
 332   5                      }
 333   4                              m=c1*10+c0;
 334   4                              f=b1*10+b0;
 335   4                              s=a1*10+a0;
 336   4                      display(a1,a0,b1,b0,c1,c0);
 337   4              }
 338   3              if(dingshi==1)
 339   3              {
 340   4                      TR0=0;
 341   4                      display(shi20,shi10,fen20,fen10,miao20,miao10); 
 342   4                      keyscan();
 343   4                      if(key!=10)
 344   4                      {
 345   5                      switch(wei)
 346   5                      {
 347   6                              case 1: if(key<3)               //小时最高位为2
 348   6                                              shi20=key;
 349   6                                              else
 350   6                                              wei--;
 351   6                                              break;
 352   6                              case 2: if(a1==1|a1==0)
 353   6                                              shi10=key;
 354   6                                              else
 355   6                                              if(key<5)
 356   6                                              a0=key;            //当小时最高位为2时,低位最高为4
 357   6                                              break;
 358   6                              case 3: if(key<6)               //分钟最高位为5
 359   6                                              fen20=key;
 360   6                                              else
 361   6                                              wei--;
 362   6                                              break;
 363   6                              case 4: fen10=key; break;
 364   6                              case 5: if(key<6)               //秒最高位为5
 365   6                                              miao20=key; 
C51 COMPILER V8.02   CLOCKDINGSHI                                                          06/22/2010 11:22:43 PAGE 7   

 366   6                                              else
 367   6                                              wei--;
 368   6                                              break;
 369   6                              case 6: miao10=key; break;
 370   6                      }
 371   5                      key=10;
 372   5                      }
 373   4                      yidingshi=1;
 374   4                      display(shi20,shi10,fen20,fen10,miao20,miao10); 
 375   4              }       
 376   3              }
 377   2              if(yidingshi==1)
 378   2              {
 379   3              if((a1==shi20)&&(a0==shi10)&&(b1==fen20)&&(b0==fen10)&&(c1==miao20)&&(c0==miao10))
 380   3                      beep=0;
 381   3              }
 382   2              if(((a1==shi20)&&(a0==shi10)&&(b1==fen20)&&(b0==fen10+1)&&(c1==miao20)&&(c0==miao10))||(yidingshi==0))//

⌨️ 快捷键说明

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