电子密码锁设计.doc_第1页
电子密码锁设计.doc_第2页
电子密码锁设计.doc_第3页
电子密码锁设计.doc_第4页
电子密码锁设计.doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

20122012 届毕业设计说明书届毕业设计说明书 电子密码锁设计电子密码锁设计 系 、 部: 电气与信息工程院 学生姓名: 黄柏成 指导教师: 戴日光 职称 讲师 专 业: 电子信息工程技术 班 级: 电信 0902 完成时间: 2012 年 5 月 17 日 1 摘 要 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表 以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁, 人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科 学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人 们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具 有安全性高、成本低、功耗低、易操作等优点。 在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式 密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术 上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机 的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入 了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性, 应用日益广泛。 随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、ic 卡辨认) 已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用 于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损 坏,ic 卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类 产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电 子防盗产品的主流。 基于以上思路,本次设计使用 atmel 公司的 at89s52 实现一基于单片机的电子 密码锁的设计,其主要具有如下功能: (1) 设置 6 位密码,密码通过键盘输入,若密码正确,则将锁打开。 (2) 密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必 须再次输入密码,输入新密码时候需要二次确认,以防止误操作。 (3) 密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过 3 次, 锁定键盘。就需要输入超级密码。 电子密码锁的设计主要由三部分组成:44 矩阵键盘接口电路、密码锁的控制 电路、液晶显示电路。另外系统还有 led 提示灯等。 密码锁设计的关键问题是实现密码的输入、清楚、更改、开锁等功能: (1)密码输入功能:按下一个数字键,一个“*”就显示在液晶显示屏上,同时 2 将先前输入的所有“*”向左移动一位。 (2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。 (3)密码更改功能:将输入的值作为新的密码。 (4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打 开,否则不打开。 主要的设计实施过程:首先,选用 atmel 公司的单片机 at89s52,以及选购其 他电子元器件。第二步,使用 protell99se 设计硬件电路原理图,并设计 pcb 图完 成人工布线。第三步,根据所设计的电路图,进行制版焊接。第四步,使用 keil uvision3 软件编写单片机的 c 语言程序、软件调试。联合软、硬件调试电路板,完 成本次毕业设计。 关键词:关键词:44 矩阵键盘;at89s52;密码锁;密码二次确认;液晶显示屏 3 design introduction in our daily life, the security of house, company department, documents and finance forms, also some personal information always used the lock to protect them. if use the normal keys to lock out the door, we should taken many keys with ourself.that is so difficult to use. and if we lost the keys with careless, the security looks very easy to break out. as the developing of the technology,people ask for high securty machines.for satisfy this request, the cipher lock is appeared.the cipher has higher security, lower cost, lower power and easy to use. base on the thinking of the cipher lock, this design uses at89s52 of atmel company to carry out the scm digital cipher lock, its main function as follow: 1. set password with 8 words, enter the words via keybord, if enter the right number, the lock will unlock. 2. password can set and fix by yourself, you can just fix the password when the lock is keeping unlock. it need to enter the new password twice to avoid the wrong activity. 3. alarm function. if enter the wrong password, the mon will show the error message, when enter the wrong password over 3 times, the buzzer will alarm and lock the keybord at the same time. this lock is made by 3 parts: gob circuit of 4x4 matrix keybord , gob circuit of cipher lock, gob circuit of 8 way display output. other wise, the system has led light, and warning buzzer. the main function of this cipher lock is carried out enter, clear, and change the password, and unlock the door. 1. enter the password: press one number button, one signal “-“ will show on the digital tube on the right side, pls put the “-“ to left side at the same time. 2. clear the password: press the clear button to clear all codes you have enter before. 3. change the password: use the new enter number as the new password. password, if yes the lock will open, if not it keep lock. the main process: first, use scm at89s52 of atmel company. second, design the theory chart with protell99se, and design the pcb board. third, compile the c lang. program, resemble, and test with software keil uvision3. fourth, simulate the hardware test 4 with software proteus. last, test the circuit board withe the software and hardware, finish. key word : matrix keybord; at89s52; led digital tube 5 目 录 第 1 章 绪论 7 1.1 背景7 1.2 电子锁7 1.3 电子密码锁的特点7 1.4 电子密码锁的发展趋势8 第 2 章 系统总体设计 9 2.1 系统结构.9 2.2 系统组成.9 2.3 系统可行性分析10 第 3 章 硬件电路设计 .11 3.1 单片机 at89s52 简介.11 3.2 44 矩阵键盘 .15 3.3 复位电路.15 3.4 振荡电路.15 3.5 12864lcd 液晶显示屏 .16 3.6 发光二极管 led .25 3.7 电动锁.25 3.8 蜂鸣器.26 3.9 完整电路原理图 .31 3.10 使用到的元器件列表:.32 第 4 章 软件程序设计 .33 4.1 软件设计流程图.34 4.2 具体功能软件实施.35 参考文献 39 致谢 40 附录 1:pcb 封装电路图 .41 附录 2.1:密码锁设计主程序.42 附录 2.2:键扫程序.47 6 附录 2.3:12864 显示子程序 .49 附录 2.4:at2402 存储子程序 53 第 1 章 绪论 1.1背景 随着社会物质财富的日益增长,安全防盗已成为社会问题。而锁自古以来就 是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便, 这也是制锁者长期以来研制的主题。目前国内,大部分人使用的还是传统的机械锁。 然而,眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。所谓互开率,是各种锁 具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。经国家工商局、国家 内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍。 为何弹子锁的“互开率”会如此之高?据有关专家人士剖析,弹子锁质量好坏 主要取决于弹子数量的多少以及弹子的大小,而弹子的多少和大小受一定条件的限 制。此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前 提下将锁打开。机械锁的这些弊端为一种新型的锁-电子密码锁,提供了发展的 空间。 1.2电子锁 电子锁是采取电子电路控制,以电磁铁或者卫星电机和锁体作为执行装置的机 电一体化锁具,相比传统的机械锁具,电子锁不使用金属钥匙,保密性、精度都有 很大提高。 电子锁的发明思路,源自古代发明的自动机械,例如古希腊数学家赫伦的液压 自动门,中国古代诸葛亮的木牛流马,它们以重力或蒸汽压力驱动,最广泛的用途 乃是用在古代墓道的地下机关。电子工业的诞生,使得以微小电量驱动机械成为可 能,于是有了电子锁一日千里的跃进。 7 1.3电子密码锁的特点 电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关 的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也 有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通 过编程来实现的。其性能和安全性已大大超过了机械锁,主要特点如下: 1保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。 2密码可变。 用户可以经常更改密码,防止密码被盗,同时也可以避免 因人员的更替而使锁的密级下降。 3误码输入保护。当输入密码多次错误时,报警系统自动启动,防止试探 密码。 1.4电子密码锁的发展趋势 从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁, 该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键 盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密 码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记) , 难以被窃(除非自己泄露) 。但是密码不能太简单,太简单了就容易被他人在键盘 上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太 复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。 因此,为了发扬优点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定 密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“自 动更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规 律不为他人所知,因而不怕旁观者窥测;独出心裁的“键盘乱序显示”技术使得键 盘上的固定键位每次显示出的字符不固定,并且显示的窄小角度只能由操作者正面 看得到,因而即使旁观者看见操作动作也难以窥测出密码;“多重密码设定”技术 使得单组密码不一定有效,适合多人分权使用,需要输入两组以上的密码才被认可, 大大提高了保密性,如果限定输入这些密码的先后顺序或时间区段,则保密性还可 提高。在输入密码的过程中,为了限制试探密码的企图,通常输入错误码若干次或 若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。总之,尽管新式电 子防盗锁层出不穷,但键盘式电子密码防盗锁不仅在市场上居于主流地位,而且, 还经常作为其他类型电子防盗锁的辅助输入手段。 8 第 2 章 系统总体设计 2.1 系统结构 at89s52 液晶显示屏 at24c02 led 44 键盘 复位电路 图 21 系统结构图 电源 9 2.2 系统组成 如图 21 所示系统主要由 at89s52、12864 液晶显示器、24c02 芯片、 led、44 矩阵键盘、复位电路等组成。 2.3 系统可行性分析 系统工作原理分析:使用 at89s52 单片机、44 矩阵键盘、led、24c02 芯片, 12864 液晶显示器等。矩阵键盘分别为 0、1、2、3、4、5、6、7、8、9、*、cle、enter、modify。系统开始显示 “input”提示输入密码;输入密码时,led 显示电路显示为“*” ,当密码输入完毕 按下 enter 键时,对输入密码与设定的密码进行比较,若密码正确则 led 显示电路 显示为“一开锁二修改密码”提示锁打开;若密码不正确,led 显示电路显示提示 “密码错误,请重新输入” 。 在输入正确密码后,按下修改键时,液晶显示屏显示电路显示提示“请输入密 码” ,此时输入正确的旧密码,则显示电路会有提示输入新密码在输入新密码后, 显示电路会再次提示“再次输入新密码”若两次输入密码不一致,则修改密码失败, 一致则成功。在修改密码的过程中,如果一开始输入的旧密码错误显示电路会显示 提示,同时系统返回到开始。 若在“再次输入新密码”的时候输入新密码与前次不一致,则会返回到系统开 始。修改密码完成后,系统自动清零上锁。要再次开锁则需要输入正确的密码。 系统中 cel 键用于退格,在输入密码时,若输入错误且未按下 enter 键,按下 cle 可以锁定刚输入的密码,然后再次输入。 为了防止恶意尝试,系统才用若连续输入 3 次错误密码,锁定键盘,可以提高 系统的安全系数,同时也能够保护合法用户的正常使用。 10 第 3 章 硬件电路设计 3.1 单片机 at89s52 简介 at89s52 为 atmel 所生产的一种低功耗、高性能 cmos8 位微控制器,具有 8k 在系统可编程 flsah 存储器。 3.1.1 at89s52 主要功能列举如下: 1、拥有灵巧的 8 位 cpu 和在系统可编程 flash 2、晶片内部具时钟振荡器(传统最高工作频率可至 12mhz) 3、内部程序存储器(rom)为 8kb 4、内部数据存储器(ram)为 256 字节 5、32 个可编程 i/o 口线 6、8 个中断向量源 7、三个 16 位定时器/计数器 8、三级加密程序存储器 9、全双工 uart 串行通道 11 3.1.2 at89s52 各引脚功能介绍: 图 31 at89s52 各引脚 vcc: at89s52 电源正端输入,接+5v。 vss: 电源地端。 xtal1: 单芯片系统时钟的反相放大器输入端。 xtal2: 系统时钟的反相放大器输出端,一般在设计上只要在 xtal1 和 xtal2 上接上 一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20pf 的 小电容,可以使系统更稳定,避免噪声干扰而死机。 reset: at89s52 的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提 升至高电平并保持两个机器周期以上的时间,at89s51 便能完成系统重置的各项动 作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址 0000h 处开始 读入程序代码而执行程序。 ea/vpp: “ea“为英文“external access“的缩写,表示存取外部程序代码之意,低电平 动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部 12 eprom 中)来执行程序。因此在 8031 及 8032 中,ea 引脚必须接低电平,因为其内 部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。 此外,在将程序代码烧录至 8751 内部 eprom 时,可以利用此引脚来输入 21v 的烧 录高压(vpp) 。 ale/prog: ale 是英文“address latch enable“的缩写,表示地址锁存器启用信号。 at89s52 可以利用这支引脚来触发外部的 8 位锁存器(如 74ls373) ,将端口 0 的地 址总线(a0a7)锁进锁存器中,因为 at89s52 是以多工的方式送出地址及数据。 平时在程序执行时 ale 引脚的输出频率约是系统工作频率的 1/6,因此可以用来驱 动其他周边晶片的时基输入。此外在烧录 8751 程序代码时,此引脚会被当成程序 规划的特殊功能来使用。 psen: 此为“program store enable“的缩写,其意为程序储存启用,当 8051 被设成 为读取外部程序代码工作模式时(ea=0) ,会送出此信号以便取得程序代码,通常 这支脚是接到 eprom 的 oe 脚。at89s52 可以利用 psen 及 rd 引脚分别启用存在外部 的 ram 与 eprom,使得数据存储器与程序存储器可以合并在一起而共用 64k 的定址 范围。 port0(p0.0p0.7): 端口 0 是一个 8 位宽的开路汲极(open drain)双向输出入端口,共有 8 个位, p0.0 表示位 0,p0.1 表示位 1,依此类推。其他三个 i/o 端口(p1、p2、p3)则不 具有此电路组态,而是内部有一提升电路,p0 在当做 i/o 用时可以推动 8 个 ls 的 ttl 负载。如果当 ea 引脚为低电平时(即取用外部程序代码或数据存储器) ,p0 就 以多工方式提供地址总线(a0a7)及数据总线(d0d7) 。设计者必须外加一锁 存器将端口 0 送出的地址栓锁住成为 a0a7,再配合端口 2 所送出的 a8a15 合成 一完整的 16 位地址总线,而定址到 64k 的外部存储器空间。 port2(p2.0p2.7): 端口 2 是具有内部提升电路的双向 i/o 端口,每一个引脚可以推动 4 个 ls 的 ttl 负载,若将端口 2 的输出设为高电平时,此端口便能当成输入端口来使用。p2 除了当做一般 i/o 端口使用外,若是在 at89s52 扩充外接程序存储器或数据存储器 时,也提供地址总线的高字节 a8a15,这个时候 p2 便不能当做 i/o 来使用了。 port1(p1.0p1.7): 端口 1 也是具有内部提升电路的双向 i/o 端口,其输出缓冲器可以推动 4 个 ls ttl 负载,同样地若将端口 1 的输出设为高电平,便是由此端口来输入数据。如果 是使用 8052 或是 8032 的话,p1.0 又当做定时器 2 的外部脉冲输入脚,而 p1.1 可 13 以有 t2ex 功能,可以做外部中断输入的触发脚位。 port3(p3.0p3.7): 端口 3 也具有内部提升电路的双向 i/o 端口,其输出缓冲器可以推动 4 个 ttl 负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时 计数控制及外部数据存储器内容的读取或写入控制等功能。 其引脚分配如下: 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,外部数据存储器的读取信号。 rst:复位输入。当振荡器复位器件时,要保持rst 脚两个机器周期的 高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址 的地位字节。在 flash 编程期间,此引脚用于输入编程脉冲。在平时, ale 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。 因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作 外部数据存储器时,将跳过一个ale 脉冲。如想禁止 ale 的输出可在 sfr8eh 地址上置 0。此时, ale 只有在执行 movx,movc 指令是 ale 才起 作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale 禁止, 置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每 个机器周期两次 /psen 有效。但在访问外部数据存储器时,这两次有效的 /psen 信号将不出现。 /ea/vpp:当/ea 保持低电平时,则在此期间外部程序存储器(0000h- ffffh),不管是否有内部程序存储器。注意加密方式1 时,/ea 将内部锁 定为 reset;当/ea 端保持高电平时,此间内部程序存储器。在flash 编 程期间,此引脚也用于施加12v 编程电源( vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。 14 3.2 44 矩阵键盘 如图所示,本系统采用 44 矩阵键盘,16 个按键分为输入数字键: *、0、#、1、2、3、4、5、6、7、8、9;矩阵键盘。 图 32 44 矩阵键盘原理图 3.3 复位电路 图 33 复位电路 时钟电路工作后,在 rest 管脚上加两个机器周期的高电平,芯片内部开始进 行初始复位(如图 33) 。 3.4 振荡电路 15 图 34 振荡电路 本设计晶振选择频率为 12mhz,电容选择 30pf 如图(34)。经计算得单片 机工作胡机器周期为: 12(112m)=1us。 3.5 12864lcd 液晶显示屏 图 35 液晶屏电路原理图 16 3.5.1 概述 带中文字库的 128x64 是一种具有 4 位/8 位并行、2 线或 3 线串行多种接口方式, 内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 12864, 内置 8192 个 16*16 点汉字,和 128 个 16*8 点 ascii 字符集.利用该模块 灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以 显示 84 行 1616 点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著 特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论 硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形 液晶模块。 3.5.2 基本特性: (1)、低电源电压(vdd:+3.0-+5.5v) (2)、显示分辨率:12864 点 (3)、内置汉字字库,提供 8192 个 1616 点阵汉字(简繁体可选) (4)、内置 128 个 168 点阵字符 (5)、2mhz 时钟频率 (6)、显示方式:stn、半透、正显 (7)、驱动方式:1/32duty,1/5bias (8)、视角方向:6 点 (9)、背光方式:侧部高亮白色 led,功耗仅为普通 led 的 1/51/10 (10)、通讯方式:串行、并口可选 (11)、内置 dc-dc 转换电路,无需外加负压 (12)、无需片选信号,简化软件设计 (13)、工作温度: 0 - +55 ,存储温度: -20 - +60 模块接口说明: *注释 1:如在实际应用中仅使用串口通讯模式,可将 psb 接固定低电平,也可以将 模块上的 j8 和“gnd”用焊锡短接。 *注释 2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。 *注释 3:如背光和模块共用一个电源,可以将模块上的 ja、jk 用焊锡短接。 3.5.3 并行接口 管脚号管脚名称电平管脚功能描述 17 1vss0v 电源地 2vcc3.0+5v 电源正 3v0- 对比度(亮度)调整 4 rs(cs) h/l rs=“h”,表示 db7db0 为显示数据 rs=“l”,表示 db7db0 为显示指令数据 5r/w(sid)h/l r/w=“h”,e=“h”,数据被读到 db7db0 r/w=“l”,e=“hl”, db7db0 的数据 被写到 ir 或 dr 6e(sclk)h/l 使能信号 7db0h/l 三态数据线 8db1h/l 三态数据线 9db2h/l 三态数据线 10db3h/l 三态数据线 11db4h/l 三态数据线 12db5h/l 三态数据线 13db6h/l 三态数据线 14db7h/l 三态数据线 15psbh/l h:8 位或 4 位并口方式,l:串口方式(见 注释 1) 16nc- 空脚 17/reseth/l 复位端,低电平有效(见注释 2) 18vout- lcd 驱动电压输出端 19avdd 背光源正端(+5v)(见注释 3) 20kvss 背光源负端(见注释 3) *注释 1:如在实际应用中仅使用并口通讯模式,可将 psb 接固定高电平,也可以将模块上的 j8 和“vcc”用焊锡短接。 *注释 2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。 *注释 3:如背光和模块共用一个电源,可以将模块上的 ja、jk 用焊锡短接。四.模块主要硬件 构成说明 18 3.5.4 控制器接口信号说明 1、rs,r/w 的配合选择决定控制界面的 4 种模式 rsr/w功能说明 ll mpu 写指令到指 令暂存器(ir) lh 读出忙标志 (bf)及地址记 数器(ac)的状 态 hl mpu 写入数据到 数据暂存器 (dr) hh mpu 从数据暂存 器(dr)中读出 数据 2、e 信号 e 状态执行动作结果 高低i/o 缓冲dr配合/w 进行写数据或 指令 高dri/o 缓冲配合 r 进行读数据或 指令 低/低高无动作 3 、忙标志:bf bf 标志提供内部工作情况.bf=1 表示模块在进行内部操作,此时模块不接受外 部指令和数据.bf=0 时,模块为准备状态,随时可接受外部指令和数据.利用 status rd 指令,可以将 bf 读到 db7 总线,从而检验模块之工作状态. 4、字型产生 rom(cgrom): 字型产生 rom(cgrom)提供 8192 个此触发器是用于模块屏幕显示开和关的控 制。dff=1 为开显示(display on),ddram 的内容就显示在屏幕上,dff=0 为关显 示(display off)。dff 的状态是指令 display on/off 和 rst 信号控制的。 5、显示数据 ram(ddram) 模块内部显示数据 ram 提供 642 个位元组的空间,最多可控制 4 行 16 字 19 (64 个字)的中文字型显示,当写入显示数据 ram 时,可分别显示 cgrom 与 cgram 的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、cgram 字型及 cgrom 的中文字型,三种字型的选择,由在 ddram 中写入的编码选择,在 0000h 0006h 的编码中(其代码分别是 0000、0002、0004、0006 共 4 个)将选择 cgram 的 自定义字型,02h7fh 的编码中将选择半角英数字的字型,至于 a1 以上的编码将 自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码 big5(a140d75f),gb(a1a0-f7ffh)。 6、字型产生 ram(cgram) 字型产生 ram 提供图象定义(造字)功能, 可以提供四组 1616 点的自定义图 象空间,使用者可以将内部字型没有提供的图象字型自行定义到 cgram 中,便可和 cgrom 中的定义一样地通过 ddram 显示在屏幕中。 7、地址计数器 ac 地址计数器是用来贮存 ddram/cgram 之一的地址,它可由设定指令暂存器来改 变,之后只要读取或是写入 ddram/cgram 的值时,地址计数器的值就会自动加一, 当 rs 为“0”时而 r/w 为“1”时,地址计数器的值会被读取到 db6db0 中。 8、光标/闪烁控制电路 此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定 ddram 中的光标 或闪烁位置。 3.5.5 指令说明 模块控制芯片提供两套控制命令,基本指令和扩充指令如下: 指令表 1:(re=0:基本指令) 指 令 指 令 码功 能 rs r/w d7d6d5d4d3d2d1 d0 清 除 显 示 0000000001 将 ddram 填满“20h“,并且设定 ddram 的地址计数器 (ac)到“00h“ 地 址 归 位 000000001x 设定 ddram 的地址计数器(ac)到“00h“,并且将游标 移到开头原点位置; 这个指令不改变 ddram 的内容 20 显 示 状 态 开 / 关 0000001dcb d=1: 整体显示 on c=1: 游标 on b=1:游标位置反白允许 进 入 点 设 定 00000001i/d s 指定在数据的读取与写入时,设定游标的移动方向及 指定显示的移位 游 标 或 显 示 移 位 控 制 000001s/c r/lxx 设定游标的移动与显示的移位控制位;这个指令不改 变 ddram 的内容 功 能 设 定 00001dlxrexx dl=0/1:4/8 位数据 re=1: 扩充指令操作 re=0: 基本指令操作 设 定 cg ra m 地 址 0001ac5 ac4 ac3 ac2 ac1 ac0设定 cgram 地址 设 定 0010ac5 ac4 ac3 ac2 ac1 ac0 设定 ddram 地址(显示位址) 第一行:80h87h 21 dd ra m 地 址 第二行:90h97h 读 取 忙 标 志 和 地 址 01bf ac6 ac5 ac4 ac3 ac2 ac1 ac0 读取忙标志(bf)可以确认内部动作是否完成,同时可 以读出地址计数器(ac)的值 写 数 据 到 ra m 10数据 将数据 d7d0 写入到内部的 ram (ddram/cgram/iram/gram) 读 出 ra m 的 值 11数据 从内部 ram 读取数据 d7d0 (ddram/cgram/iram/gram) 指令表 2:(re=1:扩充指令) 指 令 指 令 码 功 能 rsr/wd7d6d5d4d3d2d1d0 待 命 模 式 0000000001 进入待命模式,执行其他指令都棵终止 待命模式 22 卷 动 地 址 开 关 开 启 000000001sr sr=1:允许输入垂直卷动地址 sr=0:允许输入 iram 和 cgram 地址 反 白 选 择 00000001r1r0 选择 2 行中的任一行作反白显示,并可决定反 白与否。 初始值 r1r000,第一次设定为反白显示, 再次设定变回正常 睡 眠 模 式 0000001slxx sl=0:进入睡眠模式 sl=1:脱离睡眠模式 扩 充 功 能 设 定 00001clxreg0 cl=0/1:4/8 位数据 re=1: 扩充指令操作 re=0: 基本指令操作 g=1/0:绘图开关 设 定 绘 图 ra m 地 址 001 0 ac6 0 ac5 0 ac4 ac3 ac3 ac2 ac2 ac1 ac1 ac0 ac0 设定绘图 ram 先设定垂直(列)地址 ac6ac5ac0 再设定水平(行)地址 ac3ac2ac1ac0 将以上 16 位地址连续写入即可 备注:当 ic1 在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取 bf 标志时, bf 需为零,方可接受新的指令;如果在送出一个指令前并不检查 bf 标志,那么在前一个指令和这 个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。 23 3.5.6应用举例: 1、使用前的准备: 先给模块加上工作电压,再按照下图的连接方法调节 lcd 的对比度,使其显示出黑 色的底影。此过程亦可以初步检测 lcd 有无缺段现象。 2、字符显示: 带中文字库的 128x64-0402b 每屏可显示 4 行 8 列共 32 个 1616 点阵的汉字,每 个显示 ram 可显示 1 个中文字符或 2 个 168 点阵全高 ascii 码字符,即每屏最多 可实现 32 个中文字符或 64 个 ascii 码字符的显示。带中文字库的 128x64-0402b 内部提供 1282 字节的字符显示 ram 缓冲区(ddram)。字符显示是通过将字符显 示编码写入该字符显示 ram 实现的。根据写入内容的不同,可分别在液晶屏上显示 cgrom(中文字库)、hcgrom(ascii 码字库)及 cgram(自定义字形)的内容。三 种不同字符/字型的选择编码范围为:00000006h(其代码分别是 0000、0002、0004、0006 共 4 个)显示自定义字型,02h7fh 显示半宽 ascii 码 字符,a1a0hf7ffh 显示 8192 种 gb2312 中文字库字形。字符显示 ram 在液晶模块 中的地址 80h9fh。字符显示的 ram 的地址与 32 个字符显示区域有着一一对应的 关系,其对应关系如下表所示。 80h81h82h83h84h85h86h87h 90h91h92h93h94h95h96h97h 88h89h8ah8bh8ch8dh8eh8fh 98h99h9ah9bh9ch9dh9eh9fh 3 、图形显示: 先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地 址) 垂直地址范围 ac5.ac0 水平地址范围 ac3ac0 绘图 ram 的地址计数器(ac)只会对水平地址(x 轴)自动加一,当水平地址=0fh 时 会重新设为 00h 但并不会对垂直地址做进位自动加一,故当连续写入多笔资料时, 程序需自行判断垂直地址是否需重新设定。gdram 的坐标地址与资料排列顺序如下 图: 4、应用说明: 用带中文字库的 128x64 显示模块时应注意以下几点: 欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址, 24 再写入中文字符编码。 显示 ascii 字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设 定一次显示地址,由模块自动对地址加 1 指向下一个字符位置,否则,显示的字符 中将会有一个空 ascii 字符位置。 当字符编码为 2 字节时,应先写入高位字节,再写入低位字节。 模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取 bf 标 志时 bf 需为“0”,方可接受新的指令。如果在送出一个指令前不检查 bf 标志, 则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定 执行完成。指令执行的时间请参考指令表中的指令执行时间说明。“re”为基本 指令集与扩充指令集的选择控制位。当变更“re”后,以后的指令集将维持在最后 的状态,除非再次变更“re”位,否则使用相同指令集时,无需每次均重设“re” 位。 3.6 发光二极管 led 图 36 二极管 led 由于 led 使用 p0 口驱动要加上上拉电阻如图 36。 3.7 电动锁 25 图 37 电动锁 由于电动锁使用 p0 口驱动要加上上拉电阻如图 37。 3.8 蜂鸣器 图 38 蜂鸣器 由于蜂鸣器使用 p0 口驱动要加上上拉电阻如图 38。 26 3.9 at24c02 简介 3.9.1 at24c02 串行 e2prom 的读写 i2c 总线是一种用于 ic 器件之间连接的二线制总线。它通过 sda(串行数 据线)及 scl(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址 识别每个器件:不管是单片机、存储器、lcd 驱动器还是键盘接口。 1i2c 总线的基本结构 采用 i2c 总线标准的单片机或 ic 器件,其内部不仅有 i2c 接口电路,而且将 内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少 了器件片选线的连接。cpu 不仅能通过指令将某个功能单元电路挂靠或摘离总线, 还可对该单元的工作状况进行检测,从而实现对硬件系统的既简单又灵活的扩展与 控制。i2c 总线接口电路结构如图 1 所示。 图 39 i2c 总线接口电路结构 2双向传输的接口特性 传统的单片机串行接口的发送和接收一般都各用一条线,如 mcs51 系列的 txd 和 rxd,而 i2c 总线则根据器件的功能通过软件程序使其可工作于发送或接收方式。 当某个器件向总线上发送信息时,它就是发送器(也叫主器件),而当其从总线上接 收信息时,又成为接收器(也叫从器件)。主器件用于启动总线上传送数据并产生时 钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。i2c 总线的控制 完全由挂接在总线上的主器件送出的地址和数据决定。在总线上,既没有中心机, 也没有优先机。 总线上主和从(即发送和接收)的关系不是一成不变的,而是取决于此时数据传 送的方向。sda 和 scl 均为双向 i/o 线,通过上拉电阻接正电源。当总线空闲时, 两根线都是高电平。连接总线的器件的输出级必须是集电极或漏极开路,以具有线 27 “与”功能。i2c 总线的数据传送速率在标准工作方式下为 100kbit/s,在快速方 式下,最高传送速率可达 400kbit/s。 3i2c 总线上的时钟信号 在 i2c 总线上传送信息时的时钟同步信号是由挂接在 scl 时钟线上的所有器件 的逻辑“与”完成的。scl 线上由高电平到低电平的跳变将影响到这些器件,一旦 某个器件的时钟信号下跳为低电平,将使 scl 线一直保持低电平,使 scl 线上的所 有器件开始低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不能影 响 scl 线的状态,于是这些器件将进入高电平等待的状态。 当所有器件的时钟信号都上跳为高电平时,低电平期结束,scl 线被释放返回 高电平,即所有的器件都同时开始它们的高电平期。其后,第一个结束高电平期的 器件又将 scl 线拉成低电平。这样就在 scl 线上产生一个同步时钟。可见,时钟低 电平时间由时钟低电平期最长的器件确定,而时钟高电平时间由时钟高电平期最短 的器件确定。 4数据的传送 在数据传送过程中,必须确认数据传送的开始和结束。在 i2c 总线技术规范中, 开始和结束信号(也称启动和停止信号)的定义如图 2 所示。当时钟线 scl 为高电 平时,数据线 sda 由高电平跳变为低电平定义为“开始”信号;当 scl 线为高电平 时,sda 线发生低电平到高电平的跳变为“结束”信号。开始和结束信号都是由主 器件产生。在开始信号以后,总线即被认为处于忙状态;在结束信号以后的一段时 间内,总线被认为是空闲的。 图 310 开始和结束信号的定义 i2c 总线的数据传送格式是:在 i2c 总线开始信号后,送出的第一个字节数据 是用来选择从器件地址的,其中前 7 位为地址码,第 8 位为方向位(r/w)。方向位 为“0”表示发送,即主器件把信息写到所选择的从器件;方向位为“1”表示主器 件将从从器件读信息。开始信号后,系统中的各个器件将自己的地址和主器件送到 总线上的地址进行比较,如果与主器件发送到总线上的地址一致,则该器件即为被 主器件寻址的器件,其接收信息还是发送信息则由第 8 位(r/w)确定。 在 i2c 总线上每次传送的数据字节数不限,但每一个字节必须为 8 位,而且每 个传送的字节后面必须跟一个认可位(第 9 位),也叫应答位(ack)。数据的传 28 送过程如图 3 所示。每次都是先传最高位,通常从器件在接收到每个字节后都会作 出响应,即释放 scl 线返回高电平,准备接收下一个数据字节,主器件可继续传送。 如果从器件正在处理一个实时事件而不能接收数据时,(例如正在处理一个内部中 断,在这个中断处理完之前就不能接收 i2c 总线上的数据字节)可以使时钟 scl 线 保持低电平,从器件必须使 sda 保持高电平,此时主器件产生 1 个结束信号,使传 送异常结束,迫使主器件处于等待状态。当从器件处理完毕时将释放 scl 线,主器 件继续传送。 图 311 数据的传送过程 当主器件发送完一个字节的数据后,接着发出对应于 scl 线上的一个时钟 (ack)认可位,在此时钟内主器件释放 sda 线,一个字节传送结束,而从器件的 响应信号将 sda 线拉成低电平,使 sda 在该时钟的高电平期间为稳定的低电平。从 器件的响应信号结束后,sda 线返回高电平,进入下一个传送周期。 i2c 总线还具有广播呼叫地址用于寻址总线上所有器件的功能。若一个器件不 需要广播呼叫寻址中所提供的任何数据,则可以忽略该地址不作响应。如果该器件 需要广播呼叫寻址中提供的数据,则应对地址作出响应,其表现为一个接收器。 5总线竞争的仲裁 总线上可能挂接有多个器件,有时会发生两个或多个主器件同时想占用总线的 情况。例如,多单片机系统中,可能在某一时刻有两个单片机要同时向总线发送数 据,这种情况叫做总线竞争。i2c 总线具有多主控能力,可以对发生在 sda 线上的 总线竞争进行仲裁,其仲裁原则是这样的:当多个主器件同时想占用总线时,如果 某个主器件发送高电平,而另一个主器件发送低电平,则发送电平与此时 sda 总线 电平不符的那个器

温馨提示

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

评论

0/150

提交评论