电子密码锁报告_第1页
电子密码锁报告_第2页
电子密码锁报告_第3页
电子密码锁报告_第4页
电子密码锁报告_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、 西华大学课程设计说明书成绩 课 程 设 计 说 明 书 课程设计名称: 微机接口技术课程设计 题 目: 模拟电子密码锁 学 生 姓 名: 专 业: 电子信息工程 年 级: 学 号: 指 导 教 师: 日期: 2012 年 2 月 6 日电子密码锁摘要:提出了一个电子密码锁的设计方案,该设计方案通过AT89C52单片机对整个系统进行核心控制,再外加4×4矩阵键盘电路,显示电路,开锁和报警电路,分别对键盘输入,LCD1602显示,开锁灯和报警灯进行整体控制。最后将键盘输入信号送人AT89C52单片机,经过软件的控制,在LCD上显示输出相应的密码,密码的位数为5位。系统能完成锁闭状态显示

2、、密码输入错误超次异常,初始化设置用户密码等基本的密码锁功能。关键词: AT89C52 LCD1602 电子密码锁 4×4矩阵键盘Abstract:This paper puts forward a design scheme of electronic trick lock, the design through the AT89C52 single chip microcomputer to the whole system core control, again plus 4 * 4 matrix keyboard circuit, display circuit, the l

3、ock and alarm circuit respectively, the keyboard input, LCD1602 display, unlocking the lamp and alarm lamp for overall control. Finally the keyboard input signal for AT89C52 single chip microcomputer, through software control, displayed on LCD output corresponding password, the password for the numb

4、er five. The system the complete lockdown status display, password input error Transdimensional abnormal, initial setting user passwords and other password lock function.Key words : AT89C52 LCD1602 Electronic password lock 4×4 keyboard 目录第1章 绪论11.1 电子密码锁的背景11.2 单片机的基本介绍11.3 keil c51的优势1第2章 总体设计

5、方案的确定22.1 电子密码锁设计的要求22.2 总体方案的选择22.2.1 方案的比较22.2.2 方案论证确定4第3章 单元设计模块53.1 MCS51单片机最小系统电路53.1.1 复位电路63.1.2 时钟电路73.2 按键模块83.3 显示模块93.4 开锁报警电路10第4章 系统软件设计114.1 主程序模块114.2 键盘扫描部分114.3 密码修改模块124.4 密码比较模块13第5章 系统调试仿真和误差分析155.1 程序的调试155.2 系统仿真165.3 误差分析19第6章 结论20第7章 总结219 参考文献:22附录一:整体电路设计图23附录二:程序代码2433434

6、第1章 绪论 当代是一个科技快速发展的时代,人们对自己的生活有了越来越高的要求,生活质量的提高,也是我们对资深财产的安全有了更加浓重的保护欲。智能仪器的应用在日常生活中越来越广泛,在各个方面都得到应用发展,不管是科技的发展还是生活的需要,现在都已经离不开智能电子仪器。而传统的机械锁由于其构造的简单,被撬的时间屡见不鲜,使我们的财产以及人身安全有了很大的隐患,这致使我们寻求更好的安全措施。电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。而且密码锁的形式多样,有声控密码锁,电子密码锁等,社会上大多使用电子按键密码锁。1.1 电子密码锁的背景电子密码锁是一种通过密码输入来控制电

7、路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,它的特点有保密性好、密码可变、自动上锁等功能。 随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一

8、组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。1.2 单片机的基本介绍单片微型计算机简称单片机,是典型的嵌入式微处理器(Microcontroller Unit),  常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一

9、台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。1.3 keil c51的优势 Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。第2章 总体设计方案的确定整体方案的确定对设计很重要,一般选择比较简单易懂、设计起来不费时的方案,也

10、要根据自己所熟悉的软件和硬件来确定。2.1 电子密码锁设计的要求(1)设置为五位的初始密码“12345”,输入的密码显示在LCD屏上;(2)上电后,LCD显示屏上显示“welcome enter:your password”,输入密码正确时,LCD上显示“password right!”,输入错误密码时,LCD上显示“password error!”,进入设置新密码状态后,LCD上显示“Enter new word!”;(3)输入正确的初始密码后,点“设置”键可以设置新的密码;(4)输入正确的密码,开锁灯亮,输入三次错误密码时,报警灯亮;(5)4×4的矩阵键盘其中包括09的数字键和A

