目 录
摘 要 I
ABSTRACT II
第1章 绪论 1
1.1选题背景及意义 1
1.2国内外研究现状 1
1.3研究主要内容 2
第2章 系统设计 4
2.1需求分析 4
2.1.1可行性分析 4
2.1.2功能需求概述 5
2.1.3 UML用例图 5
2.2学生一卡通的基本组成结构 7
2.2.1天线 7
2.2.2阅读器 7
2.2.3电子标签 11
2.3硬件模板设计 15
2.3.1能量传送 15
2.3.2数据传送 15
2.4软件模块设计 17
2.4.1功能模块设计 17
2.4.2程序流程图设计 18
2.4.3数据库(E-R)图设计 18
第4章 系统实现 20
5.1硬件电路设计实现 20
5.1.1考勤管理 20
5.1.2开锁装置 24
5.1.3拿取快递 26
5.2软件程序设计实现 27
5.2.1考勤管理 27
5.2.2开锁装置 31
5.2.3拿取快递 36
第6章 系统测试 37
6.1程序调试 37
6.2程序的测试 37
6.2.1 测试的重要性及目的 37
6.2.2 测试的步骤 39
6.2.3 测试的主要内容 39
总结与展望 41
致 谢 42
参考文献 42
1.3研究主要内容
RFID技术应用到学生一卡通系统中对于校园内部人员和财物的管理作用重大、意义深刻。传统的学生一卡通往往只有简单的食堂、超市刷卡消费、宿舍开锁自行车管理和图书馆借阅书籍等功能,“一卡通”的功能并没有真正意义上的实现。本文在原有学生一卡通系统的基础上加入考勤管理、自行车开锁装置和拿取快递等功能,真正意义上实现一卡在手校内万事不愁的情形。
(1)考勤管理
人员考勤一直以来都是比较繁琐的事务,传统的人员考勤主要是靠记录人员点到或自行签到的方式。在出席人员较多的场合,点到会占用大量时间,而自行签到又会出现代签的问题。在需要进行考勤的场合安装阅读器,通过阅读器识别出席人员携带的标签(一卡通)完成考勤工作。考勤管理可以不单单仅在学生上课出勤管理上应用,也可以使用到教职工会议出勤、行政人员和后勤人员上班出勤、教师上课出勤等方面。在学生上课出勤管理上还可以与宿舍开锁自行车管理相结合,确认未到课学生是否有在宿舍。
(2)开锁装置
在校园里,RFID的校园学生卡自行车开锁装置, 开发出一种利用学生一卡通就能打开自行车锁的新 方式,这样在校园里既方便学生开锁,收费也更简便。 这也是RFID频射卡技术在控制自行车锁方面的一个 应用,达到在校园局部刷学生卡就能快速方便开启自 行车锁的装置。其原理是RC-522 RFID频射卡模块作 为识别装置,用STM32 F103单片机设置为主控制器, 并通过该控制器来完成对舵机转动的控制,进而达到对自行车锁的控制。有了共享单车的新模式,在校园 内会得到更好的普及,尤其现在很多大学校园很大,更多的学生会选择共享单车这一新的出行方式。科技 给我们带来了新的生活方式,在校园里大面积地推广 共享单车,需要和学校内部管理接轨,而使用校园卡 开锁是一种新的管理模式,这种方式比手机扫码开锁的传统方式效率更高,真正做到了随开随用。而且在 校园使用一卡通还能监控学生的一些用车方式等,学生卡开锁也能控制学生将共享单车骑出校外,与此同 时,通过Global Posi-tioning System(全球定位系统)等 方式定位,可有效监控共享单车的运行轨迹,方便运 营企业对大数据进行处理,进而降低运行成本。总之, 本文转载自http://www.biyezuopin.vip/onews.asp?id=14204利用学生一卡通打开自行车锁的新方式,对企业来说远远胜于普通的手机扫码开锁,充分利用大学校园的封闭性,减少企业的维护成本,方便学生的使用,这就是科技给我们生活带来的便利。
(3)拿取快递
在未来的10年内,在5G时代RFID将用于各行各 业,RFID技术将用于智能货架。考虑到大学生经常上网购物,我们可以将RFID技术用于各种物流自提点的货架,通过给包裹添加电子标签,在货物自提点设置自助提货机,并将货物信息与本人学生一卡通关联,并且搭建一个数据库用于实时获取各物流公司的货物物流信息,将物流信息与学生信息相匹配。在自助提货机上添加读写器用于读取电子标签内部的关于包裹的详细信息。学生找到货物后无须在前台扫描二位码,填写手机号签名,只需使用学生一卡通刷卡,读卡器识别货物信息后,即可取货成功。为在校师生的生活提供了便捷的服务。

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include<stdio.h>
#include <intrins.h>
#include "delay.h"
#include "rc522.h"
#include "1602.h"sbit key = P1^1;  //接口定义
sbit buzzer  = P1^0;  //接口定义/*********/
unsigned char code zsID[4]={0xCB,0x3E,0x63,0x0A};  //张三卡号
unsigned char code lsID[4]={0xE2,0xD8,0x61,0x19};  //李四卡号
unsigned char code weID[4]={0x2B,0x17,0xE9,0xA9};  //王二卡号
/*********/unsigned char UID[5];    //卡号
unsigned char Temp[4] ; //暂存数组  unsigned long time_20ms=0;   //定时计数
char dis0[16];      //液晶显示数组
char dis1[16];
unsigned char zsFlag =' ';//张三 是否到标志
unsigned char lsFlag =' ';//李四 是否到标志
unsigned char weFlag =' ';//王二 是否到标志
unsigned char disFlag =0;  //显示标志
unsigned char manNum=0;             //人数
bit buzFlag = 0; //蜂鸣器报警标志
void Init_Timer0(void);      //函数声明
void UART_Init(void);
void uartSendStr(unsigned char *s,unsigned char length);
void uartSendByte(unsigned char dat);void main (void)
{     unsigned char disPlace=0;    //显示位置Init_Timer0();        //定时器0初始化UART_Init();     //串口初始化buzzer = 0; //报警   开LCD_Init();           //初始化液晶DelayMs(100);          //延时有助于稳定LCD_Clear(); buzzer = 0; //报警    关PcdReset();//复位RC522PcdAntennaOn();//开启天线发射 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;} //李四到 +1if(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; //蜂鸣器报警标志}       } }
}void Init_Timer0(void)
{//**All notes can be deleted and modified**//TMOD |= 0x10;   //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响          TH0=(65536-20000)/256;          //重新赋值 20msTL0=(65536-20000)%256;EA=1;            //总中断打开ET0=1;           //定时器中断打开TR0=1;           //定时器开关打开
}void Timer0_isr(void) interrupt 1
{TH0=(65536-20000)/256;          //重新赋值 20msTL0=(65536-20000)%256;    time_20ms++;if(time_20ms%10==0)    //定时显示{disFlag = 1 ;if(buzFlag == 1) buzzer =!buzzer;//蜂鸣器报警else buzzer = 1;//不报警}
}void UART_Init(void)
{//**All notes can be deleted and modified**//SCON  = 0x05;                    // SCON: 模式 1, 8-bit UART, 使能接收  TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重装TH1   = 0xFD;               // TH1:  重装值 9600 波特率 晶振 11.0592MHzTL1 = TH1;  TR1   = 1;                  // TR1:  timer 1 打开                         EA    = 1;                  //打开总中断ES    = 1;                  //打开串口中断
}void uartSendByte(unsigned char dat)
{unsigned char time_out;time_out=0x00;SBUF = dat;           //将数据放入SBUF中while((!TI)&&(time_out<100))  //检测是否发送出去{time_out++;DelayUs2x(10);}  //未发送出去 进行短暂延时TI = 0;                      //清除ti标志
}void uartSendStr(unsigned char *s,unsigned char length)
{unsigned char NUM;NUM=0x00;while(NUM<length)   //发送长度对比{uartSendByte(*s);  //放松单字节数据s++;       //指针++NUM++;        //下一个++}
}void UART_SER (void) interrupt 4   //串行中断服务程序
{if(RI)                        //判断是接收中断产生{RI=0;                      //标志位清零}if(TI)  //如果是发送标志位,清零TI=0;
} 








