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 + -
显示快捷键?