基于射频卡的收费系统研究_第1页
基于射频卡的收费系统研究_第2页
基于射频卡的收费系统研究_第3页
基于射频卡的收费系统研究_第4页
基于射频卡的收费系统研究_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(设计)题 目: 基于射频卡的收费系统研究 学 院: 自动化工程学院 专 业: 电子信息科学与技术 班 级: 2006 级 1 班 姓 名: # 指导教师: # 2010 年 6 月 8 日The Research of a Fare System Based on RF Card青岛大学本科生毕业论文(设计)摘 要射频卡又叫做非接触式 IC 卡,成功地解决了无源(卡中无电源)和免接触这两个问题,是电子器件领域的一大突破。主要用于公交、地铁、轮渡等的自动收费系统,也应用在身份证明、门禁管理和电子钱包等。本设计为基于射频卡的收费系统研究,设计一套方便快捷的收费系统,该系统可广泛应用于各种收费场合,代替繁琐的人工收费,节约人力物力。设计的硬件部分主要包括单片机(STC89C52) 、射频卡读写模块,配合键盘输入、数码显示等几部分。其中,单片机主要起控制作用,以完成对射频卡读写模块的配置以及对按键的处理从而实现对射频卡的操作以及显示等控制;多功能数字键盘作为输入设备,使扣费方便快捷完成;显示部分通过 HD7279 控制数码管来实现。关键词 读卡器 ZLG522S Mifare1卡 STC89C52AbstractRadio Frequency card is also called non-contact IC card.It successfully resolved problem without source and contact. RF card is mainly used for charging system of bus、subway or the ferry. It is also used in access management, proof of identity and electronic purse. This design is research of a fare system based on RF card.The hardware design is mainly composed of stc89c52,reader,keyboard circuit,digital tube display circuit. Stc89c52 is the main control in order to finish reading modules for RF card to the configuration and the key of RF card with the operation and display control. Digital keyboard the input device, can be convenient for the input buckle expense. HD7279A controls digital tube to realize display section. Keywords reader ZLG522S Mifare one card STC89C52青岛大学本科生毕业论文(设计)青岛大学本科生毕业论文(设计)目 录前 言 .1第 1 章 概述 .21.1 论文背景 21.2 方案概述 2第 2 章 硬件组成描述 .52.1 Mifare1 卡简介 .52.1.1 主要指标 52.1.2 存储结构 62.2 ZLG522S 模块简介 .72.1.1 功能特点 72.1.2 技术参数 72.3 STC89C52 单片机简介 .82.4 HD7279A 简介 .102.4.1 特点 102.4.2 引脚说明 112.4.3 串行接口 11第 3 章 开发环境 KEIL 介绍 133.1 系统概述 133.2 keil 工程的建立 .14第 4 章 系统电路的设计及原理 .184.1 原理框图 184.2 各模块具体实现原理分析和说明 184.2.1 读写模块 184.2.2 按键模块 214.2.3 数码管显示模块 21第 5 章 软件实现 .245.1 读写模块通信设计 24青岛大学本科生毕业论文(设计)5.1.1 数据通信格式 245.1.2 应用命令详述 265.1.3 函数库的使用 275.2 射频扣费设计 295.3 键盘和显示功能 325.4 扣费记录存储 34总 结 .36谢 辞 .37参 考 文 献 .39青岛大学本科生毕业论文(设计)1前 言当今的信息技术又到了一个关键的十字路口。单独的 PC 甚至局域网的时代已为“全球化网络”时代所代替。互联网 INTERNET 的产生和今天的飞速发展和广泛渗透就是典范。非接触 IC 卡以其高度的信息集成化,高度的安全性,正在并已经融入到当今信息技术的主流,正日渐其辉煌和灿烂。随着金融行业的不断发展,社会经济的日新月异,特别是公共交通行业,无线通信领域,封闭式场所管理,卫生保健行业,身份识别,电话通信,大楼保安系统等等,人们已愈来愈多地开始接受和使用非接触 IC 卡。当今世界上非接触式 IC 射频卡中的主流是已经被制定为国际标准:ISO/IEC 14443 TYPE A 标准的 PHILIPS 公司的 MIFARE 技术。欧洲一些较大的IC 卡片制造商以及 IC 卡片读写器制造商大都以 MIFARE 技术为标准,而发展和推进 IC 卡行业。国外对 IC 卡的研究已有多年,但真正在非接触 IC 卡方面的研究仅有 12年的成熟期。非接触 IC 卡代表了整个“刷卡”领域的发展方向,前景光明,应用领域非常广泛,例如,门禁控制系统(Door Access System),停车场收费管理系统,高速公路不停车收费系统,地铁非接触 IC 卡的“刷卡”读写器,机关/企业内部考勤管理系统,公共交通收费管理系统,医疗保险管理系统,出租车收费管理系统,银行服务“一卡通”等等。目前,国内已有几家公司正在引进国外的先进技术,开发自己的射频识别系统。现在,在锦山的一条高速公路上已实现使用非接触射频卡自动收费,上海的公共汽车已经使用电子月票,北京的机场高速公路上、深圳的皇岗口岸等也使用了射频识别系统收费。本课题主要研究基于 ZLG522S 读写模块的卡识别、增值、扣费、卡挂失等功能的实现。青岛大学本科生毕业论文(设计)2第 1 章 概述1.1 论文背景射 频 卡 ( Radio Frquency Card,简 称 RF 卡 ) 又 叫 做 非 接 触 式 IC 卡 ,诞 生 于 90 年 代 初 , 是 一 种 以 无 线 方 式 传 送 数 据 的 集 成 电 路 卡 片 , 它 具 有 数据 处 理 及 安 全 认 证 功 能 等 特 有 的 优 点 。 射 频 卡 是 最 近 几 年 发 展 起 来 的 一 项新 技 术 , 它 成 功 地 将 射 频 识 技 术 和 IC 卡 技 术 结 合 起 来 , 解 决 了 无 源 ( 卡 中无 电 源 ) 和 免 接 触 这 两 个 问 题 , 是 电 子 器 件 领 域 的 一 大 突 破 。 它 存 在 着 磁卡 和 接 触 式 IC 卡 不 可 比 拟 的 优 点 , 所 以 一 经 问 世 , 便 立 即 引 起 广 泛 的 关 注 ,并 以 惊 人 的 速 度 得 到 推 广 和 应 用 。 1994 年 射 频 卡 ( RFID) 进 入 中 国 , 引 发 了 中 国 RFID 卡 的 应 用 革 命 ,在 国 内 , 其 应 用 领 域 越 来 越 广 , 涉 及 各 行 各 业 。 先 后 历 经 了 磁 卡 、 TM 卡、 接 触 式 IC 卡 、 非 接 触 式 ID 卡 、 非 接 触 式 可 读 写 IC 卡 。 其 中 为 了 适 应 小区 、 智 能 大 厦 的 防 范 系 统 要 求 , 门 禁 系 统 由 单 一 的 门 禁 功 能 发 展 到 门 禁 、 考勤 、 消 费 、 巡 更 、 三 表 抄 送 等 综 合 性 一 卡 通 系 统 ; 为 适 应 远 距 离 感 应 的 要 求, 国 内 出 现 了 有 源 卡 、 微 波 卡 远 距 离 感 应 系 统 。另外,RFID 技术在高速公路自动收费、会员制收费卡、员工就餐卡、商店收费、电话卡、储蓄卡等等中比较有发展前景。当然在这里仅仅罗列了 RFID技术应用的一部分,但都是可行的且十分重大。RFID 将是未来一个新的经济增长点。射频识别技术在中国处于一个刚刚起步的阶段,但是它的发展潜力是巨大的,它的前景非常诱人。在信息社会,对于各种信息的获取及处理要求快速、准确,在不久的将来 RFID 技术就将同其它识别技术一样深入和改善我们的生活。对于这样一个新技术,我们应该增强宣传力度,争取能够尽早普及它,利用它,提高我们的工作效率和经济效益。1.2 方案概述随着居民生活水平提高,居民在各项日常支出及支出种类上也相应增加。例如,某地居民日常需要缴纳水电费、煤气费、电话费、有线电视费;出行乘坐交通工具的费用;超市购物、就餐、自动售贩机以及各种商店的消费支出。支出项目众多,种类复杂,造成了很多不便与麻烦:青岛大学本科生毕业论文(设计)31、身上时常携带小额现金、硬币沉重不方便;有些消费场合收费数目较小但是却为此需要特别准备零钱以完成收费,比如乘坐公交车,时常是 1 元、2元的小额支出,没有零钱却难以乘坐,非常不方便;还有些场合如自动饮料售贩机可能只支持硬币,想喝杯饮料却因为没有硬币而扫兴而归时有发生。2、水电费、煤气费、电话费等缴纳可能需要在不同收费点完成缴费,居民为了缴齐各种费用要跑去很多地方,虽然也有银行代为办理,但是由于银行上班时间的限制,很多人无法抽空前去缴费,并且,排队缴纳人数众多,银行专用窗口少、人工收费效率低,居民常常需要等待很长时间,而且,占用银行窗口空间资源,许多银行都不愿做代收水电费等业务。ATM 机缴费方式虽然可以不受时间限制,但步骤也较为复杂,老年人难以操作。3、超市等地方收银需要大量现金交换、找零、刷卡也会占用相当一部分时间,在节假日购物人多的情况下,许多人难以忍受。为解决以上诸多不便,本设计提出一套基于射频卡的收费系统,他的特点是方便快捷,适用于多种应用场合,甚至可以将水电费、有线电视费、电话费等集成在一台收费机完成,省去跑各个收费点的不便,而且操作简单,整个过程只需刷卡或按 12 键完成,老年人也能轻松上手;充分解放钱包空间,出门只需携带一张射频卡即可完成大部分日常支出;由于其特性定位于小额支出,又加入了单笔最高限额,全天消费限额等设置,当超过这些限定需要输入密码。建立这样一个收费系统,首先有个发卡机构(如银行)它同时负责对金钱的管理,企业和个人向该机构申请账户,个人用户向申请的账户中存入若干钱。当用户在收费机上刷卡扣费,收费机根据收费项目将从用户卡中扣除的金额分类存储,卡发行机构最终会将扣费金额根据收费项目转入相应企业账户。该系统使用时,首先确定它的应用场合及收费类型。可以通过程序设定它为多应用场合还是单一应用场合,扣费又可以分为人工扣费和自动扣费,人工扣费下(如超市收银),收银员通过与控制器连接的键盘输入需要扣费的金额,扣费的金额在收费机的数码显示管上显示供顾客确认,确认无误后,顾客将卡至于扣费区,收费机根据金额在顾客的射频卡上减去相应金额。自动扣费下(如水电费等缴纳)消费者选择扣费项目,然后将卡置于刷卡有效范围,读写模块读取卡的序列号,该序列号相当于该卡的身份认证且其号码为全球唯一,控制器得到这个序列号后查询数据库相应收费条目,从卡中减去相应金额,并将数据库条目标记为已扣费,避免重复收取;如果是单一应用场合则直接刷卡扣费。该系统也可通过设定一个固定的金额以自动扣费,实现定额消费。青岛大学本科生毕业论文(设计)4当单笔扣费额或全天消费总额超过一定限度,收费机会提示输入密码,以免卡丢失情况下被拾到者不法利用,最大限度保证持卡人资金安全。图 1.1 即为基于射频卡收费系统的原理框图。系统的核心是单片机控制下的射频卡读写模块以及读写模块支持的射频卡(本系统采用 mifare1 s50 卡)。在硬件组成上采用了 STC89C52 单片机作为控制芯片,周立功 ZLG522S 模块完成射频卡的读写过程,键盘输入扣费项目或扣费金额,数码管用于显示扣费额以及各种提示信息, HD7279 智能驱动芯片同时驱动数码管显示和键盘,它能将显示信息以及按键输入进行处理,与控制器配合共同完成相应功能;用户持Mifare1 卡靠近读写模块驱动下的感应天线区,当进入刷卡有效范围即完成相应操作。单片机S T C 8 9 C 5 2数码管显示H D 7 2 7 94 * 4 键盘读写模块Z L G 5 2 2 SM i f a r e 1 卡射频场图 1.1 系统硬件框图青岛大学本科生毕业论文(设计)5第 2 章 硬件组成描述2.1 Mifare1 卡简介Mifare1 卡(简称 M1 卡)的卡片的电气部分是由一个天线和 ASIC 组成。其中,天线是只有几组绕线组成的线圈,很适合封装到 IS0 卡片中。卡片的 ASIC 由一个高速(106KB 波特率)的 RF 接口,一个控制单元和一个 8K 位 EEPROM 组成。射频卡的内部结构如图 2.1 所示:射频接口模块逻辑算术单元E E P R O M存储器冲突检测模块认证模块控制及算术模块E E P R O M接口模块数据加密模块图 2.1 射频卡内部结构工作原理:读写模块向 M1 卡发一组固定频率(13.56MHz)的电磁波,卡片内有一个 LC 串联谐振电路,其频率与读写模块发射的频率相同,在电磁波的激励下,LC 谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到 2V 时,此电容可作为电源为其它电路提供工作电压,将卡内数据发射出去或接收读写器的数据。2.1.1 主要指标容量为 8K 位 EEPROM。分为 16 个扇区,每个扇区分为 4 块,每块 16 个字节,以块为存取单位。每个扇区有独立的一组密码及访问控制。每张卡有唯一的序列号,为 32 位。具有防冲突机制,支持多卡操作。青岛大学本科生毕业论文(设计)6无电源,自带天线,内含加密控制逻辑和通讯逻辑电路。数据保存期为 10 年,可改写 10 万次,读无限次。工作温度:-2050 ( 温度为 90%)。工作频率:13.56MHZ。通信速率:106KBPS 。读写距离:10cm 以内(与读写器有关) 。2.1.2 存储结构1、M1 卡分为 16 个扇区,每个扇区由 4 块(块 0、块 1、块 2、块 3)组成,我们也将 16 个扇区的 64 个块按绝对地址编号为 063,存储结构如图 2.2 所示:图 2.2 射频卡存储结构2、第 0 扇区的块 0(即绝对地址 0 块) ,用于存放厂商代码,已经固化,不可更改。3、每个扇区的块 0、块 1、块 2 为数据块,可以用来存储数据;每个扇区的块3 为控制块包括了密码 A(6 字节)、存取控制(4 字节)和密码 B(6 字节)。青岛大学本科生毕业论文(设计)74、每个扇区的密码和存取控制都是相互独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为 4 个字节,共 32 位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的。2.2 ZLG522S 模块简介本设计的读写模块采用周立功 ZLG522S 模块,它基于飞利浦 RC522 芯片,具有体积小、支持 Mifare1 系列射频卡等特点;模块接上天线读卡有效范围达到 50100mm;采用 IIC 接口通信,使用单片机上任意两条 I/O 口即可。2.1.1 功能特点 采用超小型封装读卡芯片; 符合 ISO14443-3 标准; 可选择 5V 或者 3.3V 供电; 能接双天线,能识别是哪一个天线上有卡; 有 IIC 从机接口,也有 UART 接口或 RS-232 接口; 可主动检测卡进入,检测到卡时可产生中断输出或通过 UART 输出数据; 符合 ISO14443-4 标准,可支持 mifare pro、mifare desfire 等 CPU 卡。2.1.2 技术参数表 2.1 ZLG522S 模块的技术参数产品型号 ZLG522S 系列功率消耗 平均电流:60 毫安/直流 5V;50 毫安/直流 3V峰值电流:小于 160 毫安工作频率 13.56MHZ读卡距离 50100 毫米(mifare1 卡)接口 IIC、UART、RS-232数据传输速率 IIC:80KUART/RS-232:9600230400bit/s支持卡类型 Mifare1 S50、Mifare1 S70 、Mifare UltraLight、Mifare Pro、Mifare Desfire物理特性 尺寸:分体式25mm*16mm*6mm;天线一体化54mm*34.5mm*6mm环境 工作温度:摄氏-2080 度储存温度:摄氏-4085 度湿度:相对湿度 5%95%青岛大学本科生毕业论文(设计)82.3 STC89C52 单片机简介STC89C52 是 一 个 低 功 耗 , 高 性 能 CMOS 8 位 单 片 机 , 片 内 含 8 Bytes ISP(In-system programmable)的 可 反 复 擦 写 的 Flash 只 读 程 序 存 储 器 , 器 件采 用 STC 公 司 的 高 密 度 、 非 易 失 性 存 储 技 术 制 造 , 兼 容 标 准 MCS-51 指 令系 统 及 80C51 引 脚 结 构 , 芯 片 内 集 成 了 通 用 8 位 中 央 处 理 器 和 ISP Flash存 储 单 元 , 功 能 强 大 的 微 型 计 算 机 的 STC89C52 可 为 许 多 嵌 入 式 控 制 应 用系 统 提 供 高 性 价 比 的 解 决 方 案 。STC89C52 具 有 如 下 特 点 : 40 个 引 脚 , 8k Bytes Flash 片 内 程 序 存 储器 , 512 bytes 的 随 机 存 取 数 据 存 储 器 ( RAM) , 32 个 外 部 双 向 输 入 /输 出( I/O) 口 , 5 个 中 断 优 先 级 2 层 中 断 嵌 套 中 断 , 2 个 16 位 可 编 程 定 时 计 数器 ,2 个 全 双 工 串 行 通 信 口 , 看 门 狗 ( WDT) 电 路 , 片 内 时 钟 振 荡 器 。 此 外 , STC89C52 设 计 和 配 置 了 振 荡 频 率 可 为 0Hz 并 可 通 过 软 件 设 置省 电 模 式 。 空 闲 模 式 下 , CPU 暂 停 工 作 , 而 RAM 定 时 计 数 器 , 串 行 口 ,外 中 断 系 统 可 继 续 工 作 , 掉 电 模 式 冻 结 振 荡 器 而 保 存 RAM 的 数 据 , 停 止芯 片 其 它 功 能 直 至 外 中 断 激 活 或 硬 件 复 位 。 同 时 该 芯 片 还 具 有 PDIP、 TQFP 和 PLCC 等 三 种 封 装 形 式 , 以 适 应 不 同 产 品 的 需 求 。1 主 要 特 性 : 8 位 字 长 CPU; 振 荡 器 和 时 钟 电 路 , 全 静 态 操 作 : 033MHZ; 8KB 系 统 内 可 编 程 Flash 存 储 器 ; 256KB 内 部 RAM; 4 个 I/O 端 口 共 32 线 ; 3 个 16 位 定 时 /计 数 器 ; 全 双 工 ( UART) 串 行 口 通 道 ; ISP 端 口 ; 定 时 监 视 器 ( 看 门 狗 ) ; 双 数 据 指 针 ( DPTR) ; 20 多 个 特 殊 功 能 寄 存 器 ; 电 源 下 降 标 志 。2 管 脚 说 明 :VCC: 供 电 电 压 。GND: 接 地 。P0 口 : P0 口 为 一 个 8 位 漏 级 开 路 双 向 I/O 口 , 每 脚 可 吸 收 8TTL 门 电流 。 当 P1 口 的 管 脚 第 一 次 写 1 时 , 被 定 义 为 高 阻 输 入 。 P0 能 够 用 于 外 部青岛大学本科生毕业论文(设计)9程 序 数 据 存 储 器 , 它 可 以 被 定 义 为 数 据 /地 址 的 第 八 位 。 在 FIASH 编 程 时, P0 口 作 为 原 码 输 入 口 , 当 FIASH 进 行 校 验 时 , P0 输 出 原 码 , 此 时 P0外 部 必 须 被 拉 高 。P1 口 : P1 口 是 一 个 内 部 提 供 上 拉 电 阻 的 8 位 双 向 I/O 口 , P1 口 缓 冲器 能 接 收 输 出 4TTL 门 电 流 。 P1 口 管 脚 写 入 1 后 , 被 内 部 上 拉 为 高 , 可 用作 输 入 , P1 口 被 外 部 下 拉 为 低 电 平 时 , 将 输 出 电 流 , 这 是 由 于 内 部 上 拉 的 缘故 。 在 FLASH 编 程 和 校 验 时 , P1 口 作 为 第 八 位 地 址 接 收 。P2 口 : P2 口 为 一 个 内 部 上 拉 电 阻 的 8 位 双 向 I/O 口 , P2 口 缓 冲 器 可接 收 , 输 出 4 个 TTL 门 电 流 , 当 P2 口 被 写 “1”时 , 其 管 脚 被 内 部 上 拉 电 阻拉 高 , 且 作 为 输 入 。 并 因 此 作 为 输 入 时 , P2 口 的 管 脚 被 外 部 拉 低 , 将 输 出电 流 。 这 是 由 于 内 部 上 拉 的 缘 故 。 P2 口 当 用 于 外 部 程 序 存 储 器 或 16 位 地址 外 部 数 据 存 储 器 进 行 存 取 时 , P2 口 输 出 地 址 的 高 八 位 。 在 给 出 地 址 “1”时 , 它 利 用 内 部 上 拉 优 势 , 当 对 外 部 八 位 地 址 数 据 存 储 器 进 行 读 写 时 , P2口 输 出 其 特 殊 功 能 寄 存 器 的 内 容 。 P2 口 在 FLASH 编 程 和 校 验 时 接 收 高 八位 地 址 信 号 和 控 制 信 号 。P3 口 : P3 口 管 脚 是 8 个 带 内 部 上 拉 电 阻 的 双 向 I/O 口 , 可 接 收 输 出 4个 TTL 门 电 流 。 当 P3 口 写 入 “1”后 , 它 们 被 内 部 上 拉 为 高 电 平 , 并 用 作 输入 。 作 为 输 入 , 由 于 外 部 下 拉 为 低 电 平 , P3 口 将 输 出 电 流 ( ILL) 这 是 由于 上 拉 的 缘 故 。P3.0 RXD( 串 行 输 入 口 )P3.1 TXD( 串 行 输 出 口 )P3.2 /INT0( 外 部 中 断 0)P3.3 /INT1( 外 部 中 断 1)P3.4 T0( 记 时 器 0 外 部 输 入 )P3.5 T1( 记 时 器 1 外 部 输 入 )P3.6 /WR( 外 部 数 据 存 储 器 写 选 通 )P3.7 /RD( 外 部 数 据 存 储 器 读 选 通 )P3 口 同 时 为 闪 烁 编 程 和 编 程 校 验 接 收 一 些 控 制 信 号 。管 脚 图 如 图 2.4 所 示 :青岛大学本科生毕业论文(设计)10图 2.4 STC89C52 引脚图2.4 HD7279A 简介HD7279A 是一片具有串行接口的,可同时驱动 8 位共阴式数码管或 64 只独立 LED 的智能显示驱动芯片,该芯片同时还可连接多达 64 键的键盘矩阵,单片即可完成 LED 显示,键盘接口的全部功能。HD7279A 内部含有译码器,可直接接受 BCD 码或 16 进制码,并同时具有2 种译码方式,此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279A 具有片选信号,可方便地实现多于 8 位的显示或多于 64 键的键盘接口。2.4.1 特点 串行接口,无需外围元件可直接驱动 LED青岛大学本科生毕业论文(设计)11 各位独立控制译码/不译码及消隐和闪烁属性 (循环)左移/(循环)右移指令 具有段寻址指令,方便控制独立 LED 64 键键盘控制器,内含去抖动电路 有 DIP 和 SOIC 两种封装形式供选择2.4.2 引脚说明表 2.2 HD7279A 的引脚说明引脚 名称 说明1,2 VDD 正电源3,5 NC 无连接,必须悬空4 VSS 接地6 CS 片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据7 CLK 同步时钟输入端,向芯片发送数据及读取键盘数据时,此引脚电平上升沿表示数据有效。8 DATA 串行数据输入/输出端,当芯片接收指令时,此引脚为输入端;当读取键盘数据时,此引脚在“读”指令最后一个时钟的下降沿变为输出端。9 KEY 按键有效输出端,平时为高电平,当检测到有效按键时,此引脚变为低电平。1016 SGSA 端 g端 a 驱动输出。17 DP 小数点驱动输出。1825 DIG0DIG7 数字 0数字 7 驱动输出。26 CLK0 振荡输出端。27 RC RC 振荡器连接端。28 RESET 复位端。2.4.3 串行接口HD7279A 采用串行方式与微处理器通信,串行数据从 DATA 引脚送入芯片,并由 CLK 端同步,当片选信号变为低电平后, DATA 引脚上的数据在CLK 引脚的上升沿被写入 HD7279A 的缓冲寄存器。HD7279A 的指令结构有三种类型:1、不带数据的纯指令,指令的宽度为8 个 BIT,即微处理器需发送 8 个 CLK 脉冲。2、带有数据的指令,宽度为 16个 BIT,即微处理器需发送 16 个 CLK 脉冲。3、读取键盘数据指令,宽度为16 个 BIT,前 8 个为微处理器发送到 HD7279A 的指令,后 8 个 BIT 为HD7279A 返回的键盘代码。执行此指令时,HD7279A 的 DATA 端在第 9 个CLK 脉冲的上升沿变为输出状态,并与第 16 个脉冲的下降沿恢复为输入状态,青岛大学本科生毕业论文(设计)12等待接收下一个指令。串行接口的时序如图 2.5、2.6、2.7 所示:1、纯指令图 2.5 串行接口的时序(1)2、带数据指令图 2.6 串行接口的时序(2)3、读键盘指令图 2.7 串行接口的时序(3)青岛大学本科生毕业论文(设计)13第 3 章 开发环境 KEIL 介绍单 片 机 开 发 中 除 必 需 的 硬 件 外 , 同 样 离 不 开 软 件 , 我 们 写 的 汇 编 语 言 源程 序 要 变 为 CPU 可 以 执 行 的 机 器 代 码 有 两 种 方 法 , 一 种 是 手 工 汇 编 , 另 一种 是 机 器 汇 编 , 目 前 手 工 汇 编 的 方 法 已 经 很 少 使 用 了 。 机 器 汇 编 是 通 过 汇编 软 件 将 源 程 序 变 为 机 器 码 , 汇 编 软 件 有 早 期 的 A51, 随 着 单 片 机 开 发 技术 的 不 断 发 展 , 从 普 遍 使 用 汇 编 语 言 到 逐 渐 使 用 高 级 语 言 开 发 , 单 片 机 的 开发 软 件 也 在 不 断 发 展 , Keil 软 件 是 目 前 最 流 行 开 发 MCS-51 系 列 单 片 机 的软 件 , 这 从 近 年 来 各 仿 真 机 厂 商 纷 纷 宣 布 全 面 支 持 Keil 即 可 看 出 。 Keil 提供 了 完 整 的 开 发 方 案 包 括 C 编 译 器 、 宏 汇 编 、 连 接 器 、 库 管 理 和 一 个 功 能强 大 的 仿 真 调 试 器 等 , 通 过 一 个 集 成 开 发 环 境 ( uVision) 将 这 些 部 份 组 合在 一 起 。3.1 系统概述Keil C51 是 美 国 Keil Software 公 司 出 品 的 51 系 列 兼 容 单 片 机 C 语言 软 件 开 发 系 统 , 与 汇 编 相 比 , C 语 言 在 功 能 上 、 结 构 性 、 可 读 性 、 可 维 护性 上 有 明 显 的 优 势 , 因 而 易 学 易 用 。 用 过 汇 编 语 言 后 再 使 用 C 来 开 发 , 体会 更 加 深 刻 。 Keil C51 软 件 提 供 丰 富 的 库 函 数 和 功 能 强 大 的 集 成 开 发 调 试 工 具 , 全Windows 界 面 。 另 外 重 要 的 一 点 , 只 要 看 一 下 编 译 后 生 成 的 汇 编 代 码 , 就 能体 会 到 Keil C51 生 成 的 目 标 代 码 效 率 非 常 之 高 , 多 数 语 句 生 成 的 汇 编 代 码很 紧 凑 , 容 易 理 解 。 在 开 发 大 型 软 件 时 更 能 体 现 高 级 语 言 的 优 势 。 下 面 详 细介 绍 Keil C51 开 发 系 统 各 部 分 功 能 和 使 用 。使 用 独 立 的 Keil 仿 真 器 时 , 注 意 事 项 :* 仿 真 器 标 配 11.0592MHz 的 晶 振 , 但 用 户 可 以 在 仿 真 器 上 的 晶 振 插 孔中 换 插 其 他 频 率 的 晶 振 。 * 仿 真 器 上 的 复 位 按 钮 只 复 位 仿 真 芯 片 , 不 复 位 目 标 系 统 。 * 仿 真 芯 片 的 31 脚 ( /EA) 已 接 至 高 电 平 , 所 以 仿 真 时 只 能 使 用 片 内ROM, 不 能 使 用 片 外 ROM; 但 仿 真 器 外 引 插 针 中 的 31 脚 并 不 与 仿 真 芯 片的 31 脚 相 连 , 故 该 仿 真 器 仍 可 插 入 到 扩 展 有 外 部 ROM( 其 CPU 的 /EA引 脚 接 至 低 电 平 ) 的 目 标 系 统 中 使 用 。青岛大学本科生毕业论文(设计)143.2 keil 工程的建立 首先启动 Keil 软件的集成开发环境,这里假设已正确安装了该软件,可以从桌面上直接双击 uVision 的图标以启动该软件。UVison 启动后,程序窗口的左边有一个工程管理窗口,该窗口有 3 个标签,分别是 Files、Regs、和 Books,这三个标签页分别显示当前项目的文件结构、CPU 的寄存器及部份特殊 功能寄存器的值(调试时才出现)和所选 CPU 的附加说明文件,如果是第一次启动 Keil,那么这三个标签页全是空的。1、源文件的建立使用菜单“File-New ”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编缉窗口, 在该窗口中输入源程序如下:#includesbit D2=P12;unsigned int a;void main()D2=0;for(a=0;aNew Project ”菜单,出现一个对话框,要求给将要建立的工程起一个名字,你可以在编缉框中输入一个名字(设为 exam1),不需要扩展名。点击“保存”按钮,出现第二个对话框,这个对话框要求选择目标 CPU(即所用芯片的型号),Keil 支持的 CPU 很多,我们选择 Atmel 公司的 89C51 芯片。点击 ATMEL 前面的 “+”号,展开该层,点击其中的 89C51,然后再点击“确定”按钮,回到主界面,此时,在 工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击 “+”号展开,可以看到下一层的“ Source Group1”,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“Source Group1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单。选中其中的“Add file to Group”Source Group1”,出现一个对话框,要求寻找源文件,注意,该对话框下面的“文件类型” 默认为 C source file(*.c) ,也就是以 C 为扩展名的文件。双击 exam1.c 文件,将文件加入项目,注意,在文件加入项目后,该对话框并不消失,等待继续加入其它文件,但初学时常会误认为操作没有成功而再次双击同一文件,这时会出现如图 4 所示的对话框,提示你所选文件已在列表中,此时应点击“确定”,返回前一对话框,然后点击 “Close” 即可返回主界面,返回后,点击“Source Group 1”前的加号,会发现 exam1.c 文件已在其中。双击文件名,即打开该源程序。3、工程的详细设置工程建立好以后,还要对工程进行进一步的设置,以满足要求。首先点击左边 Project 窗口的 Target 1,然后使用菜单“Project-Option for target target1” 即出现对工程设置的对话框,这个对话框可谓非常复杂,共有 8 个页面,要全部搞清可不容易,好在绝大部份设置项取默认值就行了。设置对话框中的 Target 页面,Xtal 后面的数值是晶振频率值,默认值是所选目标 CPU 的最高 可用频率值,对于我们所选的 AT89C51 而言是 24M,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与硬件对目标进行设置所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为 12。Memory Model 用于设置 RAM 使用情况,有三个选择项,Small 是所有变量都在单片机的内部 RAM 中; Compact 是可以使用一页外部扩展 RAM,而 Larget 则是可以使用全部外部的扩展 RAM。Code Model 用于设置 ROM 空间的使用,同样也有三个选择项,即 Small 模式,只用低于 2K 的程序空间;Compact 模式,单个函数的代码量不能超过 2K,整个程序可以使用 64K 程序空间;Larget 模,可用全部 64K 空间。Use on-chip ROM 选择项,确认是否仅青岛大学本科生毕业论文(设计)16使用片内 ROM(注意:选中该项并不会影响最终生成的目标代码量);Operating 项是操作系统选择,Keil 提供了两种操作系统:Rtx tiny 和 Rtx full,关于操作系统是另外一个很大的话题了,通常我们不使用任何操作系统,即使用该项的默认值:None(不使用任何操作系统);Off Chip Code memory 用以确定系统扩展 ROM 的地址范围,Off Chip xData memory 组用于确定系统扩展 RAM 的地址范围,这些选择项必须根据所用硬件来决定,由于该例是单片应用,未进行任何扩展,所以均不重新选择,按默认值设置。设置对话框中的 OutPut 页面,这里面也有多个选择项,其中 Creat Hex file 用于生成可执行代码文件(可以用编程器写入单片机芯片的 HEX 格式文件,文件的扩展名为.HEX),默认情况下该项未被选中,如果要写片做硬件实验,就必须选中该项,这一点是初学者易疏忽的,在此特别提醒注意。选中 Debug information 将会产生调试信息,这些信息用于调试,如果需要对程序进行调试,应当选中该项。Browse information 是产生浏览信息,该信息可以用菜单 view-Browse 来查看,这里取默认值。按钮 “ Select Folder for objects ”是用来选择最终的目标文件所在的文件夹,默认是与工程文件在同一个文件夹中。Name of Executable 用于指定最终生成的目标文件的名字,默认与工程的名字相同,这两项一般不需要更改。工程设置对话框中的其它各页面与 C51 编译选项、A51 的汇编选项、BL51 连接器的连接选项等用法有关,这里均取默认值,不作任何修改。以下仅对一些有关页面中常用的选项作一个简单介绍。Listing 标签页用于调整生成的列表文件选项。在汇编或编译完成后将产生(*.lst)的列表文件,在连接完成后也将产生( *.m51)的列表文件,该页用于对列表文件的内容和形式 进行细致的调节,其中比较常用的选项是“C Compile Listing”下的“Assamble Code”项,选中该项可以在列表文件中生成 C 语言源程序所对应的汇编代码。C51 标签页用于对 Keil 的 C51 编译器的编译过程进行控制,其中比较常用的是“Code Optimization”组,该组中 Level 是优化等级,C51 在对源程序进行编译时,可以对代码多至 9 级优化,默认使用第 8 级,一般不必修改,如果在编译中出现一些问题,可以降低优化级别试一试。Emphasis 是选择编译优先方式,第一项是代码量优化(最终生成的代码量小);第二项 是速度优先(最终生成的代码速度快);第三项是缺省。默认的是速度优先,可根据需要更改。设置完成后按确认返回主界面,工程文件建立、设置完毕。4、编译、连接在设置好工程后,即可进行编译、连接。选择菜单 Project-Build target,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行青岛大学本科生毕业论文(设计)17编译,然后再连接以产生目标代码;如果选择 Rebuild All target files 将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而 Translate .项则仅对该文件进行编译,不进行连接。以上操作也可以通过工具栏按钮直接进行。编译过程中的信息将出现在输出窗口中的 Build 页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后, 最终会得到名为 exam1.hex 的文件,该文件即可被编程器读入并写到芯片中,同时还产生了一些其它相关的文件,可被用于 Keil 的仿真与调试,这时可以进入下一步调试的工作。青岛大学本科生毕业论文(设计)18第 4 章 系统电路的设计及原理4.1 原理框图本设计的硬件部分主要由单片机(STC89C52) 、读写模块、键盘电路,数码管显示四大部分组成。其中,单片机主要起控制作用,以完成对射频卡读写模块的配置从而实现对射频卡的操作以及显示等控制;数字键盘作为输入设备;显示部分主要采用数码管显示来实现。系统硬件框图如图 4.1 所示:P1.0/T2EXCI35678RS9xDNWALVOGUKYFBHZpMuJ+-onectr天图 4.1 系统总体框图青岛大学本科生毕业论文(设计)194.2 各模块具体实现原理分析和说明4.2.1 读写模块本设计的读写模块采用周立功 ZLG522S 模块,基于飞利浦 RC522 芯片,体积小;支持 Mifare1 系列射频卡;模块能接双天线 ,并且能识别哪个天线上有卡,天线读卡有效范围 50100mm; IIC 接口通信,使用单片机上任意两条 I/O 口即可实现。1、IO 设置本课题的读写模块采用周立功 ZLG522S 模块,该模块有两种不可同时使用的通信接口:UART 和 IIC 接口。本课题采用 IIC 接口,数据接口为 J1,天线接口为 J2,定义分别如表 4.1、4.2 所示:表 4.1 J1 管脚定义表管脚 符号 类型 描述J1-1 INT 输出 中断输出信号,集电极开路。当使用 IIC 通信,当模块完成命令时,此脚输入低电平;当设置为自动检测卡模式时,当检测到卡时,此脚也输出低电平。J1-2 SCL 输入 IIC 时钟输入,集电极开路。J1-3 SDA 输入/输出 IIC 数据输入/输出,集电极开路。J1-4 GND PWR 电源负端。J1-5 VCC PWR 电源正端。若模块名后缀带“L” ,则以+3.3V 供电,否则+5V 供电J1-6 RXD 输入 UART 接收端J1-7 TXD 输出 UART 发送端J1-8 CON表 4.2 J2 管脚定义表管脚 符号 类型 描述J1-1 TX1 输出 天线输出驱动 1。J1-2 GND 地 天线地。J1-3 TX2 输出 天线输出驱动 2。J1-4 RX 输入 接收J1-5 GND 地 天线地。J1-6 RX2 输入 接收 2。在接收双天线时与 TX2 和地可组成第二个天线接口青岛大学本科生毕业论文(设计)202、IIC 接口IIC 总线协议定义如下:(1) 只有在总线非忙时才被允许进行数据传送。(2) 在数据传送时,当时钟线为高电平,数据线必须为固定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被当作总线的启动或停止条件。IIC 总线每一次数据传送,都是由主器件发送起始信号开始,发送停止信号结束,当 SCL 时钟线为高电平, SDA 数据线出现高电平向低电平的下降沿信号时即为总线的起始信号;相反,当 SDA 出现由低向高的上升沿信号时为总线的停止信号,在起始信号和停止信号之间是寻址信息和数据信息。IIC 总线上的数据传输必须遵循总线规范。主 CPU 发生起始信号表明一次数据传送的开始,然后为寻址字节,寻址字节由高 7 位地址和一位方向位组成,方向位表明主 CPU 与从器件之间的数据传送方向,当该位为“0”时表明 CPU对从器件进行写操作,为“1 ”时为读操作。寻址字节后是按指定地址读、写操作的数据字节与应答位。主 CPU 发出寻址信号后,地址与自己相符的从器件便会产生一个应答信号。数据字节的后面也跟随一个应答信号,应答信号在第 9个时钟位上出现。当从器件输出低电平时为应答信号(ACK) ,输出高电平为非应答信号(NACK) 。如图 4.2 所示,数据传送完毕后主 CPU 必须发停止信号。图 4.2 IIC 总线的应答信号利用模块的 J1.1J1.3 接口可以与主机进行 IIC 通信。只要主机提供任意三个 I/O 口即可。注意本模块的这三个管脚均为集电极开路,因此一定要加上拉电阻。本设计采用+5V 供电,上拉电阻应为 4.7K,IIC 连接图如图 4.3 所示:青岛大学本科生毕业论文(设计)21Z L G 5 2 2 SI N T T X 1S C L G N DS D A T X 2I N T单片机 S C LS D Aa n t e n n a+ 5 V图 4.3 IIC 接口连接图4.2.2 按键模块按键是人机交互很重要的一部分,也是本设计必不可少的一个模块。本设计中可以通过按键模块来输入扣费额,例如自动售货机等;还可以使用按键来设置定额功能,供某些扣费额固定的场合使用,例如餐厅里卖饮料的窗口的收费。本设计的按键模块使用的是 4*4 矩阵键盘,假设收费机为多收费项目,定义其键盘功能如图 4.4。1 2 3水费4电费657确定电话费0定额清除98图 4.4 按键功能定义图键值说明:09 为数字键,功能键有 6 个,此

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论