IC卡电子门锁控制系统硬件设计与实现_第1页
IC卡电子门锁控制系统硬件设计与实现_第2页
IC卡电子门锁控制系统硬件设计与实现_第3页
IC卡电子门锁控制系统硬件设计与实现_第4页
IC卡电子门锁控制系统硬件设计与实现_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

河南机电高等专科学校毕业设计/论文1绪论 现今越来越多的酒店、宾馆都开始使用智能电子门代替传统的门,这样既方便了客人的使用,也使宾馆的客房管理更安全,即使卡丢失,通过总台输入相应的客户信息也能将门打开。本设计成本也很低。随着科技的进步,当今很多产品越来越智能化也是发展的必然趋势,此产品及时地配合上了科学的发展,还会有一定的拓展空间,比如现在很多高校都用校园一卡通,很大程度地方便了学生的日常生活。再有,现在世界上和很多科学家正在努力开发数字化家庭这个项目,本设计正是步入这个目标的初级阶段。它省去了携带钥匙,只能一把钥匙开一把锁的不便。人们在使用传统的门时,如果丢失了钥匙只能将门撬开,智能门锁系统就避免了这个弊端,它将每个门锁密码统一存在总台控制中,即使 IC 卡丢失,也可通过总台将门打开。描述系统如何实现所述的功能和非功能需求,包括对硬件、软件和执行装置的功能划分以及系统的硬件、软件选型等。一个好的体系结构是设计成功的关键,根据上面的可行性和需求分析,我制定了系统基本功能的设计方案,插入卡之后:(1)系统自动读取 IC 卡程序,用一个中断程序,只可对 IC 卡执行继续工作,对其他类型的卡不可识别。(2)系统接着自动读取 IC 卡密码,若此卡已经过期,则自动中断,不可识别。(3)插入卡后,若 IC 卡有效,则液晶屏幕显示汉字:请输入密码。(4)从键盘输入密码,读入密码,并在屏幕上以*显示。(5)单片机比较两个密码。若不同,则中断程序,并将程序跳到(4),最多循环三次,若仍不相同,则系统收回对 IC 卡的使用权;若相同,则门自动开锁。河南机电高等专科学校毕业设计/论文2第 1 章 系统分析1.1 系 统 研 究 的 可 行 性 任何系统在开发之前,都要进行可行性分析来确定项目开发是否有必要和可行。必须分析几种主要可能解法的利弊,从而判断原定的系统规模和目标是否能现实,系统完成后所能带来的效益是否大到值得投资开发。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。首先需要进一步分析和澄清问题定义,在问题定义阶段初步确定规模和目标,如果是正确的就进一步加以肯定,如果有错误就应该及时改正,如果对目标系统有任何约束和限制,也必须把它们清楚地列举出来。在澄清了问题定义后,导出系统的逻辑模型,然后从系统逻辑模型出发,探讨出系统实现方案,并仔细分析它的可行性。就本系统而言,在设计其逻辑模型时,要先判断该系统在开发之后是否能在市场上得到广泛的应用,赢得经济效益。本设计成本也很低。随着科技的进步,当今很多产品越来越智能化也是发展的必然趋势,此产品及时地配合上了科学的发展,还会有一定的拓展空间,比如现在很多高校都用校园一卡通,很大程度地方便了学生的日常生活。再有,现在世界上和很多科学家正在努力开发数字化家庭这个项目,本设计正是步入这个目标的初级阶段。它省去了携带钥匙,只能一把钥匙开一把锁的不便。人们在使用传统的门时,如果丢失了钥匙只能将门撬开,智能门锁系统就避免了这个弊端,它将每个门锁密码统一存在总台控制中,即使IC 卡丢失,也可通过总台将门打开。1.2 需 求 分 析确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。系统的需求分析一般分功能性需求和非功能性需求两方面。功能性需求是指系统的基本功能,如输入输出信号、操作方式等;非功能需求包括系统河南机电高等专科学校毕业设计/论文3性能、成本、功耗等因素。本设计适应着科技的发展,有相当一部分的科技人员正在研究开发这个项目,因此本系统具有技术可行性。本系统中还包括了后台对电子门的控制,现在有专门从事这种后台操作的工作人员,统一对电子门锁系统进行管理和技术维护,因此本系统还具有一定的管理可行性。1.3 系 统 整 体 设 计 方 案描述系统如何实现所述的功能和非功能需求,包括对硬件、软件和执行装置的功能划分以及系统的硬件、软件选型等。一个好的体系结构是设计成功的关键,根据上面的可行性和需求分析,我制定了系统基本功能的设计方案,插入卡之后:(1)系统自动读取 IC 卡程序,用一个中断程序,只可对 IC 卡执行继续工作,对其他类型的卡不可识别。(2)系统接着自动读取 IC 卡密码,若此卡已经过期,则自动中断,不可识别。(3)插入卡后,若 IC 卡有效,则液晶屏幕显示汉字:请输入密码。(4)从键盘输入密码,读入密码,并在屏幕上以*显示。(5)单片机比较两个密码。若不同,则中断程序,并将程序跳到(4),最多循环三次,若仍不相同,则系统收回对 IC 卡的使用权;若相同,则门自动开锁。总体的流程图见图 1-1。河南机电高等专科学校毕业设计/论文4插入 IC 卡读入 IC 卡读 IC 卡密码读从键盘输入的密码中断3次不相同报警比较密码相同门开锁图 1-1 系统总体流程示意图1.4 系 统 集 成系统集成是把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误,使程序最终能正常运行,系统实现所需的功能。第 2 章 系统硬件整体设计方案2.1 所 需 功 能 模 块通过系统的需求分析和可行性研究得出系统所要实现的功能,并得出实现这河南机电高等专科学校毕业设计/论文5些功能需要用到以下几个功能模块,包括:IC 卡模块、RS-485 模块、存储器模块、8255 与 LCD 液晶显示、键盘模块、电子门锁开启及报警模块。其中的电子门锁开启及报警模块与一个发光二级管和一个报警笛相连,当系统通知电子门锁开启及报警模块可以将电子门打开时,门锁自动打开,在本设计中用绿灯亮来表示电子门打开;当系统运行三次比较密码程序后,若两个密码仍不相同,则系统就通过电子门锁开启及报警模块通知警笛报警。其他的功能模块在以下的论文中会做详细的介绍,这些功能模块都是以 MCS-51 系列单片机中的 8031 为核心实现的。2.2 外 围 互 连 的 资 源 分 配 示 意 图系统总体硬件设计图如图 2-1。图 2-1 系统总体设计示意图第 3 章 MCS-51 系列单片机3.1 MCS-51 单 片 机 简 介河南机电高等专科学校毕业设计/论文6大家所熟悉的 8031 单片机是一个 8 位单片机。所谓 8 位单片机,就是在单一芯片上,包括了 8 位微处理器、外围接口、静态存储器等为一体高度集成的电路。在一小块芯片上,集成了一个微型计算机的各个组成部分。每一个单片机包括:一个 8 位的微处理器(CPU ) ;片内数据存储器 RAM(128B/256B) ,用以存放可以读/ 写的数据,如运算的中间结果、最终结果以及欲显示的数据等;片内程序存储器 ROM/EPROM(4KB/8KB) ,用以存放程序、一些原始数据和表格。但也有一些单片机内部不带 ROM/EPROM,如 8031,8032,80C31 等;四个 8 位并行I/O 接口 P0P3 ,每个口既可以用作输入,也可以用作输出;两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制;五个中断源的中断控制系统;一个全双工 UART(通用异步接收发送器)的串行 I/O 口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为 12MH z。以上各个部分通过内部数据总线相连接。3.2 MCS-51 单 片 机 的 基 本 结 构3.2.1 MCS-51 单 片 机 的 基 本 组 成MCS-51 片内总部结构框图如图 3-1 所示。河南机电高等专科学校毕业设计/论文7图 3-1 MCS-51 片内总部结构框图3.2.2 MCS-51 单 片 机 硬 件 结 构 特 点MCS-51 单片机硬件结构:(1)内部程序存储器(ROM)和内部数据存储器(RAM)(2)输入/输出( I/O)端口 (3)外部程序存储器和外部数据存储器寻址空间 (4)中断与堆栈 (5)定时/计数器与寄存器区 (6)指令系统MCS-51 单片机内部结构特点:(1)运算器 运算器由 8 位算术逻辑运算单元 ALU(Arithmetic Logic Unit ) 、8 位累加器ACC(Accumulator) 、8 位寄存器 B、程序状态字寄存器 PSW(Program Status Word) 、8 位暂存寄存器 TMP1 和 TMP2 等组成。 河南机电高等专科学校毕业设计/论文8(2)控制器 主要由程序计数器 PC、指令寄存器 IR、指令译码器 ID、堆栈指针 SP、数据指针 DPTR、时钟发生器及定时控制逻辑等组成。3.3 MCS-51 单 片 机 的 引 脚 及 片 外 总 线 结 构3.3.1 MCS-51 单 片 机 芯 片 引 脚 描 述(1)主电源引脚 VCC 和 VSS(2)外接晶振引脚 XTAL1 和 XTAL2(3)控制或其他电源复用引脚 RST/ VPD、ALE/、和/VPP (4)输入/输出引脚 P0、P1、P2 、P3(共 32 根)3.3.2 MCS-51 单 片 机 外 总 线 结 构微型计算机中的总线通常分为: (1)地址总线(AB ):地址总线宽度为 16 位,由 P0 口经地址锁存器提供低8 位地址(A 0-A7) ;P2 口直接提供高 8 位地址( A8A 15) 。地址信号是由 CPU发出的,故地址总线是单方向的。 (2)数据总线(DB ):数据总线宽度为 8 位,用于传送数据和指令,由 P0 口提供。 (3)控制总线(CB):控制总线随时掌握各种部件的状态,并根据需要向有关部件发出命令。3.4 MCS-51 与 直 接 控 制 的 外 围 功 能 模 块 互 连 的 资 源 分 配8031CPU 外围直接控制 IC 卡模块、485 模块以及存储器模块。由于 8031 外围接口数目有限,因此以 8255 扩展的 I/O 接口将 8031 的地址总线经过译码后接到 8255 的 CS,通过 8255 控制 LCD 液晶显示和键盘的扫描。 河南机电高等专科学校毕业设计/论文9第 4 章 接触式 IC 卡模块的设计与实现4.1 IC 卡 概 述IC 卡的英文全名是 Integrated Circuit Card(集成电路卡) ,它是继磁卡之后出现的又一种新型信息工具。IC 卡将具有存储、加密及数据处理能力的集成电路芯片镶嵌于塑料卡片中。IC 卡在有些国家和地区也称智能卡(smart card)、智慧卡(intelligent card)、微电路卡(microcircuit card)或微芯片卡( Micro chip card)等。它是将一个微电子芯片嵌入符合 ISO 7816 标准的卡基中,做成卡片形式,已经十分广泛地应用于包括金融、交通、社保等很多领域。IC 卡的核心部分是一块集成电路芯片,故它又可称为“芯片卡” 。4.2 IC 卡 的 分 类从 IC 卡的外形分为有触点卡和无触点卡(又称射频卡)两类。前者由读写设备的接头与卡片上的集成电路接触点相接触,进行信息的读写;后者按调制方式可分为频率调制、幅度调制、电容耦合等几种,与读写设备无电接触,通过射频技术进行读写,成功地解决了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破,主要用于公交、轮渡、地铁的自动收费系统,也应用在门禁管理、身份证明和电子钱包。接触 IC 卡与非接触 IC 卡通过卡上的模块与系统发生联系,模块本身具有记录、计算等功能,保密性、功能强于磁条卡。例如:常用的电话 IC 卡、公交非接触 IC 卡。4.3 接 触 式 IC 卡 说 明接触式 IC 卡模块分为推拉式和压入弹出式两种,它们的电路结构完全相同,仅在卡座的机械结构上有所不同,模块的电源从接口总线引入。接触式 IC 卡通常分为存储器卡、逻辑加密卡、CPU 卡、超级智能卡四类。存储器卡是含有E2PROM 及其控制电路,但无加密逻辑;逻辑加密卡是由加密逻辑电路和E2PROM 组成;CPU 卡的卡内不仅有 E2PROM 等存储器,还带有 CPU 及其操作系统和加密算法;超级智能卡不仅带有 CPU 和存储器,还带有液晶屏和微型键河南机电高等专科学校毕业设计/论文10盘。IC 卡的大小和磁条卡相同,在其左上方嵌有一片或若干片集成电路芯片,芯片一般是不易挥发性存储器(ROM,EPROM ,E 2PROM) ,保护逻辑电路,甚至于 CPU(中央处理单元) 。4.4 接 触 式 IC 卡 引 脚 图图 4-1 IC 卡电源部分原理图IC 卡的电源受 POWER 引脚的控制。只有当 POWER 为高电平时,+5V 才能加到 IC 卡 VCC 引脚上。 IC 卡电源部分原理图见图 4-1。图 4-2 IC 卡接口部分原理图卡座的 I/O 对应于 24C01 引脚,CLK 对应于 SCL 引脚。RST、FUSE、PGM用于兼容其他类型的 IC 卡,对 24C01 无作用。SW1 为插卡指示,不插卡时为高电平,插卡后变为低电平。IC 接口部分原理图见图 4-2。河南机电高等专科学校毕业设计/论文114.5 24C01 芯 片 引 脚 图 及 介 绍24C01 引脚图见图 4-3。图 4-3 24C01 引脚图24C01 为 1KBIT 的串行 E2PROM,其接口为 I2C 形式。A0A2:设备的地址引脚。通过接 VCC 或 GND 来表示不同的设备地址。WC:写保护引脚。接 VCC 时,芯片只能读不能写;接 GND 或浮空时,可以进行正常读写。SCL:串行时钟引脚,为芯片提供读写时钟。SDA:串行数据引脚,地址、数据均由该引脚输入或输出。对 24C01 的写操作有以下两种方式:(1)字节方式(一次一个字节)(2)页方式(一次 8 个字节)对 24C01 的读操作有以下三种方式:(1)读当前地址(2)读随机地址(3)读地址序列4.6 接 触 式 IC 卡 的 应 用 世界上推广 IC 卡成功的地区是欧洲,尤其是法国 IC 金融卡、IC 电话卡和德国的健康卡、电话卡使用最为广泛。目前全球拥有各类 IC 卡 7 亿张以上,特别在金融、运输、医疗、教育、娱乐、企业管理等领域得到普遍的应用,并且每年以 40%的速度增长。河南机电高等专科学校毕业设计/论文124.7 IC 卡 读 写 的 调 试 :关于插入 IC 卡后系统自动读取的程序:ADD_W EQU 10100000B ;写卡地址ADD_R EQU 10100001B ;读卡地址CLK BIT P1.0 IO BIT P1.1 POWER BIT P1.2 SW BIT P1.3 CSEG AT 0000HJMP START0CSEG AT 4080HSTART0: CLR POWERSTART1: MOV C,SWJC START0LCALL DELAY10MOV C,SWJC START0SETB POWER ;如果有卡,则上电NOPNOPMOV R6,#7FH ;写入地址 07FMOV A,#0ABH ;写入的数据LCALL WRITE_BYTE ;字节写入方式NOPNOPLCALL DELAY10 ;延时 10 个毫秒MOV R6,#7FH ;读出地址LCALL READ_BYTE ;随机地址读出方式NOP河南机电高等专科学校毕业设计/论文13NOP ;设断点处AJMP START1;*字节写:R6= =目的地址,A= = 数据*WRITE_BYTE:PUSH ACC ;保存 A 中的数据 LCALL START ;发开始信号 MOV A,#ADD_W ;写入器件地址 LCALL WR_BYTE MOV A,R6 ;写入字节地址 LCALL WR_BYTE POP ACC ;恢复 A 中数据 LCALL WR_BYTE ;写入数据 LCALL STOP RET ;*随机读:R6= =源地址*READ_BYTE:LCALL STARTMOV A,#ADD_W ;执行空字节写序列 LCALL WR_BYTE ;载入数据地址 MOV A,R6 LCALL WR_BYTE LCALL START MOV A,#ADD_R ;立即地址读取 LCALL WR_BYTE LCALL RD_BYTE LCALL STOPRET第 5 章 8255 芯片与 LCD 液晶显示、键盘模块的设计与功能实现5.1 8255 芯 片 的 设 计 及 功 能河南机电高等专科学校毕业设计/论文145.1.1 8255 芯 片 的 引 入前面章节中介绍了 MCS-51 系列单片机,本系统设计用到的是 MCS-51 系列单片机中的 8031 单片机。从 8031 与直接控制的外围功能模块互连的资源分配图中可以看出,8031 的外围引脚已经基本被全部占用,而本设计除了用到了在图中显示的与 CPU 直接相连的 IC 卡、RS-485 模块以及存储器外,还需要用到 LCD液晶显示模块和键盘,这就造成了 CPU 外围引脚不够用的现象。因此,将 8255与 CPU 连接,可起到扩展 CPU 的接口的作用,CPU 通过控制 8255 来间接控制了 LCD 和键盘。5.1.2 8255 简 介 及 内 部 结 构8255 是微机并行接口芯片,是可编程 I/O 口扩展芯片,对 8255 输入不同的指令可改变 I/O 的工作方式。8255 与单片机系统连接方式简单,工作方式由程序设定。8255 内部有 4 个寄存器:分别为寄存器 A、B、C 和控制寄存器。A 、B、C寄存器的数据就是引脚 PA7PA0、PB7 PB0、PC7PC0 上输入或输出的数据。而控制寄存器的数据则表明 PA、PB 、PC 的工作方式。通过 CS、A0 、A1、RD和 WR 对 4 个寄存器进行操作:(1)CS 为低电平时选通 8255;(2)A1、A0 为地址选通;(3)RD 和 WR 为读、写信号,RD 为低、WR 为高时为读方式,RD 为高、WR 为低时为写方式;(4)D0D7 为数据口。5.1.3 8255 的 工 作 方 式可编程并行接口芯片 8255 有 3 个 8 位的并行端口:A 口、B 口和 C 口。8255 有 3 种工作方式:方式 0、方式 1 和方式 2。方式 0直接输入/输出方式,8255 和外设之间无需联络信号。 A 口、B 口和 C 口均可分别由控制字规定为输入或输出。方式 1选通输入/输出方式,此时,C 口的 37 位为 A 口 8 位数据的传输提供联络信号;C 口的 02 位为 B 口的 8 位数据提供联络信号。河南机电高等专科学校毕业设计/论文15方式 2A 口的双向工作方式,在这种工作方式下, A 口既可输入,也可输出。由于要用到 STB、 IBF、OBF、ACK 和 INTR,共 5 条联络信号线,要占用 C 口的 5 位, C 口只剩下 3 位了,因此,B 口只能在方式 0 或方式 1 下工作,此时 C 口余下的 3 位可用作输入/输出线,也可做 B 口的联络信号。5.1.4 8255 的 选 通 输 入 、 输 出 时 序(1)选通输入的时序是:外设通过 STB 信号将数据送入 A 口(或 B 口) ;A 口(或 B 口)的状态标志 IBF 为 1,表示输入缓冲器满,该状态信号可供程序查询;8255 产生中断请求信号 INTR,用于中断方式下,请求 CPU 从 8255 的 A口(或 B 口)取走数据。(2)选通输出的时序是:当 CPU 向 A 口(或 B 口)输出数据后,OBF 为 0,表示输出缓冲区满,此信号可供程序查询,或将 A 口(或 B 口)中的数据打入外设;当外设取走数据后,向 8255 送来确认信号 ACK;8255 产生中断请求 INTR,告诉 CPU 可以输出下一个数据到 8255 的 A 口(或 B 口)了。5.1.5 8255 电 路 原 理 图 及 编 程 实 现河南机电高等专科学校毕业设计/论文16图 5-1 8255 电路原理图8255 电路原理图见图 5-1。该电路由 1 片 8255 组成,8255 的数据口,地址,读写线,复位控制线均已接好,片选输入端插孔为 8255CS,A,B,C 三端口的插孔分别为:PA0PA7,PB0PB7 ,PC0PC7 。测试该电路时,检查复位信号,通过 8255 并行口实验,程序全速运行,观察片选、读写、总线信号是否正常。8255 有 4 个端口地址,从小到大依次为 A 口地址、 B 口地址、C 口地址和控制口地址。控制口用来写入 8255 的工作方式控制字,即实现 8255 芯片的初始化。在程序中可对 C 口按位置 1 或置 0,方法是:D 7= 0,D 3 D 2 D 1 =所选择位的二进制编码,D 0 =1 或 0。在本设计中,8255 中的 C 口我们只用到了 PC0PC3 以及 PC7,PC7 与液晶显示的 BUSY 相连,作为输入口; PC3 与液晶显示的 REQ 相连,作为输出口;PC0PC2 则与键盘的 KA10KA12 相连,作为输出口;PA 口控制着液晶显示模块,作为输出口;PB 口控制着键盘,作为输入口。这样 8255 就直接控制了 LCD与键盘,CPU 通过控制 8255 间接控制着这两个的操作。河南机电高等专科学校毕业设计/论文175.2 LCD 液 晶 显 示 模 块 设 计5.2.1 LCD 的 结 构 设 计LCD 显示器的原文是 Liquid Crystal Display,取每字的第一个字母组成,中文多称液晶平面显示器或液晶显示器。LCD 的好处有:与 CRT 显示器相比,LCD 的优点主要包括零辐射、低功耗、散热小、体积小、图像还原精确、字符显示锐利等。LCD 有几个基本特点:(1)高亮度:亮度值愈高,画面自然更亮丽,不会朦胧雾雾。亮度的单位为cd/m2,也就是每平方公尺分之烛光。低阶的 LCD 亮度值,有低到 150cd/m2,而高阶的显示器,则可高达 250cd/m2。 (2)高对比:对比愈高,色彩更鲜艳饱和,且会显得立体。相反的,对比低,颜色显的贫瘠,影像也会变得平板。对比值的差别颇大,有低到 100:1,也有高到 600:1,甚至更高。 (3)宽广的可视范围:可视范围简单的说,指的是在屏幕前画面可以看的清楚的范围。可视范围愈大,自然可以看的愈轻松;愈小,只要观看者稍一变动观看位置,画面可能就会看不清楚了。可视范围的算法是从画面中间,至上、下、左、右四个方向画面清楚的角度范围。数值愈大,范围自然愈广,但四个方向的范围不一定对称。当上下、左右对称时,可以将两边的角度值相加,标示为水平:160;垂直:160 ;也可能分开标示为左/右:80;上 /下:80 。某些 LCD 机种的单一角度,甚至只有4050。 (4 )快速讯号反应时间:讯号反应是指系统接收键盘或鼠标的指示后,经 CPU 计算处理,反应至显示器的时间。讯号反应对动画和鼠标移动非常重要,此现象一般而言,只发生在 LCD 液晶显示器上,CRT 传统显像管显示器则无此问题。讯号反应时间愈快,作业处理愈方便。观察的方法之一是将鼠标快速移动(亦即鼠标不断下指示给系统,系统则不断将讯号反应给显示器) ,在一般低阶的 LCD 显示器上,光标在快速移动时,过程中会消失不见,直到鼠标定位,不再移动后一小段时间,才会再度出现;而在一般速度动作时,移动过程亦会清楚的看到鼠标移动痕迹。而 VE500 的超快讯号反应时间快达 16ms(毫秒) ,则让光标移动无时差,移动过程清楚易见,不带来作业困扰。河南机电高等专科学校毕业设计/论文185.2.2 LCD 的 工 作 原 理LCD 的 工 作 原 理 就 是 利 用 液 晶 的 物 理 特 性 : 通 电 时 排 列 变 得 有 序 , 使光 线 容 易 通 过 ; 不 通 电 时 排 列 混 乱 , 阻 止 光 线 通 过 , 说 简 单 点 就 是 让 液 晶 如闸 门 般 地 阻 隔 或 让 光 线 穿 透 。 5.2.3 点 阵 式 LCD 的 特 点点阵式 LCD 显示电路是在系统板上外挂的正式液晶显示模块,模块的数据线、状态、控制线都通过插孔引出,可直接与系统相连。OCMJ 的中文模块系列液晶显示器内含 GB 2312 16*16 点阵国标一级简体汉字和 ASC8*8(半高)及8*16(全高)点阵英文字库。用户输入区位码或 ASCMA 码即可实现文本显示,也可用作一般的点阵图形显示器之用。它提供位点阵和字节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。完全兼容一般的点阵模块。OCMJ 中文模块系列液晶显示器可以实现汉字、ASC码、点阵图形和变化曲线的同屏显示,并可以通过字节点阵图形方式造字。本系列模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令的功能。OCMJ 中文模块所有的设置初始化工作都是在上电时自动完成的,实现了“即插即用” 。同时保留了一条专用的复位线,可对工作中的模块进行软件或者硬件强制复位。5.2.4 LCD 硬 件 接 口 协 议LCD 的硬件接口协议为请求/应答(R EQ/BUSY)握手方式。应答 BUSY 高电平(B USY=1)表示 OCMJ 忙于内部处理,不能接受用户命令;B USY 低电平(B USY=0) 表示 OCMJ 空闲,等待接受用户的命令。发送命令到 OCMJ 可在BUSY=0 后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平 REQ 信号(R EQ=1)通知 OCMJ 请求处理当前数据线上的命令或数据。OCMJ 模块在收到外部的 REQ 高电平信号后立即读取数据线上的命令或数据,同时将应答线 BUSY 变为高电平,表明模块已经收到并正在忙于对此数据的内部处理,此时,用户对模块的写操作已经完成。用户可以撤消数据线上的信号并可作河南机电高等专科学校毕业设计/论文19模块显示以外的其他工作,也可不断地查询应答线 BUSY 是否为低(B USY=0? ) ,如果 BUSY=0,表明模块对用户的写操作已经执行完毕,可以再送下一个数据。如果向模块发出一个完整的显示汉字的命令,包括坐标及汉字代码在内共需 5 个字节,模块在接收到最后一个字节后才开始执行整个命令的内部操作,因此,最后一个字节的应答 BUSY 高电平(B USY=1)持续的时间较长。5.2.5 LCD 引 脚 设 计 及 功 能LCD 液晶显示连接电路如图 5-2 所示。图 5-2 LCD 液晶显示模块与 8031 的硬件连接原理图LCD 液晶显示模块不同引脚具有不同的功能,表 5-1 清晰的表示了各引脚的功能。表 5-1 液晶显示模块引脚特性表引脚 符号 功能1 VDD +5V2 VSS 接地河南机电高等专科学校毕业设计/论文203 VLCD 驱动 LCD,一般将此脚接地4 RES 复位5 E1 读写使能信号 (Master)6 E2 读写使能信号 (Slave)7 R/W 读/写信号: “1” :读“0” :写8 A0 暂存器选择: “0” 写指令寄存器“1” 针对数据寄存器进行读、写操作9 D010 D111 D212 D313 D414 D515 D616 D7数据线17 A LCD 阳极18 K LCD 阴极5.2.6 LCD 与 8255 连 接 电 路 图河南机电高等专科学校毕业设计/论文21图 5-3 LCD 液晶显示连接图LCD 液晶显示连接图见图 5-3。从图中可以看出,8255 的 A 口与 LCD 的数据线直接相连,作为输出口,C 口只用到了 PC3 和 PC7,分别作为输出和输入口。这样,CPU 就通过 8255 控制了 LCD 液晶显示模块。5.2.7 汉 字 显 示 原 理在 LCD 显示中,本设计还增添了汉字显示的功能,实现了在 LCD 液晶屏幕上显示“请输入密码 ”的中文字样的功能,这也用到了汉字显示的一些设计,才能得以实现。根据液晶显示屏的控制指令及时序可知,只要在对模块写入数据的同时保证模块指令操作延时足够,就可以不检查模块状态,达到直接控制的目的。点阵液晶显示屏的一个点对应存储器中的一位,置位则显示,清除则不显示,因此只要控制相应的数据位就可控制液晶显示屏的显示。该液晶显示器采用 1616 点阵汉字,液晶显示器显示一个 1616 点阵需要送进 32 个字节,因此必须将其送入两缓冲区中的相对列中。每一种商品都事先规定好在液晶显示屏上的显示位置,因为该液晶显示器共可显示两行汉字,每行汉字占两页,所以显示每一行汉字时,先根据每个汉字的编号确定其入口地址,然后分别读取它们的前 16 个字节在上半页显示,再分别读取这些汉字的后 16 个字节在下半页显示,这样即可把一行汉字全部显示出来。5.2.8 字 库 的 建 立画一个 16 行 16 列的方格,根据标准汉字字库所提供的汉字点阵字模在方格上分别画出各点阵,是 1 则置 1,是 0 则置 0,构造出汉字的字形,然后按SED1520 的汉字字模排列顺序依次读出转化后的字模,这就是我们所用的液晶显示模块所需要调用的汉字字模形式。按上述方法提取系统中所需要的汉字字模,建立由多个汉字组成的汉字库、多个数字组成的数字库,将这两个字库写入程序中,并存放在单片机的 EPROM 中,以备点阵式液晶显示器显示调用。河南机电高等专科学校毕业设计/论文225.2.9 汉 字 显 示 的 处 理 流 程 图汉字处理流程图见图 5-4。LCD 初始化设置判断是否为汉字显示?根据汉字编号确定其首地址:A*32+DPTR根据汉字编号确定其首地址:A*16+DPTR取前 16 个字节 取前 8 个字节送 LCD 显示 送 LCD 显示取后 16 个字节 取后 8 个字节送 LCD 显示 送 LCD 显示Y数字显示N图 5-4 汉字处理流程图5.2.10 LCD 液 晶 显 示 流 程 图LCD 显示实验流程图见图 5-5。河南机电高等专科学校毕业设计/论文24开始初始化查表读数据BUSY 为 0?数据输出REQ 置位BUSY 为 1?数据读完?REQ 复位结束NYNYNY图 5-5 LCD 显示实验流程图河南机电高等专科学校毕业设计/论文255.2.11 LCD 液 晶 显 示 的 调 试硬件接口电路焊接完成后,需用万用表检查应用系统的各部件线路、元器件安装是否正确。特别是电源部分,其中电源不能接错,要防止电源两输入端短路,电源极性不可接反。关于汉字显示程序的调试:START1: MOV R0, #01HMOV R1, #3CHHE1: MOV DPTR, #PCCMOVX A, DPTRJB ACC.3, HE1ACALL SUB1ACALL SUB2DJNZ R1, HE1ACALL DELAYACALL DELAYACALL DELAYLJMP START1 DELAY: MOV R2, #23HDEL0: MOV R4, #06FHDEL1: MOV R6, #06FHDEL2: DJNZ R6, DEL2DJNZ R4, DEL1DJNZ R2, DEL0RETSUB2: MOV DPTR, #PAMOVX DPTR, AMOV DPTR, #PCTLMOV A, #STOBE1河南机电高等专科学校毕业设计/论文26MOVX DPTR, A INC R0HE2: MOV DPTR, #PCCMOVX A, DPTRJNB ACC.7, HE2MOV DPTR, #PCTLMOV A, #STOBE0MOVX DPTR, A RETSUB1: MOV A, R0 ;显示“请输入密码”MOVC A,A+PCRETDB 0F0H,01D,00D,39D,75D,0F0H,02D,00D,42D,68DDB 0F0H,03D,00D,40D,75D,0F0H,04D,00D,35D,60DDB 0F0H,05D,00D,34D,75D5.3 键 盘 扫 描 设 计 与 实 现5.3.1 键 盘 概 述键盘是一组按键的集合,它是最常用的单片机输入设备。操作人员可以通过键盘输入数据或命令,实现简单的人-机通信。按键是一种常开型按扭开关。平时(常态时) ,按键的两个触点处于断开状态,按下键时它们才闭合(短路) 。键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件译码器实现,并产生键编号或键值才称为编码键盘,如 BCD 码键盘、 ASC码键盘等;靠软件识别的称为非编码键盘。通过键盘,可以将字母、数字、标点符号等输入到计算机中,从而向计算机发出命令,输入中西文字和数据。5.3.2 键 盘 工 作 原 理河南机电高等专科学校毕业设计/论文27键盘的功能就是及时发现被按下的键,并将该按钮所对应的代码送入计算机,用于发现有无按键按下。区分按键位置的是按键扫描电路,产生按键对应代码的是编码电路,将代码送入计算机的是接口电路。依据按键代码生成的原理,可以把计算机键盘分为编码键盘和非编码键盘。编码键盘的每一个按键的代码都是由键盘直接产生并送入计算机的。这种键盘响应速度快,但它以复杂的硬件结构为代价,其复杂性随着按键功能的增加而增加。而且,按键的代码是固定的,不易修改和扩充。 非编码键盘的代码生成是由键盘和 PC 机软件共同完成的。键盘本身使用较为简单的硬件来识别被按下的按键的位置,向 PC 机提供的是该按键的位置码(中间代码) ,然后由系统软件把这些中间代码转换成规定的编码。这种键盘响应速度不如编码键盘快,但它可通过软件为按键重新定义其编码,为扩充键盘功能提供了极大的方便,因而得到广泛的使用。5.3.3 键 盘 电 路 图本系统使用的是非编码键盘,键盘电路见图 5-6。图 5-6 键盘电路图河南机电高等专科学校毕业设计/论文285.3.4 键 盘 接 口 电 路扫描码以串行方式传输给系统板上的键盘接口电路,两者通过一个 5 芯插头座互相连接。P C 机中键盘接口电路主要由单片机 8042 组成,8 042 芯片内有 2KB ROM 和 128B RAM,还有 2 个 8 位的 I/O 端口。 2KB ROM 中存放的是键盘管理程序,1 28B RAM 作为数据缓存器使用。P C 机启动后,8 024 在键盘管理程序的控制下独立于 CPU 工作。C PU 通 过 I/O 指 令 随 时 可 以 对 8042 进 行 读 /写 操 作 。本 设 计 中 的 键 盘 是 通 过 8255 来 控 制 的 , 因 此 , 键 盘 是 与 8255 相 连 接 的 。 键 盘的 RL10 RL17 接 在 8255 的 PB0 PB7; 键 盘 的 KA10 KA12 接 8255 的PC0 PC2。图 5-7 键盘与 8255 连接电路图8255 与键盘连接电路图见图 5-7。由图可知,键盘 8255 的 B 口与键盘相连,作为输入,C 口用了 PC0PC2 作为输出与键盘的 KA 键相连接,通过 8255 的 B口和部分 C 口, CPU 实现了对键盘的控制。5.3.5 键 盘 的 调 试首先判别键盘中有无键按下,由单片机 I/O 口向键盘送(输出)全扫描字,然河南机电高等专科学校毕业设计/论文29后读入(输入)列线状态来判断。方法是:向行线输出全扫描字 00H,把全部行线置为低电平,然后将列线的电平状态读入累加器 A 中。如果有按键按下,总会有一根列线电平被拉至低电平,从而使列输入不全为 1。判断键盘中哪一个键被按下是通过将行线逐行置低电平后,检查列输入状态实现的。方法是:依次给行线送低电平,然后查所有列线状态,如果全为 1,则所按下的键不在此列;如果不全为一,则所按下的键必在此行,而且是在与零电平列线相交的交点上的那个键。键盘上的每个键都有一个键值。键值赋值的最直接办法是将行、列线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到该行置零电平,若读出各列状态为非全 1,这时的行、列数据组合成键值,程序流程图见图 5-8。开始有键闭合?调延时子程序有键闭合?去确定一个键YYNN结束图 5-8 判断有无键按下流程图5.3.6 行 列 式 键 盘 原 理 电 路 实 现 及 程 序河南机电高等专科学校毕业设计/论文30每一水平线(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通。利用这种行列矩阵结构只需 4 条行线和 3 条列线,即可组成具有 4*3 个按键的键盘。在这种行列矩阵式编码键盘的单片机系统中,键盘处理程序首先执行等待按键并确认有无键按下的程序段, 当确认有按键按下后,下一步就要识别是哪一个按键被按下。本设计采用逐行扫描查询法。矩阵式键盘扫描方式工作原理是在行线上有上挂电阻连接电源,因此无键按下时,各行线均为高电平。当采用列线输出低电平时,有键按下相应行线上出现低电平。根据此原理,C PU 对整个键盘进行扫描。所谓扫描即 CPU 不断对列线逐列置低电平,然后检查行线输入状态,确定按键情况。若无键按下时,行线与列线断开,行线上全是高电平或全为“1 ”。例如,当输出列线 PA0 为“0 ”,读到行线 PCO 为“ 0”时,则判断是 0 号键按下;若输出 PA1 为“0 ”,读到 PC1 为“ 0”,则是 1 号键按下,以此类推。扫描全部键盘时间很短,仅十几微秒,而按键时间一次至少几十毫秒,所以只要有键按下,都能被扫描到。键盘测试程序:PA EQU 0CFA0HPB EQU PA+1PC0 EQU PB+1PCTL EQU PC0+1CSEG AT 4000HLJMP STARTCSEG AT 4100HSTART: MOV 42H,#0FFH ;42H 中放显示的字符码,初值为 0FFHSTA1: MOV DPTR,#PCTL ;设置控制字,ABC 口工作于方式 0;AC 口输出而 B 口用于输入MOV A,#82HMOVX DPTR,ALINE: MOV DPTR,#PC0 ;将字符码从 C 口输出显示MOV A,42HCPL AMOVX DPTR,A河南机电高等专科学校毕业设计/论文31CLR AMOV DPTR,#PA ;从 A 口输出全零到键盘的列线MOVX DPTR,AMOV DPTR,#PB ;从 B 口读入键盘行线值MOVX A,DPTRMOV 40H,A ;行线值存于 40H 中CPL A ;取反后如为全零JZ LINEMOV R7,#10H ;有键按下,延时 10MS 去抖动DL0: MOV R6,#0FFHDL1: DJNZ R6,DL1DJNZ R7,DL0MOV DPTR,#PCTL ;重置控制字,让 A 为输入,BC 为输出MOV A,#90HMOVX DPTR,AMOV A,40HMOV DPTR,#PB ;刚才读入的行线值取出从 B 口送出MOVX DPTR,AMOV DPTR,#PA ;从 A 口读入列线值MOVX A,DPTRMOV 41H,A ;列线值存于 41H 中CPL A ;取反后如为全零JZ STA1 ;表示没有键按下MOV DPTR,#TABLE ;TABLE 表首地址送 DPTRMOV R7,#18H ;R7 中置计数值 16MOV R6,#00H ;R6 中放偏移量初值TT: MOVX A,DPTR ;从表中取键码前半段字节,行线值与实CJNE A,40H,NN1 ;际输入的行线值相等吗?不等转 NN1INC DPTR ;相等,指针指向后半字节,即列线值MOVX A,DPTR ;列线值与实际输入的列线值河南机电高等专科学校毕业设计/论文32CJNE A,41H,NN2 ;相等吗?不等转 NN2MOV DPTR,#CHAR ;相等,CHAR 表基址和 R6 中的偏移量MOV A,R6 ;取出相应的字符码MOVC A,A+DPTRMOV 42H,A ;字符码存于 42HBBB: MOV DPTR,#PCTL ;重置控制字,让 AC 为输出,B 为输入MOV A,#82HMOVX DPTR,AJMP STA1 ;转 STARTNN1: INC DPTR ;指针指向后半字节即列线值NN2: INC DPTR ;指针指向下一键码前半字节即行线值INC R6 ;CHAR 表偏移量加一DJNZ R7,TT ;计数值减一 ,不为零则转 TT 继续查找JMP BBBTABLE:DW 0FE06H,0FD06H,0FB06H,0F706H,0EF06H,0DF06H,0BF06H,07F06H ;TABLE为键值表,每个键位占DW 0FE05H,0FD05H,0FB05H,0F705H,0EF05H,0DF05H,0BF05H,07F05H ;两个字节,第一个字节为行DW 0FE03H,0FD03H,0FB03H,0F703H,0EF03H,0DF03H,0BF

温馨提示

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

评论

0/150

提交评论