当前位置: 首页 > news >正文

基于单片机的刷卡考勤系统的设计

目录

摘要…………………………………………………………………………1
Abstract……………………………………………………………………2
第一章 绪论………………………………………………………………4
1.1课题背景…………………………………………………………4
1.2课题研究的目的与意义…………………………………………4
1.3国内外研究现状…………………………………………………5
1.4本课题主要研究的内容…………………………………………5
第二章 射频识别技术的介绍………………………………………………6
2.1 IC卡的介绍 ……………………………………………………6
2.2 非接触式IC 卡的标准…………………………………………8
第三章 考勤系统的总体方案设计…………………………………………9
3.1系统的功能要求…………………………………………………9   
3.2系统的技术要求…………………………………………………9 
3.3 系统的组成及总体方案设计……………………………………10
第四章 系统的硬件设计……………………………………………………10
4.1 天线的设计………………………………………………………10
4.2 读卡芯片电路的设计……………………………………………15
4.3 液晶显示模块电路的设计………………………………………18
4.4 单片机控制模块电路……………………………………………20
4.5 其他模块电路的设计 …………………………………………21
第五章 软件部分的设计 …………………………………………………22
5.1 主程序的设计……………………………………………………22
5.2 读卡模块软件设计………………………………………………23
5.3 显示模块软件设计………………………………………………25
第六章 系统测试结果及结论………………………………………………26
6.1 调试………………………………………………………………26
6.2 结论………………………………………………………………26
谢辞 …………………………………………………………………………27
参考文献 ……………………………………………………………………27
附录(一)……………………………………………………………………27
附录(二)……………………………………………………………………29
本文主要是通过对射频设别技术的研究来设计一款基于单片机的刷卡考勤系统的硬件设备及其软件。在设计IC卡读卡器的基础上,完成考勤系统的设计。
本课题主要完成的任务包括:
(1)文献部分:无线识别技术的研究。
(2)硬件部分:包括单片机控制的射频读卡器的设、12864液晶显示电路的设计、报警电路的设计等。
(3)软件部分:单片机控制程序。
(4)系统的综合调试与分析:在软硬件完成以后,要对系统进行综合的测试与实验,分析系统的可靠性与实用性,调整系统的不足。
第三章考勤系统的总体方案设计

本课题设计的刷卡考勤系统主要由IC卡、读卡模块、控制模块、显示模块和报警模块组成。下面分别对系统功能要求、系统技术要求及系统实现方案总体阐述。

3.1系统的功能要求
本系统的研制主要包括以下几项功能:
(1)读卡功能:本系统的读卡模块可以识别基于国际标准ISO/IEC 14443的IC卡,可以读取IC的卡号。
(2)考勤功能:本系统通过对IC卡的识别来统计出勤信息,统计出应到人数。实到人数,实现考勤功能。
(3)显示功能:对于考勤的相关信息,可以通过液晶显示屏来进行显示。对于数据库中存在的持卡人信息进行显示,并响铃提示通过;对于数据库中不存在的持卡人信息进行报警警告。
3.2系统的技术要求
在了解本系统的工作原理和功能之后,我们就可以确定系统的技术要求。本系统采用了标准的ISO/IEC 14443 “Type A”国际标准实现IC卡信息的读写,并通过天线的屏蔽干扰信号设计,大大提高了系统读卡的可靠性和通用性。系统采用的单片机处理器成本均比较低,适合批量生产和各类工程的需要。对于完整的系统而言,为了提高市场竞争力,要求该系统应符合便于携带、防干扰、易于使用和成本低廉等技术要求。具体参数和指标如下:
(1)便于携带:电路的设计和布局较为紧凑,减少占用的空间,减小硬件的体积,便于携带;
(2)防干扰:系统的天线的合理设计,实现电子屏蔽;
(3)易用性:系统采用模块化的设计,在使用过程中安装简单,同时考勤信息直观的显示在液晶屏上,人机交换界面良好,易于使用。
3.3 系统的组成及总体方案设计
基于单片机的刷卡考勤系统主要由天线、读卡芯片、单片机、控制电路、报警电路、显示电路组成。设计的关键在于读卡模块和显示模块电路的设计以及单片机与读卡芯片和液晶显示通信的程序设计。系统的组成结构如图(3)所示:
在这里插入图片描述
图(3)考勤系统的结构框图
第四章 系统的硬件设计
系统的电路图设计:
如图(4)所示,图中的U2为STC89C52RC单片机,J3为12864液晶显示屏。单片机作为主控制器,S1、C1、R2、D1、R3组成复位电路连接到9脚RST上,当按下S1,便会给单片机一个低电平,使单片机复位;通过单片机的P1口作为液晶显示屏的数据I/O口和P0.0-P0.5控制液晶的状态和显示;P2.0口来控制蜂鸣器的响铃,当给P2.0一个高电平时,蜂鸣器响铃;P3.0/P3.1作为下载电路的并行接口。
左下面的是MFRC522读卡芯片,右下端为读卡器部分的天线,当单片机通过P0.6、P0.7和P2.5、P2.6、P2.7串口的SPI通信方式给MFRC522“读”的信号时,MFRC522通过VMID和RX端口,给天线信号,通过射频感应,本文转载自http://www.biyezuopin.vip/onews.asp?id=13675天线读取IC卡中信息,通过TX1和TX2把信息存在MFRC522相应的寄存器中,当单片机发出控制“写”的信号后,相应的信息会被写到卡中。