基于RFID的学生一卡通管理系统的设计与实现相关推荐

  1. javaee校园信息服务器,基于javaEE服务器 学生考勤管理系统的设计与实现开题报告...

    基于javaEE服务器 学生考勤管理系统的设计与实现开题报告 毕业论文(设计)开题报告 姓 名 学 号 所在专业 软件工程 论文(设计)题目 基于 javaEE 服务器 学生考勤管理系统的设计与实现 ...

  2. php简单学生管理系统设计与实现,基于PHP的学生成绩管理系统的设计与实现.doc...

    基于PHP的学生成绩管理系统的设计与实现.doc 基于PHP的学生成绩管理系统的设计与实现 摘 要: 我国高等职业教育迎来了蓬勃发展的新局面,各院校招生规模不断扩大,学校的教学管理负担越来越重.为了提 ...

  3. 学生社团管理系统java_基于JavaEE的学生社团管理系统的设计与实现

    一.基本信息 标题:基于JavaEE的学生社团管理系统的设计与实现 作者:郝平 时间:2018 来源:中国知网 二.研究背景 伴随着互联网技术的高速发展和进步,网络对于人类社会的经济与教育.文化与军事 ...

  4. 基于SSM的学生考勤管理系统的设计与实现

    项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等.这里根据疫情当下,你 ...

  5. 基于Java的学生课程管理系统的设计和实现

    基于Java的学生课程管理系统的设计和实现 软件工程王曦楠 要] 学生课程管理系统一直是学校高效组织管理办法信领域内的一个重要课题,特别随着当前教育领域内的深度变革,怎样才能让学生课程管理系统在教育机 ...

  6. 毕业论文开题报告---范文---基于Android的学生考勤管理系统的设计与实现

    论文(设计)题目 基于Android的学生考勤管理系统的设计与实现 学生姓名 所在院系 选题的背景.意义及研究现状: 一.选题背景 目前,在多数高校的日常学生考勤中,任课教师或学生干部往往是在考勤结束 ...

  7. 基于mysql的高校学生管理系统_基于Web的学生考勤管理系统的设计与实现(Struts2,MySQL)...

    基于Web的学生考勤管理系统的设计与实现(Struts2,MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文13000字,程序代码,MySQL数据库) 考勤管理系统对于各个高校来 ...

  8. 基于html5的学生管理系统,基于HTML5的学生信息管理系统的设计与实现

    [摘要] 目前学校依然使用人工对学生信息进行管理,没有相关的学生信息管理系统,虽然学校硬件和网络设施已经提高,但对网络的利用最多也就是用QQ来传送文件及信息,效率低下,这种状态急需改变. 基于这种现状 ...

  9. javaweb基于SSM开发学生请假管理系统 课程设计 毕业设计源码

    基于SSM开发学生请假管理系统(大作业/毕业设计) 开发环境: Windows操作系统 开发工具: MyEclipse(eclipse/idea)+Jdk+Tomcat+Mysql数据库 Java E ...

