密码锁设计论文_第1页
密码锁设计论文_第2页
密码锁设计论文_第3页
密码锁设计论文_第4页
密码锁设计论文_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、湄洲湾职业技术学院湄洲湾职业技术学院密码锁设计论文密码锁设计论文 系系 别:别: 自动化工程系 年年 级:级: 10 级 专专 业:业:电气自动化技术 姓姓 名:名: 小 锋 学学 号:号: 1001020252导师姓名:导师姓名: 李清生 职职 称:称: 教授 20132013 年年 5 5 月月 2929 日日目 录1. 前言 .- 1 -2. 系统设计参数要求 .- 3 -3. 系统设计 .- 4 -3.1 系统设计总框图.- 4 -3.2 各模块原理说明.- 4 -3.3 系统总原理图说明.- 9 -3.4 系统印刷电路板制作图 .- 9 -3.5 系统的操作说明.- 10 -3.6

2、系统操作注意事项.- 10 -参考文献 .- 11 -致谢语 .- 12 -附 录 .- 13 -附录 1.电路总原理图.- 13 -附录 2.电路板制作图.- 14 -附录 3.电路元件清单.- 15 -附录 4.源程系.- 16 - 湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 1 -1.1. 前言随着电子技术的发展,电子锁的设计也在不断的发展。目前,市场上出现的电子锁有键盘式电子密码锁、遥控式电子防盗锁、卡式电子防盗锁、生物特征防盗锁等。从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘

3、式电子密码锁在键盘上输入,操作简单,因而易于掌握,其突出优点是“密码”是存储在被授权人脑子里的数字和字符,既准确又可靠,不会丢失,难以被窃。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。遥控式电子防盗锁主要有光遥控和无线电遥控两类。光遥控又分为红外线遥控和可见光遥控,光遥控利用窄角度的光传输密码,优点是传输信息量可以很大、速度极快、人眼识别不出来,又无法在光路径上以仪器捕获信号试图复制,因此保密性极高。无线电遥控的优点也是传输信息量可以很大、速度快、人

4、眼识别不出来,但发射的信号弥散空间,容易被仪器捕获,因此适合采用变化的密码,如所谓的“跳码” 、 “滚码”(均是随机变化而无明显规律),这样即使捕获了当时的信号也无利用、复制的价值。使用遥控式电子防盗锁,需要仔细保管遥控器(即钥匙),而且对某些应用而言,这种钥匙大了一点,可能还要使用特定的电池。当前最为活跃的产品则是使用各种“卡”作为钥匙的电子防盗锁,无论卡的种类如何多种多样,按照输入卡的操作方式,都可分为接触式卡和非接触式卡两大类。值得注意的是,由于某些行业的安全要求较高,通常不得使用可靠性差、易被仿制的磁卡。目前接触式卡的技术成熟、价格较低,应用也较为广泛;非接触式卡使用隐蔽、方便,大有后

5、来居上之势。储存信息量大是卡的优势,它不仅作为钥匙,还可载入多项个人信息,特别适合金融业注重“验明正身”的行业特点,而且一卡多用(如入门、开锁、存储、付费等)带来持卡人的便利。使用这类电子防盗锁,需要仔细保管卡(即钥匙),尤其丢失了必须尽快取消该卡的授权。利用生物特征做密码的电子防盗锁,由于人的某些与生俱来的个性特征(如手、眼睛、声音的特征)几乎不可重复,可作为唯一的“钥匙”并且可以“随身携带”不怕丢失,因此受到人们的普遍欢迎。现今,生物特征技术发展迅速,除了价格因素和尺寸体积因素对普及尚有所限制外,生物特征电子防盗湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 2 -锁在金融业的前景

6、被人们普遍看好。不过,在要求保密性极高的情况下,还不宜单独使用生物特征电子防盗锁,最好是组合其他电子信息作为密码。由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,这样对盗贼而言是望尘莫及的。组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是千挑百选、自得其所。湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 3 -2. 系统设计参数要求系统设计的参数要求:(1)键盘扫描,检测用户输入的密码是否与存储的密码一样,假如一样的话则驱动继电器把