11、F的功能键;(6) 密码可由用户修改,但只支持五位数的密码。2.2 总体方案的选择不论选择什么方案,都需要有输入密码、密码比较、开锁报警电路,只有整个设计的核心控制不一样。 2.2.1 方案的比较 本次设计的密码锁电路主要由四个模块组成:键盘输入模块,数据处理模块,显示控制模块,驱动模块和报警模块。 方案一:用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,在密码存储电路时先焊接固定的密码电路,使其不能更改,在输入按钮开关处输入密码,当第一个密码按下时触发5s定时,5s定时完自锁住按钮开关使其不能再输入密码,密码输入到输入锁存电路中和已存储的密码进行密码比较若密码正确则开锁

12、,若密码不正确触发20s定时报警,密码锁电路包括:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路等,其原理框图如下图。报警电路20s定时电路5s定时电路输入按钮开关输入锁存电 路 锁装置开锁控制电路密码存储电路 图2.2.1 方案一的原理图 方案二:采用一种是用以AT89C52为核心的单片机控制方案。PIC单片机采用RESC指令集和哈佛总线结构,硬件资源丰富,集成有EEPROM、DAC、PWM及看门狗电路等,硬件电路设计简单,设计成本低,整机性能高。 PIC16F84单片机共18个引脚,13个可用I/O口,1K*14的Flash程序存储器,36*8的经营唉RA

13、M通用寄存器,64*8的EEPROM的数据存储器,8级堆栈等。8位数数据线接4*4键盘矩阵电路,A、B、C、D为备用功能键,RA0/RA1输出4组编码数据,经74LS139译码后输出逐行扫描新号,送RB4RB7列新号输入端。RB2通过三极管去工继电器。该密码锁的有效密码长度为4位,根据实际情况,可通过修改源程序增加密码位数。产品处事密码为3345,按3号键可修改密码,按#号键结束。输入密码并按#号键确认之后,RB2输出高电平,继电器闭合,执行一次开锁工作。若用户输入的密码正确,扬声器发出一声稍长的“滴”提示声;若输入的密码与上次修改的不符,则发出短促的“滴”声。若连续3次输入密码错误,程序锁死

14、,扬声器报警,知道CPU被复位或重新上电。其原理图如图所示。单片机微控制器矩阵键盘控制LCD显示电路 报警电路开锁电路 图2.2.2 单片机系统控制原理图2.2.2 方案论证确定 方案一是采用整体硬件系统来设计,虽然不需要编写程序,但是电路复杂,整个运作过程都是通过电路来设计。电子密码锁的基本功能能够实现功耗较低,但密码不能修改,密码为预先设置的初始密码,另外,输入密码后自动开锁,从安全性的角度来说不怎么保险。方案二利用单片机灵活的编程设计和强大的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还可以增添掉电存储、声光提示等功能,STC89C52系列单片机,高速、低功耗、新增在系统在

15、应用可编程(ISP,IAP)功能,使不具有E2PROM的单片机具有了E2PROM的功能,可以在线对现场历史数据的存储功能。采用STC89C52单片机设计的电子密码锁,利用内部E2PROM资源,不需要外接程序存储器就能完成修改密码等多种功能,并且保密性高、成本低、简单易行,符合住宅、部门办公安全要求。键盘电路采用矩阵式键盘,显示电路采用四位数码管动态显示方式,动态显示相对于静态显示有占用I/O口资源少的特点,恰好适合于本系统。所以选择更方便、更减少资源的方案二,作为本次设计的整体方案。第3章 单元设计模块 电子密码锁是一种模拟的电子锁,是利用单片机集成芯片来控制,通过矩阵键盘的数字输入,LCD显

