《课程设计(论文)基于单片机的电子密码锁设计1.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于单片机的电子密码锁设计1.doc(17页珍藏版)》请在三一办公上搜索。
1、目 录第一章 前言- 1第二章 基本功能设计- 2n 2.1 实验任务- 2n 2.2基本设计- 2n 2.3 系统框图- - 2第三章 硬件设计- 3 3.1硬件工作接线口- 3 3.2 LED显示器结构与原理- 3 3.3复位电路- 5 3.4按键方式- 5 3.5电路原理图- 6 第四章 软件设计- 74.1功能说明- 74.2软件结构- 74.3源程序-9第五章 心得体会- 14第六章 参考文献- 15元器件清单-16第一章 前言一种能防止多次试探密码的基于单片机的密码锁设计方案,根据基本要求规划单片机密码锁的硬件电路和软件程序,同时对单片机的型号选择、硬件设计、软件流程图、单片机存储
2、单元的分配等都有注释。我们知道现在很多行业都需要密码锁,电子密码锁的性能和安全性大大超过了机械锁,为了提高密码的保密性,可以经常更改密码,防止密码被盗;当密码输入错误多次时,报警系统可自动启动。它们有很多扩展功能:用户可以根据实际情况随意改变密码值或密码长度,按下“密码修改键”提示用户输入原密码,通过校验后提示输入新密码,一次写入CPU存储器中,另一次写入单片机内部RAM中,以便机器确认密码的正确性。输入完毕后,按修改确认键,两次的密码完全一致时,密码修改完成。我们这可以在输入的密码与程序中设定的密码相比,若失误,会有灯亮提示,但三次后都错误,系统可自动报警。防盗报警功能是利用断线方式报警,当
3、CPU检测不到返回信号时,系统自动报警单元报警,正常开启锁时,系统自动切断报警单元的电源。第二章 基本功能设计1、实验任务根据设定好的密码,采用矩阵式按键实现密码的输入功能,当密码输入正确之后,锁就打开(即绿灯亮),如果输入的三次密码不正确,就锁定按键3秒钟,同时报警(即红灯亮)。2、基本设计我们将密码程序存在EPROM中,用户通过单片机上P1.0口上的12按键进行选择。具体操作如下:首先按一下P1.0口上的按键,然后再逐渐输入密码,最后按#号确认即可。设置显示初始符号“”,为了帮助用户确认是否有键按下,并且防止密码外泄,在输入显示时,并不是显示用户按下的数字符号,而是以一个特定的字母符号提醒
4、用户是否有键按下。有键按下,就会显示字符“F”,没有键按下就是初始状态。首先按下P1.0口上的按键,然后输入密码,正确则绿灯亮,输入三次都不正确的则红灯亮。3、系统框图AT89C51CPU显示键盘复位晶振第三章 硬件设计1、硬件工作接线口P0口接数码管,用来显示按键是否按下,P1口接键盘, P2口按串行方式传送信号给数码管,P2.0口显示电磁锁开还是闭合状态。把单片机系统区域中的P0口用导线连接“四路静态数码显示”的任一端口上,把单片机系统区域中的P1口上接独立式键盘。2、LED显示器结构与原理LED显示块是由发光显示二极管显示字段的显示器件。在单片机中我们通常用七段LED,这种显示共有共阴极
5、和共阳极两种,本设计是用共阳极,是LED显示块的发光二极管与阳极并接,如图所示通常的七段显示块中共有8个发光二极管,其中7个发光二极管构成七笔字形“8”,一个发光二极管构成小数点。七段显示块与单片机接口非常容易。只要将一个8位并行输出与显示块的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制发光二极管的8位字节数据称为段选码。显示字符共阳极段选码显示字符共阳极段选码0C0HA88H1F9HB7CH2A4HCC6H3B0HDA1H499HE86H592HF8EH682H7F8H880H990H3、复位电路如图所示为80C51型单片机上电复位电路。80C
6、51型单片机将复位,为保证微分脉冲宽度足够大,一般取10F电容。4、按键方式按键方式有独立式和行列式两种,本设计是采用独立式,共设置5个按键。独立式按键是指直接用I/O口线构成的单个按键电路。每个独立按键单独占有一根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线的工作状态。若按键AN1AN5分别代表数码15,AN0代表#号。在没有键按下时,P1.0P1.7都是高电平1,若某个键被按下,相应的接口线就变为低电平0。开锁时必须先按AN1,使从P1口读入的第一个值与存储单元的设定值相同,再顺序按按钮将密码输入,才能开锁。5、电路原理图第四章 软件设计1、功能说明1.1将密码存放在T
7、ABLE(DB 02H,02H,01H,05H,08H,02H),输入221582时,再按“*”就可打开电锁,然后清除显示器为“000000”.1.2 如按错则重新输入或按“#”,将显示器清除为“000000”2、软件结构密码锁主程序设置初始密码初始显示/关闭锁读端口P1,取按键状态有按键按下么?有按键按下么?再次读端口P1送列扫描字读行线状态第1行按下?第2行按下?第3行按下?4列扫描完第0行按下?保护现场A=00A=12A=08A=04相加计算键号调用按键查询子程序按键释放么?A=设定密码么?键号给A显示“F”显示“E”NYNYYYYYNNNNNYNYYN11222、源程序 ORG 000
8、0HSTART:ORL P2,#0FFH MOV R4,#06H MOV R0,#30HCLEAR:MOV R0,#00H INC R0 DJNZ R4,CLEARL1: MOV R3,#0F7H MOV R1,#00HL2: MOV A,R3 MOV P1,A MOV A,P1 MOV R4,A SETB C MOV R5,#03HL3: RLC A JNC KEYIN INC R1 DJNZ R5,L3 CALL DISP MOV A,R3 SETB C RRC A MOV R3,A JC L2 JMP L1KEYIN:MOV R7,#60HD2: MOV R6,#248 DJNZ R6,
9、$ DKNZ R7,D2D3: MOV A,P1 XRL A,R4 JZ D3 MOV A,R1 MOV DPTR,#TABLE MOVC A,A+DPTR MOV R7,A XRL A,#0AH JZ COMP MOV A,R7 XRL A,#0BH JZ START MOV A,R7 XCH A,30H XCH A,31H XCH A,32H XCH A,33H XCH A,34H XCH A,35H CALL DISP JMP L1DISP: MOV A,#35H ADD A,#50H MOV P0,A CALL DELAY MOV A,#34H ADD A,#40H MOV P0,A
10、CALL DELAY MOV A,#33H ADD A,#30H MOV P0,A CALL DELAY MOV A,#32H ADD A,#20H MOV P0,A CALL DELAY MOV A,#31H ADD A,#10H MOV P0,A CALL DELAY MOV A,#30H ADD A,#00H MOV P0,A CALL DELAY RETCOMP: MOV R0,#35H MOV R2,#06H MOV R7,#12X4: MOV A,R7 MOV DPTR,#TABLE MOVC A,A+DPTR XRL A,R0 JNZ X7 DEC R0 INC R7 DJNZ
11、R2,X4 MOV P2,#0FFH MOV R2,#200X6: MOV R6,#248 DJNZ R6,$ DJNZ R2,X6X7: JMP STARTDELAY:MOV R7,#06D1: MOV R6,#248 DJNZ R6,$ DJNZ R7,D1 RETTABLE:DB 01H,02H,03H DB 04H,05H,06H DB 07H,08H,09H DB 0AH,00H,0BH DB 02H,02H,01H,05H,08H,02H END五、心得体会自己写-第六章 参考文献1、 王迎旭编.单片机原理与应用M.机械工业出版社.2004.2、 楼然苗编.51系列单片机设计实例M.北京航空航天大学出版社.3、 黄勤编.计算机硬件技术基础实验教程M.重庆大学出版社4、刘乐善编.微型计算机接口技术及应用M.华中科技大学出版社.5、陈光东编.单片微型计算机原理及接口技术M.华中科技大学出版社.元器件清单元件名称参数元件名称参数PNP(三极管)MPS6518电源5V、12V单片机89C51电阻470k晶体振荡器12MHZ74LS04瓷片电容22UF开关KEYPAD-PHONE显示器7SEG-MPX6-C6编码器74ls138译码器7447无极性电容22uf锁搞rl-1a-cf-dc12驱动器ULN2003