7、门打开,不一样则在液晶屏幕上显示错误。(2)用户成功输入密码之后可以修改密码,密码可以存储在 AT24C02 上面,掉电保存。(3)用户成功输入密码之后可以设置最多允许输入密码的错误次数,这个次数掉电能保存。湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 4 -3. 系统设计3.1 系统设计总框系统设计总框图图3.1.1 本系统以 STC89C52 单片机为控制核心,对系统进行初始化,主要完成对键盘的响应、液晶显示等功能的控制,起到总控和协调各模块之间工作的作用。主控模块STC89C52液晶显示模块LCD1602矩阵键盘模块继电器模块数据存储模块图 2-1 系统结构框图本系统结构如图本

8、系统结构如图 2-12-1 所示,本设计可分为以下模块:单片机主控模块、数据存储模块、所示,本设计可分为以下模块:单片机主控模块、数据存储模块、液晶显示模块、矩阵键盘模块。下面对各个模块的设计方案逐一进行论证分析液晶显示模块、矩阵键盘模块。下面对各个模块的设计方案逐一进行论证分析 3.2 各模块各模块原理说明原理说明3.2.1 主控模块STC89C52 单片机最初是由 Intel 公司开发设计的,但后来 Intel 公司把 51 核的设计方案卖给了几家大的电子设计生产商,譬如 SST、Philip、Atmel 等大公司。如是市面上出现了各式各样的但均以 51 为内核的单片机,倒是 Intel

9、公司自己的单片机却显得逊色了。这些各大电子生产商推出的单片机都兼容 51 指令、并在 51 的基础上扩展一些功能而内部结构是与 51 一致的。STC89C52 有 40 个引脚,4 个 8 位并行 I/O 口,1 个全双工异步串行口,同时内含 5个中断源,2 个优先级,2 个 16 位定时/计数器。STC89C52 的存储器系统由 4K 的程序存储器(掩膜 ROM),和 128B 的数据存储器(RAM)组成。STC89C52 单片机的基本组成框图见图 2-2。湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 5 -时钟电路ROM/EPROM/Flash 4KBRAM128BSFR 21个

10、定时个/计数器2CPU总线控制中断系统5个中断源2个优先级串行口全双工1个4个并行口XTAL2XTAL1RST EAALEPSENP0P1P2P3VssVcc图 2-2 STC89C52 单片机结3.2.2 液晶原理介绍和模块简介显示器是人与机器沟通的重要界面,早期以显像管(CRT/Cathode Ray Tube)显示器为主,但随着科技不断进步,各种显示技术如雨后春笋般诞生,近来由于液晶(LCD)显示器具有轻薄短小、耗电量低、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,在近年来价格不断下跌的吸引下,逐渐取代 CRT 之主流地位,显示器明日之星架势十足。液晶是一种既具有液体的流动性又具有

11、光学特性的有机化合物,它的透明程度和呈现的颜色受外加电场的影响,利用这特点便可做成字符显示器。液晶显示器(LCD)英文全称为 Liquid Crystal Display,它一种是采用了液晶控制透光度技术来实现色彩的显示器。和 CRT 显示器相比,LCD 的优点是很明显的。由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变,这样就无须考虑刷新率的问题。显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分用的是LCD 液晶模块,采用一个 161 的字符型液晶显示模块。 点阵图形式液晶由点阵图形式液晶由 M 行行N 列个显示单元组成,假设列个显示单元组成,假设 LCD 显示

12、屏有显示屏有 64 行,每行行,每行有有 128 列,每列,每 8 列对应列对应 1 个字节的个字节的 8 个位,即每行由个位,即每行由 16 字节,共字节,共 168=128 个点个点组成,屏上组成,屏上 6416 个显示单元和显示个显示单元和显示 RAM 区区 1024 个字节相对应,每一字节的内容个字节相对应,每一字节的内容和屏上相应位置的亮暗对应。一个字符由和屏上相应位置的亮暗对应。一个字符由 68 或或 88 点阵组成,即要找到和屏上某几点阵组成,即要找到和屏上某几个位置对应的显示个位置对应的显示 RAM 区的区的 8 个字节,并且要使每个字节的不同的位为个字节,并且要使每个字节的不