最新文章

  1. java接口如何定义常量 c_在Java接口中怎样访问定义的常量呢?
  2. opencv机器学习线性回归_机器学习入门1---简单线性回归
  3. 强化学习(四)—— DQN系列(DQN, Nature DQN, DDQN, Dueling DQN等)
  4. 较Win7企业更愿用Win10?原因就在这里
  5. KD树(k-d tree)
  6. 文档丨Oracle 20c 概念手册
  7. 前脚投简历,后脚就被精准裁员。这套监控系统让打工人颤抖:离职倾向、摸鱼通通都能被监测,争议出现后产品页面已404...
  8. init.d,rc.d详解 Linux运行时详解
  9. 数字后端基本概念介绍——Placement Blockage
  10. class文件详解(全过程举例加图解)
  11. bat批处理文件的简单解密方法(乱码)
  12. javascript颜色选择器
  13. ember controller内调用save修改model数据时出现null的解决方案
  14. 配置谷歌android依赖镜像
  15. 如何把两块硬盘数据迁移到另一块硬盘
  16. 存储技术对比:NVMe与SATA孰强孰弱?
  17. 【名企秋招】360公司2017年秋季校招开始喽~ 立即报名
  18. 四十六.风控评分卡模型关键点理解
  19. python线程死锁的原因,浅谈Python线程的同步互斥与死锁
  20. 巧用ASP实现Web数据统计、报表和打印 (转)

热门文章

  1. Android webView滑动实现沉浸式标题栏效果切换
  2. 实现div毛玻璃背景
  3. DBISAM故障一例
  4. nvidia AGX TX2 等移动计算平台加装固态硬盘,并实现系统迁移
  5. burpsuit的安装激活以及常见问题的解决办法
  6. Flask-Mail使用163邮箱异步发送邮件
  7. java/eclipse/tomcat版本号简介
  8. Creo二次开发的第一个案例及报错处理(Creo6.0+ VS2017)
  9. WeNet的Runtime编译与应用
  10. KeyShot 9 安装教程