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

📄 1302.lst

📁 1302实现时钟定时报警
💻 LST
📖 第 1 页 / 共 3 页
字号:
 524   1              {       write_str3(2,9,':');
 525   2                      write_str3(2,12,':');
 526   2              }
 527   1              else
 528   1              {       write_str3(2,9,0x20);
 529   2                      write_str3(2,12,0x20);
 530   2              }
 531   1      }
 532          /*************************************************************************************************
 533          函数描述:中断处理
 534          入口参数:无
 535          出口参数:无
 536          全局变量:flag
 537          ***************************************************************************************************/
 538          void    time0(void) interrupt 1 using 0
 539          {       TH0 = 0x4C;
 540   1              TL0 = 0x00;
 541   1              inter++;
 542   1              if(inter>10)
 543   1              {       flag = ~flag;
 544   2                      inter=0;
 545   2              }
 546   1              if(inter1>4)
 547   1              {       flag1 = ~flag1;
 548   2                      inter1 = 0 ;
 549   2               }
 550   1      }       
 551          void main()
C51 COMPILER V7.06   1302                                                                  12/03/2007 08:44:24 PAGE 10  

 552          {       
 553   1              
 554   1              uchar str2[8] = {0x01,0x1b,0x1d,0x19,0x1d,0x1b,0x01,0x00};//
 555   1              uchar str3[8] = {0x01,0x1b,0x00,0x19,0x1d,0x1b,0x01,0x00};
 556   1              uchar str4[8] = {0x31,0x31,0x35,0x34,0x35,0x37,0x39,0x37};
 557   1              uchar nian,yue,ri,xingqi,shi,fen,miao,cont;
 558   1      
 559   1              TMOD = 0x11;
 560   1              TH0 = 0x4C;
 561   1              TL0 = 0x00;
 562   1              EA  = 1;
 563   1              ET0 =1;
 564   1              TR0 = 1;
 565   1              ET1 =1;
 566   1              TR1 = 1;
 567   1              init_lcd();
 568   1              writetab(1,tab);
 569   1              init_1302();
 570   1              write_str1(1,1,str,16);
 571   1              write_str1(2,1,str1,16);
 572   1              
 573   1              while(1)
 574   1              {       read_time(0x81,init1,8);
 575   2                      change_time(init1,init2);
 576   2                      lcd_time(init2);
 577   2                      flash();
 578   2                      ok = 0;
 579   2                      if(!K3)                                                         //按下K3键进行时间设置
 580   2                      {       delay1(20);
 581   3                              
 582   3                              write_1302(0x8e,0x00);  
 583   3                              write_1302(0x80,0x80);
 584   3                              nian = 1;
 585   3                              time[0] = init2[12]-0x30;
 586   3                              time[1] = init2[13]-0x30;
 587   3                              write_str3(2,9,':');
 588   3                              write_str3(2,12,':');
 589   3                              while(nian)                                             //设置年                
 590   3                              {       key_set(1,1,99);
 591   4                                      if(ok)
 592   4                                      {       
 593   5                                              nian = 0;
 594   5                                              yue = 1;
 595   5                                              ok = 0;
 596   5                                              cont = (time[0]<<4)+time[1];
 597   5                                              write_1302(0x8c,cont);
 598   5                                      }
 599   4                                      //delay1(10);
 600   4                              }
 601   3                              time[0] = init2[8]-0x30;
 602   3                              time[1] = init2[9]-0x30;
 603   3                              while(yue)                                              //设置月                                                        
 604   3                              {       key_set(1,4,12);
 605   4                                      if(ok)
 606   4                                      {       
 607   5                                              yue = 0;
 608   5                                              ri = 1;
 609   5                                              ok = 0;
 610   5                                              cont = (time[0]<<4)+time[1];
 611   5                                              write_1302(0x88,cont);
 612   5                                      }
 613   4                                      //delay1(10);
C51 COMPILER V7.06   1302                                                                  12/03/2007 08:44:24 PAGE 11  

 614   4                              }
 615   3                              time[0] = init2[6]-0x30;
 616   3                              time[1] = init2[7]-0x30;
 617   3                              while(ri)                                               //设置日                                        
 618   3                              {       key_set(1,7,31);
 619   4                                      if(ok)
 620   4                                      {       
 621   5                                              ri = 0;
 622   5                                              xingqi = 1;
 623   5                                              ok = 0;
 624   5                                              cont = (time[0]<<4)+time[1];
 625   5                                              write_1302(0x86,cont);
 626   5                                      }
 627   4                                      //delay1(10);
 628   4                              }
 629   3                              week = init2[11]-0x30;
 630   3                              while(xingqi)                                   //设置星期
 631   3                              {       key_set_xq(1,16);
 632   4                                      if(ok)
 633   4                                      {       
 634   5                                              xingqi = 0;
 635   5                                              shi = 1;
 636   5                                              ok = 0;
 637   5                                              write_1302(0x8a,week);
 638   5                                      }
 639   4                              //      delay1(10);
 640   4                              }
 641   3                              time[0] = init2[4]-0x30;
 642   3                              time[1] = init2[5]-0x30;
 643   3                              while(shi)                                      //设置时
 644   3                              {       key_set(2,7,23);
 645   4                                      if(ok)
 646   4                                      {       
 647   5                                              shi = 0;
 648   5                                              fen = 1;
 649   5                                              ok = 0;
 650   5                                              cont = (time[0]<<4)+time[1];
 651   5                                              write_1302(0x84,cont);
 652   5                                      }
 653   4                                      //delay1(10);
 654   4                              }
 655   3                              time[0] = init2[2]-0x30;
 656   3                              time[1] = init2[3]-0x30;
 657   3                              while(fen)                                      //设置分
 658   3                              {       key_set(2,10,59);
 659   4                                      if(ok)
 660   4                                      {       
 661   5                                              fen = 0;
 662   5                                              miao = 1;
 663   5                                              ok = 0;
 664   5                                              cont = (time[0]<<4)+time[1];
 665   5                                              write_1302(0x82,cont);
 666   5                                      }
 667   4                                      //delay1(10);
 668   4                              }
 669   3                              time[0] = init2[0]-0x30;
 670   3                              time[1] = init2[1]-0x30;
 671   3                              while(miao)                                     //设置秒
 672   3                              {       key_set(2,13,59);
 673   4                                      if(ok)
 674   4                                      {       
 675   5                                              miao = 0;
C51 COMPILER V7.06   1302                                                                  12/03/2007 08:44:24 PAGE 12  

 676   5                                              ok = 0;
 677   5                                              cont = (time[0]<<4)+time[1];
 678   5                                              write_1302(0x80,cont);
 679   5                                      }
 680   4                              //      delay1(20);
 681   4                              }
 682   3                              write_1302(0x8e,0x80);
 683   3                              
 684   3                      }
 685   2              if(!K2)                                                         //按下K2键使能或取消报警功能            
 686   2              {       delay1(20);
 687   3                      alarm_flag = ~alarm_flag;
 688   3                      if(alarm_flag)
 689   3                      {       xianshitab(2,16,1);
 690   4                      }
 691   3                      else
 692   3                              write_str3(2,16,0x20);
 693   3              }
 694   2              if(!K1)                                 
 695   2              {       delay1(10);
 696   3                      if(!K4)                                                 //按下K1与K4键,设置报警时间
 697   3                      {       delay1(10);
 698   4                              set_alarm_time();
 699   4                      }
 700   3                      if(!K2)
 701   3                      {       see_alarm_time();                       //按下K1与K2键,查看报警时间            
 702   4                      }
 703   3              }
 704   2              
 705   2              time_campare();
 706   2              }
 707   1      }
 708          /***************************************************************************************
 709          函数描述:在设置数据过程中显示所设置的数据
 710          出口参数:row:显示的行
 711                            col:显示的列
 712          出口参数:无
 713          全局变量:time[0],time[1]       
 714          调用模块:key_set(),key_set_xq
 715          *******************************************************************************************/
 716          void set_flash(uchar row,uchar col)
 717          {       if(flag)
 718   1              {       write_str3(row,col,'0'+time[0]);
 719   2                      write_str3(row,col+1,'0'+time[1]);
 720   2              }
 721   1              else
 722   1              {       write_str3(row,col,0x20);
 723   2                      write_str3(row,col+1,0x20);
 724   2              }
 725   1      }
 726          /*********************************************************************************************
 727          函数描述:对所设数据加一,减一
 728          入口参数:row:所设数据显示位置的行
 729                            col:所设数据显示位置的列      
 730                            max:所设数据的最大值
 731          出口参数:无
 732          全局变量:time[0],time[1]
 733          调用模块:main(),set_alarm_time()
 734          ***********************************************************************************************/
 735          void  key_set(uchar row,uchar col,uchar max)
 736          {               uchar temp,max0,max1 ;
 737   1                      max0 = max/10;
C51 COMPILER V7.06   1302                                                                  12/03/2007 08:44:24 PAGE 13  

 738   1                      max1 = max%10;
 739   1                      temp = time[0]*10+time[1];
 740   1                       delay1(20);
 741   1                      if(!K1)
 742   1                      {       if(temp <= 0)
 743   2                              {       time[1] = max1;
 744   3                                      time[0] = max0;
 745   3                              }
 746   2                              else
 747   2                              {       if(time[1]==0)
 748   3                                      {       time[0] = time[0]-1;
 749   4                                      time[1] = 9;
 750   4                                      }
 751   3                                      else
 752   3                                              time[1] = time[1]-1;
 753   3                              }
 754   2                      }
 755   1                      if(!K2)
 756   1                      {
 757   2                              if(temp>=max)
 758   2                              {       time[0] = 0;
 759   3                                      time[1] =1;
 760   3                              }
 761   2                              else
 762   2                              {       if(time[1]==9)
 763   3                                      {       time[0] = time[0]+1;
 764   4                                              time[1] = 0;
 765   4      
 766   4                                      }
 767   3                                      else
 768   3                                              time[1] = time[1]+1;
 769   3                              
 770   3                              }
 771   2                      }
 772   1                      set_flash(row,col);
 773   1                      if(!K3)
 774   1                      {       ok = 1;
 775   2                              delay1(10);
 776   2                              write_str3(row,col,'0'+time[0]);
 777   2                              write_str3(row,col+1,'0'+time[1]);
 778   2                      }
 779   1                      
 780   1                              
 781   1      }
 782          /*********************************************************************************************
 783          函数描述:设置星期的值
 784          入口参数:row:星期显示位置的行
 785                            col:星期显示位置的列  
 786          出口参数:无
 787          全局变量

⌨️ 快捷键说明

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