13、同的位为1,其它的为,其它的为0,为,为1的点亮,为的点亮,为0的点暗,这样一来就组成某个字符。但对于内带字符发生器的控的点暗,这样一来就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在制器来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在 LCD 上开始显上开始显示的行列号及每行的列数找出显示示的行列号及每行的列数找出显示 RAM 对应的地址,设立光标,在此送上该字符对应对应的地址,设立光标,在此送上该字符对应的代码即可的代码即可.LCD1602 液晶模块采用 HD44780 控制器,hd44780 具有简单而功能较强的指令集,

14、可以实现字符移动,闪烁等功能,LM016L 与单片机 MCU 通讯可采用 8 位或 4 位并行传湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 6 -输两种方式,hd44780 控制器由两个 8 位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF) ,显示数 RAM(DDRAM) ,字符发生器 ROMA(CGOROM)字符发生器 RAM(CGRAM) ,地址计数器 RAM(AC)。IR 用于寄存指令码,只能写入不能读出,DR 用于寄存数据,数据由内部操作自动写入 DDRAM 和 CGRAM,或者暂存从DDRAM 和 CGRAM 读出的数据,BF 为 1 时,液晶模块处于内部模

15、式,不响应外部操作指令和接受数据,DDTAM 用来存储显示的字符,能存储 80 个字符码,CGROM 由 8 位字符码生成 5*7 点阵字符 160 中和 5*10 点阵字符 32 种.8 位字符编码和字符的对应关系,可以查看参考文献(30)中的表 4. CGRAM 是为用户编写特殊字符留用的,它的容量仅64 字节,可以自定义 8 个 5*7 点阵字符或者 4 个 5*10 点阵字符,AC 可以存储 DDRAM和 CGRAM 的地址,如果地址码随指令写入 IR,则 IR 自动把地址码装入 AC,同时选择DDRAM 或 CGRAM 但愿,LCD1602 液晶模块的引脚图如图 2-5 所示。图 2

16、-4 LCD1601 引脚图LCD1602 引脚介绍:Vss(1 脚):一般接地。Vdd(2 脚):接电源。Vee(3 脚):液晶显示器对比度调整端,接电源时对比度最弱,接地时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度) 。RS(4 脚):RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令寄存器。R/W(5 脚):R/W 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。E(6 脚):E(或 EN)端为使能(enable)端,下降沿使能。DB0(7 脚):底 4 位三态、 双向数据总线 0 位(最低位)。DB1(

17、8 脚):底 4 位三态、 双向数据总线 1 位。DB2(9 脚):底 4 位三态、 双向数据总线 2 位。DB3(10 脚):底 4 位三态、 双向数据总线 3 位。DB4(11 脚):高 4 位三态、 双向数据总线 4 位。DB5(12 脚):高 4 位三态、 双向数据总线 5 位。DB6(13 脚):高 4 位三态、 双向数据总线 6 位。DB7(14 脚):高 4 位三态、 双向数据总线 7 位(最高位)(也是 busy flang)。寄存器选择控制如表 2-1。表 2-1 寄存器选择控制RSR/W操作说明湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 7 -00写入指令寄存器

18、(清除屏等)01读 busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据3.2.3 矩阵键盘模块设计S 2S W -PBS 3S W -PBS 4S W -PBS 5S W -PBS 8S W -PBS 9S W -PBS 10S W -PBS 11S W -PBS 13S W -PBS 14S W -PBS 15S W -PBS 16S W -PBS 18S W -PBS 19S W -PBS 20S W -PBS 21S W -PBP3.3P3.2P3.1P3.0P3.4P3.5P3.6P3.7图 2-6 矩阵键盘模块

19、电路图硬件电路设计图如上图所示。把单片机的 P2.0P2.7 端口通过 8 联拨动拨码开关连接到“4*4 行列式键盘” ,其中 P2.0-P2.3 作为列线,P2.4-P2.7 作为行线,系统首先通过 CPU 对全部键盘进行扫描,即把第一根行线置为“0”状态,其余行线置于“1”状态,读入输入缓冲器的状态,若其状态全为“1”表明该行无键按下,再将第二根行线置为“0”状态,同样读入输入缓冲器的状态,如其状态也全为“1” ,则置第一根行线置为“0”状态,以此类推。如读入输入缓冲器的状态不全为“1” ,确定哪一根列线为“0”状态,当某个键的行线和列线都为“0”状态时,表明该键按下。矩阵式键盘模式以 N

