ear.lst

来自「attendace system on 8051 chipset from in」· LST 代码 · 共 582 行 · 第 1/2 页

LST
582
字号
 275          {
 276   1              char str[10];
 277   1      
 278   1              /***************************128x64lcd**********************
              
                      lcddisplaysstr(0 * 8, 0, " E A R  4 0 2 2 ", INVERTED_MODE);
                      lcddisplaysstr(0 * 8, 1, " Show your card ", INVERTED_MODE);
              
                      lcddisplaysstr(1 * 8, 3, "              ", NORMAL_MODE);
                      lcddisplaysstr(1 * 8, 4, "              ", NORMAL_MODE);
              
                      dategetdate(&today);
                      datetostr(&today, date_str);
              
                      lcddisplaybmp(7 , 6, calender, CALENDER_BMP_COLS, CALENDER_BMP_ROWS, NORMAL_MODE);
                      date_str[2] = '-';
                      lcddisplaysstr(2 * 8, 6, date_str, NORMAL_MODE);
              
                      timegettime(&now);
                      timetostr(&now, time_str);
              
                      lcddisplaybmp(71, 6, clock, CLOCK_BMP_COLS, CLOCK_BMP_ROWS, NORMAL_MODE);
                      lcddisplaysstr(10 * 8, 6, time_str, NORMAL_MODE);
              
                      lcddisplaysstr(0, 7, "                ", INVERTED_MODE);
              
                      ************************************************************/
 302   1      
 303   1              /***************************2x16lcd*************************/
C51 COMPILER V3.20,  SN-50202956  EAR                                                      01/08/06  01:18:00  PAGE 6   

 304   1              dategetdate(&today);
 305   1              datetostr(&today, date_str);
 306   1      
 307   1              timegettime(&now);
 308   1              timetostr(&now, time_str);
 309   1      
 310   1              lcd2x16displaystr(1, 1, "D-");
 311   1              lcd2x16displaystr(3, 1, date_str);
 312   1              lcd2x16displaystr(10, 1, "T-");
 313   1              lcd2x16displaystr(12, 1, time_str);
 314   1              lcd2x16displaystr(1, 2, " Show your card ");
 315   1              /**********************************************************/
 316   1      }
 317          
 318          void rx() interrupt 4
 319          {
 320   1              char ch;
 321   1      
 322   1              if(RI)
 323   1              {
 324   2                      ch = SBUF;
 325   2      
 326   2                      if(rfid_processed)
 327   2                      {
 328   3                              if(ch == '\r' || ch == '\n')
 329   3                              {
 330   4                                      rfid[index] = '\0';
 331   4                                      index = 0;
 332   4                                      rfid_received = 1;
 333   4                                      rfid_processed = 0;
 334   4                              }
 335   3                              else
 336   3                              {
 337   4                                      rfid[index++] = ch;
 338   4                              }
 339   3                      }
 340   2      
 341   2                      RI = 0;
 342   2              }
 343   1      }
 344          
 345          void transmit(char *str)
 346          {
 347   1              while(*str)
 348   1              {
 349   2                      SBUF = *str;
 350   2                      while(!TI);
 351   2                      TI = 0;
 352   2                      str++;
 353   2              }
 354   1      }
 355          
 356          /*
              void buzz(int pw1, int pw2, int dur)
              {
                      int i;
                      for(i = 0; i < dur; i++)
                      {
                              BUZZER = 0;
                              delay(pw1);
                              BUZZER = 1;
                              delay(pw2);
C51 COMPILER V3.20,  SN-50202956  EAR                                                      01/08/06  01:18:00  PAGE 7   

                      }
              }
              
              #define BUZZ() buzz(5, 15, 1000)
              */
 371          
 372          void initEAR4022()
 373          {
 374   1              init89c51rd2(BAUD_RATE_9600);
 375   1      
 376   1              ENABLE_OFFCHIP_XRAM();
 377   1              //initlcd();  //for graphic lcd
 378   1      
 379   1              init2x16lcd();
 380   1      
 381   1              //delay(25000);
 382   1      
 383   1              clearlcd();
 384   1      
 385   1              PROCESS_END();
 386   1              RFID_PROCESSED();
 387   1             
 388   1              if(reset_mode)
 389   1              {
 390   2                     /* lcddisplaybmp(0, 0, JBB, JBB_BMP_COLS, JBB_BMP_ROWS, INVERTED_MODE);
                              delay(25000);
                              delay(25000);
                              delay(25000);
                              delay(25000);
                              delay(25000);
              
                              clearlcd();
                              lcddisplaystr(0, 4, "EAR - 4022 V 1-0", NORMAL_MODE);*/
 399   2      
 400   2                      lcd2x16displaystr(1, 1, " JBB  Soft Tech ");
 401   2                      lcd2x16displaystr(1, 2, " EAR 4022 V-1.0 ");
 402   2      
 403   2                      BUZZER_ON();
 404   2                      delay(25000);
 405   2                      BUZZER_OFF();
 406   2      
 407   2                      delay(25000);
 408   2      
 409   2                      BUZZER_ON();
 410   2                      delay(25000);
 411   2                      BUZZER_OFF();
 412   2      
 413   2                      clearlcd();
 414   2                    /*  lcddisplaybmp(0, 0, common, COMMON_BMP_COLS, COMMON_BMP_ROWS, NORMAL_MODE);
                              lcddisplaystr(2 * 8, 4, "          ", NORMAL_MODE);*/
 416   2              }
 417   1      
 418   1              if(display_rfid != 0x00 && display_rfid != 0xFF)display_rfid = 0xFF;
 419   1      
 420   1              reset_mode = 1;
 421   1      }
 422          
 423          char validrfid(char *rfid)
 424          {
 425   1              if(strstrlen(rfid) < RFID_LENGTH)return 0;
 426   1              return 1;
 427   1      }
