指纹考勤机的设计与实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指纹考勤机的设计与实现

指纹考勤机硬件部分完成---小记 最初的想法 1 初步调试:基本资源、12864 2 初步调试:例程的学习及移植 3 成功移植 3 程序中比较重要的指令和变量: 4 Fingerprint.c中模块操作的主要函数: 5 主函数分析 9 指纹考勤机的硬件操作规范 11 二次开发的技术要点及其实现方法 12 实现了接续录入功能,这是很大的突破 12 实现了单个指纹的删除 16 实现了被删除指纹号的优先分配 19 实现了考勤信息的存储 21 实现了通信模式下向上位机传输考勤信息 22 付出多多,收获多多 27 缺憾 27 2B的错误 27 待续 27 最初的想法 一直以来都对一些技术感兴趣,比如指纹识别算法、无线通信、红外感应、微处理器体系架构等等,在大二的时候就想做一台指纹考勤机,进门的时候手指按一下,什么都搞定了,不用看着老师被忽悠,我也不解,如果我是一个技术出身的老师,我早就做这件事情了,何必点名,费劲。这段时间,有了空档,我就着手做这件事情。是这样设计的,硬件由指纹模块和控制板,上位机用VB开发。实现的功能大致是:上位机数据库保存人员信息,即指纹号对应学号、姓名等信息,指纹机可以脱机采集到岗信息(指纹号),在通信模式下,与上位机连接,将采集到的指纹号上传,上位机处理这些信息,生成缺勤名单文件(txt/word/excel皆可),并将缺勤名单发到指定的邮箱。硬件平台的选择求助了一下淘宝,可选的不多,一个能存储162枚指纹的指纹模块进入了我的视线,4线,VCC/GND/TXD/RXD,还提供51例程,它用的是国产指纹识别专用DSP,只开放用串口用户命令接口。看到51就知道就知道它跟识别算法之类的没有关系,注定要对着daasheet编写驱动。但可以短时间内达到设计目标并以此为契机继续学习也不错。很明显,需要用VB实现的是:串行通信、数据库编程、文件操作、网络编程。串行通信和数据库编程毕业设计的时候用过,后两者要现学。开始的时候模块资料上写单片机的RXD P3.0和TXD P3.1只能连模块,连max232都不能有,所以至少双串口才可以实现与上位机通信,打算使用双串口的60S2,而且没有用户flsah,只能在录取完信息保持开机状态知道传输完信息给上位机处理。但测试后发现,模块在链接max232的情况下仍能正常工作,而且文档显示它有用户16页共512字节flash可以使用。这样,录入过程中将信息存入flash,在上位机通信模式下,重新初始化串口波特率实现上位机通信,为了提高运行速度,没有使用89C52,还是使用了60S2。这样软硬件都清晰了。任务示意如下: 初步调试:基本资源、12864 对于60S2的使用,绝对可以用轻车熟路来形容了。实验室正好有一块51单片机开发板,串口、中断按钮、LED、12864屏都有,就是没有任何资料,管脚信息只能用万用表一点点测量。下载keil、下载STC_ISP,单片机精灵、串口助手、拷贝之前的设计资料,测量端口、用了一天的时间,基本把LED、定时器、串口、按键、外部中断全部搞定了。对于12864的资料网上有很多,找到了一篇很有用的文章《非常好-12864带字库液晶学习》,跟着上面的步骤,用了一下午时间把LCD显示也搞好了。形成了第一个测试工程代码standard1。 12864的端口定义如下: 12864顾名思义有128*64个像素点,即是横向128个点,竖向64个点,由于该液晶控制器支持的字符为8*16,汉字为16*16,因此只能显示四行,如果是汉字,为每行显示8个,如果是字符,每行显示16个。 ? ?? ? 一般包括四个函数: ? ?? ?1、写命令函数;? ?? ?2、写数据函数; ? ?? ?3、读状态函数;? ?? ?4、读数据函数; ? ?? ?这四个函数并不是必须全部写的,具体要看你实现的功能,如果只是单纯的显示汉字和字符,写命令、写数据、读状态这三个函数就够了,如过你还需要进行一些绘图的操作,那读数据函数也必须书写。 ? ?? ?另外关于读状态函数,其实也就是用于判忙操作,我看郭天祥的书里面是这样说的:原则上每次对控制器进行读写操作之前,都必须进行读写检测,由于单片机的操作速度慢于液晶控制器的反应速度,因此可不进行读写检测,或者只进行简短的延时即可。因此,读状态函数也可以不写,只用简短的延时函数替换即可。void Set_Cursor(unsigned char x, unsigned char y)//设置光标 void Display_Char(unsigned char Alphabet)//(设置光标后)显示单个字符 void Lcd_ClrScreen()//清屏 void Display_String(unsigned char x,unsigned cha

文档评论(0)

haocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档