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

📄 main.lst

📁 C语言单片机编程的代码及教程文献
💻 LST
📖 第 1 页 / 共 3 页
字号:
 310          void Up_alarm()
 311           {
 312   1         uchar keynum=0xff,pos=0;
 313   1         Wrcom(0x01);                  //清屏
 314   1         Dis_string(1,3,alarm_menu);       //闹钟提示菜单
 315   1         Dis_time(disp_almtime);
 316   1         Dis_string(2,12,onoff[on]);
 317   1      
 318   1         Dis_cursor(2,3);          //光标闪烁
 319   1         keynum=Get_keynum();      //获取键值 
 320   1         while(keynum!=12)
 321   1           {
 322   2                  if(keynum==11)
 323   2                        {
 324   3                          if(pos<9)
 325   3                                {
 326   4                                  if(pos==1||pos==4||pos==7)
 327   4                                         pos+=2;
 328   4                                      else 
 329   4                                    pos++;
 330   4                                }
 331   3                        else 
 332   3                              pos=0;
 333   3                        Dis_cursor(2,3+pos);
 334   3      
 335   3                        }
 336   2                      else if(keynum==10)
 337   2                        {
 338   3                                
 339   3                              if(pos>0) 
 340   3                                {
 341   4                                  if(pos==9||pos==6||pos==3)
 342   4                                         pos-=2;
 343   4                                      else 
 344   4                                         pos--;
 345   4                                }     
 346   3                              else
 347   3                                pos=0;
 348   3                        }
 349   2                      else if(keynum<=9)
 350   2                        {
 351   3                          switch(pos)
 352   3                                {
 353   4                                   case 0:
 354   4                                     {
 355   5                                           if(keynum>2)
 356   5                                              break;
 357   5                                           disp_almtime.hour[0]=keynum+'0';
 358   5                                           Disdata(keynum+'0');
 359   5                                           pos++;
 360   5                                           break;
 361   5                                         }
 362   4                                        case 1:
 363   4                                     {
C51 COMPILER V7.20   MAIN                                                                  12/23/2007 20:36:00 PAGE 7   

 364   5                                            if(keynum>3&&disp_almtime.hour[0]==2+'0')
 365   5                                                break;
 366   5                                            disp_almtime.hour[1]=keynum+'0'; 
 367   5                                            Disdata(keynum+'0');
 368   5                                            pos+=2;
 369   5                                            break;
 370   5                                          }
 371   4                                    case 3:
 372   4                                      {
 373   5                                             if(keynum>5)
 374   5                                                break;
 375   5                                             disp_almtime.minute[0]=keynum+'0';
 376   5                                             Disdata(keynum+'0');
 377   5                                             pos++;
 378   5                                             break;
 379   5                                          }
 380   4                                    case 4:
 381   4                                      {
 382   5                                             disp_almtime.minute[1]=keynum+'0';
 383   5                                             Disdata(keynum+'0');
 384   5                                             pos+=2;
 385   5                                             break;                             
 386   5                                           }
 387   4                                    case 6:
 388   4                                      {
 389   5                                             if(keynum>5)
 390   5                                                break;
 391   5                                             disp_almtime.second[0]=keynum+'0';
 392   5                                             Disdata(keynum+'0');
 393   5                                             pos++;
 394   5                                             break;
 395   5                                          }
 396   4                                    case 7:
 397   4                                      {
 398   5                                             disp_almtime.second[1]=keynum+'0';
 399   5                                             Disdata(keynum+'0');
 400   5                                             pos+=2;
 401   5                                             break;                             
 402   5                                           }
 403   4                                    case 9:
 404   4                                      {
 405   5                                                 on=~on;
 406   5                                             Dis_string(2,12,onoff[on]);
 407   5                                             break;                             
 408   5                                           }
 409   4                                                                         
 410   4                                 }
 411   3                        }
 412   2                      else 
 413   2                        Dis_cursor(2,3+pos);
 414   2                  keynum=Get_keynum();      //获取键值
 415   2               }
 416   1         Wrcom(0x01);        //清屏
 417   1         Wrcom(0x0c);        //开显示,关光标及闪烁
 418   1         To_almvalue();
 419   1       }
 420          
 421          
 422          /*********************修改变量和显示函数************************/
 423          void Up_value()
 424           { 
 425   1         uchar keynum=0xff,pos=0;
C51 COMPILER V7.20   MAIN                                                                  12/23/2007 20:36:00 PAGE 8   

 426   1      
 427   1         Wrcom(0x01);                  //清屏
 428   1         Disp_all();
 429   1         Dis_cursor(1,2);          //光标闪烁
 430   1         keynum=Get_keynum();      //获取键值
 431   1         while(keynum!=12)
 432   1         {      
 433   2            if(keynum==11)
 434   2              {
 435   3                    if(pos<14)
 436   3                      {
 437   4                                if(pos==3||pos==6||pos==9)
 438   4                                   pos+=2;
 439   4                                else if(pos==12||pos==13||pos==14)
 440   4                                   pos=15;
 441   4                                else 
 442   4                              pos++;
 443   4                        Dis_cursor(1,2+pos);
 444   4                          }
 445   3                    else if(pos<22)
 446   3                      {
 447   4                                 if(pos==16||pos==19)
 448   4                                    pos+=2;
 449   4                                 else
 450   4                           pos++;
 451   4                                 Dis_cursor(2,pos-12);
 452   4                          }
 453   3                else 
 454   3                      {
 455   4                         pos=0;
 456   4                                 Dis_cursor(1,2);
 457   4                  }
 458   3                  }
 459   2            else if(keynum==10)
 460   2                  {
 461   3                         if(pos<=0)
 462   3                           {
 463   4                             pos=0;
 464   4                                 Dis_cursor(1,2);
 465   4                               }
 466   3                         else if(pos<16)
 467   3                           {
 468   4                                 if(pos==12||pos==13||pos==14)
 469   4                                    pos=9;
 470   4                                 else if(pos==8||pos==5)
 471   4                                    pos-=2;
 472   4                                 else
 473   4                                        pos--;
 474   4                                 Dis_cursor(1,2+pos);
 475   4                               }
 476   3                         else
 477   3                           {
 478   4                                 if(pos==21||pos==18)
 479   4                                    pos-=2;
 480   4                                  else
 481   4                                    pos--;
 482   4                                 Dis_cursor(2,pos-12);
 483   4                               }
 484   3                      }
 485   2               else if(keynum<=9)
 486   2                  {
 487   3                        switch(pos)
C51 COMPILER V7.20   MAIN                                                                  12/23/2007 20:36:00 PAGE 9   

 488   3                          {
 489   4                                case 0:
 490   4                                   {
 491   5                                          disp_date.year[0]=keynum+'0';
 492   5                                              Disdata(keynum+'0');
 493   5                                              pos++;
 494   5                                              break;
 495   5                                       }
 496   4                                case 1:
 497   4                                   {
 498   5                                          disp_date.year[1]=keynum+'0';
 499   5                                              Disdata(keynum+'0');
 500   5                                              pos++;
 501   5                                              break;
 502   5                                       }
 503   4                    case 2:
 504   4                                   {
 505   5                                          disp_date.year[2]=keynum+'0';
 506   5                                              Disdata(keynum+'0');
 507   5                                              pos++;
 508   5                                              break;
 509   5                                       }
 510   4                    case 3:
 511   4                                   {
 512   5                                          disp_date.year[3]=keynum+'0';
 513   5                                              Disdata(keynum+'0');
 514   5                                              pos+=2;
 515   5                                              break;
 516   5                                       }
 517   4                    case 5:
 518   4                                   {
 519   5                                          if(keynum>1)
 520   5                                                 break;
 521   5                                          disp_date.month[0]=keynum+'0';
 522   5                                              Disdata(keynum+'0');
 523   5                                              pos++;
 524   5                                              break;
 525   5                                       }
 526   4                                case 6:
 527   4                                   {
 528   5                                          if(disp_date.month[0]==1+'0'&&keynum>2)
 529   5                                                 break;
 530   5                                          disp_date.month[1]=keynum+'0';
 531   5                                              Disdata(keynum+'0');
 532   5                                              pos+=2;
 533   5                                              break;
 534   5                                       }
 535   4      
 536   4                                case  8:
 537   4                                       {
 538   5                                          if(keynum>3)
 539   5                                                 break;
 540   5                                          disp_date.day[0]=keynum+'0';
 541   5                                              Disdata(keynum+'0');
 542   5                                              pos++;
 543   5                                              break;
 544   5                                       }
 545   4                                case  9:
 546   4                                       {
 547   5                                          if(disp_date.day[0]==3+'0'&&keynum>1)
 548   5                                                 break;
 549   5                                          disp_date.day[1]=keynum+'0';
C51 COMPILER V7.20   MAIN                                                                  12/23/2007 20:36:00 PAGE 10  

 550   5                                              Disdata(keynum+'0');
 551   5                                              pos+=3;
 552   5                                              break;
 553   5                                       }
 554   4                                case 12:case 13:case 14:
 555   4                                   {
 556   5                                          if(keynum>7||keynum==0)
 557   5                                                 break;
 558   5                                              else
 559   5                                                {
 560   6                                               new_date.week=keynum;
 561   6                                                   Dis_string(1,14,dispweek[keynum-1]);
 562   6                                                       pos=15;
 563   6                                                   break;
 564   6                                                }
 565   5                                       }
 566   4                                case 15:
 567   4                                  {
 568   5                                        if(keynum>2)
 569   5                                           break;
 570   5                                        disp_time.hour[0]=keynum+'0';
 571   5                                        Disdata(keynum+'0');
 572   5                                        pos++;
 573   5                                        break;
 574   5                                      }
 575   4                                case 16:
 576   4                                  {
 577   5                                       if(keynum>3&&disp_time.hour[0]==2+'0')
 578   5                                          break;
 579   5                                       disp_time.hour[1]=keynum+'0'; 
 580   5                                       Disdata(keynum+'0');
 581   5                                       pos+=2;
 582   5                                       break;
 583   5                                      }
 584   4                                case 18:
 585   4                                  {
 586   5                                        if(keynum>5)
 587   5                                           break;
 588   5                                        disp_time.minute[0]=keynum+'0';
 589   5                                        Disdata(keynum+'0');
 590   5                                        pos++;
 591   5                                        break;
 592   5                                      }
 593   4                                case 19:
 594   4                                  {
 595   5                                        disp_time.minute[1]=keynum+'0';
 596   5                                        Disdata(keynum+'0');
 597   5                                        pos+=2;
 598   5                                        break;                                  
 599   5                                      }
 600   4                                case 21:
 601   4                                  {
 602   5                                        if(keynum>5)
 603   5                                           break;
 604   5                                        disp_time.second[0]=keynum+'0';
 605   5                                        Disdata(keynum+'0');
 606   5                                        pos++;
 607   5                                        break;                                                  
 608   5                                      }
 609   4                                case 22:
 610   4                                  {
 611   5                                        disp_time.second[1]=keynum+'0';
C51 COMPILER V7.20   MAIN                                                                  12/23/2007 20:36:00 PAGE 11  

 612   5                                        Disdata(keynum+'0');
 613   5                                        pos++;
 614   5                                        break;                                                          
 615   5                                      }
 616   4                               default:break;
 617   4      
 618   4                              }
 619   3                      }
 620   2            else 
 621   2                  {
 622   3                        if(pos<15)
 623   3                          Dis_cursor(1,2+pos);
 624   3                        else 
 625   3                          Dis_cursor(2,pos-12); 
 626   3                         
 627   3                      }
 628   2                keynum=Get_keynum();      //获取键值
 629   2          }

⌨️ 快捷键说明

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