收藏 分销(赏)

毕业设计(论文)-食堂订餐IC卡设计.doc

上传人:可**** 文档编号:2038584 上传时间:2024-05-13 格式:DOC 页数:40 大小:264.50KB 下载积分:10 金币
下载 相关 举报
毕业设计(论文)-食堂订餐IC卡设计.doc_第1页
第1页 / 共40页
毕业设计(论文)-食堂订餐IC卡设计.doc_第2页
第2页 / 共40页


点击查看更多>>
资源描述
毕业设计(论文) (食堂订餐IC卡设计) 学历层次: 教学系名称: 专业名称: 学生姓名: 指导教师: 摘要 食堂订餐IC卡设计 摘要 本文设计了一个接触式食堂IC卡读写器。所设计的读写器以8051单片机为核心,配以IC卡接口电路、串行通信电路、存储电路、掉电检测电路、键盘显示电路等部分。通过读写器插槽与IC卡芯片通信,由51单片机控制数据传输过程,实现读卡和写卡操作。 论文从IC卡的国际标准入手,介绍了实现IC卡数据存储的控制方法,并以西门子公司的SLE4442型逻辑加密卡为基础,详细分析了单片机控制IC卡数据读写的软/硬件实现。在读写器的人机界面(包括显示和键盘)的设计中,设计了一种适合本设备的技术方案。 关键词:IC卡、SLE4442芯片、读写系统 目 录 摘要 I 目 录 II 第一章 绪 论 - 1 - 1.1 IC卡的发展和使用应用情况 - 1 - 1.1.1 IC卡在国内的使用情况和发展前景 - 1 - 1.2 IC卡应用技术 - 2 - 1.2.1 IC卡的应用范围 - 2 - 1.3 IC卡读写器市场流行产品介绍和性能分析 - 3 - 1.4 课题中IC卡读写器的设计目标 - 4 - 第二章 IC卡国际标准和设计要求 - 6 - 2.1 ISO7816-1,接触式集成电路卡的物理特性 - 6 - 2.2 ISO7816-2,接触式集成电路卡的触点尺寸和位置 - 6 - 2.3 ISO7816-3中规定的各触点电压和电流值 - 7 - 第三章 单元电路方案选择 - 10 - 3.1 IC卡芯片选择 - 10 - 3.1.1 芯片特点 - 10 - 3.1.2 SLE4442芯片传送协议 - 11 - 3.1.3 芯片的操作命令 - 11 - 3.2 存储芯片的选择 - 12 - 3.3 串口通信电路 - 13 - 3.4 键盘电路选择 - 13 - 第四章 硬件电路设计 - 14 - 4.1 接触式IC卡的接口电路和一般控制 - 14 - 4.2 掉电检测电路 - 15 - 4.3 工作状态提示电路 - 16 - 4.4 显示电路 - 16 - 第五章 系统软件设计 - 18 - 5.1 主程序 - 18 - 5.2 插卡子程序 - 19 - 5.3 系统调试 - 20 - 5.3.1硬件调试 - 20 - 5.3.2软件调试 - 20 - 5.3.3程序 - 20 - 5.3.4结论 - 30 - 总结 - 31 - 致谢 - 32 - 参考文献 - 33 - III 目录 食堂订餐IC卡设计 第一章 绪 论 本章介绍了IC卡的发展历史和应用情况,说明了现代IC卡技术的基础知识,最后分析了目前常见的IC卡读写器终端,并提出了本课题中IC卡读写器的设计目标。 1.1 IC卡的发展和使用应用情况 卡片是作为个人身份识别的手段而引进的,而作为交易凭证的卡片则早在19世纪80年代就萌芽于英国了,1950年,美国商人设计了第一张现代的塑料信用卡,1951年美国富兰克林银行作为金融机构率先发行了信用卡,到60年代中期,人们在塑料金融交易卡的背面贴上磁条,发展成为能够自动读取信息进行在线处理的磁卡,磁卡因为结构简单,价格低廉,得到迅速推广。 IC卡是近年从欧洲开始出现的,IC卡具有突出的3S特点,即Standard(国际标准化)、Smart(灵巧智能化)、和Security(安全性)。因而发展迅速,在金融、通讯、交通等众多领域中后来居上,即使那些磁卡已经普及应用的范围也将被取而代之。IC卡不仅改变了现有多种卡的使用方法和功能作用,还不断开创出新的应用领域。将IC卡和其他设备组成系统就能提供非常丰富的服务功能,把这些功能与生产或流通领域有机地结合起来,将出现令人意想不到的奇迹,创造出巨大的经济和社会效益。随着信息技术的发展,IC卡作为一种先进的信息存储介质,它的应用己经渗透到各国的经济、社会生活、军事等各个方面,将来更有着广阔的发展空间。 1.1.1 IC卡在国内的使用情况和发展前景 在我国的一些领域,如电信、交通、医疗等部门,使用IC卡也已经很普遍,很多单位也已经使用IC卡来进行人员和财务管理。在金融上我国还基本上是使用磁卡,但是由于IC卡的诸多优点,在不久将来用IC卡取代磁卡已经是必然趋势。1993年7月我国电子工业部协同银行、邮电及有关部门提出了命名为“金卡”的专项工程,我国发展金卡的方针是“两卡并用,磁卡过渡,发展IC卡为主”。未来的发展趋势必将是IC卡逐步取代磁卡。专家们预测在未来,金卡工程对电子产品、软件产业的需求,将提供1000亿元以上的市场,这对我国电子信息产业既是机遇也是挑战,更是巨大的推动力。目前正值中国IC卡行业大变革、大发展的时代,在当前经济形势下,研究开发IC卡的使用,无论是对于中国IC卡行业的长远发展,还是对IC卡行业在具体工作中的突破都具有积极的指导作用。 1.2 IC卡应用技术 IC卡比磁卡存储容量大,可靠性和安全性高,在应用上除了覆盖磁卡的全部应用范围以外,还提供了许多磁卡所不具备的应用特性。正是这些特性,使IC卡在脱机业务处理和联网数据一致性等方面表现出前所未有的优势。IC 卡虽然有很强的功能,但仅当IC卡加入到应用系统中,构成发行商、应用系统和持卡人之间的数据传输媒介时,才能有效地发挥其优势。一个好的IC卡应用系统,应具备良好的应用特性和性能价格比,还要有好的安全特性。 1.2.1 IC卡的应用范围 IC卡三大特点的结合,构成了IC卡应用的强大优势,它一方面降低了对网络的依赖程度,提高了相应速度;另一方面对发行商、应用商和持卡者三方面的利益提供了有效的保护手段,为IC卡的广泛应用铺平了道路。 IC卡应用范围相当广泛,这里仅根据现有的应用提供部分应用领域: l 应用于金融领域,可以作为信用卡、现金卡、证券卡或电子资金转账卡等。 l 可以作为身份证明卡使用,如身份证、驾驶执照、会员卡等。 l 在医疗、保健等领域,IC卡可以用于健康卡、少儿疫苗卡、就诊卡等. l 在商业及服务领域,可以用IC卡作为优惠卡、结算卡、服务卡等。 l 在交通领域,可以用IC卡取代公交或地铁月票,可以改变原有对月票的当月有效限制为有效次数限制。还可用于公路付费和停车付费等场合。 l IC卡电话卡,这是至目前为止IC卡用量最大的一种应用.用IC卡公用电话替代磁卡电话与投币电话即可杜绝欺诈行为,又可省去携带零钱所带来的麻烦。 l IC卡在门禁系统、设备使用等情形中,以钥匙卡的形式出现,使“锁”有了新的一个层次定义。 l IC卡还可集各种服务功能于一身,如企业的员工卡、校园“一卡通”等即属此类,持卡人可以用卡进行考勤、开门、就餐、借阅图书等。 1.3 IC卡读写器市场流行产品介绍和性能分析 l 通用型IC卡读写器 这类读写器又分为联机型和脱机型。联机型通用读写器一般只提供基本的IC卡读写功能,还带有RS232串口向上位机传输数据以及接收上位机的控制命令,有些机型还带有USB口。联机型通用读写器需要和上位控制微机一起使用。由于功能和结构都比较简单,一般采用单个8位通用的单片机就能实现,苏博泰克的S4650型微型读写器,上海泽宇的ZEYU923全功能IC卡读写机都是这类产品。北京握奇公司还专门设计了IC卡读写器专用芯片WATCHCORE用于制造读写器,他们生产的CRW-V系列外置式读写器更加小巧。 脱机型通用读写器需要脱离上位机独立工作,所以除了提供联机型读写器的功能外,还需要提供键盘和显示功能作为用户界面,为了用户界面的美观,现在读写器的显示很多都采用高分辨率的液晶显示器。这时如果只采用单个8位通用的单片机做控制,在响应用户输入和处理数据时实时性不好,速度会比较慢。一般的解决办法是采用性能更高的单片机或者使用双CPU来组成系统,不同的生产厂家选用不同方法设计了多款脱机型通用读写器。 生产通用性IC卡读写器产品的厂家同时还提供高级语言二次开发包,由用户根据需求自行开发应用系统。上海泽宇,苏博泰克等等公司都提供这类产品。通用型IC卡读写器使用比较灵活,价格相对比较便宜,但使用还需要进行二次开发,一般有开发能力的公司可以考虑选择这种读写器。 l 专用型IC卡读写器 这类读写器是根据特定应用要求设计的,它只能在某一个专用领域使用。除了提供基本的IC卡读写功能和数据传输功能外,一般还根据需要提供适当的键盘、显示人机接口,它同设计厂家提供的管理系统一起提供给用户,用户也可以根据需要向生产厂家定制。如珠海YD-2001车载收费机是专门为公交车收费设计的非接触式IC卡读写终端,提供乘客用卡、挂失和非法卡(黑名单卡)报警、用户界面、程序下载等功能,很适合公交车收费系统使用。这类产品是为某一功能专门设计的,使用方便,功能强大,但一般价格相对比较高,也只能应用于特定领域。 l 网络远程控制技术 使用嵌入式系统网络接口,IC卡读写器能够直接和Internet相连,用户只要通过互联网就可以远程控制读写器,实现实时控制。如苏博泰克的56760型收费机是一种专用非接触式IC卡读写器,根据使用的环境不同,可提供联网型和无线型两种。联网型采用RS485网或以太网,实现在线式工作。无线型既可以通过专用的GSM MODEM与服务器做实时的连接也可以通过连接手持式数据传递汇总机完成数据的非实时交换。可广泛应用于各类消费场所。 l 生物识别技术 把多媒体技术和IC卡数据存储技术联系在一起,使用指纹或声音识别用户,进一步方便了使用者,保证了系统安全。如苏博泰克的F4350/4360指纹IC卡读写器,具有指纹采集与IC卡读写的全部功能,支持多卡应用,内置PSAM卡接口,支持二次开发,提供多平台驱动程序,可将指纹信息写入符合IS07816标准的存储卡、CPU卡、符合ISO14443A的非接触卡中。并可通过该产品从卡内读取指纹信息。 1.4 课题中IC卡读写器的设计目标 读写器是IC卡应用系统的终端设备,只有通过读写设备才能和IC卡建立联系,读写IC卡中的数据;读写器一般还要求和信息网络中的上位机进行通讯,把IC卡中的数据融入到上层数据库。设计选择读写器是建立IC卡应用系统的关键。 本文是就设计IC卡读写器展开的,课题的设计目标是一种通用的接触式IC卡读写终端,要求读写器能够单独工作。 预期目标: l 实现用户信息的存储 l 通过键盘显示电路实现人机交互 l 实现卡的插入与退出识别 l 实现伪卡的识别 扩展目标: l 实现自动计数或计费 l 具有密码识别功能,密码3次错误,实现锁卡功能 - 17 - 第一章 绪 论 食堂订餐IC卡设计 第二章 IC卡国际标准和设计要求 接触式IC卡国际标准的总称为:识别卡-接触式集成电路卡;国际标准为ISO/IEC7816。包括以下部分: 第一部分:ISO7 816-1,物理特性 第二部分:ISO7 816-2,触点尺寸和位置 第三部分:ISO7 816-3,电信号和传输协议 2.1 ISO7816-1,接触式集成电路卡的物理特性 本标准制定的物理特性适合于ID-1型识别卡,其尺寸为85.6mm×53.98mm×0.76mm。 ISO7810(识别卡的物理特性)中为各种识别卡定义的物理特性适用于IC卡, ISO7813(作为金融交易卡的磁卡的格式即内容)中对金融交易卡定义的阻燃性和外形尺寸也适用于IC卡。此外,还提出了以下附加特性:防护紫外线的能力;X光照射的剂量;触点的表面轮廓;卡和触点的机械强度;触点电阻;磁条与集成电路之间的电磁干扰;指定强度磁场的影响;静电影响;热耗等。标准规定了上述各项测试的指标,并要求测试后的IC卡不应损坏或丧失功能。使用过程中卡的表而温度不应超过50摄氏度。 2.2 ISO7816-2,接触式集成电路卡的触点尺寸和位置 该协议规定了ID-1型集成电路卡各触点的尺寸、位置和功能。规定每个触点都应有一个不小于2.0mm×1.7mm的矩形表面区域,各触点间应互相隔离,但未规定触点的形状和最大尺寸。IC卡有8个触点,从C1到C8,触点可安排在卡的正面和反面。引脚配置如图2-1,触点的位置如下图2-2所示(以卡的接触面的左边和上边为基准线)。 图2-1引脚配置 图2-2 触点位置 相邻两个触点之间的最大间距为0.84mm。8个触点所占最大面积没有规定,但规定最小面积不小于9.62(宽)mm×9 .23 (高)m的矩形平面。 2.3 ISO7816-3中规定的各触点电压和电流值 先介绍ISO7816-3中规定的触点电压和电流值。在讨论每个触点的电特性之前,先将所用符号的意义叙述如下: 所有测量是相对GND(地)定义的。测量的环境温度在0摄氏度~50摄氏度范围内。流入卡中的电流被定义为正电流。当满足下列条件时,定义电路为不工作状态:触点相对于GND的电压保持在OV-0AV之间,且流向接口设备的电流小于1mA。另外根据给卡的电压不同而将卡的操作条件分成A,B两类,A类卡VCC上的电压为5V。 B类卡VCC上电压值为3V,一般情况下的我们多使用A类卡。 VCC触点:下表2-2是VCC触点电源电压值,本触点用来提供电源电压。 表2-2正常操作条件下VCC的电特性 符号 条件 最小值 最大值 单位 VCC A类 4.5 5.5 V B类 2.7 3.3 ICC A类,在最大允许频率 60 mA B类,在最大允许频率 50 时钟停止 0.5 I/O触点: I/O触点用于数据交换的输入(接收方式)或输出(发送方式)。有两种可能的状态:传号或高状态(Z状态),空号或低状态(A状态)。当卡和接收设备均处在接收方式时,I/O处于Z状态,也可被发送方规定为Z状态:A状态可由发送方规定。当卡与接口设备均处于不匹配的传输方式时,I/O端的逻辑状态可能是不确定的。在操作期间,卡与接口设备不能同时处于发送方式。 Vpp触点:在A类操作条件下卡内的非易失性存储器EEPROM编程或擦除时可以从Vpp端提供电源。Vpp有两种状态,空闲状态和激活状态。除编程和擦除外,均处于空闲状态。一般IC卡不从Vpp取得电压,而由卡内升压电路提供编程和擦除所需电压。在B类操作条件下,Vpp触点保留于将来使用。正常操作状态下Vpp的电特性如表2-4所示: 表2-4正常操作条件状态下Vpp的电特性 符号 条件 最小值 最大值 单位 VPP IPP 空闲状态 0.95×VCC 1.05×VCC 20 V mA VPP IPP 编程状态 0.975×P 1.025×P 1 V Ma 卡向接口设备提供P和I值(默认值:P=5,I=50) 电压上升或下降时间:200us(最大值),Vpp变化速率不超过2V/us.最大功率VPP×IPP在任意一秒时间内的平均值不超过主1.5W。 第三章 芯片介绍 食堂订餐IC卡设计 第三章 单元电路方案选择 本章主要介绍IC卡芯片的选择,及其IC卡的特点和协议,另外还有存储电路、串口通信电路、键盘电路与显示电路的选择。 3.1 IC卡芯片选择 IC卡是集成电路卡(IntegratedC ircuit Card)的简称,有些国家和地区称之为微芯片卡(Microchip card)或微电路卡(Microcircuit Card)。IC卡的大小和磁卡相同,它把集成电路镶在塑料卡片上,芯片一般是不易挥发性存储器(ROM, EPROM. EPROM),保护逻辑电路,甚至于CPU。本节介绍IC卡的一些基本知识,使读者对IC卡有一个大概的了解。由于本设计所采用的IC卡为接触型逻辑加密卡(SLE4442),所以本节的内容重点介绍此卡。 SLE4442是由德国西门子公司设计的逻辑加密存储卡。它具有2K位的存储容量和完全独立的可编程加密代码存储器。内部电压提升电路保证了芯片能够以单5V电压供电,较大的存储器容量能够满足应用领域的各种要求。是目前国内应用较多的一种IC卡芯片。 3.1.1 芯片特点 l 面向字节寻址; l 采用多存储器结构:主存储器、保护型存储器、加密存储器; l 线连接协议,触点和串行接口满足ISO7816同步传送协议; l 芯片采用NMOS工艺技术,每字节的擦除/写入编程时间为2.5ms; l 复位响应(ATR)符合ISO/IEC7816-3协议; l 存储器采用至少10 000次的擦除/写入周期,数据保持时间至少为10年; l 额外特性:数据仅能在正确输入24位可编程安全码(安全存储器)之后才能改变。 3.1.2 SLE4442芯片传送协议 传送协议是在接口设备IFD与IC卡的集成电路之间的两线连接协议,SLE4442芯片的协议类型为S=10(同步卡协议)。I/O线上数据变化只在CLK信号的下降沿才有效。 传送协议包括4种模式: l 复位和复位响应 l 命令模式 l 输出数据模式 l 处理模式 3.1.3 芯片的操作命令 命令的格式:每条命令包含三个字节,其顺序如下: MSB控制字 LSB MSB地址字 LSB MSB数据字 LSB B7 B6 B5 B4 B3 B2 B1 B0 A7 A6A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1D0 有关命令的说明: l 读主存储器:该命令是指读出主存储器的内容。该命令的控制字为(30H)。对于每个字节来说总是从最低位开始读出。从给定的字节地址(N)开始,直到整个存储器的末尾。在该命令输入以后,接口设备IFD必须提供足够的时钟脉冲。对于从地址(N)开始读数据所需要的时钟脉冲的数量M=(256-N)×8+1。对主存储器做读操作不受限制。 l 读保护存储器:该命令的控制字为(34H).在连续输入32个时钟脉冲情况下,芯片将保护存储器内各位内容传送到I/O线上。最后一个附加时钟将I/O线置为H状态。对保护存储器进行读取操作不受限制。 l 读加密存储器:该命令类似于读保护存储器那样,可以读出4个字节的加密存储器的内容。在输出数据模式下,所需时钟脉冲的数量为32。其后再附加一个时钟脉冲将I/O线置成高状态。如果可编程加密代码(PSC)的校验不成功(除第0字节可读除外),I/O线总保持低状态。 l 修改主存储器:该命令就是根据所传送地址字节数据,寻址主存储器的EEPROM字节,然后修改字节内容。该命令的控制字为(38H)。在处理模式期间,可能有几种情况: ——擦除和写入至少需要5ms ——只写入不擦除,至少需要2.5ms ——只擦除不写入,至少需要2.5ms l 修改加密存储器:该命令是根据所传送的字节数和要修改的数据,将加密存储器中相应字节的内容进行修改。该命令的控制字为(39H),该命令只能在可编程加密代码 (PSC)比较成功之后才能进行。该命令的执行时间和所需的时钟脉冲与修改主存储器的情况相同。 l 写保护存储器:这一命令的执行过程包括一个把被输入的数据与在EEPROM中对相应数据进行比较的过程。在确认一致的情况下,保护字位被写0。从而使得主存储器中的信息不可更改。如果数据比较结果不一致,则保护字位的写操作将被禁止。该命令所需时钟脉冲和执行时间与修改主存储器命令的情况相同。 3.2 存储芯片的选择 在此读写系统中,单片机必须扩展片外E²PROM用来存储关键信息。工程上常用的E²PROM的28系列的芯片具有编程简单、使用方便的特点,但是在此读写系统中其容量比实际要求的要大,若选用此系列的芯片不但能浪费绝大部分的存储单元,而且占用外部的存储空间,增加了译码线路,并且增加了线路板的面积。因此,本系统选用美国Microchip公司生产的AT24C02芯片,不但能最大限度地利用其容量,且不用地址译码,不占用外存空间。 l SCL:串行时钟输入线。数据发送或接收的时钟从该引脚输入。 l SDA:串行数据/地址线。用于传送地址和发送与接收数据,为双向传输。 l A0、A1、A2:器件地址输入端。 l WP:写保护端。WP=1为写保护,只能读出不能写入,WP=0时器件允许进行正常的读写操作。 3.3 串口通信电路 主要特点 l 单5V电源工作; l 两个驱动器及两个接收器; l ±30V输入电平; l 低电源电流:典型值是8mA; l 符合甚至优于ANSI标准 EIA/TIA-232-E及ITU推荐标准V.28; l ESD保护大于MIL-STD-883(方法3015)标准的2000V。 3.4 键盘电路选择 键盘电路的设计通常有两种方案。一种是并行接口键盘电路,另一种是串行接口键盘电路。在本设计中,根据IC卡读写器的输入需要,选择采用一个4×4的16按键矩阵式键盘接口,分别作为0~9的数字输入, 6个功能按键输入。 食堂订餐IC卡设计 第四章 硬件电路设计 所设计的读写器以8051单片机为核心,配以IC卡接口电路、串行通信电路、存储电路、掉电检测电路、键盘显示电路等部分。通过读写器插槽与IC卡芯片通信,由51单片机控制数据传输过程,实现读卡和写卡操作。图4-1为系统的总体框图。 IC卡接口设备的种类很多,功能上由于不同的应用需要,差别也很大,但就其对卡 (以接触式卡为例)的操作功能来说,都应具备以下几个基本功能: l IC卡的插入/退出的识别与控制(接触式卡):IC卡进/出RF区的识别和控制(非接触式卡)。 l 向IC卡提供其所需的稳定的电源与时钟信号。 l 实现与卡的数据交换,并提供相应的控制信号。 l 对于加密数据系统,应提供相应的加密解密处理及密钥管理机制。 l 提供相应的外部控制信息及其它设备的信息交换。 很多读写设备除了对卡的基本操作外,还设计了其他一些重要功能: l 必要的控制界面和显示界面。 l 提供数据通讯接口与上位机进行数据通讯。 l 网络控制功能,实现远程适时控制。 4.1 接触式IC卡的接口电路和一般控制 IC卡的接口电路是连接IC卡与读写设备的通路,由它实现对IC卡的供电,并满足不带电插拔的要求。 IC卡接口设备中的IC卡供电电路应是一个相对独立于其他回路,并提供完善的过流保护措施的稳压电路,这是由于IC卡接口设备是一个独立于IC卡的设备,当有卡插入时,接口设备便开始向IC卡提供其所需的电力。如果插入的是一张电源与地击穿的坏卡,或是一个金属片之类的物质,就会造成供电回路的短路现象,若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标准只定义了一个最小操作,因而符合这一标准的卡亦不能保证其他操作的一致性),这里先选择其中较具共性的部分介绍,后面会针对SLE4442芯片的具体操作做详细说明。 4.2 掉电检测电路 掉电检测电路由比较器(运放LM393)、电压基准LM336(2.5V)、R8、R9、R10、R11、R12、R13和二极管VD3组成,电路如图4-5所示。 图4-5 掉电检测电路 R8为LM336提供合适的工作电流,LM336上端作为电压基准,R9、R11对5V电压分压,与VZ 做比较。电源电压正常时,V–<V+,比较器输出高电平;当电源掉电时,V–跟随电源电压下降,而VZ 在一定时间内保持2.5V不变。 4.3 工作状态提示电路 若插入系统的IC卡是可操作卡,读写系统能进行正常的读写,则图4-6中的L1指示灯点亮。若插入系统的是废卡、非法卡,或者系统不能正常读写,则图4-7中的蜂鸣器报警,增加系统的使用性。 图4-6 工作指示电路 图4-7 报警电路 4.4 显示电路 l LED显示器 LED显示块由发光二极管显示字段组成,有7段和“米”字段之分,显示块有共阳极和共阴极两种。把每个显示字段对应于一个二进制位,这些二进制位组成字型编码,这样不同的显示字符就对应于不同的字型码,显示字符时,在显示I/O驱动线输出相应的字型码,就可以显示不同的字符。N位LED显示器需要N片LED显示块拼接。 l 液晶显示器LCD LCD是一种极低功耗显示器,目前,高分辨率的LCD点阵式显示器有显示灵活,显示图型字符美观等优点,在很多系统中应用非常广泛。 食堂订餐IC卡设计 - 29 - 第五章 系统软件设计 本章主要介绍接触式IC卡读写器的程序设计。本设计的所有程序用C51语言编写,由主程序和子程序组成。其中子程序包括比较校验数据子程序、插卡子程序、显示中断子程序。 5.1 主程序 主程序主要完成初始化并检测系统的状态,如果是刚上电状态,则恢复掉电瞬间保存的数据。主程序的流程图如图5-1所示。 主程序如下: 5.2 插卡子程序 当系统检测到有卡插入时,这时进入插卡子程序。在单片机的控制下给IC 卡供电,并且指示灯亮。然后判断插入的卡是否短路,如果短路则给IC卡下电。单片机从卡中读出卡标识,判断是用户卡是否合法,并调跳到相应的子程序。插卡子程序流程图如图5-2所示。 图5-2 插卡子程序流程图 当单片机系统检测到插入的卡是合法的用户卡,单片机进入读写子程序。单片机分别从EEPROM和IC卡中读出IC卡的卡号,两者加以比较来判断是否为本功能所对应的卡。比较通过后,然后进行密码校验。如果密码正确,则允许进行读写操作。 5.3 系统调试 根据系统设计方案,本系统的调试共分为三大部分:硬件调试。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:LED显示模块的调试等,最后将各模块组合后进行整体测试。 5.3.1硬件调试 对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。 5.3.2软件调试 Keil C51是美国 Keil Software公司出品的51系列兼容单片机 C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。在开发大型软件时更能体现高级语言的优势,包括C编辑器。宏汇编器,连接/定位器,目标代码到HEX的转换器。 5.3.3程序 #include"reg51.h" #include"SLE4442.H" #include"LCD12232.h " #define uchar unsigned char #define uint unsigned int #define THO_int 0xff #define TL0_int 0x21 #define TMOD_int 0x01 #define TCON_int 0x10 #define Key_pin P2;//4*4键盘接在P2口 sbit BUZ=P1^1;//蜂鸣器 uint cont_10ms; uint cont_25ms; uchar CZ_BUF[5]; uchar input_buf[4];//存储输入数据 uchar input_cont;//输入次数 uchar balance[4];//从读卡器读取所用的中间变量 uint CZ_data;//金额 uchar password[3];//密码 uchar xdata buff[20]; uchar Rx_delay; uchar dsp_buf[10];//需要显示的数字,余额 uchar beef_delay;// 蜂鸣器延时 uchar beef_cont;// 蜂鸣器计数 //LCD12232驱动程序 sbit SCLK=P3^5; sbit SID= P3^6; sbit CS= P3^7; sbit SID2=P1^5; sbit CS2=P1^4; sbit SCLK2=P1^6; char code LCD_TAP[10]={"0123456789"}; void delay_12232(void) { uchar i; for(i=0;i<100;i++)nop_(); } void ser_in(char sen_data) { char i; delay_12232(); for(i=0;i<8;i++) { if ((sen_data&0x80)==0x80) SID=1; else SID=0; SCLK=1; nop_(); nop_(); nop_(); nop_(); nop_(); nop_(); nop_(); nop_(); nop_(); SCLK=0; nop_(); nop_(); nop_(); nop_(); nop_(); nop_(); nop_(); nop_(); nop_(); sen_data=sen_data<<1; } } //SLE4442驱动程序 #include"SLE4442.H" #include <stdio.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int void Delay5us(void) { uchar i; for(i=0;i<40;i++)_nop_(); } void Delay10us(void) { uchar i; for(i=0;i<100;i++)_nop_(); } void StartComm(void) { IC_CLK = 0; IC_DATA = 1; Delay5us(); IC_CLK = 1; Delay5us(); IC_DATA = 0; Delay5us(); } void main(void) { if(beef_delay==0) { if(beef_en==1) { beef_en=0; //停止响蜂鸣器 beef_delay=100; //蜂鸣器间隔时间 } else { if(beef_cont&0x0f)//如果响蜂鸣次数还没有结束 { beef_cont--; beef_delay=100; //响蜂鸣时间 if(beef_cont&0x80) beef_delay=200; beef_en=1;//开启响蜂鸣器 { uchar i,j; uchar key_buf; //暂存键值变量 P2=0x0f; //让读键引脚P2.0-P2.3为高电平 old_key=new_key; //保存上次键值 new_key=P2&0x0f;//保存当前键值 if(old_key==new_key) //如果键状态没有发生变化, { if(key_cont<100) key_cont++; //消抖动计数器加1 if(key_cont==5) //消抖动成功,表示确实有键按下,或松键 { //以下进行循环扫描 for(i=0;i<4;i++) { P2=key_scan_tap[i]; //逐行扫描 if((P2&0x0f)!=new_key) //逐行判断 { key_buf=(key_scan_tap[i]&0xf0)|new_key;//得到键值 for(j=0;j<16;j++)//由键值查得内码 { if(key_code_tap[j]==key_buf)// 查内码 { key=j; beef_cont=1; key_out=1; //查得内码 40 j=17;} } i=4; } } } } else { key_cont=0; } } 5.3.4结论 本次毕业设计的食堂IC卡系统,从系统功能说明出发,对控制系统的组成结构,系统器件进行了分析。首先,在硬件设计部分给出了硬件电路设计图,并详细的介绍了各元器件的原理及功能特性,也对各功能部件与STC89C52单片机的连接进行了详细的介绍。其次在软件设计部分给出了系统的流程控制图,对各部分程序进行了分析说明。再次在编程与调试部分主要对开发Keil做了详细介绍。最后展示了调试结果。 食堂IC卡售饭系统,从功能上来说,应分为主机和从机两部分:主机设置在工作窗口,能够实现所有功能,而从机则设置在售饭消费窗口,只能实现基本功能。当然二者在实际工作时对于数据的处理还是存在差异的(扣费时若扣费金额小于卡内余额,从机应该报警,而主机不应该报警)。本次设计的IC卡系统从功能上讲属于主机的范畴,其中也包含了从机的一些功能。只要在程序上进行适当的修改,即可在主机和从机之间进行切换。 食堂订餐IC卡设计 总结 在了解研究8051单片机的结构特点及其相关的设计实例后,本次设计充分利用其相关的功能,开发设计了IC卡读写器。另外,在软件设计过程中,主要程序代码使用C编写,大大加快了开发进程与后期的可维护性提升。设计主要完成了以下工作: 1.深入了解了8051单片机的性能特点、开发工具和应用领域 2. 使用PROTEL软件绘制完成了系统完整的电路图,实现了基于51单片机的IC卡读写器的设计。 3.以C语言为主,完成了相应的软件设计,达到了预期的效果。 4.最终完成了基于51单片机的IC卡读写器的设计:以51单片机为核心,结合AT24C02作为外部
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服