1、电子密码锁课程设计2摘要围绕电子密码锁系统的设计与开发进行研究和实践,详细介绍了电子密码锁系统的整体结构,硬件设计,软件设计,系统方案以及其它的开发和具体实现。介绍一种基于在系统可编程技术和编译器配有集成开发的新型电子密码锁的设计方法,阐述其工作原理和软硬件设计。在硬件上,用公司的大规模集成芯片对其外围电路进行集成,用一片实现了几十片分离元件才能实现的功能,几乎将整个系统下载与同一芯片中,实现了所谓的片上系统,从而大大简化了系统结构,增强系统的结构的可靠性和性价比。该密码锁特别适用于宾馆,办公大楼,公寓等场所。关键字:密码锁 AT89C51芯片 Keil软件 Proteus软件 74LS245
2、芯片 蜂鸣箱 显示屏目录绪论引言电子密码锁的背景设计说明总体说明总体结构图硬件设计元件清单原理图电路元件说明及原理图LED数码显示器复位电路时钟电路矩阵电路74LS245说明单片机引脚说明程序存储器和数据存储器的单元分配程序存储器和数据存储器的单元分配程序存储器数据存储器特殊功能寄存器程序设计程序流程图原程序运行结果总结参考文献1 绪论1.1 引言随着人们生活水平的提高,如何实现防盗这一问题也变的尤其突出,传统的机械锁由于其构造的简单,被撬的时间屡屡发生。电子所由于其保密性高,使用灵活性好,安全系数高,受到了广大人民的喜爱。锁是置于可启闭的器物上,用以关注某个确定的空间范围或某种器具的,必须以
3、钥匙或暗码打开的扣件。锁具发展到现在已有若千年的历史了,人们对他的结构,机理也研究的很透彻,因此,不用钥匙打开的方式也层出不穷。现代人类文明社会里,由于各种矛盾冲突十分激烈,人们的思想道德观念,价值观,文化修养水平等差异,群众中良莠不齐,善良的人们能够自觉规范自己的行为,“非礼不为”,虽无钥匙亦不会乱闯。然而,那些毫无道德观念的盗贼却想法设法利用高科技设备撬开门锁,使广大居民防不胜防。所以更为现在的锁具需要需要革命。 1.2 电子密码锁的背景 随着社会科技的进步,锁已经发展到了密码锁。电子锁,激光锁,声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同光束,光波,不同图
4、像(指纹,脸部等)来控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。当今安全信息系统越来越广泛,特别是保护机密,维护隐私和财产保护方面起到重要作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有 重大的现实意义。 设计说明 .1总体说明用4*3的矩阵键盘组成0至9及确认键和清除键;提示信息的显示电路用8位数码管组成显示,初始化时显示器显示“EF”,当输入密码时,只显示“-”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码输入正确,则锁开,即LED发光二极管发光;若密码输入不正确, 则蜂鸣器一直发出“嘀”、
5、“嘀”的报警声,直到复位。在输入密码的后按“”键,进行密码比较然后给出相应信息。若输入密码错误,可以利用“”键删除刚才输入的错误的数字。.总体结构图:显示屏幕晶振电路复位电路键盘硬件设计.1元件清单: 原件名称 所属类 所属子类AT89C51Microprocessor ICs8051 familyCAPCapacitorsGenericCAP-ELECCapacitorsGenericCRYSTALMiscellameous-RESResistorsGeneric7SEG-MPX8-CC-BLUEOptoelectronics6-Segmeng Displays74LS245TTL 74LS
6、 seriesTransceiversBUTTONSwitches &RelaysSwitchesSOUNDERSpeakers&Sounder-LED-YELLOWOptoelectronicsLEDs元件全部添加完后,在Proteus ISIS的编辑区域中按下图所示的原理图连接硬件电路。.原理图:.电路元件说明及原理图:3.LED数码显示器LED显示块是由发光显示二极管显示字段的显示器件。它实际上是由8个发光二极管,其中7个发光二极管构成七笔字形“8”,另一个发光二极管构成小数点。七段显示块与单片机接口非常容易。只要将一个8位并行输出与显示块的发光二极管引脚相连即可。8位并行输出口输出不同
7、的字节数据即可获得不同的数字或字符,通常将控制发光二极管的8位字节数据称为段选码。LED数码显示器内部有两种不同的形式:共阳极显示和共阴极显示,此设计采用共阴极显示。其内部结构及共阴极显示其内部电路如下:LED数码显示字形(段)码表如下:显示字形字形码(共阳极)字形码(共阴极)0C0H3FH1F9H06H2A4H5BH3B0H4FH499H66H592H6DH682H7DH7F8H07H880H7FH990H6FHA88H77HB83H7CHCC6H39HDA1H5EHE86H79HF8EH71H3.2 复位电路:复位电路有上电自动复位和手动复位,此设计用的是上电复位,电路图如上。pin9:R
8、ESET/VPD复位信号复位脚,当8951通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统及初始复位。3. 3. 3时钟电路:89C51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。电容器C1和C2通常取30PF,可稳定频率并对振荡频率有微调作用。此振荡脉冲频率为12MHZ。单片机时钟电路振荡脉冲可以由内部方式和外部方式产生,XTAL1(19引脚)XTAL2(18引脚)即为单片机的两个时钟引脚。3.矩阵键盘:矩阵式键盘又称行列式键盘,往往用于按键个数多的场合,
9、矩阵式键盘的按键于行、列的交叉点上,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接,列线通过上拉电阻接电源,将行线所得单片机的I/O口作为输出端,列线所接的I/0口为输入端,编程所有行线输出低电平,列线输出高电平,当没有键被按下时,所有输出端为高电平,表示无键按下,一旦有键按下,则出现输入端被拉低变为低电平。这样,通过读入列线的状态即可知道是否有键按下。3.74LS245说明: 74LS45芯片常来驱动LED或者其它设备,它是8路同相三态双向总线收发器,可双向传输数据。当单片机的PO口总线负载达到或者超过PO最大负载能力是,必须接入74LS245等总线驱动器。3.单片机引脚说明
10、Pin20:接地脚。pin40:正电源脚,工作时,接+5v电源。pin19:时钟XTAL1引脚,片内振荡电路的输入端。pin18:时钟XTAL2脚,片内振荡电路的输出端。程序存储器和数据存储器的单元分配.程序存储器和数据存储器的单元分配存储器是单片机的一个重要组成部分,每个存储单元对应一个地址,每个个单元共有1个地址,用两位16进制数表示,即存储器的地址(00HFFH)。存储器中每个存储单元可存放一个八位二进制信息,通常用两位16进制数来表示,这就是存储器的内容。.1.程序存储器 在单片机处理问题之前必须事先将编好的程序、表格、常数汇编成机器代码后存入单片机的存储器中,该存储器称为程序存储器。
11、程序存储器可以放在片内或片外,亦可片内片外同时设置。由于PC程序计数器为16位,使得程序存储器可用16位二进制地址,因此,内外存储器的地址最大可从0000H到FFFFH。.1.数据存储器 单片机的数据存储器由读写存储器RAM组成。其最大容量可扩展到64k,用于存储实时输入的数据。8051内部有256个单元的内部数据存储器,其中00H7FH为内部随机存储器RAM,80HFFH为专用寄存器区。 .1.特殊功能寄存器特殊功能寄存器(SFR)的地址范围为80HFFH。在MCS51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。MCS51共有P0P3四个这样的并行口,
12、可提供32根I/O线,每根线都是双向的,并且大都有第二功能。其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能。程序设计 8位数码显示,初始化时,显示“EF”,接着输入最大6位数的密码,当密码输入完毕后,按下“ENTER”键,与密码初始值进行比较,若发光二极管发光,则说明密码正确;如果蜂鸣器发出报警声,则说明密码错误。在输入密码过程中,显示器只显示“-”,当输入密码位数超过6个数字时,蜂鸣器会发出报警声。在输入密码过程中,若输入错误,则可以通过清零键“CLR”删除输入错误的数字,接着可以继续输入数字。.程序流程:如下图 否是是否是 .源程序LED_BIT1 EQU
13、 30HLED_BIT2 EQU 31HLED_BIT3 EQU 32HLED_BIT4 EQU 33HLED_BIT5 EQU 34HLED_BIT6 EQU 35HLED_BIT7 EQU 36HLED_BIT8 EQU 37HWORD_1 EQU 38HWORD_2 EQU 39HWORD_3 EQU 3AHWORD_4 EQU 3BHWORD_5 EQU 3CHWORD_6 EQU 3DH KEY_1 EQU 3EHKEY_2 EQU 3FHKEY_3 EQU 40HKEY_4 EQU 41HKEY_5 EQU 42HKEY_6 EQU 43HKEY_CNT EQU 46HLINE E
14、QU 47HROW EQU 48HVAL EQU 49H ORG 0000H SJMP STARTSTART: MOV CNT_A,#00H MOV CNT_B,#00H MOV KEY_CNT,#00H MOV LINE,#00H MOV ROW,#00H MOV VAL,#00H CLR P1.0 CLR P1.7 MOV LED_BIT1,#00H MOV LED_BIT2,#00H MOV LED_BIT3,#00H MOV LED_BIT4,#00H MOV LED_BIT5,#00H MOV LED_BIT6,#00H MOV LED_BIT7,#79H MOV LED_BIT8,
15、#73H MOV KEY_1,#00H MOV KEY_2,#00H MOV KEY_3,#00H MOV KEY_4,#00H MOV KEY_5,#00H MOV KEY_6,#00H MOV WORD_1,#6 MOV WORD_2,#5 MOV WORD_3,#4 MOV WORD_4,#3 MOV WORD_5,#2 MOV WORD_6,#1A0: LCALL DISPLSCAN: MOV P3,#0F0HL1: JNB P3.0,L2 LCALL DLY_S JNB P3.0,L2 MOV LINE,#00H LJMP RSCANL2: JNB P3.1,L3 LCALL DLY
16、_S JNB P3.1,L3 MOV LINE,#01H LJMP RSCANL3: JNB P3.2,L4 LCALL DLY_S JNB P3.2,L4 MOV LINE,#02H LJMP RSCANL4: JNB P3.3,A0 LCALL DLY_S JNB P3.3,A0 MOV LINE,#03HRSCAN: MOV P3,#0FHC1: JNB P3.4,C2 MOV ROW,#00H LJMP CALCUC2: JNB P3.5,C3 MOV ROW,#01H LJMP CALCUC3: JNB P3.6,C1 MOV ROW,#02H CALCU: MOV A,LINE M
17、OV B,#03H MUL AB ADD A,ROW MOV VAL,A CJNE A,#0AH,J1 MOV R1,KEY_CNT CJNE R1,#00H,J2 LCALL ALARM_2 LJMP STARTJ2: DEC KEY_CNT LCALL SHIFTRW00: LCALL DISP MOV A,P3 CJNE A,#0FH,W01 LJMP A0W01: MOV A,P3 CJNE A,#0F0H,W02 LJMP A0W02: SJMP W00J1: MOV A,VAL CJNE A,#0BH,J3 MOV R1,KEY_CNT CJNE R1,#06H,J4 MOV A,
18、WORD_1 CJNE A,3EH,J5 MOV A,WORD_2 CJNE A,3FH,J5 MOV A,WORD_3 CJNE A,40H,J5 MOV A,WORD_4 CJNE A,41H,J5 MOV A,WORD_5 CJNE A,42H,J5 MOV A,WORD_6 CJNE A,43H,J5 SETB P1.0 LCALL DLY_L LJMP FINIJ5: LCALL ALARM_2 LJMP STARTJ4: LCALL ALARM_2 LJMP STARTJ3: INC KEY_CNT MOV A,KEY_CNT CJNE A,#07H,K1 LCALL ALARM_
19、2W10: LCALL DISP MOV A,P3 CJNE A,#0FH,W11 LJMP STARTW11: MOV A,P3 CJNE A,#0FH,W12 LJMP STARTW12: SJMP W10 LJMP STARTK1: LCALL SHIFTLW20: LCALL DISP MOV A,P3 CJNE A,#0FH,W21 LJMP A0W21: MOV A,P3 CJNE A,#0F0H,W22 LJMP A0W22: SJMP W20 LJMP A0ALARM_2:SETB P1.7 LCALL DLY_L SHIFTL: MOV LED_BIT6,LED_BIT5 M
20、OV LED_BIT5,LED_BIT4 MOV LED_BIT4,LED_BIT3 MOV LED_BIT3,LED_BIT2 MOV LED_BIT2,LED_BIT1 MOV LED_BIT1,#40H MOV KEY_6,KEY_5 MOV KEY_5,KEY_4 MOV KEY_4,KEY_3 MOV KEY_3,KEY_2 MOV KEY_2,KEY_1 MOV KEY_1,VAL RETSHIFTR: MOV LED_BIT1,LED_BIT2 MOV LED_BIT2,LED_BIT3 MOV LED_BIT3,LED_BIT4 MOV LED_BIT4,LED_BIT5 MO
21、V LED_BIT5,LED_BIT6 MOV LED_BIT6,#00H MOV KEY_1,KEY_2 MOV KEY_2,KEY_3 MOV KEY_3,KEY_4 MOV KEY_4,KEY_5 MOV KEY_5,KEY_6 MOV KEY_6,#00H RETDISP: CLR P2.7 MOV P0,LED_BIT8 LCALL DLY_S SETB P2.7 CLR P2.6 MOV P0,LED_BIT7 LCALL DLY_S SETB P2.6 CLR P2.5 MOV P0,LED_BIT6 LCALL DLY_S SETB P2.5 CLR P2.4 MOV P0,L
22、ED_BIT5 LCALL DLY_S SETB P2.4 CLR P2.3 MOV P0,LED_BIT4 LCALL DLY_S SETB P2.3 CLR P2.2 MOV P0,LED_BIT3 LCALL DLY_S SETB P2.2 CLR P2.1 MOV P0,LED_BIT2 LCALL DLY_S SETB P2.1 CLR P2.0 MOV P0,LED_BIT1 LCALL DLY_S SETB P2.0 RETDLY_S: MOV R6,#10D1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RETDLY_L: MOV R5,#100D2:
23、MOV R6,#100D3: MOV R7,#248 DJNZ R7,$ DJNZ R6,D3 DJNZ R5,D2 RETFINI: NOP运行结果按下Play键,显示器显示字母“EF”,输入密码后,按“ENTER”键,密码正确,二极管发光,密码不正确,发出警报声。若操作错误也会发出警报声。总结 通过此次课程设计,我重新把单片机及相关知识联系在了一起,虽然掌握的知识不是很多,但通过查找资料我还是对单片机有了很好的了解和掌握。在设计中我才发现单片机虽然体积小但是功能很强大,在生活中很多地方都可以用到它。单片机这门学科博大精深,在以后的学习中只有多看书,理论与实践结合才能把这门课掌握好。同时我也
24、体会到合作的好处。让我懂得了如何合作,对不同看法发表自己的意见。此次设计中最要的一点是,让我知道了,理论联系实践的好处。不管理论学的再怎么好都必须联系实践,只有在实践中我们才会更加懂得如何运用自己的所学,在实践中将自己的知识实物化。理论联系实践是我们获取知识的最佳途径。参考文献1周润景 张丽娜 丁莉.基于PROTEUS的电路及单片机设计与仿真(第二版).北京航天航空大学出版社2009.122 李朝清.单片机原理及接口技术(第三版). 北京航天航空大学出版社.2006.123 周兴华.手把手教你学单片机. 北京航天航空大学出版社.2006.124 张文利.微机原理及单片机接口技术.中国科学技术大学出版社2007.7
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1