20、 个端口连接控制 N*N 个按键,实时在 LED 数码管上显示按键信息。显示按键信息,省下了很多的 I/O 端口为他用,相反,独立式按键虽编程简单,但占用 I/O 口资源较多,不适合在按键较多的场合应用。并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要 12 到 16 个按键。矩阵式键盘简介:矩阵式键盘又称行列键盘,它是用 N 条 I/O 线作为行线,N 条 I/O 线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为 N*N 个。这种行列式键盘结构能有效地提高单片机系统中 I/O 口的利用率。最常见

21、的键盘布局如图 1 所示。一般由 16 个按键组成,在单片机中正好可以用一个 P 口实现 16湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 8 -个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。图 2-7 键盘布局 矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。源的节约,降低对操作者本身素质的要求。3.2.4 继电器模块设计电磁继电器是有触点电继电器的一种。它是利用电磁效应实现电路开、关控制作用的元件,广泛应用在电子设备、

22、仪器仪表及自动化设备中。在各种自动控制设备中,都要求用一个低压电路提控制一个高压的电气电路。这样不仅可以为电子线路和电气电路提供良好的电隔离,还可以保护电子电路和人员安全。本设计用一个 LED 的亮灭模拟密码锁的开关。K1R elay-S PDTQ12N3904GND1KR 6VC CVC CD41N4007P1.5D5LED01KR 7GNDVC C图 2-8 继电器模块电路图3.2.5 数据存储模块设计3.2.5.1 AT24C02 功能描述管脚定义AT24C02 是一个 2K 位串行 CMOS E2PROM, 内部含有 256 个 8 位字节,CATALYST 公司的先进 CMOS 技术

23、实质上减少了器件的功耗。AT24C02 有一个 16 字节页写缓冲器。该器件通过 IC 总线湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 9 -接口进行操作,有一个专门的写保护功能。AT24C02 支持 IC,总线数据传送协议 IC,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端 A0、A1 和 A2 可以实现将最多 8 个AT24C02 器件连接到总线上。3.2.5.2 管脚定义及接口实

24、现各个引脚功能如下:(1)SCL 串行时钟 AT24C02 串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。 (2)SDA 串行数据/地址 AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR) 。 (3)A0、A1、A2 器件地址输入端 这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为 0。当使用AT24C02 时最大可级联 8 个器件。如果只有一个 AT24C02 被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到 Vss,如果只有一个

25、AT24C02 被总线寻址这三个地址输入脚(A0、A1、A2 )必须连接到 Vss。 (4)WP 写保护 如果 WP 管脚连接到 Vcc,所有的内容都被写保护只能读。当 WP 管脚连接到 Vss 或悬空允许器件进行正常的读/写操作。3.3 系统总原理图说明系统总原理图说明本系统是以AT89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加声光提示。本系统程序设计的内容为: 密码的设定,在此程序中密码是固定在程序存储器ROM中,密码为6位。密码的输入问题:根据事先设计好的密码输入,输完后按确认键将执行相应的功能。湄洲湾

26、职业技术学院 2013 届毕业生设计产品说明书- 10 -3.4 系统印刷电路板制作图系统印刷电路板制作图电路板制作图(见附录二)3.5 系统的操作说明系统的操作说明键盘数字,共计数字键10个,功能键6个,用44组成09数字键、确认键F及修改键C,10个数字键用来输入密码,另外6个功能键分别是:A、B、C、D、E、F。其中C键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。F键的功能是确认输入的密码。其中A、B、D、E无实际功能。3.6 系统操作注意事项系统操作注意事项1.通电使用前先对照电路板与电路图是否有错焊、漏焊、短路、开路、元器件相碰等现象,有要处理好后再使用。2.通电

