基于单片机的非接触式ic卡的读写毕业论文(编辑修改稿)内容摘要:

码管显示器、非接触式 IC 卡读写模块、电源、 RS232 串口通信模块 等构成 (见图 3- 1)。 图 3- 1 非接触式 IC 卡读写器系统的硬件框图 167。 单片机最小系统介绍 AT89S52 简介 AT89C52 单片机具有如下特点 [10]:  与 MCS- 51 产品兼容  具有 8K 可改写的 Flash 内  全静态操作: 0Hz~ 24MHz  三级程序存储器加密  256 字节内部 RAM  32 根可编程的 I/O 线  3 个 16 位定时器 /计数器  8 个中断源  可编程接口 CPU 控制器 天线模块 RC500 模块 IC 卡 RS232 PC 机 数码管显示模块 状态显示灯 利用单片机实现非接触式 IC 卡读写 16  低功耗空闲和调电模式 单片机复位电路 单片机的复位都是靠外部电路实现 的,在时钟电路工作后,只要在单片机的 RST引脚上出现 24 个时钟振荡脉冲 (2 个机器周期 )以上的高电平,单片机便可以实现初始化状态复位。 为了保证应用系统可靠的复位,在设计复位电路时,通常使 RST 引脚保持 10ms 以上的高电平。 只要 RST 保持高电平,则 AT89S52 就可以复位;当RST 从高电平变为低 电平 以后,单片机从主程序开始执行程序。 167。 MAX7219 及数码管显示 MAX7219 简介 MAX7219 是双列直插式芯片 [11], 如图 33 所示 , 其中 SEGA~ SEGF 是 7 段驱动输出 端 , 直接驱动 LED 对应的 7 个段 (SEG DP 为小数点驱动输出端 )。 DIG7~ DIG0分别接 8 个共阴显示器的阴极。 参考 MAX7219 工作时序图(如图 3- 2): DIN 是待显示信息的数据输入端 , 以串行方式移入内部的 16 位寄存器中寄存。 CLK 是时钟脉冲输入端 (最大频率 10MHz), 在每个 CLK 脉冲上升沿的作用下 , DIN 端的 1 位数据被移入内部寄存器。 LOAD 端是装载数据输入端 , 在 DIN 端输入数据时 , 它应保持高电平。 当一组数据 (16bit)被移入内部寄存器后 , 由 LOAD 脉冲的上升沿锁 定 16位数据 , 最高位 (D15)位首先 被移入 , 然后按顺序移入 , 直至 D0 位被移入。 图 3- 2 输入一组数据的工作时序图 利用单片机实现非接触式 IC 卡读写 17 图 3- 3 MAX7219 引脚图 MAX7219 的所有功能与多样化操作模式都是通过内部寄存器的设定来实现的 ,其内部 14 个可寻址寄存器的功能及地址如表 3- 1 所示 [12]: 表 3- 1 MAX7219 内部寄存器及地址 功能 地 址 16 进制 编码 D15 D12 D11 D10 D9 D8 空操作 X 0 0 0 0 X0 Dig0 X 0 0 0 1 X1 Dig1 X 0 0 1 0 X2 Dig2 X 0 0 1 1 X3 Dig3 X 0 1 0 0 X4 Dig4 X 0 1 0 1 X5 Dig5 X 0 1 1 0 X6 Dig6 X 0 1 1 1 X7 Dig7 X 1 0 0 0 X8 译码模式 X 1 0 0 1 X9 显示亮度 X 1 0 1 0 XA 扫描界限 X 1 0 1 1 XB 停机 X 1 1 0 0 XC 显示测试 X 1 1 1 1 XF 各内部寄存器含义如下 : ( 1) 空操作寄存器 (地址 X0H)。 用于多片 MAX7219 级联 , 在不改变显示或不影响任意功能寄存器的条件下 , 它允许数据从 DIN 传送到 DOUT。 ( 2) 译码模式寄存器 (地址 X9H)。 该寄存器的 8 位二进制数的各位分别控制 8利用单片机实现非接触式 IC 卡读写 18 个 LED 显示器的译码模式。 当高电平时 , 选择硬件译码模式 (BCDB 码译码 ), 当低电平时选择软件译码模式 (即送来数据为字型码 )。 (3)显示亮度寄存器 (地址 XAH)。 显示亮度可以用硬件和软件 2 种方法调节。 通过对亮度寄存器中 D3~ D0 位写入不同的数值可实现 LED 显示亮 度的控制 , 从 X0H到 XFH 共 16 级可调。 (4)扫描界限寄存器 (地址 XBH)。 用于设置 LED 显示器的实际扫描个数 ,由该寄存器的 D2~ D0 位设定 ,当设定值为 000B~ 111B 时 , 表示显示器动态扫描个数为 1~ 8。 (5)停机寄存器 (地址 XCH)。 当 D0=0 时 ,MAX7219 处于停机状态 , 所有显示器消隐 , 寄存器数据保持不变 ,当 D0=1 时 , 处于正常工作状态。 (6)显示测试寄存器 (地址 XFH)。 当 D0=0 时 , 正常工作 ; 当 D0=1 时 , 处于测试状态 , 在该状态下不管 MAX7219 处于什么模式 , 全部 LED 将按最大亮度显示。 内部 RAM 地址 X1H~ X8H 分别对应于 DIG0~ DIG7。 MAX7219 与单片接口电路 MAX7219 在驱动 8 位以 下 LED 显示器时,它的 DIN、 CLK、 LOAD 端分别接单片 机 P0~ P3 口中的任意三条口线,注意在三条线上对地应接几十至几百 pF 电容。 在 P0 口作为 DIN、 CLK、 LOAD 信号线时还应接 10k217。 左右的上拉电阻。 在显示器与微处理器连接线较长时还应考虑干扰的影响。 MAX7219 和单片机的连接如图 34所示。 图 34 MAX219 与单片机连接图 利用单片机实现非接触式 IC 卡读写 19 167。 WBL500UG 模块 概述 射频读写模块是采用 MIFARE 技术的微型嵌入式非接触式 IC 卡读写模块 [13]。 内嵌 ISO14443 TYPE A 协议解释器,并具有射频驱动和接收功能。 可以简单实现对MIFARE 卡的读写操作,读写距离可达 100mm。 只要通过 PC 机发送相应的通讯指令就可以实现对应的操作,对应的操作指令见。 基本参数  工作电压: 5v DC  工作电流: 100mA  通讯接口: rs232 接口 TTL 电平  适用卡型: MIFARE ONE  数据通讯: 106K BPS  射频频率:  操作距离: 100mm  工作温度: 2065 度 引脚定义 该模块尺寸为标准 DIP32 封装,天线配合模块一起使用,如图 35 所示: 利用单片机实现非接触式 IC 卡读写 20 天线模块: 图 35 WBL500 模块引脚图 编程说明 在一次卡片的操作流程一定要按一下顺序执行:寻卡、密码校验、读或写卡、关闭卡片,如果任何一个操作出现错误,就应该立即关闭卡片。 寻卡模式( 00 或者 01),如果 00 模式,在执行了关闭 指令之后,卡片必须离开感应区再进入感应区才能寻卡成功,如果 01 模式,那么在执行了停机指令之后,即时卡片未离开感应区也能感应成功: 对卡片控制区的读写与数据读写相同,只是控制方式不同,同时要注意一定不要写错或者记住所写内容,否则有可能无法再对该区进行操作: 在每一个命令执行后在执行下一个命令前应该有 15ms 的延时; 在刚开始编程时,为了不写错卡片造成不能读写的环区,在对卡片密码区进行读写之前要将密码区的 16 个字节先写入一个数据块,再读出,如果写入正确,说明写入操作正确,就可以对密码区进 行写操作了; 命令延时最好 10ms 至 20ms。 利用单片机实现非接触式 IC 卡读写 21 通讯命令 ( 1)通讯测试: 下传命令: 3C 04 00 60 00 00 BCC 0D(BCC 为 58) 成功返回: 3C 01 01 BCC 0D(BCC 为 3C) 错误返回: 3C 01 00 BCC 0D (2) 寻卡 下传命令: 3C 04 01 70 00(寻卡模式 00 或者 01) 00 BCC OD 成功返回: 3C 05 四字节卡号 00 BCC 0D 错误返回: 3C 01 FF BCC 0D ( 3)密码验证 下传命令: 3C 0E 01 6C 六字节密码 认证模式 绝对块号 四字节卡号 校验位 0D 成功返回: 3C 02 00 00 BCC 0D 错误返回: 3C 01 FF C2 0D (4) 读卡: 3C 04 01 66 00 00 BCC OD 成功返回: 3C 11 00 DATA0DATA15 BCC 0D 错误返回: 3C 01 FF BCC 0D (5) 写卡: 3C 13 01 67 00 DATA0DATA15 BCC 0D 成功返回: 3C 02 00 00 BCC 0D 错误返回: 3C 01 FF BCC 0D ( 6)发光管亮一次: 3C 03 01 6D 55 BCC 0D ( 7)蜂鸣器响一声: 3C 03 01 6B 55 BCC 0D (8) 关闭卡片: 3C 04 01 68 00 00 51 0D 正确返回: 3C 02 00 3E 0D 错误无返回。 167。 蜂鸣器、工作状态指示灯与单片机接口 蜂鸣器驱动电路 由于单片机的 I/O 口驱动能力有限,一般不能直接驱动压电式蜂鸣器,因此选用 NPN 型晶体管组成晶体管驱动电路。 蜂鸣器驱动电路如图 3- 6 所示: 利用单片机实现非接触式 IC 卡读写 22 图 3- 6 蜂鸣器驱动电路 工作状态指示灯电路 要是指示灯亮只需要送低电平。 指示灯电路如图 3- 7 所示 图 3- 7 蜂鸣器驱动电路 167。 串口通信 MAX 232 芯片简介 该产品是由德州仪器公司( TI)推出的一款兼容 RS232 标准的芯片 [14]。 主要特点 [15]:  单 5V 电源工作  LinBiCMOSTM 工艺技术  两个驱动器及两个接收器  177。 30V 输入电平  低电源电流:典型值是 8mA  符合甚至优于 ANSI 标准 EIA/TIA232E 及 ITU 推荐标 准  ESD 保护大于 MILSTD883(方法 3015)标准的 20xxV 利用单片机实现非接触式 IC 卡读写 23 图 38 max232 引脚图 硬件连接图 图 39 硬件连接图 利用单片机实现非接触式 IC 卡读写 24 第四章 软件设计 167。 非接触式 IC 卡处理子程序流程图 寻 卡 密码验证 通 过 读卡或写卡 关闭卡片 Y N 开 始 结 束 模块初始化 关闭卡片 图 41 IC 卡处理子程序流程图 利用单片机实现非接触式 IC 卡读写 25 167。 显示子程序 include define uchar unsigned char define uint unsigned int //定义 Max7219 端口 sbit Max7219_pinCLK = P1^2。 sbit Max7219_pinCS = P1^1。 sbit Max7219_pinDIN = P1^0。 void Delay_xms(uint x) { uint i,j。 for(i=0。 ix。 i++) for(j=0。 j112。 j++)。 } // //功能:向 MAX7219(U3)写入字节 //入口参数: DATA //出口参数:无 //说明: void Write_Max7219_byte(uchar DATA) { uchar i。 Max7219_pinCS=0。 for(i=8。 i=1。 i) {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。