版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学 号 11780215天津城建大学 电子系统综合设计 设计说明书IC卡读写系统设计起止日期: 2014 年 12 月 29 日 至 2015 年 1 月 23 日学生姓名罗智健班级信科2班成绩指导教师(签字)计算机与信息工程学院2014年 1月 23 日天津城建大学课程设计任务书2014 2015 学年第 一 学期 计算机与信息工程 系 电子信息科学与技术 专业 信科2班 班级课程设计名称: 电子系统综合设计 设计题目: IC卡读写系统设计 完成期限:自 2014 年 12 月 29日至 2015 年 1 月23日共 4 周设计依据、要求及主要内容(可另加附页):一、课程设计的目的在我们的日
2、常生活中,IC卡无处不在智能门锁、考勤机、交通卡、银行卡IC卡应用非常广泛。通过对课程设计任务的完成,使学生掌握IC卡读写的工作原理,并且能够熟悉单片机的开发流程和基本的编程方法,既巩固所学的基础理论知识, 又为学生日后从事开发设计奠定基础。 二、课程设计的内容及要求 选择合适的器件,了解元器件的工作原理,进行IC卡读写系统设计,完成1、单片机最小系统设计。2、单片机与IC卡读写器接口电路设计。3、编写IC卡读写控制程序,并有显示功能。4、书写设计说明书。三、参考资料:1、 何立民. MCS-51单片机应用系统设计 . M 北京航天航空大学出版社2、 张开如. 自动控制原理. M北京大学出版社
3、.3、 赵新民. 智能仪器设计基础 M哈尔滨工业大学出版社指导教师(签字): 系 主 任(签字): 批准日期: 2015年 12月 18日目录第1章 绪论11.1 IC卡的发展和应用使用情况11.2 IC卡应用技术11.3 课题中IC卡的设计目标1第2章 IC卡芯片的介绍32.1 SLE4442IC卡32.1.1 芯片特点32.1.2 芯片的引脚配置32.1.3 芯片功能42.1.4 芯片传送协议5第3章 硬件电路设计73.1 单片机系统电路73.2 接触式IC卡的接口电路83.2 串行通信电路113.3 键盘电路113.4 显示电路12第4章 软件系统设计144.1 主程序144.2 键盘扫
4、描子程序154.3 显示子程序17总结19参考文献20总程序图21附录22第1章 绪论本章介绍了IC卡的发展历史和应用情况,说明了现代IC卡技术的基础知识,最后分析了目前常见的IC卡读写器终端,并提出了本课题中IC卡读写器的设计目标。1.1 IC卡的发展和应用使用情况卡片是作为个人身份识别的手段而引进的,而作为交易凭证的卡片则早在19世纪80年代就萌芽于英国了,1950年,美国商人设计了第一张现代的塑料信用卡,1951年美国富兰克林银行作为金融机构率先发行了信用卡,到60年代中期,人们在塑料金融交易卡的背面贴上磁条,发展成为能够自动读取信息进行在线处理的磁卡,磁卡因为结构简单,价格低廉,得到迅
5、速推广。 IC卡是近年从欧洲开始出现的,IC卡具有突出的3S特点,即Standard(国际标准化)、Smart(灵巧智能化)、和Security(安全性)。因而发展迅速,在金融、通讯、交通等众多领域中后来居上,即使那些磁卡已经普及应用的范围也将被取而代之。IC卡不仅改变了现有多种卡的使用方法和功能作用,还不断开创出新的应用领域。将IC卡和其他设备组成系统就能提供非常丰富的服务功能,把这些功能与生产或流通领域有机地结合起来,将出现令人意想不到的奇迹,创造出巨大的经济和社会效益。随着信息技术的发展,IC卡作为一种先进的信息存储介质,它的应用己经渗透到各国的经济、社会生活、军事等各个方面,将来更有着
6、广阔的发展空间。1.2 IC卡应用技术IC卡比磁卡存储容量大,可靠性和安全性高,在应用上除了覆盖磁卡的全部应用范围以外,还提供了许多磁卡所不具备的应用特性。正是这些特性,使IC卡在脱机业务处理和联网数据一致性等方面表现出前所未有的优势。IC 卡虽然有很强的功能,但仅当IC卡加入到应用系统中,构成发行商、应用系统和持卡人之间的数据传输媒介时,才能有效地发挥其优势。一个好的IC卡应用系统,应具备良好的应用特性和性能价格比,还要有好的安全特性。1.3 课题中IC卡的设计目标读写器是IC卡应用系统的终端设备,只有通过读写设备才能和IC卡建立联系,读写IC卡中的数据;读写器一般还要求和信息网络中的上位机
7、进行通讯,把IC卡中的数据融入到上层数据库。设计选择读写器是建立IC卡应用系统的关键。本文是就设计IC卡读写器展开的,课题的设计目标是一种通用的接触式IC卡读写终端,要求读写器能够单独工作。预期目标:l 实现用户信息的存储l 通过键盘显示电路实现人机交互l 实现卡的插入与退出识别l 实现伪卡的识别 第2章 IC卡芯片的介绍2.1 SLE4442IC卡IC卡是集成电路卡(IntegratedC ircuit Card)的简称,有些国家和地区称之为微芯片卡(Microchip card)或微电路卡(Microcircuit Card)。IC卡的大小和磁卡相同,它把集成电路镶在塑料卡片上,芯片一般是
8、不易挥发性存储器(ROM, EPROM. EPROM),保护逻辑电路,甚至于CPU。本节介绍IC卡的一些基本知识,使读者对IC卡有一个大概的了解。由于本设计所采用的IC卡为接触型逻辑加密卡(SLE4442),所以本节的内容重点介绍此卡。SLE4442是由德国西门子公司设计的逻辑加密存储卡。它具有2K位的存储容量和完全独立的可编程加密代码存储器。内部电压提升电路保证了芯片能够以单5V电压供电,较大的存储器容量能够满足应用领域的各种要求。是目前国内应用较多的一种IC卡芯片。2.1.1 芯片特点l 面向字节寻址;l 采用多存储器结构:主存储器、保护型存储器、加密存储器;l 线连接协议,触点和串行接口
9、满足ISO7816同步传送协议;l 芯片采用NMOS工艺技术,每字节的擦除/写入编程时间为2.5ms;l 复位响应(ATR)符合ISO/IEC7816-3协议;l 存储器采用至少10 000次的擦除/写入周期,数据保持时间至少为10年;l 额外特性:数据仅能在正确输入24位可编程安全码(安全存储器)之后才能改变。2.1.2 芯片的引脚配置芯片的引脚与国际标准兼容,下表3-1是引脚的定义和功能说明:表2-1 SLE4442引脚功能引脚卡触点符号功能12345678C1C2C3C4C5C6C7C8VCCRSTCLKNCGNDNCI/ONC操作电压5V复位时钟未用地未用双向数据线(漏极开路)未用2.
10、1.3 芯片功能SLE4442IC卡芯片主要包括三个存储器:256×8位EEPROM型主存储器、32×1位PROM型保护存储器和4×8位EEPROM型加密存储器。1)主存储器:主存储器为可重复擦除使用的EEPROM型存储器。按字节寻址,擦除写入。在擦除时,一个数据字节的所有8位被全部置“1”。在写入时,在EEPROM单元中的信息则根据输入的数据,按字位方式变换成逻辑“0”(即在EEPROM中,新写入的数据与原来存在的数据进行“逻辑与”)。通常,要改变一个数据需要先进行擦除再进行写入两项操作。如果在被寻址的字节中8位没有一个字位需要从0变为1,则可以不进行擦除处理。
11、反之亦然,在被寻址的字节中,如果没有一个字节需要从1变为0,则可以不做写入处理,写入或擦除操作一次至少耗费2.5ms时间。主存储器的地址是从00H到FFH。但主存储器可分为两个数据区:保护数据区和应用数据区,保护数据区是主存储器前32个字节数据区。其地址是从0(00H)到31(1FH)这部分的数据读出不受限制,但擦除和写入操作均受到保护存储器内部数据状态的限制。当保护存储器中第N位为0时,则对应主存储器中第N个字节就不允许进行擦除和写入操作。故保护数据区一般均作为IC卡的标识数据区,存放一些固定不变的标识参数。应用数据区为主存储器后224个字节。其地址从32(20H)到255(FFH).这部分
12、的数据读出不受限制,但擦除和写入受控于加密存储器数据校验比较结果的影响。当需要修改应用数据区的内容时,必须首先输入一个3字节长的“校验字”。这个新输入的“校验字”与原来存在在加密存储器中的“参照字”进行一对一的比较。只有当两者完全一致时,芯片的加密控制逻辑才打开芯片的主存储器,允许后面的擦除和写入操作。芯片允许在有限的次数内重试比较操作。如果在连续三次比较失败之后,芯片的错误计数器计数到“0”,并将锁死主存储器,禁止随后的任何比较操作和写入擦除操作。这时整个主存储器变成一个只读存储器。芯片中各存储器的内容不能再改变。2)保护存储器是一个32×1位的一次性可编程只读存储器(PROM)。
13、它是按字位方式寻址和写入。保护存储器从032的每一位对应着主存储器地址从0到31的字节。因此可以理解为每个字节单元的控制熔丝。从出厂到被初始化之前,保护存储器的状态为全“1”。从控制方面来说,保护存储器的内容只能从“1"写成“0”而不能从“0”擦除成“1”。保护存储器每个被写“0”的单元所对应控制的主存储器的字节单元将不再接收任何擦除和写入命令,从而使得该字节单元的数据不可再改变。从使用方面来讲,如果需要防止一些固定的标识参数被改动,可以将这类参数先写入主存储器的保护存储区,然后将对应单元的保护存储器的字位写位“0”,从而使这一部分单元中的参数内容永远不可更改。保护存储器本身的读出操
14、作不受限制。但对其写入操作仍然受到加密存储器比较校验操作结果的控制。当输入的“校验字”与芯片内的“参照字”一致,则可以执行后续的写入操作。如果比较不成功,则控制逻辑将闭锁保护存储器。3)加密存储器:加密存储器是一个4×8位的EEPROM型存储器。在这个存储器中,第0字节为“密码输入错误计数器”(EC)。密码输入错误计数器的有效位是低3位。在芯片初始化时,计数器设置成"111"。这一字节是可读的。每次比较密码时,先判断计数器中是否还有“1”。如果还有“1”,则将其中一个“1”写成“0”,然后进行比较“校验字”操作。如果比较结果一致,密码错误计数器将允许进行擦除操作(
15、芯片不能自动进行擦除操作),同时打开主存储器、保护存储器和加密存储器,并允许进行擦除和写入操作。如果比较结果不一致,则密码错误计数器中为“1”的个数将减少一位。只要计数器的内容不全为0,则芯片的比较“校验字”操作还允许进行。当密码计数器减数为零,则芯片的存储单元将全部锁死。加密存储器的第1,2,3字节为“参照字”存储区。这3个字节的内容作为一个整体披称为可编程加密代码(PSC)。值得注意的是:这3个字节的内容在PSC比较成功前是不可读的,只能进行比较操作。而“写入、擦除”操作也受自身“比较”操作结果的控制。只有当“比较”成功,加密存储器各字节内容才可以进行读出、写入和擦除。2.1.4 芯片传送
16、协议传送协议是在接口设备IFD与IC卡的集成电路之间的两线连接协议,SLE4442芯片的协议类型为S=10(同步卡协议)。I/O线上数据变化只在CLK信号的下降沿才有效。传送协议包括4种模式:l 复位和复位响应l 命令模式l 输出数据模式l 处理模式1)复位和复位响应:复位响应是根据ISO 7816-3标准来进行的。在操作期间的任何时候都可以复位,只有经过了复位才能对IC卡进行其他操作.开始时地址计数器随一个时钟脉冲而被设置成0。当RST线从H状态置到L状态时,第一个数据位的内容被送到I/O线上。若连续输入32个时钟脉冲,主存储器中的前4个字节地址单元中的内容被读出。在第33个时钟脉冲的下降沿
17、,I/O线被置成H状态而关闭。图3-1为芯片复位即复位响应的时序关系。在复位响应期间,“启动”和“停止”(见下面)状态被忽略。图2-1芯片复位及复位响应的时序关系2)命令模式:复位响应之后,芯片等待着命令。每条命令都以一个“启动状态”开始。整个命令包括三个字节(命令含义后面解释)。随后紧跟着一个附加脉冲并用一个“停止状态”来结束操作。图3-2为命令模式时序关系。启动状态:在CLK为H状态期间,I/O线的下降沿为启动状态。停止状态:在CLK为H状态期间,I/O线的上升沿为停止状态。在接受一个命令之后,有两种可能的模式:输出数据模式(即读数据模式)和处理数据模式。图2-2命令模式的时序关系3) 输
18、出数据模式:这种模式是将IC卡芯片中的数据传送给外部接口设备的一种操作。图3-3为输出数据模式的时序关系。在第一个CLK脉冲的下降沿之后,I/O线上的第一位数据变为有效。随后每增加一个时钟脉冲,芯片内部的一位数据被送到I/O线上。其输出的顺序是从每个字节的最低位开始。当所需要的最后一个数据送出以后,需要再附加一个时钟脉冲来把I/O线置成H状态,以便准备接受新的命令。在输出数据期间,任何“启动状态”和“停止状态”均被屏蔽掉。图2-3输出数据模式的时序关系4) 处理数据模式:这种模式是对IC卡芯片做内部处理。图3-4为处理数据模式的时序关系。芯片在第一个时钟脉冲的下降沿将I/O从H状态拉为L状态并
19、开始处理。此后芯片在内部连续计时计数,直到第N个时钟脉冲之后的附加时钟脉冲的下降沿I/O线被再次置高,完成芯片的处理过程。在整个处理过程中I/O线被锁定成低状态。图2-4处理数据模式的时序关系第3章 硬件电路设计所设计的读写器以8051单片机为核心,配以IC卡接口电路、串行通信电路、存储电路、掉电检测电路、键盘显示电路等部分。通过读写器插槽与IC卡芯片通信,由51单片机控制数据传输过程,实现读卡和写卡操作。图4-1为系统的总体框图。51单片机IC卡芯片串行通信电路掉电检测键盘液晶显示存储模块图3-1 总体框图IC卡接口设备的种类很多,功能上由于不同的应用需要,差别也很大,但就其对卡 (以接触式
20、卡为例)的操作功能来说,都应具备以下几个基本功能:l IC卡的插入/退出的识别与控制(接触式卡):IC卡进/出RF区的识别和控制(非接触式卡)。l 向IC卡提供其所需的稳定的电源与时钟信号。l 实现与卡的数据交换,并提供相应的控制信号。l 对于加密数据系统,应提供相应的加密解密处理及密钥管理机制。l 提供相应的外部控制信息及其它设备的信息交换。很多读写设备除了对卡的基本操作外,还设计了其他一些重要功能:l 必要的控制界面和显示界面。l 提供数据通讯接口与上位机进行数据通讯。l 网络控制功能,实现远程适时控3.1 单片机系统电路AT89C51单片机是该系统的核心器件,其控制着所有的外围电路,并及
21、时响应外部请求。整个系统电路设计如下:(1)按键S17,电容C8,电阻R13构成单片机的人工复位装置;两个30pF的电容,12M的晶振构成单片机的振荡电路。(2)矩阵式键盘由P1口来控制,P1.0,P1.1,P1.2,P1.3接行线,P1.4、P1.5、P1.6、P1.7接列线。单片机对键盘进行行列扫描读取键值。(3)数码管显示电路由P2口控制,单片机对数码管进行动态扫描。P2.0与P2.1口通过一串入并出的74LS164与所有LED的a,b,c,d,e,f,g,sp引线相连,P2口接LED的控制端,单片机通过P3口控制各LED是否点亮。(4)P0口设计为与IC卡卡座的接口,AT89C51单片
22、机通过IC卡座完成单片机与IC卡的连接。 图3.1 AT89C51最小系统3.2 接触式IC卡的接口电路IC卡的接口电路是连接IC卡与读写设备的通路,由它实现对IC卡的供电,并满足不带电插拔的要求。IC卡接口设备中的IC卡供电电路应是一个相对独立于其他回路,并提供完善的过流保护措施的稳压电路,这是由于IC卡接口设备是一个独立于IC卡的设备,当有卡插入时,接口设备便开始向IC卡提供其所需的电力。如果插入的是一张电源与地击穿的坏卡,或是一个金属片之类的物质,就会造成供电回路的短路现象,若IC卡接口设备中无过流保护回路,就会干扰整个设备的正常工作。为了提高IC卡操作的可靠性,必须有上下电控制电路、卡
23、插入检测电路、卡短路检测电路。下图4-2所示是IC卡接口电路。图3-2 IC卡接口电R2、VD1、VT1组成卡上下电电路。当8051的P1.6=0时,VT1导通,IC卡的VCC得电;当8051的P1.6=1时,VT1截止,IC卡的VCC失电。如果插入的是一张电源与地击穿的坏卡,或是一个金属片之类的物质,就会造成回路的短路现象。IC卡的VCC同时经VD2送至CPU的P1.5,检测有无卡电源短路现象,以防人为破环。IC卡的控制与读写是IC卡接口设备中的核心操作部分,各种IC卡的实际操作有较大的不同,(ISO-7816标准只定义了一个最小操作,因而符合这一标准的卡亦不能保证其他操作的一致性),这里先
24、选择其中较具共性的部分介绍,后面会针对SLE4442芯片的具体操作做详细说明。1)IC卡的插入/退出识别与上电/下电控制技术IC卡的插入与退出的识别是通过IC卡接口电路来识别的,如果卡己插入到正确位置,且卡是合法卡,则置P1.1为0,VT2导通,图4-6中的LED点亮。若卡是非法卡,卡电源短路,低电平送至P1.5,则P1.0为0,VT3导通,图4-7中的报警电路报警。为了确保IC卡已准确地插到位置,插入的识别过程必须加入消颤处理。IC卡插入识别程序如下所示:RE_ DETECT:SETB IC_SWMOV C,IC_SW ;输出高电平至检测端JNC RE_ DETECT ;无卡插入,等待LCA
25、LL DELAY_5MS ;延时5msMOV C,IC_SWJNC RE_DETECT ;再次判断,若无卡输入等待RET ;有卡插入,进行处理IC卡的供电控制是一个直接涉及是否能安全可靠地操作IC卡的过程。它必须严格遵循ISO7816-3所规定的操作顺序,否则就有可能对IC卡带来永久的损坏。ISO7816-3标准规定的操作顺序如下:IC卡的激活(上电过程): RST处于L状态 VCC供电 接口设备处于接收方式 Vpp上升为空闲状态 CLK由相应稳定的时钟提供IC卡的去激活过程(下电过程):RST为状态LCLK为状态LVpp不起作用I/O为状态AVCC关闭由于IC卡技术的进步,现在的IC卡事实上
26、都己使用卡内自带升压电路,因此Vpp控制已逐渐失去具体含义。下面是上下电程序控制过程:POWERON: ;上电控制LCALL RE_DETECT ;识别是否有卡插入CLR RST ;使RST=LCLR CLK ;使CLK二LLCALL DELAY_500us ;延迟0.5ms,使端口逻辑信号稳定CLR POWER ;给卡供电SETB D_OUT ;使I/O端口为高电平,准备接受数据RETPOWER_OFF: ;下电控制CLR RST ;使RST=LCLR CLK ;使CLK=LCLR D_OUT ;使I/O=L LCALL DELAY_500us ;延时0.5ms,使端口逻辑信号稳定 SETB
27、 POWER ;给卡下电RET2)IC卡的读写技术不同类型的IC卡其读写方式或数据协议方式是不同的,ISO7816标准对异步型IC卡的读写协议做了较充分的定义,而对于同步型IC卡,则只定义了其复位响应过程的协议标准,这使得各厂家设计的同步型IC卡的读写方式不尽相同,而且同步型IC卡接口协议是面向操作而进行的,因此,其操作协议方式也各不相同。但许多厂家生产的IC卡都以ISO7816同步复位响应协议作为IC卡的数据读协议。大多数符合ISO7816标准的同步型IC卡的地址计数器是与时钟紧密相关的,当卡复位时,地址计数器置0。以后每向卡发一个节拍的时钟,都将使IC卡的地址计数器加“1”,这一时钟频率上
28、限为50kHz或280kHz。复位之后的头32个时钟周期内,是卡的复位响应过程,该过程中,厂家的产品编码以位编码方式逐一在数据线上送出,以后的字段则根据厂家及用户所定义的含义不同而各不相同。若某字段定义为可读的,则可将时钟运行到该字段上,然后再逐时钟读出。数据的读出过程可分为三个基本过程:复位,数据字段的定位和数据读出。3.2 串行通信电路由于PC机的串口电压为±12V,而单片机的工作电压为5V,所以需要MAX接口芯片实现TTL与RS232电平转换,采用简单的3线制通信方式。图4-3为串行通信电路。图3-3 串行通信电路3.3 键盘电路由于需要16个按键,采用并行接口的键盘电路至少需
29、要4+4=8条I/O线,而串行接口的键盘电路只需要3条I/O口线,一条用作键盘行线,一条串行移位输出列扫描信号,另一条用作移位寄存器74LS164的移位时钟脉冲信号线。16个按键构成了读写系统的键盘电路部分。图4-8为键盘与单片机的接口电路。图3-4 8051与键盘接口电路图中,P2.2为行线,接有上拉电阻 R=5V/1 mA=5k。 因而选用5.1K的电阻,上拉电阻保证了没有键输入时,I/O口线上有确定的高电平输入。由P2.3端输出列扫描信号,通过移位寄存器74LS164输出端QAQH接至键盘作为键盘列线。扫描信号通过74LS164移位,实现逐列置低电平,达到扫描各键的目的。3.4 显示电路
30、应用系统中常用的显示器有:发光二极管显示器,简称LED;液晶显示器,简称LCD;荧光显示器。本文采用LCD,所以只对LCD进行介绍。LCD是一种极低功耗显示器,目前,高分辨率的LCD点阵式显示器有显示灵活,显示图型字符美观等优点,在很多系统中应用非常广泛。显示设计使用现有的液晶显示功能模块SMG12232B-2,该模块能提供122*22的分辨率,带中文字库,更重要的是它可以有并行和串行两种输入方式,接口方便,这样我们可以使用单片机的异步通讯口驱动显示模块,软硬件实现都非常简单,外围电路非常简洁。图4-9是单片机与显示器的接口电路。图3-5 显示器与单片机接口电路第4章 软件系统设计本章主要介绍
31、接触式IC卡读写器的程序设计。本设计的所有程序用C51语言编写,由主程序和子程序组成。其中子程序包括比较校验数据子程序、插卡子程序、显示中断子程序。4.1 主程序主程序主要完成初始化并检测系统的状态,如果是刚上电状态,则恢复掉电瞬间保存的数据。主程序的流程图如图5-1所示。主程序如下:#include< at8051.h> /头文件#define uint unsigned int#define uchar unsigned char#define addrl 0x40uint data consl; /全局变量定义uchar data cons22=0,0;main ( ) uc
32、har data *p; /指针定义if(consl=0) /判断是否刚上电状态 p=cons2;Read24c02(p,addrl,2); /从24c02中读出掉电时保存的数据consl=OxOOOF; /修改标志位ITO=1; /外部中断0下降沿触发EXO=1; /外部中断0开中断EA=1; /CPU开中断IDL=1; /设置节电工作方式do while(1);开始初始化待机是否有卡插入 N Y密码效验 有无按键 N Y执行相应功能显示图4-1主程序流程图4.2 键盘扫描子程序16个按键的键盘电路分别为:数字键09及小数点“.”,可以设定用户信息及余额;此外还有5个功能键,分别为:(1)
33、修改/确认键,用来控制信息的改写及确认;(2) 账号显示键,用来控制用户账号信息的显示;(3) 余额/总数显示键,用来控制余额或总数的显示;(4) 计数开始/停止键,用来控制计数系统的计数;(5) 备用键;(6) 备用键。此读写系统中,键盘采用编程扫描方式。所谓编程扫描就是CPU对键盘的扫描采取程序控制方式,一旦进入键盘扫描状态则反复地扫描键盘,等待用户从键盘上输入命令或数据。而在执行键入命令或处理键入数据的过程中,CPU不再响应键入要求,直到CPU返回重新扫描键盘为止。键盘扫描子程序流程图如图5-3所示。图中可见,键盘扫描子程序要完成以下的功能:1) 判断键盘上有无键按下。其方法为P2.3口
34、连续16次全输出为“0”电平时,读P2.2口行线电平状态,若行电平全为“1”电平,则键盘无键按下,若不为“1”电平,则有键按下。2) 取出键抖动及重键的影响。在键盘电路中,按键按下闭合后,将产生一个一个负的矩形脉冲。但由于在按动按键时总有一些抖动,因此在负脉冲的开始和末尾部位总要出现一些毛齿波,毛齿波的长短与开关的机械特性有关,一般为510ms。除了抖动之外还有重键,即一个键按下后紧接着由按下另一键,或者两个键同时按下。这些需要采取一定的措施加以消除。本系统采用软件延时的方法来解决。通过延时来等待信号稳定,在信号稳定后查询键码。其过程是在查询到有按键按下后延时一段时间,一般为10ms。再查询一
35、次看是否有键按下。若这次查询不到,则说明前一次查询结果为干扰或抖动,若这次查询到有键按下,则说明信号已经稳定,然后判断闭合按键的键码。当闭合按键地键码确定之后,再去查询按键是否释放,待按键释放后再进行处理,这样既可消除释放抖动的干扰。对于重键则以后一次查询为最后结果。3) 扫描键盘,得到按下的键的键值。方法是P2.3口连续16次输出“1”电平,然后输出一次“0”电平,同时进行计数为00H,若P2.2口仍为“1”电平,则继续连续输出“1”电平进行移位,并同时计数,直到P2.2口输入的电平为“0”电平,表明此时的键即为按下的键,对应的计数值即为键值,然后调用对应的键处理子程序。键值与键号的对应关系
36、如表5-1所示。4) 表4-1 键值与键号对应表键值00H01H02H03H04H05H键号012345键值06H07H08H09H0AH键号6789.键值0BH0CH0DH键号修改/确认账号显示余额/总数键值0EH0FH10H键号开始/停止备用备用开始调用键盘程序判断是否按键数字功能返回图4-2 键盘扫描流程图4.3 显示子程序读卡器在运行过程中,对用户的信息进行不断改变,并写入EEPROM中。当用户需要查询IC卡的运行状态时,只需按动显示按钮,即可显示用户的帐号信息、帐号余额、计数值等信息。流程图如图5-4所示。开始LCD初始化清屏从缓冲区中显示用户信息显示用户信息返回图4-3 显示子程序
37、流程图总结在了解研究8051单片机的结构特点及其相关的设计实例后,本次设计充分利用其相关的功能,开发设计了IC卡读写器。另外,在软件设计过程中,主要程序代码使用C编写,大大加快了开发进程与后期的可维护性提升。设计主要完成了以下工作:1.深入了解了8051单片机的性能特点、开发工具和应用领域2. 使用PROTEL软件绘制完成了系统完整的电路图,实现了基于51单片机的IC卡读写器的设计。3.以C语言为主,完成了相应的软件设计,达到了预期的效果。4.最终完成了基于51单片机的IC卡读写器的设计:以51单片机为核心,结合AT24C02作为外部存储器,存放关键信息,液晶SMG12232B-2作为显示系统
38、。实现了IC卡与单片机的通信,有51单片机控制数据传输过程,实现读卡和写卡操作。参考文献1于宏军,赵东艳.智能卡技术全书.北京:电子工业出版社,19962王爱英.智能卡技术.北京:清华大学出版社,20003彭为,黄科,雷道仲.单片机典型系统设计实例精讲. 北京:电子工业出版社,2006.54段丽斌.智能卡技术应用北京.电子工业出版社,19955陆永宁.IC卡应用系统.南京:东南大学出版社,20006沈红卫.单片机应用系统设计实例与分析.北京:北京航空航天大学出版社,2003.17王卓人,邓晋钧,刘宗祥.IC卡的技术与应用.北京:电子工业出版社,19998何立民.单片机高级教程.北京:北京航空航
39、天大学出版社,2000.89李华.MCS-51系列单片机实用接口技术北京:北京航空航天大学出版社,1993.810吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用.北京:清华大学出版社,2002.911李光飞,楼然苗,胡佳文,谢象佐.单片机课程设计实例指导. 北京:北京航空航天大学出版社,200411姜志海,刘连鑫.单片微型计算机原理及应用.北京:机械工业出版社,2007.112张洪润,刘秀英,张亚凡.单片机应用设计200例. 北京:北京航空航天大学出版社2006.7总程序图附录主程序:#include <reg52.h>#include "lcd.h"#inc
40、lude "keyboard.h"#include "SLE4442.H"#define uchar unsigned char#define uint unsigned int#define com_read 0x91 /读卡#define com_add 0x92 /充值#define com_dec 0x93 /扣钱#define change_psw 0x95 /修改密码#define change_id 0x96 /修改卡号#define FLAG_RD_OK0x97/上传的数据,表示读卡完毕#define FLAG_WR_OK0x98/上传的
41、数据,表示写卡完毕#define FLAG_RD_ER0x99/上传的数据,表示读卡错误#define FLAG_WR_ER0xa0/上传的数据,表示写卡错误#define FLAG_NO_MONEY 0xa1/卡上金额不足#define FLAG_FULL_MONEY 0xa2/卡上金额过多#define FLAG_PSW_ER 0xa3/密码错误#define FLAG_CARD_LOCK0xa4/卡已锁死#define FLAG_CARD_ER0xa5/卡无效 #define addr_money 0x0f /金额 0f10#define addr_mon_h 0x0f /钱的高位地址#
42、define addr_mon_l 0x10uchar Card_num="ID: "uchar Money_num="MONEY: . "uchar money=0;uchar keynum=0xff;sbit IsCard=P32;sbit BEE =P34;sbit LED =P33;/延时10msvoid delay()unsigned char i,j,k; for(i=5;i>0;i-) for(j=4;j>0;j-) for(k=248;k>0;k-);void delay_ms(unsigned int ms)unsig
43、ned char i = 0;unsigned int j = 0;for(; j<ms; j+)for(i=0; i<125; i+)void reckey(int i,char *int_buf)char num;int x;if(x<i)num=key_switch(); /扫描键盘if(num!=0xff) /如果扫描是按键有效值则进行处理 *int_buf=num; int_buf+; LCD_Wr_Char(x,0,num);x+;void main()uchar rec20=0;uchar Write_buf4;uchar input_buf4;uchar i;
44、uchar cardid8=0,6,1,1,0,0,2,1;uchar psw3 = 0xff,0xff,0xff;LCD_Init(); /初始化LCDET0=1;EA=1; LED=1;LCD_Clear_ALL();Print (1,0,"wlcome!Please");Print (3,1,"insert card");while(1) if(IsCard=0) delay(); if(IsCard=0)LED=0;ResetCard(); if(1=checkpsw(psw)/读成功返加1,失败返回0read_cm(32,8,rec);Card
45、_num3=(rec0&0x0f) + '0'Card_num4=(rec1&0x0f) + '0' Card_num5=(rec2&0x0f) + '0'Card_num6=(rec3&0x0f) + '0'Card_num7=(rec4&0x0f) + '0'Card_num8=(rec5&0x0f) + '0'Card_num9=(rec6&0x0f) + '0'Card_num10=(rec7&0x0f) + &
46、#39;0'Print(0,0,"");Print(0,0,Card_num);read_cm(addr_money,2,rec); /读取金额money=rec0*256+rec1;Money_num6=(money/10000)%10)+'0'Money_num7=(money/1000)%10)+'0'Money_num8=(money/100)%10)+'0'Money_num9=(money/10)%10)+'0'Money_num11=(money%10)+'0'Print(
47、0,1,"");Print (0,1,Money_num);else LCD_Clear_ALL();Print (0,0,"Read error");while(IsCard=0)LED=LED;delay();delay();delay();delay();delay();delay();keynum=key_switch(); /读取键盘if(keynum!=0xff)if (keynum=12)reckey(2,input_buf);money+=(input_buf0*256+input_buf1);Write_buf0=money/256;Write_buf1=money%256;if( checkpsw(psw) = 1 ) /如果密码正确,就直接写入数据for(i=0; i<=1; i+) write_cm(32+i, input_bufi);/从32开始 写入8个字节 delay_ms(5);BreakOperate();/IIC ST
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 售后服务方案5篇-售后服务方案
- 水产品供应链成本控制与效率提升考核试卷
- 塑料制品在能源行业中的应用与发展考核试卷
- 水利工程的排水与治理考核试卷
- 医药制造业的溶出度试验方法选择考核试卷
- 培养学生的社会适应能力考核试卷
- 新员工职业规划培训总结
- 医院新入职员工培训
- 淮阴工学院《机械设计》2022-2023学年第一学期期末试卷
- 弃泡沫塑料再生装置相关行业投资方案范本
- DL∕T 5210.6-2019 电力建设施工质量验收规程 第6部分:调整试验
- 一例登革热合并凝血功能障碍患者的个案护理20190-7
- 门诊病历书写模板全
- 电源车操作手册操作手册
- 神奇的大脑PPT课件
- 万科新建房地产项目成本测算表格全套
- 重回汉唐策划
- PCBA撞件不良责任判定原则
- 中俄文运输合同
- 医疗机构环境表面清洁与消毒管理规范试题及答案
- 管理类档案基本归档范围及保管期限表
评论
0/150
提交评论