《基于单片机电子密码锁设计正稿大学学位论文.doc》由会员分享,可在线阅读,更多相关《基于单片机电子密码锁设计正稿大学学位论文.doc(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 毕 业 论 文(设 计) 题 目 基于单片机电子密码锁设计 英文题目 Electronic password lock 院 系 专 业 姓 名 年 级 指导教师 年 月I摘 要随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤其突出,传统的机械锁由于其构造简单,安全性能低,无法满足人们的需求。随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器,所以具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码控制的密码量少,安全性能差的缺点。通过单片机编写密码程序,并用74LS47和3-8译码器74LS138驱动的数码管来显示密码
2、。数码管可以时时显示当前输入的四位数字。当输入密码正确时,对应的指示灯亮;当密码不正确时,另一个对应的指示灯亮且并且发出声音报警。关键词: 密码锁 ;单片机 ;报警IThe design of electronic password lock based on MCUABSTRACTWith the improvement of peoples living standards, it has become particularly prominent about how to achieve Anti-theft family. The traditional mechanical lock
3、 has such shortcoming as simple structure , Low security ,it cant meet peoples demands.As electronic products are developing towards intelligence and minimization, single-chip computers(SCM) have become the first choice for controllers in the development of electronic products. Therefore, the electr
4、onic anti-theft alarm function password control system and gradually replace the traditional mechanical password control system, Overcome the low mechanical password control password and the shortcomings of poor safety performance,the password program written by SCM, and 3-8 with 74LS47 Decoder 74LS
5、138-driven digital control to display the password。Digital tube can always display the current input of six digits。When you enter the password correctly, the corresponding indicator light;When the password is incorrect, the other, and the corresponding indicator light and sound alarm。Keywords: Combi
6、nation lock, Single-chip microcomputer, alarmIII目 录摘要IIABSTRACTIII目录第1章 绪论71.1 电子密码锁简介71.2 电子密码锁的发展趋势71.3 本设计所要实现的目标8第2章 系统方案选择与论证92.1系统基本方案92.1.1系统框图102.1.2 各模块方案选择与论证102.1.3系统各模块的最终方案11第3章 系统的硬件设计与实现123.1 系统硬件概述123.2主要单元电路的设计123.2.1键盘扫描模块电路的设计133.2.2单片机控制模块电路的设计133.2.3声光报警模块电路的设计143.2.4数码显示模块电路的设计
7、15第4章 系统的软件设计164.1系统软件的概述164.2子程序的设计174.2.1自检子程序184.2.2键盘扫描子程序194.2.3移位子程序204.2.4开锁子程序214.2.5修改密码子程序22第5章系统仿真与调试235.1系统仿真过程235.2仿真调试中遇到的困难及解决方法24结 论25致 谢27参考文献28附录1 系统电路图29附录2系统程序30附录3 实物图38附录4 系统使用说明书41I引言自从人类脱离原始社会、开始有私有财产的概念以来,锁就是人们生活中的重要组成部分。它的存在,维护了人们的财产安全、人身安全,增加了人们的安全感,促进了社会和谐。因此,人们对锁的研究从未停止,
8、但几千年来都未有较大的变化,直到20世纪30年代后,电子密码锁的概念出现,这一领域终于出现了日新月异的进步。得益于电子技术的飞速发展,电子密码锁的功能愈来愈完善,取密码量相对较少、安全性不好的常规锁具已然是大势所趋。电子密码锁拥有太多机械锁完全无法相比的优点。它不但能完成“锁”自身的功用,还可以具有记忆、辨识、警报等特别的作用。因为电子密码锁更安全性、更便宜、易操作,越来越多人开始关注这一领域。 当前在第一世界国家中,密码锁技术已经比较成熟,拥有不同的种类,在各类智能门禁系统中,电子密码锁的使用十分普遍,使得门禁的实现有了数种安全、可靠的技术来支持。总的来说,中国目前的密码锁技术还只有世界上7
9、0年代左右的水平,生产仍显昂贵。当前,按键式电子锁仍占据了中国市场的大头,国内有若干厂家引进了海外较为先进的按键式和卡片钥匙型锁。另一方面,中国自主研发的电子锁还没有形成成型的产业链,尚未普及。现在国内有不少企业引进了当前世界上先进的技术,发展前景非常可观。第1章 绪论1.1 电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:(1) 保密性好,编码量多,远远大
10、于弹子锁。随机开锁成功率几乎为零。(2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。(3)误码输入保护,当输入密码多次错误时,报警系统自动启动。(4)无活动零件,不会磨损,寿命长。(5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。(6) 电子密码锁操作简单易行,一学即会1.2 电子密码锁的发展趋势在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。目前门锁主要用弹子锁,其钥匙容易丢失;保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极
11、不方便,且钥匙丢失后安全性即大打折扣。针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。它的出现为人们的生活带来了很大的方便,有很广阔的市场前景。由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发
12、展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。出于安全、方便等方面的需要许多电子密码锁已相继问世。但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。可以看出组合使用电子信息是电子密码锁以后发展的趋势。1.3 本设计所要实现的目标本次设计使用 ATMEL公司的 AT89S51 实现一基于单片机的电子密码锁的设计,其主要具有如下功能: (1)密
13、码通过键盘输入,若密码正确,则将锁打开。 (2)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过 3 次,蜂鸣器报警并且锁定键盘。 电子密码锁的设计主要由三部分组成:44 矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有 LED 提示灯,报警蜂鸣器等。 密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能: (1)密码输入功能:按下一个数字键,一个“”就显示在最右边的数码管上,同时将先前输入的所有“”向左移动一位。 (2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。 (3)开锁功能:当按下开锁键,系统将输入与密码
14、进行检查核对,如果正确锁打开,否则不打开。 主要的设计实施过程:首先,选用 ATMEL公司的单片机 AT89S51,以及选购其他电子元器件。第二步,使用 DXP 2004设计硬件电路原理图,并设计 PCB图完成人工布线(后因 PCB 板损坏决定采用万能板焊接的方法)。第三步,使用 Keil uVision3 软件编写单片机的 C 语言程序、仿真、软件调试。第四部,使用 PROTEUS 软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次毕业设计。第2章 系统方案选择与论证2.1系统基本方案2.1.1系统框图简易电子密码锁是由5 个部分组成,如图2.1 所示:键盘模块电源模块报警模块
15、显示模块单片机控制模块 图2.1 电子密码锁控制系统电源模块:由+5V 的直流稳压电源供电给整个系统工作。键盘模块:由16 个轻触式开关组成。单片机控制模块:采用支持ISP 在线编程技术的单片机AT89S51 便于烧写程序。显示模块:采用六个数码管时时显示当前输入数据;报警模块:采用发光二极管和蜂鸣器做声光报警。2.1.2 各模块方案选择与论证(1)单片机的选择方案一:采用AT89C51 单片机,它可以与其它51 系列的单片机兼容、内部ROM 全部采用FLASH ROM、最高时钟频率可达24MHz 且能以3V 超低压工作。但不支持ISP 在线编程技术、内部ROM 仅为4KB 不利于功能扩展。方
16、案二:采用AT98S51 单片机,它具同时被AT98C51 的全部功能外,还支持ISP 在线编程技术且内部ROM 为8KB 有利于功能扩展。(2)键盘的选择方案一:使用独立式按键来控制使用独立式按键来控制数码管的显示,这样需要很多的按键,每个按键实现一个能,易于控制,程序编写简单,但是每个按键都要接上拉电阻,占用了单片机大量的I/O 接口资源,要对单片机外扩I/O 口,并且在电路焊接方面又不方便,还要浪费大量的资源,提高了成本。方案二:采用矩阵式键来控制把按键按行列组成矩阵,在行列交点上都对应有一个键,这样使用的按键要少,为判定有无键被按下以及被按键的位置,这种称为键扫描法。这样虽然提高了编程
17、难度,但是节约了单片机大量的I/O 口,免去了上拉电阻为焊接带来了方便,提高了整块电路板的美观度。(3)显示模块的选择方案一:数码管静态显示采用LED 数码管静态显示方法,电路容易理解,驱动程序简单,但需要每个数码管都要一块74LS47 来驱动显示,增高了成本,浪费系统硬件资源,而需要占用单片机多个I/O 口。方案二:数码管动态显示采用LED 数码管动态扫显示方法,只需一块数码管驱动器芯片和一块译码器芯片就可以驱动多个数码管,价格便宜,只需要7 个I/O 口就可以同时驱动8 个数码管显示。硬件利用效率高,驱动程序容易理解和编程。方案三:液晶显示采用LCD 液晶显示,显示的位数多,由单片机驱动。
18、此方案有美观、显示清晰多样的优点。但同时液晶显示器的驱动程序复杂,编程困难,成本高,价格昂贵,浪费大量的资源。(4)数码管驱动选择采用74LS47 驱动数码管和74LS138 译码器来控制数码管的COM 端,因为74LS47 只能驱动共阳数码管,而74LS138 的输出为低电平有效。因此,在74LS138 的输出端加入反向器才可以接到数码管的COM 端。方案一:74LS04 芯片的选择采用74LS04 芯片做反向器,74LS47 是集成六反向器芯片,刚好可驱动六个数码管,但是它的输入输出引脚两边均分布,造成跳线较多给电路焊接时带来麻烦影响了整块电路的美观度。方案二:三极管的选择三极管也具有反向
19、的功能,采用的是PNP 管,电路的连接中又方便,减少了跳线提高美观度。(5)报警模块的选择方案一:采用语音报警,虽然可以使整个系统更加完美,但是会使程序更加复杂而且提高了整个系统的造价。方案二:采用发光二极管和蜂鸣器来报警,可以发出声光报警且降低了成本。2.1.3系统各模块的最终方案结合整个系统的功能、成本、美观度等综合考虑,用AT89S51 单片机为主控模块、用44 键盘输入、用74LS47、74LS138 和三极管来驱动六个数码管做显示模块、用发光二极管和蜂鸣器做为报警模块。系统框图如图2.244键盘输入AT89S51六位数码管显示直流稳压电源声光报警 图2.2系统框图第三章 系统的硬件设
20、计与实现3.1 系统硬件概述本系统是通过键盘扫描模块,既能够显示数据并且还能修改密码,开锁密码,具有强大的功能,通过键盘扫描模块输入到单片机控制系统AT89S52 中。然后通过数码显示模块来显示我们所要有数据,还有一个就是报警模块,当输入的密码相同时,则显示模块的灯点亮,当输入的密码是错误时,绿灯点亮,报警模块立刻发出声音报警。为了达到设定的功能,本装置键盘扫描模块、单片机控制模块、数码管显示模块,声光报警模块等4 模块组成。3.2主要单元电路的设计3.2.1键盘扫描模块电路的设计如图3.1 所示,本模块的作用是进行键盘的扫描,首先判定有没有键被按下,然后再判定被按键的位置,因为键盘矩阵有键被
21、按下时,被按键处的行线和列线被接通,使得开关之间接通。当扫描表明有按键被按下之后,紧接着应是进行去抖动处理,一般我们采用的是软件来去抖动,软件方法则是采用时间延迟以躲过抖动,待行线上状态稳定之后,再进行行状态输入。图3.1 键盘扫描模块3.2.2单片机控制模块电路的设计单片机作为本装置的核心器件,在系统中起到控制声光报警、以及数码动态显示的作用,其中采用的是AT89S51,AT89S51 是标准的40 引脚双列直插式集成电路芯片,有4 个八位的并行双向I/O 端口,分别记作P0、P1、P2、P3。第20 引脚为接地端;第40引脚为电源端;第31 引脚需要接高电位使单片机选用内部程序存储器;第1
22、8、19 脚之间接上一个12MHz 的晶振为单片机提供时钟信号;第9 脚为复位脚,当其接高电位时,单片机停止工作。P0 口接两个发光二极管和一个蜂鸣器以实现声光报警功能,P2 口连接一片七段译码器和一片3-8 译码器以动态扫描方式同时驱动六个数码管,P1 口与16 个阵列式按键相连实现对键盘的扫描。通过编程既能识别从译码器来驱动数码管来显示数据,同时也通过运行指令来达到完成声光报警及动态显示数码管等功能。如图3.2 所示图3.2 单片机控制模块3.2.3声光报警模块电路的设计图3.3 声光报警模块如图3.3 所示,本模块的作用是当开锁按钮被按下时,如果数码管当前显示值相同,则绿灯点亮,当输入的
23、数与密码不同时,则红灯点亮并且蜂鸣器立刻发出声音报警。3.2.4数码显示模块电路的设计如图3.4 所示,该模块主要由74LS47 译码器,74LS138 译码器和6 个8 段数码显示管组成,如图所示,从编码器输送过来的数据经过两片74LS47 芯片和74LS138 蕊片译码后,传送到8 段数码显示管,显示管根据接收到数据电平的高低来显示不同的数据。图3.4 数码显示模块从图中可以看到单片机P2 口低4 位连接一片74LS47 七段译码器,由于74LS47 是共阳极数码管的七段译码器,因此要选用共阳极的数码管。单片机P2.0-P21.3 的输出信号经过74LS47 译码后就可以驱动数码管的段码显
24、示相应的数字,另外在74LS47 的输出与数码管之间还要接上7 个470 欧姆的限流电阻,以防止有过大的电流流过时烧坏数码管。P2.4-P2.6 口接于3-8 译码器74LS138 的三个输入端,而74LS138 的输出端通过三极管分别接于八个数码管的公共极。通过由P1.4-P1.6 口的输出量来控制74LS138 选择点亮某一个数码管。由于74LS138 是低电位有效,所以应该采用PNP 型的三极管来驱动数码管,在此三极管相当于一个开关的作用依靠这两块芯片就可以控制数码管实现动态扫描显示。 例如:使六个数码管显示123456。在第一时刻输出“0001”给74LS47,让数码管显示“1”,同时
25、输出“000” 给74LS138,选择第一个数码管工作,其余数码管不工作,这样第一时刻就只有第一个数码管显示“1”,其余数码管均不显示。同理第二时刻也只有第二个数码管显示“2”,依次类推第N 时刻就只有第N 个数码管显示“N”。人的肉眼只能分辨0.1 秒内的变化,所以如果以每一时刻0.01 秒的频率循环变化,看起来就感觉每一个数码管都被点亮了,显示“123456”。第4章 系统的软件设计4.1系统软件的概述本系统的工作流程为:通过键盘扫描来实现三种不同的功能,刚开始是设置的初始密码123456 通过数码管来显示,用10 个按键来输入0 到9 这从右到左依次输入,还用三个按键来显示密码,修改密码
26、,开锁等。当开锁按钮被按下时,如果数码管与当前显示值相同,则点亮LED1;当数码管值不同时,则点亮LED2,并且立刻发出报警声音。主程序流程图开始初始化自检子程序键盘扫描子程序有按键按下显示子程序循环相应子程序 图4.1 主程序流程图 主程序说明:单片机复位后进入初始化把初始密码“123456”依次存放到40H 到45H六个单元中,把30H 到35H 六个单设置为六位数码管显示数据的存放地址,设置完毕调用自检子程序进入自检状态,自检完毕调用扫描子程序对键盘进行扫描,如果有按键被按下则跳转到相应的子程序,再调用显示子程序把30H 到35H 六个单元的数据给六个数码管显示出来。显示完毕就跳加扫描子
27、程序继续对键盘进行扫描,如此循环。4.2子程序的设计4.2.1自检子程序开始30H38H移位次数6R008HP1显示移位R0=0?(38H)=0?关闭自检返回NONOYESYES 图4.2 自检子程序流程图自检子程序说明:进入自检子程序后先把循环次数30 赋给38H 单元,把移位次数6 赋给R0,再把08H 赋给P2 口显示,把08H 移位后再赋给P2 口,循环6 次完成一次显示,循环显示完30 次完成自检。4.2.2键盘扫描子程序开始初始化输入扫描码第一列按键第二列按键第三列按键第四列按键下一行超过四行防抖取出键值跳转相应子程序YESYESYESYESYESNONONONONO图4.3 键盘
28、扫描子程序流程图4.2.3移位子程序开始(34H) (35H)(33H) (34H)(32H) (33H)(31H) (32H)(30H) (31H)相应数据(30H)返回图4.4 移位子程序流程图移位程序说明:进入移位子后就把30H 到35H 六个单元里的数据向右移一位,移位完毕后把35H 单元里的数据推出去,把30H 单元空出。4.2.4开锁子程序开锁程序说明:判断30H 到35H 单元里的数据与40H 到45H 单元里的数据是否相同,如果相同,开锁成功绿灯亮;如果不相同,开锁不成功报警红灯亮且蜂鸣器响。如图4.5所示开始(30H) (35H) = (40H ) (45H) ?开锁返回报警
29、YESNO图 4.5 开锁子程程序流程图4.2.5修改密码子程序开始成功开锁修改密码不修改返回YESNO图 4.6 修改密码子程序流程图修改密码程序说明:判断绿灯是否已点亮,点亮则说明已开锁成功可修改密码,否则不修改。第5章 系统仿真与调试5.1系统仿真过程开始时的数码管显示“-”,等待输入密码。如图5.1所示:图5.1 数码管显示密码输入时显示F并依次左移,如密码输入错误可以使用“clr”键进行清除,然后可以从新输入。如图5.2所示:图5.2 数码管显示 F密码输入正确时,数码管显示简单的便是“pass”,同时绿色指示灯亮起,开锁电路运行,锁被打开。如图5.3所示: 图5.3 数码管显pas
30、s密码是输入错误时,数码管提示“error 1”,如果继续输入第二次、第三次错误的时,数码管将提示“error 2”和“error 3”,同时报警器报警提示,红色指示灯闪烁,键盘锁死,防止继续操作。如图5.4所示:图5.4数码管显示当需要关闭密码锁的时候,直接按下键盘上的“lock”键即可锁定。数码管恢复初始“-”,黄色指示灯亮起。如图5.5所示:图5.55.2仿真调试中遇到的困难及解决方法(1)问题描述:密码在未输入6位的情况下,摁下“enter”键, 数码管显示“false”,无法返回初始输入界面“-”。解决办法:“enter”键跳转时,跳转到开始即可。(2)问题描述:密码正确输入,“en
31、ter”键确认后,数码管显示“pass”,这时直接按“clr”键,屏幕上显示“error 1”,并且报警,数码管无法恢复正常状态。原因及解决办法:“clr”的后面跳转不对,需要加一个标志位使数码管的显示恢复“pass”。 (3)问题描述:在系统正常运行后,如果密码锁被用户打开,此时用户可以按下“lock”键对其重新上锁,但在运行过程中,虽然系统可以重新上锁,但会在重新上锁前,出现报警,并且数码管显示“error 1”。原因及解决办法:因为系统运行的速度较快,按键还没有复原,键盘的检测便又一次检测到了该按键,重复的操作了“lock”键,系统提示错误。所以应在检测按键时,等待按键的复原,再进行跳转
32、执行该按键的程序指令。结 论在没有做毕业设计前觉得毕业设计只是对所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次课程设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。在这次毕业设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识。在多人做项目的时候,
33、队员的交流是非常重要的,是很关键的部分。这次的毕业设计也让我看到了团队的力量,我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。刚开始的时候,大家就分配好了各自的任务,大家有的绘制原理图,进行仿真实验,有的积极查询相关资料,并且经常聚在一起讨论各个方案的可行性。在毕业设计中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们成功的一项非常重要的保证。不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能
34、实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。程序的设计思想的精巧的重要性,是不管怎么说都不为过的,好的设计可以让大家很快的明白你的思想,而且很方便的来实现它。良好的编程习惯,它可以使你的程序很方便的被别人阅读,也很方便的被更改,所以可以的话,尽可能多的写出注释,没有人会闲你写的太多。在设计过程中,通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常
35、重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。致 谢本论文虽然凝聚着自己的汗水,但却不是个人智慧的产品,没有父母和朋友的帮助和支持,我在大学的学术成长肯定会大打折扣。当我打完毕业论文的最后一个字符,涌上心头的不是长途跋涉后抵达终点的欣喜,而是源自心底的诚
36、挚谢意。我首先要感谢我的导师,对我的构思以及论文的内容不厌其烦的进行多次指导和悉心指点,周老师多次询问进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。周老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,虽历时三载,却给以终生受益无穷之道。对周老师的感激之情是无法用言语表达的,使我在完成论文的同时也深受启发和教育。参考文献1 郇玉龙.单片机实验教学仿真系统的设计与开发M.山东:山东师范大学出版社, 2008:51-53,59.2 李蒙.基于STC89单片机的实验教学系统M.浙江:天津大学出版社, 2008:36-39.3 徐金增.单片机编程仿真实验系统
37、设计与实现M.山东:山东师范大学出版社, 2009: 26-28.4 李力.双处理器控制数字化焊接电源单片机系统M.天津:天津大学出版社, 2007:18-21.5 苑海涛.变频调速液压电梯单片机控制器的研究M.浙江:浙江大学出版社, 2006:37-39.6 王芹.单片机在高楼恒压供水系统中的应用M.青岛:中国海洋大学出版社, 2006:37-39,41.7 祁娜.基于单片机-免疫计数器自动换样功能的研究与实现M.长安:长安大学出版社, 2006:10-13.8 杨帅.基于神经元芯片和单片机双处理器结构LON节点的研究M.哈尔滨:哈尔滨理工大学出版社, 2008:31-33.9 肖洪兵. 跟
38、我学用单片机M. 北京:北京航空航天大学出版社。2002:08-1210 何立民. 单片机高级教程M 第1版北京:北京航空航天大学出版社。2001: 45-46.11 余发山,王福忠.单片机原理及应用技术M.徐州:中国矿业大学出版社,2008: 10-22.12 张毅刚.MCS51单片机应用设计M.哈尔滨:哈尔滨工业大学出版社,2004: 33-35. 13 周润景,张丽娜,丁莉.基于Proteus的电路及单片机设计与仿真(第2版)M.北京:北京航空航天大学出版社,2003: 49-51 14 李广第等.单片机基础M.北京:北京航空航天大学出版社,2001:03-06.15 彭为.单片机典型系
39、统设计实例精讲M.北京:电子工业出版社,2006:11-13.附录1 系统电路图附录2系统程序#includeunsigned char display_count17 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7f,0x39,0x3f,0x7b,0x71,0x3f;0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char hang;unsigned char lie;unsigned char key_number;unsigned char password_num
40、ber4=0x05,0x06,0x07,0x08;/unsigned char display_number;unsigned char add_bit=0;unsigned int led_count;unsigned char stop_flag;unsigned char scanf_flag=0;unsigned char ret_password_bit;unsigned char password_ret_flag;void delay(unsigned int count) /延时子函数unsigned int k;while(count-)for(k=0;k 199)led_c
41、ount = 0;led_lamp=1;TR0=0;void scankey() /键盘扫描子程序P2=0xf0;if(P2&0xf0)!=0xf0)switch(P2)case 0x70:hang=1;break;case 0xd0:hang=3;break;case 0xe0:hang=4;break;default:break;delay(5);P2 = 0x0f;if(P2&0x0f)!=0x0f)switch(P2)case 0x0b:lie=2;break;case 0x0d:lie=3;break;case 0x0e:lie=4;break;default:break;key_n
42、umber=(hang-1)*4+lie);void key_password_compare()/密码是否正确子程序if(password_number0=shumaguang_number0)if(password_number1=shumaguang_number1)if(password_number2=shumaguang_number2)if(password_number3=shumaguang_number3)TR0=1;scanf_flag=0;stop_flag=0;for(kou_for=0;kou_for4;kou_for+)shumaguang_numberkou_for=0;void display(unsigned char display_strat_init) /初始化显