27、使用前先检查好电路板是否与电源供电线、驱动电路开关与负载供电线、负载供电线之间相互接反,不得在接错的情况下通电,要处理好后再使用。3.通电使用时人体不得与电路板线路任何一个部位相碰,防止触电,注意安全。4.应把电极片与电路板隔离,避免电极片与电路板上元器件相碰触发生短路现象。 5.通电时应把电路板放在绝缘物体上,避开其他导电物体避免发生短路现象。6.使用时闻到烧焦味、发现元器件或集成块冒烟烧毁应立即断开电源,待电路板查明原因处理好后才可以继续通电使用。7.调试电路时应小心操作,避免万用表笔或其它导电工具造成人为短路。8.跟换电路板元件、焊接时应断开电源后再操作避免造成元器件击穿或电路短路现象。

28、湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 11 -参考文献1 张齐,朱宁西.单片机应用系统设计技术M.北京:电子工业出版社,2009.12 王为青,邱文勋.51 单片机应用开发案例精选M.北京:人民邮电出版社,2007.83 万光毅.单片机实验与实践教程 1M.北京:航空航天大学出版社,2006.54 李建忠.单片机原理及应用M.西安:电子科技大学出版社,2002.25 王守中,聂元铭. 51 单片机开发入门与典型实例M. 北京:人民邮电出版社,20096 吴金戌, 沈庆阳, 郭庭吉. 8051 单片机实践与应用M. 北京:清华大学出版社,20047 钟富昭,张晨. 8051 单

29、片机典型模块设计与应用M. 北京:人民邮电出版社,20078 胡学海. 单片机及应用系统设计M. 北京:北京电子工业出版社,20019 楼然苗. 李光飞 51 系列单片机设计实例M. 北京:北京航空航天大学出版社,200610 陈小忠,黄宁.单片机接口技术实用子程序M.北京:北京人民邮电出版社,2005.湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 12 -致谢语为期一个学期的毕业设计已让我非常痛苦的接近尾声了,我的大学生涯也即将圈上一个句号。此刻我的心中却有些怅然若失,因为那些熟悉的电子系的恩师们和各位可爱的同学们,我们也即将挥手告别了。在毕业设计期间李清生老师召集我们开会让我们确

30、定题目,还通过 QQ、短信、Email 等方式询问设计进程。使得我的毕业设计保质保量顺利完成,为我的毕业设计画上一个完美的句号,在此我在一次由衷的感谢她。李清生老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他循循善诱的教导和不拘一格的思路给予我无尽的启迪,这些都将使我终生受益。同时,我要感谢三年来教过我的翁娟钗老师、赵丽琼老师、陈辉煌老师等众多老师。我以有你们这样的老师为荣,从你们身上学到的知识我无以回报,谨此一并表达我的谢意!还有我要感谢我的室友们,从遥远的家来到这个陌生的城市里,是你们和我共同维系着彼此之间兄弟般的感情,维系着寝室那份家的融洽。最后,要感谢我的爸爸妈妈,焉得谖草,

31、言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。大学生活在弹指挥间即将告别,有太多的不舍、无尽的留恋。今天我以母校为荣,有朝一日母校将以我为荣,我即将出发,路在前方,一定到达!湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 13 -附 录附录附录 1.电路总原理图电路总原理图 P1.01P1.12P1.23P1.34P1.45P1.5/M OS I6P1.6/M IS O7P1.7/S C K8R ES ET9P3.010P3.111P3.212P3.313P3.414P3.515P3.616P3.717XTAL218XTAL119VS S20P2.021P2.122P2

32、.223P2.324P2.425P2.526P2.627P2.728PS EN29ALE30EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VC C40U189s52P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7VC CP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7VC C12Y1XTAL30pFC 230pFC 310uFC 110KR 5VC CS 6S W -PB1234

33、56789P11K排排VC CP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7VS S1VC C2VEE3R S4R W5EN6DB 07DB 18DB 29DB 310DB 411DB 512DB 613DB 714A15K16LC D1lcd1602VC CVC CP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.2P1.110KR 2VC CS 2S W -PBS 3S W -PBS 4S W -PBS 5S W -PBS 8S W -PBS 9S W -PBS 10S W -PBS 11S W -PBS 13S W -PBS 14S W -P

34、BS 15S W -PBS 16S W -PBS 18S W -PBS 19S W -PBS 20S W -PBS 21S W -PBP3.3P3.2P3.1P3.0P3.4P3.5P3.6P3.7D1LED01KR 1VC CD2LED01KR 3VC CD3LED01KR 4VC CP2.1P2.4P2.7K1R elay-S PDTQ12N39041KR 6VC CVC CD41N4007P1.5A01A12A23GND4S DA5S C L6W P7VC C8U224C 02VC CP1.3P1.4D5LED01KR 7VC C1234P2Header 4VC C湄洲湾职业技术学院 2