16、示屏的显示,外接开锁和报警电路来实现的。3.1 MCS51单片机最小系统电路AT89C52是MCS51中的一种型号,单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。按功能划分,它由以下功能部件组成:(1) 微处理器(CPU);(2) 数据存储器(RAM);(3) 程序存储器(ROM/EPROM),8031没有此部件;(4) 4个8位并行I/O口(P0口、P1口、P2口、P3口);(5) 1个串行口;(6) 2个16位定时器/计数器;(7) 中断系统;(8) 特殊功能寄存器(SFR)。 图3.1.1 AT89C52的封装图3.1.1 复位电路MCS51的复位是由外

17、部的复位电路来实现的,复位电路通常采用的是上电自动复位和按钮复位两种方式。本次设计的复位电路是按键手动复位电路,如图3.1.2所示。按键手动复位有电平方式和脉冲方式两种,其中电平复位是通过RST端经电阻与电源接通而实现的,按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。复位后的状态: a、复位后PC值为0000H,表明复位后的程序从0000H开始执行。 b、SP值为07H,表明堆栈底部在07H,一般需要重新设置SP值。c、P0P3口值为FFH。P0P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0P3口每一端线为“1”,为这些端线用作输入口做好了准备。 图3.1.2 本次设计

18、的复位电路3.1.2 时钟电路时钟电路用于产生MCS51单片机工作时所必需的时钟控制信号,内部电路在时钟信号控制下,严格地按时序执行指令进行工作。时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。这次设计采用的是内部时钟方式,在51内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2,两个引脚跨接石英晶体振荡器和微调电容,这样就构成了一个稳定的自激振荡器电路。图如下: 图3.1.3 起振电路3.2 按键模块本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采

19、用这样方法。 每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。 在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。 4×4矩阵键盘的工作原理 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图4所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明

20、显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。由於这种4×4的矩阵式按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让8051误判为多次输入同一按键,我们必须在侦测到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。图3.2.1为键盘整体模框图: 图3.2.1 4×4的矩阵键盘框图3.3 显示模块显示设计采用字符型液晶屏设计,由单片机的P0口控制。选用的是微功耗、体积小、显示内容丰富、超薄轻巧的LCD160

21、2液晶屏。LCD1602采用标准的16脚接口,其中:第1脚:VSS为电源地。 第2脚:VCC接5V电源正极。 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。1602LCD的特

22、性有+3.3V电压,对比度可调,内含复位电路,提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能,有80字节显示数据存储器DDRAM 内建有192个5X7点阵的字型的字符发生器CGROM,8个可由用户自定义的5X7的字符发生器CGRAM。下图为1602的显示电路: 图3.3.1 显示屏的封装图3.4 开锁报警电路用户通过LCD的提示信息,用键盘输入正确密码,从而达到开锁的目的。在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁和报警器,发光管亮,表示开锁;灭,表示没有开锁。 密码输入正确,控制开锁的发光二极管亮,输入错误,则不亮;密码输入错误次数超过3次,控制报警的发

23、光二极管亮,开锁的发光二极管不亮。下图为开锁报警的电路图: 图3.4.1 开锁报警设计电路 第4章 系统软件设计在系统设计中,除了硬件设计之外,软件设计也是很重要的,它是系统工作的指挥者,因此系统软件设计时要遵循结构合理、操作性能好、具有一定的保护措施、兼容性好的设计原则来开发设计。密码锁系统软件设计主要包括主程序模块、密码比较判断模块、键盘扫描模块、修改密码模块。4.1 主程序模块主函数主要完成系统的初始化,设置数据指针,以及调用显示等。主函数程序框图如下所示:开始初始化键扫描键检测LCD显示4.2 键盘扫描部分键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有

24、按键按下,便转向相应的子程序处理,处理结束再返回。键盘使用矩阵式键盘,由行和列组成,CPU对所有键盘进行监视,从而实现逐列扫描键盘确定被按键的具体位置、判断键盘上有无键按下、消除去抖动、判断闭合的键是否释放等功能键盘。扫描的流程图如下:开始是否有按键输入否是延时去抖动 有键是否按下?否是计算输入键值是有键是否按下?否是读入键值返回 图4.2.1 键盘扫描流程图4.3 密码修改模块在密码输入正确情况下,可以按下“重置密码”对密码进行重新设置,每设定一位就将密码存储起来,当设置5位密码完毕后,系统将自动跳到程序开始,调用新设置的密码。修改密码的流程图:开始输入原密码密码比较是否正确否输入新密码是输

