单片机技术网|技术阅读
登录|注册

您现在的位置是:单片机技术网 > 技术阅读 > 基于51单片机射频RFID卡考勤人数计数系统设计

基于51单片机射频RFID卡考勤人数计数系统设计

.

   RFID

   51+RFID+1602+++


.

13

21602 

3

4

.

(1)AD,

2PCB

.

1

2


void main (void){ unsigned char disPlace=0; //显示位置 Init_Timer0(); //定时器0初始化 UART_Init(); //串口初始化
buzzer = 0; //报警 开 LCD_Init(); //初始化液晶 DelayMs(100); //延时有助于稳定 LCD_Clear(); buzzer = 0; //报警 关
PcdReset();//复位RC522 PcdAntennaOn();//开启天线发射
sprintf(dis0,"ZS:%c LS:%c WE:%c ",zsFlag,lsFlag,weFlag);//打印数据 LCD_Write_String(0,0,dis0);//显示第二行
while (1) //主循环 {
if(PcdRequest(0x52,Temp)==MI_OK) //检测到卡号 { if(PcdAnticoll(UID)==MI_OK) //读取卡号成功 { uartSendByte(0x00); //串口发送卡号 uartSendStr(UID,4); uartSendByte(0x00); if((UID[0]==zsID[0])&&(UID[1]==zsID[1]))//张三 到 { if(zsFlag != 0xff) //第一次刷到该卡 { zsFlag =0xff; //显示 到 time_20ms = 8;buzzer = 0; //蜂鸣器短暂鸣叫 } } else if((UID[0]==lsID[0])&&(UID[1]==lsID[1]))//李四 到 { if(lsFlag != 0xff) //第一次刷到该卡 { lsFlag =0xff; //显示 到 time_20ms = 8;buzzer = 0; //蜂鸣器短暂鸣叫 } } else if((UID[0]==weID[0])&&(UID[1]==weID[1]))//李四 到 { if(weFlag != 0xff) //第一次刷到该卡 { weFlag =0xff; //显示 到 time_20ms = 8;buzzer = 0; //蜂鸣器短暂鸣叫 } } } } if(disFlag == 1) { sprintf(dis0,"ZS:%c LS:%c WE:%c ",zsFlag,lsFlag,weFlag);//打印数据 LCD_Write_String(0,0,dis0);//显示第二行 manNum=0; //清空总人数 if(zsFlag==0xff) //张三到 +1 {manNum=manNum+1;} if(lsFlag==0xff) {manNum=manNum+1;} //李四到 +1 if(weFlag==0xff) {manNum=manNum+1;} //王二到 +1 sprintf(dis1,"ZongRen:%d ",(int)manNum);//打印数据 LCD_Write_String(0,1,dis1);//显示第二行 disFlag =0; }
if(key == 0) //按键按下 { if(manNum != 3) //人数不够 { buzFlag = 1; //蜂鸣器报警标志 } }
}}