您当前的位置:五五电子网电子知识电子知识资料计算机应用基于51单片机控制门禁系统的设计 正文
基于51单片机控制门禁系统的设计

基于51单片机控制门禁系统的设计

点击数:7270 次   录入时间:03-04 11:56:05   整理:http://www.55dianzi.com   计算机应用


www.55dianzi.com

  门禁主机程序实现的功能有检测卡信息是否存在并进行校验核对,存储器读写,键盘显示控制,语音控制和通信等,本例中只对读卡部分进行详细说明。
  
  门禁主机程序设计思想是:当有EM4100卡进入到射频卡读卡器线圈的工作范围内以后,门禁主机通过射频卡读卡器电路获得该卡的卡号信息,并对存储器进行读操作,确认该卡号信息在系统中是否存在,如果存在,则打开电磁锁,否则给出语音提示。如果键盘有按键按下,则语音提示提示“请输入房间号码”,对存储器进行读操作,判断该房间号是否正确,如果正确则语音提示“请输入密码”,密码正确后打开电磁锁,否则有相应的错误语音提示,电磁锁拒开。主程序流程图如下图所示。

门禁主机程序流程图


  
  在本系统的设计中,用到的芯片单片机C8051F340、HD7279A及AT45DB041D均为比较常见的芯片,编程调试比较方便,而且有大量的实例可以参考,下面仅详细介绍一下射频卡读卡器读卡操作子程序。
  
  EM4100芯片的数据调制和传送,是以常用的Manchester(曼彻斯特)调制格式来编码的,如图14-18所示。只要EM4100芯片的外部线圈两端产生的AC感应电压≥3.5Vpp,线圈时钟频率约为125kHz时,芯片即上电启动。EM4100的全部数据位为64bit,它包含9个开始位(其值均为‘1’)、40个数据位(8个厂商信息位+32个数据位)、14个行列校验位(10个行校验+4个列校验)和1个结束停止位。EM4100在向读卡机或PC机传送信息时,首先传送9个开始引导位,接着传送8个芯片厂商信息或版本代码,然后再传送32个数据位。其中15个校验以及结束位用以跟踪包含厂商信息在内的40位数据。

124745

  对于曼彻斯特编码,本例使用单片机的软件解码,利用单片机的定时器T0产生精确定时,测定编码脉冲确认数据位是0还是1,然后读取指定个数的数据位即可得到卡的信息。
  
  程序的编写要按照曼彻斯特编码的时序编写。readbit()函数实现读取一个数据位的功能,程序代码如下:

程序代码

  readdata()函数实现读取一个完整的数据位的子程序,注意应用这个函数时需要在循环中不断查询,程序代码如下:

程序代码

程序代码

  CheckData()函数实现接收并解码子程序,程序中调用了readdata()函数。

readdata()函数

readdata()函数

  ReadCardNo()函数实现读取卡号的功能。程序中如果检测到卡信息正确,则卡号信息存放在Buff缓冲区中,程序代码如下:

程序代码

  本系统扩展的存储器可存储几千张射频卡信息,很多场合,可选容量小的存储器即可满足要求,甚至直接采用C8051F340内部存储器即可满足要求。
  
  本门禁系统采用的是RS485总线构成整个管理系统,用户也可采用其他数据交换方式进行管理,如无线通信模式(如GPRS)、手持式红外抄表模式或者直接用键盘到门禁机现场来管理,各种模式在技术上均能实现,各有利弊。
  
  注意天线的绕制形状和圈数,如果天线参数不合适,会导致寻卡距离缩短甚至寻不到射频卡。



上一页  [1] [2] 


本文关键字:单片机  门禁系统  计算机应用电子知识资料 - 计算机应用