35、013 届毕业生设计产品说明书- 14 -附录附录 2.电路板制作图电路板制作图湄洲湾职业技术学院 2013 届毕业生设计产品说明书- 15 -附录附录 3.电路元件清单电路元件清单STC89C52 1 个个30PF 电容电容 2 个个10K 电阻电阻 3 个个1K 电阻电阻 1 个个10UF 电容电容 2 个个10K 排阻排阻 1 个个10K 电位器电位器 1 个个DIP40 插座插座 1 个个轻触按键轻触按键 17 个个12M 晶振晶振 1 个个24C02 1 个个8550 1 个个继电器继电器 1 个个LED 3 个个LCD1602 1 个个湄洲湾职业技术学院 2013 届毕业生设计产品

36、说明书1系统源程序#include#includeLCD1602.h#includekey.h#include24c02.h sbit LED1 = P27;sbit LED2 = P24;sbit LED3 = P21;sbit RELAY = P15;/继电器unsigned char UserInput6=32,30,30,30,30,30;bit FlagInputPassword = 0;bit FlagNewPassword = 0;bit FlagNumofTime = 0;unsigned char NumofTime = 3;unsigned char CountERROR

37、= 0;bit Flagdead = 0;void main()unsigned char i=0; unsigned char key=0;LCDInit();LED2 = 0;/密码没有正确输入的时候,第二个 LED 亮湄洲湾职业技术学院 2013 届毕业生设计产品说明书1LED1 = 1;/第一个 LED 不亮LED3 = 1;RELAY = 0;/继电器关闭/writearray();readarray();while(!Flagdead) /将数组 array2 的值依次赋给 P0 口显示if(matrix_key_scan() = 11)/关锁键,直接回到输入密码界面FlagInp

38、utPassword = 0;if(matrix_key_scan() = 10)/当需要输入新的密码时FlagNewPassword = 1;if(matrix_key_scan() = 12)/设置输错次数FlagNumofTime = 1;while(!FlagInputPassword) /输入密码界面LED2 = 0;/密码没有正确输入的时候,第二个 LED 亮LED1 = 1;/第一个 LED 不亮LED3 = 1;RELAY = 0;/继电器关闭for(i = 0;i9)/输入第一个数 UserInput0 = matrix_key_scan();LCDDispChar(3,2,

39、-);湄洲湾职业技术学院 2013 届毕业生设计产品说明书1delayms(500); /延时消抖用while(UserInput19)/输入第 2 个数 UserInput1 = matrix_key_scan();LCDDispChar(4,2,-);delayms(500); /延时消抖用while(UserInput29)/输入第 3 个数 UserInput2 = matrix_key_scan();LCDDispChar(5,2,-);delayms(500); /延时消抖用while(UserInput39)/输入第 4 个数 UserInput3 = matrix_key_sc

40、an();LCDDispChar(6,2,-);delayms(500); /延时消抖用while(UserInput49)/输入第 5 个数 UserInput4 = matrix_key_scan();LCDDispChar(7,2,-);delayms(500); /延时消抖用while(UserInput59)/输入第 6 个数 UserInput5 = matrix_key_scan();LCDDispChar(8,2,-);if(UserInput0=array20 & UserInput1=array21 & UserInput2=array22 &UserInput3=arra

41、y23 & UserInput4=array24 & UserInput5=array25)LCDDispString(1,2, );LCDDispString(3,2,Correct);LED1 = 0;/密码输入正确,第一个灯亮湄洲湾职业技术学院 2013 届毕业生设计产品说明书1LED2 = 1;/第二个灯灭RELAY = 1;/继电器导通FlagInputPassword = 1;LCDNotCursor();CountERROR=0;else if(UserInput0=6 & UserInput1=5 & UserInput2=4 &UserInput3=3 & UserInput

42、4=2 & UserInput5=1)LCDDispString(1,2,Super Password);LED1 = 0;/密码输入正确,第一个灯亮LED2 = 1;/第二个灯灭RELAY = 1;/继电器导通FlagInputPassword = 1;LCDNotCursor();CountERROR=0;else /密码错误CountERROR+;LCDNotCursor();LCDDispString(3,2,ERROR );delayms(1000); /延时消抖用LCDDispString(3,2, );for(i = 0;i6;i+)UserInputi = 16;if(Coun

43、tERROR = NumofTime)FlagInputPassword = 1;湄洲湾职业技术学院 2013 届毕业生设计产品说明书1Flagdead = 1;LCDDispString(3,2,DEAD!);CountERROR = 0;while(FlagNewPassword = 1)/修改密码界面LED2 = 1;/密码没有正确输入的时候,第二个 LED 亮LED1 = 0;/第一个 LED 不亮LED3 = 0;RELAY = 1;/继电器关闭LCDDispString(0,1,New password: );LCDDispString(1,2, );LCDCursor(); fo