//头文件include.H
#include "reg52.h"
#include "intrins.h"
#include "rc522.h"
#include "ks0108.h"
#include <stdio.h>
#include <string.h>																		   
#define  uchar unsigned char
#define  uint unsigned int
sbit     beep=P2^0;	
#define  nop() _nop_()
#define  CLR_BEEP  beep=0
#define  SET_BEEP  beep=1
#define  WRITECARD  0xA2
#define  KEYCARD    0xA3    
#define  SETTIME    0xA4
#define  SENDID     0xA5
#define  RELOAD_COUNT  0xfd    //11.0592M  波特率9600  0xfd
                                  //                4800  0xfa 
//头文件ks0108.h
#include "reg52.h"
#define  LCD12864DataPort  P1
#define  STU_DATAPORT  P1
#define  SET_DATAPORT  P1=0xff					  
sbit     lcd_di=P0^4;
sbit     lcd_rw=P0^3;
sbit     lcd_en=P0^5;
sbit     lcd_cs1=P0^0;
sbit     lcd_cs2=P0^1;
#define  SCREENLEFT   0
#define  SCREENRIGHT  1
#define  CLR_LCD_DI  lcd_di=0
#define  SET_LCD_DI  lcd_di=1
#define  SET_LCD_RW  lcd_rw=1
#define  CLR_LCD_RW  lcd_rw=0
#define  SET_LCD_EN  lcd_en=1
#define  CLR_LCD_EN  lcd_en=0
#define  SET_LCD_CS1  lcd_cs1=1
#define  CLR_LCD_CS1  lcd_cs1=0
#define  SET_LCD_CS2  lcd_cs2=1
#define  CLR_LCD_CS2  lcd_cs2=0
//头文件rc522.h
/
//MF522命令字
/
#define PCD_IDLE              0x00               //取消当前命令
#define PCD_AUTHENT           0x0E               //验证密钥
#define PCD_RECEIVE           0x08               //接收数据
#define PCD_TRANSMIT          0x04               //发送数据
#define PCD_TRANSCEIVE        0x0C               //发送并接收数据
#define PCD_RESETPHASE        0x0F               //复位
#define PCD_CALCCRC           0x03               //CRC计算

/
//Mifare_One卡片命令字
/
#define PICC_REQIDL           0x26               //寻天线区内未进入休眠状态
#define PICC_REQALL           0x52               //寻天线区内全部卡
#define PICC_ANTICOLL1        0x93               //防冲撞
#define PICC_ANTICOLL2        0x95               //防冲撞
#define PICC_AUTHENT1A        0x60               //验证A密钥
#define PICC_AUTHENT1B        0x61               //验证B密钥
#define PICC_READ             0x30               //读块
#define PICC_WRITE            0xA0               //写块
#define PICC_DECREMENT        0xC0               //扣款
#define PICC_INCREMENT        0xC1               //充值
#define PICC_RESTORE          0xC2               //调块数据到缓冲区
#define PICC_TRANSFER         0xB0               //保存缓冲区中数据
#define PICC_HALT             0x50               //休眠

/
//MF522 FIFO长度定义
/
#define DEF_FIFO_LENGTH       64                 //FIFO size=64byte
#define MAXRLEN  18

