基于单片机指纹考勤系统设计(论文毕设)全套资料
摘要 在当今社会科技飞速发展的同时,在学校老师还是以点名签到或者IC卡签到的方式进行考勤,存在着他人冒充打卡或者点名的弊端。本次设计以STC89C52单片机为主控芯片,采用液晶12864作为人机交互界面,通过矩阵按键输入学号最后以指纹识别模块作为打卡考勤传感器;通过蜂鸣器来报警录入指纹和指纹不符的情况,采用DS3231时钟模块来校准时间以及设置打卡时间;通过AT24C02存储模块保存或者删除指纹功能;通过复位电路一键恢复出厂设置。该考勤机功能简单却实用,携带方便,成本低,满足学校对学生考勤的需求,也能培养学生自觉遵守学校纪律。
关键字 考勤机 STC89C52 指纹识别 DS3231 ATC02
#include "config.h" //用户需要添加的头文件
//对应的引脚定义,需要跟原理图一致
sbit BEEP = P3^7;
sbit LEDGREEN = P3^6;
sbit LEDRED = P3^5;
//宏定义,类似替换的功能
#define LEDON 0 //led灯亮
#define LEDOFF 1 //led灯灭
#define BEEPON 0 //蜂鸣器响
#define BEEPOFF 1 //蜂鸣器不响
xdata uchar QUEQING_BUFF[MAX_YOUXIAO_CART_NUM];//缺勤数组,这个数组对应值为0表示是缺勤,1表示签到
xdata uchar CHIDAO_BUFF[MAX_YOUXIAO_CART_NUM];//迟到数组,这个数组对应值为0表示是迟到,1表示非迟到
uchar xuehao_count=0;//输入学号时,当前输入学号的位数
uchar xuehao_buff[XUEHAO_MAXLEN];//输入学号时缓存的学号
uchar shangke=0;//上课标志位,0表示还没上课,1表示开始上课了
uchar Que_Num,Chi_Num,Qian_Num=0;//缺勤人数的数量,迟到人数的数量,签到人数的数量
uchar quecount,chicount;//查看名单时,剩余要显示的缺勤数量 迟到数量
uchar yecount;//当前页数,查看缺勤人员、迟到人员,超过3个名单可以切页
uchar nextcount;
uchar SYS_STATUS,pre_sysstatus = 0XFF;//当前系统状态,上一次系统状态
uchar timer_par=0,timer_val[7];//校准时间,timer_par为0~6分别对应校准年月日时分秒星期,timer[]对应的数值
uchar shangke_timer[2]={8,30};//上课时间
code char *NAME[8]={"张三","李四","王五","宋七","陈八"};
/********************************************************************
* 作者 :单片机爱好者之家
* 名称 :
* 功能 :
* 输入 :
* 输出 :
***********************************************************************/
void DelayMs(uint i)//1ms延时
{
uint x,j;
for(j=0;j<i;j++)