44、r(i = 0;i9)/输入第一个数 array10 = matrix_key_scan();LCDDispNum(3,2,array10);delayms(500); /延时消抖用while(array119)/输入第 2 个数 array11 = matrix_key_scan();LCDDispNum(4,2,array11);delayms(500); /延时消抖用while(array129)/输入第 3 个数湄洲湾职业技术学院 2013 届毕业生设计产品说明书1 array12 = matrix_key_scan();LCDDispNum(5,2,array12);delayms(

45、500); /延时消抖用while(array139)/输入第 4 个数 array13 = matrix_key_scan();LCDDispNum(6,2,array13);delayms(500); /延时消抖用while(array149)/输入第 5 个数 array14 = matrix_key_scan();LCDDispNum(7,2,array14);delayms(500); /延时消抖用while(array159)/输入第 6 个数 array15 = matrix_key_scan();LCDDispNum(8,2,array15);writearray();/将密码

46、存在 24c02 中readarray();LCDNotCursor();LCDDispString(3,2, OK! );delayms(1000); /延时消抖用FlagNewPassword = 0;while(FlagNumofTime = 1)/设置出错次数LED2 = 1;/密码没有正确输入的时候,第二个 LED 亮LED1 = 0;/第一个 LED 不亮LED3 = 1;RELAY = 1;/继电器关闭LCDDispString(0,1,Num of time: );湄洲湾职业技术学院 2013 届毕业生设计产品说明书1LCDDispString(1,2, );LCDDispNu

47、m(6,2,NumofTime);NumofTime = 16;while(NumofTime 9)NumofTime = matrix_key_scan();LCDDispString(3,2, OK! );delayms(1000); /延时消抖用LCDDispString(3,2, );LCDDispNum(6,2,NumofTime);FlagNumofTime = 0;while(1);#include#include24c02.hunsigned char array16=1,2,3,4,5,6,; /写入存储区的数组unsigned char array26=0,0,0,0,0,

48、0,; /从存储区读出数据的寄存数组void delayus(unsigned char t) / 1.1us 11.0592MHz 0i255 while(t-); 湄洲湾职业技术学院 2013 届毕业生设计产品说明书1void c02start() /起始信号sda=1;delayus(5);scl=1;delayus(5);sda=0;delayus(5); void c02stop() /终止信号sda=0;delayus(5);scl=1;delayus(5);sda=1;delayus(5);void c02respons() /应答信号unsigned char i=0;scl=

49、1;delayus(5);while(sda=1)&(i250)i+; /sda=1 或超时一个成立及默认应答 scl=0;湄洲湾职业技术学院 2013 届毕业生设计产品说明书1delayus(5);void c02init() /24c02 初始化sda=1;delayus(5);scl=1;delayus(5);void c02write(unsigned char byte) /写一个字节unsigned char i,temp;temp=byte;for(i=0;i8;i+)temp=temp1;scl=0;delayus(5);sda=CY;delayus(5);scl=1;dela

50、yus(5);scl=0;delayus(5);sda=1;delayus(5);湄洲湾职业技术学院 2013 届毕业生设计产品说明书1unsigned char c02read() /读一个字节unsigned char i,k;scl=0;delayus(5);sda=1;delayus(5);for(i=0;i8;i+)scl=1;delayus(5);k=(k=6)break;void readarray() /读取数组unsigned char i=0;while(1)array2i=readdata(i); /将存储区中的数组依次读出,并赋给数组 array2i+;if(i=6)b

