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

📄 main.lst

📁 单路带数码管可编程可调节延时模块
💻 LST
📖 第 1 页 / 共 2 页
字号:
 169   3                                {
 170   4                                          while(!key3)display(setfen,setmiao);
 171   4                                          setfen--;
 172   4                                          if(setfen==0||setfen>=250)
 173   4                                             setfen=0;
 174   4                                          IapEraseSector(512);
 175   4                                          IapProgramByte(512,setfen);  //写入函数
 176   4                                        }
 177   3                              }
 178   2                      //      display(setfen,setmiao);
 179   2                              break;
C51 COMPILER V9.00   MAIN                                                                  05/08/2013 21:45:00 PAGE 4   

 180   2                      case 3: 
 181   2                          if(key2==0)
 182   2                      {
 183   3                                delay(5);
 184   3                                if(key2==0)
 185   3                        {
 186   4                                        while(!key2)display(setdf,setdm);
 187   4                                        setdm++;
 188   4                                        if(setdm>59)
 189   4                                           setdm=59;
 190   4                                        IapEraseSector(0);
 191   4                                        IapProgramByte(0,setmiao);  //写设定闭合时间秒
 192   4                                        IapProgramByte(1,setdm);  //写设定断开时间秒
 193   4                                }
 194   3                               }
 195   2                              if(key3==0) 
 196   2                              {
 197   3                                delay(5);
 198   3                                if(key3==0)
 199   3                        {
 200   4                                  while(!key3)
 201   4                                      display(setdf,setdm);
 202   4                                  setdm--;
 203   4                                      if(setdm==0||setdm>=250)
 204   4                                        setdm=0;
 205   4                                  IapEraseSector(0);
 206   4                                  IapProgramByte(0,setmiao);  //写设定闭合时间秒
 207   4                                      IapProgramByte(1,setdm);  ////写设定断开时间秒
 208   4                                }
 209   3                              }
 210   2                              break;
 211   2                      case 4:if(key2==0)
 212   2                       {
 213   3                                        delay(5);
 214   3                                        if(key2==0)
 215   3                                {
 216   4                                                while(!key2)
 217   4                                                display(setdf,setdm);;
 218   4                                                setdf++;
 219   4                                                if(setdf>10)
 220   4                                               setdf=10;
 221   4                                                IapEraseSector(512);
 222   4                                                IapProgramByte(512,setfen);  //写设定闭合时间分
 223   4                                                IapProgramByte(513,setdf);  //写设定断开时间秒
 224   4                                }
 225   3                               }
 226   2                               if(key3==0) 
 227   2                               {
 228   3                                        delay(5);
 229   3                                        if(key3==0)
 230   3                                {
 231   4                                          while(!key3)
 232   4                                              display(setdf,setdm);
 233   4                                          setdf--;
 234   4                                          if(setdf==0||setdf>=250)
 235   4                                             setdf=0;
 236   4                                          IapEraseSector(512);
 237   4                                          IapProgramByte(512,setfen);  //写设定闭合时间分
 238   4                                              IapProgramByte(513,setdf);  //写设定断开时间分
 239   4                                        }
 240   3                              }
 241   2                      //      
C51 COMPILER V9.00   MAIN                                                                  05/08/2013 21:45:00 PAGE 5   

 242   2                              break;
 243   2               default : break;
 244   2        }
 245   1      }
 246          /********************************************************************
 247                                     定时器T0初始化
 248          *********************************************************************/
 249          void cshh()
 250          { 
 251   1               TMOD|=0X01; //定义定时器工作方式
 252   1               TH0=0Xa6;
 253   1               TL0=0X01;
 254   1               ET0=1;
 255   1               TR0=1;      //开定时器
 256   1               EA=1;       //开中断
 257   1       }
 258          /********************************************************************
 259                                      初始化函数
 260          *********************************************************************/
 261          void init_all(void)    
 262          {
 263   1              P2M1=0;
 264   1              P2M0=0xff;
 265   1              P1M1=0;
 266   1              P1M0=0x0f;
 267   1              P3M1&=0x7f;
 268   1              P3M0|=0x80;
 269   1              P3=0xff;        
 270   1      }                  
 271          /********************************************************************
 272                                      主函数
 273          *********************************************************************/
 274          void main()
 275          {        
 276   1              init_all();
 277   1              setfen=IapReadByte(512);           //读设定闭合秒
 278   1              setdf= IapReadByte(513);                   //读设定断开秒
 279   1              setmiao=IapReadByte(0);                   //读设定闭合分
 280   1              setdm=IapReadByte(1);                     //读设定断开秒
 281   1              cshh();                          //定时器初始化
 282   1              while(1)
 283   1              {  
 284   2                 if(keynum==0)   //实时计时模式
 285   2                 {
 286   3                   display(fen,miao);
 287   3                 }
 288   2                 if(keynum>0&&keynum<3) //设定闭合分和秒模式
 289   2                   display(setfen,setmiao);
 290   2                 if(keynum>=3&&keynum<5) //设定断开分和秒模式
 291   2                   display(setdf,setdm);
 292   2             keyscan();
 293   2                 }
 294   1      }
 295          /********************************************************************
 296                                     定时器中断函数
 297          *********************************************************************/
 298          void timer1(void)interrupt 1  
 299          { 
 300   1         TH0=0Xa6; //定时初值
 301   1         TL0=0X01; //定时初值
 302   1         cnt++;
 303   1         if(cnt>=40)
C51 COMPILER V9.00   MAIN                                                                  05/08/2013 21:45:00 PAGE 6   

 304   1         {
 305   2               cnt=0;
 306   2               miao++;
 307   2               if(miao>=60)
 308   2               {
 309   3                 miao=0;
 310   3                 fen++;
 311   3               }
 312   2          }
 313   1              if((fen>=setfen)&&(miao>=setmiao)&&flag)         
 314   1          { 
 315   2                  flag=0;
 316   2              jdq=0;
 317   2                      miao=0;
 318   2                      fen=0;
 319   2          }
 320   1              if((fen>=setdf)&&(miao>=setdm)&&(flag==0))       
 321   1          { 
 322   2              jdq=1;
 323   2                      miao=0;
 324   2                      fen=0;
 325   2                      flag=1;
 326   2          }
 327   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    851    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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