25、入键是否按下否是修改成功返回 图4.4.1 密码修改流程图4.4 密码比较模块 该模块的功能是将键盘输入的密码利用if语句与设定的密码进行逐个比较,若密码完全正确则开锁;若不正确,错误次数超过3次则开启报警电路,可重新输入密码。其密码输入和比较判决流程图如下:开始输入密码核对错误输入超过3次,报警开锁灯亮,可修改密码 复位 返回 图4.5.1 密码比较流程图第5章 系统调试仿真和误差分析软件的调试和仿真在设计中是不可缺少的一环,通过软件的调试可以了解到设计的精度,和错误不足的地方,仿真则是可以看到设计的成果,是模拟结果,除了外界的环境影响因素,仿真结果就是我们要得到的结果。5.1 程序的调试在

26、本次软件调试中,我们使用的是STC_ISP_V481C51单片机下载工具和Keil uVision3软件,Keil uVision3是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,使您能在很短的时间内就能学会使用keil c51来开发您的单片机应用程序

27、 。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。在利用Keil进行程序调试时,要先建立“Target”。在调试过程中可设置断点,可根据调试的结果查看程序完整度和错误部分。在最后的调试结果中,“Build”中显示0 Error(s),0 Warning(s)时,则表示整个程序没有错误。调试的示例图如下: 图5.1.1 调试示例图5.2 系统仿真系统仿真采用的是很常用的PROTUES软件,PROTUES可提供仿真元器件资源、仿真仪表资源和调试手段。在PROTUE

28、S绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTUES的原理图中看到模拟的实物运行状态和过程。PROTUES 是单片机课堂教学的先进助手。PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTUES提供了实验室无法相比的大量的元器件库,

29、提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。随着科技的发展“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTUES也能茯得愈来愈广泛的应用。图5.2.1是上电后的显示结果:图5.2.2是输入正确的密码显示结果:图5.2.3是密码输入错误的结果图:图5.2.4是错误密码输入超过3次的报警显示图:新密码的设置过程:需输入一次正确的初始密码,开锁成功后,点“设置”键,即可在键盘上输入新

30、的密码,确定后,再次输入新的密码,可确认到新密码设置成功。图5.2.5是开锁后,进入设置状态的显示图:图5.2.6是新密码设置成功的状态显示图:5.3 误差分析在本次设计中,按键的抖动存在一定的系统误差。键的闭合和断开过程中分别存在抖动期,而抖动时间长短和开关的机械特性有关,一般为510ms。键的闭合与否,反映在行线输出电压上呈现高电平或者是低电平,如果高电平表示键断开,低电平表示键闭合。为了确保CPU对一次按键动作只确认一次按键有效,必需消除闭合和断开过程中的抖动期。消除抖动的措施:采用软件来消除按键抖动的基本思想:在第一次检测到有键按下时,该键所对应的行线为低电平,执行一段延时10ms的子

31、程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认为该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时10ms的子程序后,检测该行线为高电平,说明按键确实已经松开。第6章 结论以上是我们课程设计所做的电子密码锁电路,它经常过多次修改和调试,是一个可靠、实用的设计,基本上满足了所设计的要求,仿真的结果在大体上达到了所设想的效果,让我对电子密码锁的组成部分又有了更熟悉的认识。电子密码锁相对于普通的锁,有很多优良的性能特点,例如,保密性好,密码可更变,误码输入保护功能,操作简单,干扰码功能,安保功能,自动上锁等功能。在实际电路的调试过程中,我们遇到了很多问题,这使得我们不