51、reak;void delayms(unsigned char i) / 1.26ms 11.0592MHz 0i255 unsigned int j;while(i-)for(j=0;j0;i-)for(j=0;j2;j+); /* Function: void LCDInit(void); Description: 液晶初始化函数,对 LCD1602 进行初始化操作, 在每一次实用液晶前必须用到的,外部可调用 函数。 Calls: void LCDWriteCommand(unsigned char dat); DelayN40us(unsigned int n); Called By:

52、main();或其他 Input: 无 Output: 无 Return: 无*/void LCDInit(void)LCDWriteCommand(0 x38);/*设置 8 位格式,2 行,5x7*/LCDWriteCommand(0 x38);/*设置 8 位格式,2 行,5x7*/LCDWriteCommand(0 x38);/*设置 8 位格式,2 行,5x7,有的液晶做的不好,写三遍保险!*/ LCDWriteCommand(0 x0c);/*整体显示,关光标,不闪烁*/ LCDWriteCommand(0 x06);/*设定输入方式,增量不移位*/LCDWriteCommand(

53、0 x01);/*清除屏幕显示*/ 湄洲湾职业技术学院 2013 届毕业生设计产品说明书1DelayN40us(100);/*清屏延时*/ /* Function: void LCDWriteCommand(unsigned char dat); Description: 写命令函数,对 LCD1602 内部寄存器进行操作。 Calls: DelayN40us(unsigned int n); Called By: void LCDInit(void); void LCDDispChar(unsigned char x,unsigned char y,unsigned char dat); v

54、oid LCDDispNum(unsigned char x,unsigned char y,unsigned char dat); Input: unsigned char dat - 写入的命令 Output: 无 Return: 无*/void LCDWriteCommand(unsigned char dat)LCD_DB=dat;LCD_RS=0;/*选择写指令*/ LCD_RW=0;/*写入指令值*/ LCD_E=1; /*使能 LCD1602*/ LCD_E=0;DelayN40us(1);/*写命令延时*/ /* Function: void LCDWriteData(unsi

55、gned char dat); Description: 写数据函数,将数据写入 LCD1602 中。 Calls: DelayN40us(unsigned int n); Called By: void LCDInit(void); void LCDDispChar(unsigned char x,unsigned char y,unsigned char dat); void LCDDispNum(unsigned char x,unsigned char y,unsigned char dat);湄洲湾职业技术学院 2013 届毕业生设计产品说明书1 Input: unsigned ch

56、ar dat - 写入的数据 Output: 无 Return: 无*/void LCDWriteData(unsigned char dat) /写数据函数 LCD_DB=dat;LCD_RS=1;/*选择写数据*/ LCD_RW=0;/*写入数据值*/ LCD_E=1; /*使能 LCD1602*/ LCD_E=0;DelayN40us(1);/*写数据延时*/ /* Function: void LCDDispChar(unsigned char x,unsigned char y,unsigned char dat); Description: 在某个屏幕位置上(x,y)位置显示一个字

57、符,可外部调用。 Calls: LCDWriteCommand(unsigned char dat); void LCDWriteData(unsigned char dat); Called By: main();及其他 Input: X(0-15),y(1-2),dat 为显示字符a形式。 Output: 无 Return: 无*/void LCDDispChar(unsigned char x,unsigned char y,unsigned char dat)unsigned char address;if(y=1) address=0 x80+x; /*显示在第一排的时候的 x 的地

58、址*/ else湄洲湾职业技术学院 2013 届毕业生设计产品说明书1 address=0 xc0+x; /*显示在第二排的时候的 x 的地址*/ LCDWriteCommand(address); /*输入地址*/ LCDWriteData(dat); /*输入数据*/ /* Function: void LCDDispNum(unsigned char x,unsigned char y,unsigned char dat); Description: 在某个屏幕位置上(x,y)位置显示一个数字,可外部调用。 Calls: LCDWriteCommand(unsigned char dat); void LCDWriteData(unsigned cha

温馨提示

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

评论

0/150

提交评论