/
//MF522寄存器定义
/
// PAGE 0
#define     RFU00                 0x00   
#define     CommandReg            0x01 //启动和停止命令的执行
#define     ComIEnReg             0x02 //中断请求传递的使能和禁能控制位   
#define     DivlEnReg             0x03 //中断请求传递的使能和禁能控制位   
#define     ComIrqReg             0x04 //包含中断请求标志   
#define     DivIrqReg             0x05 //包含中断请求标志
#define     ErrorReg              0x06 //错误标志寄存器   
#define     Status1Reg            0x07 //包含 CRC、中断和 FIFO 缓冲区的状态标志   
#define     Status2Reg            0x08 //包含接收器、发送器和数据模式检测器的状态标志   
#define     FIFODataReg           0x09 //64 字节 FIFO 缓冲区的输入和输出
#define     FIFOLevelReg          0x0A //指示 FIFO 中保存的字节数
#define     WaterLevelReg         0x0B //定义 FIFO 下溢和上溢报警的 FIFO 深度
#define     ControlReg            0x0C //包含不同的控制位
#define     BitFramingReg         0x0D //面向位的帧的调节
#define     CollReg               0x0E //定义在 RF 接口上检测到的第一个位冲突
#define     RFU0F                 0x0F
// PAGE 1     
#define     RFU10                 0x10
#define     ModeReg               0x11 //定义发送和接收的常用模式
#define     TxModeReg             0x12 //定义发送过程的数据速率
#define     RxModeReg             0x13 //定义接收过程的数据速率
#define     TxControlReg          0x14 //控制天线驱动器管脚 Tx1 和 Tx2 的逻辑操作
#define     TxAutoReg             0x15
#define     TxSelReg              0x16 //选择模拟部分的内部源
#define     RxSelReg              0x17 //选择内部接收器设置 
#define     RxThresholdReg        0x18 //选择位译码器的阈值
#define     DemodReg              0x19	//定义解调器的设置
#define     RFU1A                 0x1A
#define     RFU1B                 0x1B
#define     MifareReg             0x1C
#define     RFU1D                 0x1D
#define     RFU1E                 0x1E
#define     SerialSpeedReg        0x1F //选择串行 UART 接口的速率
// PAGE 2    
#define     RFU20                 0x20  
#define     CRCResultRegM         0x21
#define     CRCResultRegL         0x22
#define     RFU23                 0x23
#define     ModWidthReg           0x24
#define     RFU25                 0x25
#define     RFCfgReg              0x26
#define     GsNReg                0x27
#define     CWGsCfgReg            0x28
#define     ModGsCfgReg           0x29
#define     TModeReg              0x2A
#define     TPrescalerReg         0x2B
#define     TReloadRegH           0x2C
#define     TReloadRegL           0x2D
#define     TCounterValueRegH     0x2E
#define     TCounterValueRegL     0x2F
// PAGE 3      
#define     RFU30                 0x30
#define     TestSel1Reg           0x31
#define     TestSel2Reg           0x32
#define     TestPinEnReg          0x33
#define     TestPinValueReg       0x34
#define     TestBusReg            0x35
#define     AutoTestReg           0x36
#define     VersionReg            0x37
#define     AnalogTestReg         0x38
#define     TestDAC1Reg           0x39  
#define     TestDAC2Reg           0x3A   
#define     TestADCReg            0x3B   
#define     RFU3C                 0x3C   
#define     RFU3D                 0x3D   
#define     RFU3E                 0x3E   
#define     RFU3F		  		  0x3F

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 外贸网站服务商/怎样无货源开网店
  • 关于asp网站模板下载/怎么去推广自己的店铺
  • 小程序网站建设的公司/宣传推广的形式有哪些
  • 建个购物网站/国外搜索引擎排名
  • 国产一级a做爰片免费网站/沈阳seo排名收费
  • 网络直播营销的方式有哪些/郑州seo公司哪家好
  • C++ new的三种用法
  • 机器学习SVM算法原理
  • 微信小程序自定义获取手机号按钮样式
  • 【C++】继承、多态、抽象类
  • (附源码)计算机毕业设计SSM基于JAVA线上订餐系统
  • 使用分布式锁 解决订单超卖场景(二)
  • 【前端知识】vue的生命周期
  • Excel - 学习 - 笔记4: Excel 函数 - if 函数
  • 神经网络是一种算法吗,神经网络包括哪些算法
  • 分享13个游戏源代码总有一个是你想要的
  • 自动调节式防涝井盖设计
  • 【湍流】基于kolmogorov结合次谐波补偿的方法生成大气湍流相位屏附matlab代码