C51 COMPILER V3.20,  SN-50202956  EAR                                                      01/08/06  01:18:00  PAGE 8   

 428          
 429          char transmitar(AttendanceRecord *ar)
 430          {
 431   1              char ds[10];
 432   1              char ts[10];
 433   1      
 434   1              if(ar == NULL)return 0;
 435   1      
 436   1              //Transmiting rfid
 437   1              transmit("[");
 438   1              transmit(ar->rfid);
 439   1              transmit("     ");
 440   1              datetostr(ar->d, ds);
 441   1              ds[2] = '/';
 442   1              transmit(ds);
 443   1              transmit("     ");
 444   1              timetostr(ar->t, ts);
 445   1              ts[2] = ':';
 446   1              transmit(ts);
 447   1              transmit("]");
 448   1      
 449   1              return 1;
 450   1      }
 451          
 452          AttendanceRecord *storear(char *rfid, struct date *d, struct time *t)
 453          {
 454   1              strstrcpy(attendance_records[record_counts].rfid, rfid);
 455   1              attendance_records[record_counts].d = *d;
 456   1              attendance_records[record_counts].t = *t;
 457   1      
 458   1              record_counts++;
 459   1      
 460   1              if(record_counts >= MAX_RECORD_COUNTS - 50 &&
 461   1                      record_counts < MAX_RECORD_COUNTS)
 462   1              {
 463   2                      //lcddisplaystr(0 * 8, 1, " Database  Full ", INVERTED_MODE);
 464   2                      lcd2x16displaystr(1,2," Database  Full ");
 465   2                      delay(5000);
 466   2              }
 467   1      
 468   1              if(record_counts >= MAX_RECORD_COUNTS)
 469   1              {
 470   2                      fail_safe_record_counts = record_counts;
 471   2                      record_counts = 0;
 472   2              }
 473   1                              
 474   1              return &attendance_records[record_counts - 1];
 475   1      }
 476          
 477          void main()
 478          {
 479   1              AttendanceRecord xdata *ar;
 480   1              char xdata command[20];
 481   1              int i;
 482   1              
 483   1              initEAR4022();
 484   1      
 485   1      	while(1)
 486   1      	{
 487   2                      updatescreen();
 488   2      
 489   2                      if(RFID_RECEIVED())
C51 COMPILER V3.20,  SN-50202956  EAR                                                      01/08/06  01:18:00  PAGE 9   

 490   2                      {
 491   3                              if(validrfid(rfid))
 492   3                              {
 493   4                                      BUZZER_ON();
 494   4      
 495   4                                      PROCESS_START();
 496   4      
 497   4                                      //lcddisplaystr(1 * 8, 3, "    Valid     ", NORMAL_MODE);
 498   4                                      lcd2x16displaystr(1,2,"     Valid      " );
 499   4                                      //if(display_rfid)lcddisplaystr(3 * 8, 4, rfid, NORMAL_MODE);
 500   4      
 501   4                                      ar = storear(rfid, &today, &now);
 502   4      
 503   4                                      if(ar == NULL)
 504   4                                      {
 505   5                                              //lcddisplaystr(1 * 8, 4, " Database full", NORMAL_MODE);
 506   5                                              lcd2x16displaystr(1,2," Database  full " );
 507   5                                      }
 508   4                                      else
 509   4                                      {
 510   5                                              transmitar(ar);
 511   5                                      }
 512   4      
 513   4                                      BUZZER_OFF();
 514   4      
 515   4                                      delay(25000);
 516   4      
 517   4                                      PROCESS_END();
 518   4                              }
 519   3                              else
 520   3                              {
 521   4                                      //lcddisplaystr(1 * 8, 4, "Show your card", NORMAL_MODE);
 522   4                                      lcd2x16displaystr(1,2, " Show your card ");
 523   4                              }
 524   3      
 525   3                              RFID_PROCESSED()
 526   3                      }
 527   2      
 528   2                      //If command received from PC
 529   2                      if(COMMAND_RECEIVED())
 530   2                      {
 531   3                              COM_SELECT = 0;
 532   3                              readcommand(command);
 533   3                              COM_SELECT = 1;
 534   3      
 535   3                              processcommand(command);
 536   3      
 537   3                              CMD_ACKNOWLEDGE = 1;
 538   3                      }
 539   2      	}
 540   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3839    ----
   CONSTANT SIZE    =   2267    ----
   XDATA SIZE       =  45026    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     46     139
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.
C51 COMPILER V3.20,  SN-50202956  EAR                                                      01/08/06  01:18:00  PAGE 10  



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

⌨️ 快捷键说明

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