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

📄 mstimer.lst

📁 (原创)高精度计时器电路原理图。采用AT89S52加DP8573
💻 LST
📖 第 1 页 / 共 3 页
字号:
 191   5                                                              putchar((SecRTC/10)+48);
 192   5                                                              putchar((SecRTC%10)+48);
 193   5                                                              break;
 194   5                                                      default:
 195   5                                                              break;
 196   5                                              }
 197   4                                              break;
 198   4                                      case 3:                                 // -
 199   4                                              switch(Para) {
 200   5                                                      case 1:                 // Year
 201   5                                                              if (YearRTC == 0) YearRTC = 99;
 202   5                                                              else YearRTC--;
 203   5                                                              putchar(16);    // Set cursor to the last 2 chars
 204   5                                                              putchar(14);
 205   5                                                              putchar((YearRTC/10)+48);
 206   5                                                              putchar((YearRTC%10)+48);
 207   5                                                              break;
 208   5                                                      case 2:                 // Month
 209   5                                                              if (MonthRTC == 1) MonthRTC = 12;
 210   5                                                              else MonthRTC--;
 211   5                                                              putchar(16);    // Set cursor to the last 2 chars
 212   5                                                              putchar(14);
 213   5                                                              putchar((MonthRTC/10)+48);
 214   5                                                              putchar((MonthRTC%10)+48);
 215   5                                                              break;
 216   5                                                      case 3:                 // Day
 217   5                                                              if (DayRTC == 1) DayRTC = 31;
 218   5                                                              else DayRTC--;
 219   5                                                              putchar(16);    // Set cursor to the last 2 chars
 220   5                                                              putchar(14);
 221   5                                                              putchar((DayRTC/10)+48);
 222   5                                                              putchar((DayRTC%10)+48);
 223   5                                                              break;
 224   5                                                      case 4:                 // Hour
 225   5                                                              if (HourRTC == 0) HourRTC = 24;
 226   5                                                              else HourRTC--;
 227   5                                                              putchar(16);    // Set cursor to the last 2 chars
 228   5                                                              putchar(14);
 229   5                                                              putchar((HourRTC/10)+48);
 230   5                                                              putchar((HourRTC%10)+48);
 231   5                                                              break;
 232   5                                                      case 5:                 // Minute
 233   5                                                              if (MinRTC == 0) MinRTC = 59;
 234   5                                                              else MinRTC--;
 235   5                                                              putchar(16);    // Set cursor to the last 2 chars
 236   5                                                              putchar(14);
 237   5                                                              putchar((MinRTC/10)+48);
 238   5                                                              putchar((MinRTC%10)+48);
 239   5                                                              break;
 240   5                                                      case 6:                 // Second
 241   5                                                              if (SecRTC == 0) SecRTC = 59;
C51 COMPILER V8.05a   MSTIMER                                                              03/18/2007 20:51:48 PAGE 5   

 242   5                                                              else SecRTC--;
 243   5                                                              putchar(16);    // Set cursor to the last 2 chars
 244   5                                                              putchar(14);
 245   5                                                              putchar((SecRTC/10)+48);
 246   5                                                              putchar((SecRTC%10)+48);
 247   5                                                              break;
 248   5                                                      default:
 249   5                                                              break;
 250   5                                              }
 251   4                                              break;
 252   4                                      case 4:                                 // Enter
 253   4                                              ParaValue = ((SecRTC/10)*16) + (SecRTC%10);
 254   4                                              SecRTC = ParaValue;
 255   4                                              ParaValue = ((MinRTC/10)*16) + (MinRTC%10);
 256   4                                              MinRTC = ParaValue;
 257   4                                              ParaValue = ((HourRTC/10)*16) + (HourRTC%10);
 258   4                                              HourRTC = ParaValue;
 259   4                                              ParaValue = ((DayRTC/10)*16) + (DayRTC%10);
 260   4                                              DayRTC = ParaValue;
 261   4                                              ParaValue = ((MonthRTC/10)*16) + (MonthRTC%10);
 262   4                                              MonthRTC = ParaValue;
 263   4                                              ParaValue = ((YearRTC/10)*16) + (YearRTC%10);
 264   4                                              YearRTC = ParaValue;
 265   4              
 266   4                                              DP8573MSR = 0x40;       // RS=1
 267   4                                              DP8573RTMR = 0x00;      // 24 hour mode + stop timer
 268   4                                              DP8573SEC = SecRTC;
 269   4                                              DP8573MIN = MinRTC;
 270   4                                              DP8573HOUR = HourRTC;
 271   4                                              DP8573DAY = DayRTC;
 272   4                                              DP8573MONTH = MonthRTC;
 273   4                                              DP8573YEAR = YearRTC;
 274   4                                              DP8573MSR = 0x40;       // RS=1
 275   4                                              DP8573RTMR = 0x08;      // 24 hour mode + run timer
 276   4                                              EndCMD = 1;
 277   4                                              Para = 0;
 278   4                                              break;
 279   4                                      default:
 280   4                                              break;
 281   4                              }
 282   3                              // Display setting
 283   3                              if (ParaOld != Para) {
 284   4                                      putchar(13);
 285   4                                      ParaOld = Para;
 286   4                                      switch(Para) {
 287   5                                              case 1:                 // Year
 288   5                                                      printf("Year:");
 289   5                                                      putchar(16);    // Set cursor to the last 2 chars
 290   5                                                      putchar(14);
 291   5                                                      putchar((YearRTC/10)+48);
 292   5                                                      putchar((YearRTC%10)+48);
 293   5                                                      break;
 294   5                                              case 2:                 // Month
 295   5                                                      printf("Month:");
 296   5                                                      putchar(16);    // Set cursor to the last 2 chars
 297   5                                                      putchar(14);
 298   5                                                      putchar((MonthRTC/10)+48);
 299   5                                                      putchar((MonthRTC%10)+48);
 300   5                                                      break;
 301   5                                              case 3:                 // Day
 302   5                                                      printf("Day:");
 303   5                                                      putchar(16);    // Set cursor to the last 2 chars
C51 COMPILER V8.05a   MSTIMER                                                              03/18/2007 20:51:48 PAGE 6   

 304   5                                                      putchar(14);
 305   5                                                      putchar((DayRTC/10)+48);
 306   5                                                      putchar((DayRTC%10)+48);
 307   5                                                      break;
 308   5                                              case 4:                 // Hour
 309   5                                                      printf("Hour:");
 310   5                                                      putchar(16);    // Set cursor to the last 2 chars
 311   5                                                      putchar(14);
 312   5                                                      putchar((HourRTC/10)+48);
 313   5                                                      putchar((HourRTC%10)+48);
 314   5                                                      break;
 315   5                                              case 5:                 // Minute
 316   5                                                      printf("Minute:");
 317   5                                                      putchar(16);    // Set cursor to the last 2 chars
 318   5                                                      putchar(14);
 319   5                                                      putchar((MinRTC/10)+48);
 320   5                                                      putchar((MinRTC%10)+48);
 321   5                                                      break;
 322   5                                              case 6:                 // Second
 323   5                                                      printf("Second:");
 324   5                                                      putchar(16);    // Set cursor to the last 2 chars
 325   5                                                      putchar(14);
 326   5                                                      putchar((SecRTC/10)+48);
 327   5                                                      putchar((SecRTC%10)+48);
 328   5                                                      break;
 329   5                                              default:
 330   5                                                      break;
 331   5                                      }       // End SWITCH
 332   4                              }               // End if(ParaOld != Para)
 333   3                      }                       // End if(KeyCmd != CmdOld)
 334   2                      CmdOld = KeyCmd;
 335   2                      KeyCmd = KeyScan();
 336   2              }                               // End while(!EndCMD)
 337   1      //      CmdOld = KeyCmd;
 338   1      //      putchar(7);                     // Cursor back 1 char
 339   1      //      putchar(23);            // Cursor blinking
 340   1      }
 341          
 342          void DisplayRTC(void)
 343          {
 344   1              putchar(13);
 345   1              hour = DP8573HOUR;              // Hour
 346   1              timeH = hour >> 4;
 347   1              putchar(timeH+48);
 348   1              timeL = hour % 16;
 349   1              putchar(timeL+48);
 350   1              putchar(':');
 351   1              
 352   1              minute = DP8573MIN;             // Minute
 353   1              timeH = minute >> 4;
 354   1              putchar(timeH+48);
 355   1              timeL = minute % 16;
 356   1              putchar(timeL+48);
 357   1              putchar(':');
 358   1      
 359   1              second = DP8573SEC;             // Second
 360   1              timeH = second >> 4;
 361   1              putchar(timeH+48);
 362   1              timeL = second % 16;
 363   1              putchar(timeL+48);
 364   1      
 365   1              putchar(' ');
C51 COMPILER V8.05a   MSTIMER                                                              03/18/2007 20:51:48 PAGE 7   

 366   1              putchar(' ');
 367   1              year = DP8573YEAR;              // Year
 368   1              timeH = year >> 4;
 369   1              putchar(timeH+48);
 370   1              putchar(25);                    // .
 371   1              putchar(3);
 372   1              timeL = year % 16;
 373   1              putchar(timeL+48);
 374   1      
 375   1              month = DP8573MONTH;    // Month
 376   1              timeH = month >> 4;
 377   1              putchar(timeH+48);
 378   1              putchar(25);                    // .
 379   1              putchar(3);
 380   1              timeL = month % 16;
 381   1              putchar(timeL+48);
 382   1      
 383   1              day = DP8573DAY;                // Day
 384   1              timeH = day >> 4;
 385   1              putchar(timeH+48);
 386   1              timeL = day % 16;
 387   1              putchar(timeL+48);
 388   1      
 389   1              secondOld = second;

⌨️ 快捷键说明

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