32、得不通过多种途径来解决,增强了我们通过网络,图书馆等途径来查询资料自动解决问题的能力。对于查阅资料仍无法解决的问题,我们通过与同学讨论,询问老师等途径解决了我们面临的困难和问题。虽然这次做的电子密码锁,整体上是完成了,但在制作过程中仍然存在一些问题,例如按键识别缓慢,需要等待几秒钟,系统才能识别所按键的按钮数字;安全性能不完善,因为在程序中设置的初始密码简单,所以在日常生活很容易被人盗取;程序的编写比较复杂,不够简单易懂。所以 ,电子密码锁还有待改进,不仅要在硬件设计上进行改进,程序的编写也有待加强。在功能方面也有大大加强的空间,如增加一些优良功能的作用,火灾报警功能、入侵感应功能等等。第7章

33、 总结 经过差不多两周的紧张设计,终于顺利完成了设计任务。本次课程设计主要是针对密码锁系统做了详细介绍,以AT89C52为核心,并通过调试运行可以实现数码管显示器显示密码输入的相关信息,通过10位数字按键(09)设置5位数字(09)密码,实现2位功能按键A(输入校验密码并验证密码)和B (设置新密码),利用继电器模拟电子门锁作出是否开门以及报警等反应。通过课程设计让我对单片机系统有了较详细的了解,而且触及到与其相关的很多新知识,而且随着电子技术的发展简易数字电压表也会越来越完善,作为大学生的我们应该跟上时代的步伐,时刻关注形势变化,不断充实更新自己的知识。 在这次课程设计的过程中,我觉得既锻炼

34、了我们的实际动手能力,也再一次复习了以前学习的数电知识,对逻辑门逻辑电路,各种基本集成芯片都有了进一步的理解。由简单的抽象理解到实际认知。使用Proteus仿真软件使我们更加了解他们的功能,也使我们更加懂得一个设计完全的不易。通过这次课程设计,我觉得学习像数电这样使用的知识,不仅要掌握书本上的基本内容,还要灵活思考,善于拜年话,这样才能找到最优设计,达到事半功倍的效果。 这次设计使我更加懂得了自己所学的知识是多么的有限,自己的各个方面都需要再加强。而我们要面对社会的挑战,只有不断的学习、实践,再学习、再实践;才能使自己不被社会淘汰。在这次设计中,也要感谢同组的同学的帮助,互相讨论中也使我学习了

35、他们不同的思考方式,训练了我的团队合作能力,使我明白了团体合作的重要性。在这里同时也要感谢指导老师杨帆老师,由于对以前所学知识的遗忘,我在最初的一个星期里总是不知道该怎么入手,正是有了杨帆老师的指点我的课程设计才得以顺利进行。在报告的撰写和设计模块的仿真过程中,我也得到了很多同学和朋友的帮助与支持,在这里一并表示感谢。最后,衷心感谢指导老师!感谢您在百忙之中参与我的设计指导和报告评阅工作。谢谢!9 参考文献: 1、张志良.单片机学习指导及习题解答. 机械工业出版社,2008. 2、张伟.单片机原理及应用. 机械工业出版社,2009. 3、孙俊逸 盛秋林. 张铮编著.单片机原理及应用.清华大学出

36、版社. 4、张毅刚主编. 单片机原理及应用. 北京: 高等教育出版社,2010.5.5、黄仁欣.单片机原理及应用技术. 北京: 清华大学出版社, 2005. 6、刘文涛.MCS-51单片机培训教程(C51)版.电子工业出版社,2005.8 7、王为青 程国钢.单片机Keil Cx51 应用开发技术.人民邮电出版社,2007.2 8、范风强 兰婵丽.单片机语言C51应用实战集锦.电子工业出版社,2003.3 9、龚运新.单片机C语言开发技术.清华大学出版社,2006.10 10、邵贝贝.单片机嵌入式应用的在线开发方法.清华大学出版社,2006.3 附录一:整体电路设计图附录二:程序代码#incl

37、ude<reg52.h>#define uchar unsigned char#define uint unsigned intuchar code table="welcome.enter:"uchar code table1="your password"/登陆界面uchar code error="Password error!"/密码输入错误uchar code right="Password right!" /密码输入正确uchar code neww1="Enter new wor

