考勤机电路原理图如下:
单片机源程序如下:
- /*************************************************************************/
- #include <string.h>
- #include <m500a.h>
- #include <main.h>
- #include <reg52.h>
- sbit LED = P2^6;
- sbit WARN = P2^7;
- ////////////////////////////////////////////////////////////////////
- void main (void)
- {
- // unsigned char counter;
- unsigned char status1,cnt;
- unsigned char Snr_RC500[4]; // Serial Number of the MFRC500
- unsigned char cardserialno[4];
- unsigned char cardtype[2];
- P2 = 0x00;
- LED = 1;WARN = 1;
- init_lcd();
- clrram();
- timer_init();
- line_disp(0,message_init[0]);
- rs232_init();
- RC500Config(); // Initialise the RC500
- PcdReadE2(8,4,Snr_RC500); // Read out the MFRC500 serial number and store it
- rs232_send(Snr_RC500,4);
- line_disp(0,message_init[0]);
- line_disp(1,message_init[1]);
- line_disp(2,message_init[2]);
- line_disp(3,message_init[3]);
- delay_1s(1200);
- clrram();
- time_disp2();
- line_disp(1,line);
- line_disp(2,init_finish);
- line_disp(3,line);
- delay_1s(1200);
- clrram();
- time_disp1();
- line_disp(2,line);
- line_disp(3,inputcard);
- LED = 0;
- while(1)
- {
- while(CardRequest(PICC_REQALL, cardtype)==MI_OK)
- {
- status1=ReadCardNum(0,cardserialno);
- if (status1 == MI_OK)
- {
- cnt = compare(card,cardserialno);
- clrram();
- if(cnt > CARD_NUM)
- {
- line_disp(0,error1);
- line_disp(2,error2);
- WARN = 0;
- }
- else
- {
- line_disp(2,name[cnt]);
- line_disp(3,welcome);
- line_disp(1,line);
- time_disp2();
- LED = 1;
- }
- rs232_send(cardserialno,4);
- }
- delay_1s(500);
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
考勤机程序(已经验证成功)并有电路图.7z
(5.41 MB, 下载次数: 48)
|