38、d!"/15个,输入新密码void jianpan();uchar saomiao();char panduan();void waitpd();sbit sda=P21;/sbit scl=P20;/sbit lcden=P25;sbit lcdrs=P24;sbit lcdrw=P26;sbit baojing=P23;/报警口sbit kai=P22; /开锁口uchar temp,pd;uchar num=0;uchar mima5=1,2,3,4,5;/定义密码uchar mima15 = 0;uchar newword15; /修改的密码1uint a;uint h;uc

39、har erro_flag;uchar right_flag;uchar erro;uint righ;uchar i;/*延时程序*/void delay(uint z)/延迟段uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/void delay1()/延迟/;/*显示器命令*/void write_com(uchar com) /定义 写命令lcdrs=0;lcdrw=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_data(uchar date)/定义写数据 命令lcdrs=1;

40、lcdrw=0;P0=date;delay(5);lcden=1;delay(5);lcden=0; void init_lcd() /显示频初始化lcden=0;delay(15);write_com(0x38);/显示模式设置delay(5);write_com(0x38);/显示设置 delay(5);write_com(0x01);/清屏幕delay(5);write_com(0x0f);/光标打开并闪烁write_com(0x06);/光标加一但不整体移动write_com(0x80);/设置地址指针 /*定义扫描子程序,含除抖动扫描*/uchar saomiao( ) /uint

41、num;P1=0xfe; /P1=1111 1110temp=P1;/temp=1111 1110temp=temp&0xcc; /按位与运算 cc=1100 1100while(temp!=0xcc) /1delay(20); temp=P1;temp=temp&0xcc;while(temp!=0xcc) /2temp=P1;switch(temp) /3case 0x7e:num=1;/7e=0111 1110break;case 0xbe:num=2;/be=1011 1110break;case 0xfa:num=3;/fa=1111 1010break;case 0

42、xf6:num=4;/f6=1111 0110break; /3while(temp!=0xcc) temp=P1;temp=temp&0xcc;/ /2 /1P1=0xfd; /fd=1111 1101temp=P1;temp=temp&0xcc; /f0=1111 0000while(temp!=0xcc)delay(20);temp=P1 ;temp=temp&0xcc;while(temp!=0xcc)temp=P1;switch(temp)case 0x7d:num=5;break;/7d=0111 1101case 0xbd:num=6;break;/bd=

43、1011 1101case 0xf9:num=7;break;/f9=1111 1001case 0xf5:num=8;break;/f5=1111 0101while(temp!=0xcc)temp=P1;temp=temp&0xcc;P1=0xdf;/1101 1111temp=P1;temp=temp&0xcc;while(temp!=0xcc)delay(20);temp=P1;temp=temp&0xcc;while(temp!=0xcc)temp=P1;switch(temp) case 0x5f:num=9;break; /5f=0101 1111 cas

44、e 0x9f:num=10;break;/9f=1001 1111 case 0xdb:num=11;break;/db=1101 1011 case 0xd7:num=12;break;/d7=1101 0111while(temp!=0xcc)temp=P1;temp=temp&0xcc;P1=0xef;/ 1110 1111temp=P1;temp=temp&0xcc;while(temp!=0xcc)delay(20);temp=P1;temp=temp&0xcc;while(temp!=0xcc)temp=P1;switch(temp) case 0x6f:n

45、um=13;break;/6f=0110 1111 case 0xaf:num=14;break;/af=1010 1111 case 0xeb:num=15;break;/eb=1110 1011 case 0xe7:num=16;break;/e7=1110 0111while(temp!=0xcc)temp=P1;temp=temp&0xcc;delay(10);return num;/*按键处理*/*判断是否有键按下子程序*/char panduan() P1=0xcc; temp=P1; delay(200); temp=temp&0xcc; if(temp!=0xcc) pd=1;/按下 else pd=0; /未按 return pd;/*/void waitpd()/等待直到有键按下,同时是取消的折回点 do panduan(); while(pd=0);/*按键处理*/void jianpanmm()/输入密码,并保存在mima1中 for(i=0;i<5;i+) cs: mima1i=saomiao(); switch(mima1i) case 1: write_data('1');w

温馨提示

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

评论

0/150

提交评论