单片机电子密码锁的设计(汇编语言)_第1页
单片机电子密码锁的设计(汇编语言)_第2页
单片机电子密码锁的设计(汇编语言)_第3页
单片机电子密码锁的设计(汇编语言)_第4页
单片机电子密码锁的设计(汇编语言)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上一、设计总说明 随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。 本次基于8051单片机电子密码锁的设计,其主要具有如下功能: (1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。 (2)密码

2、可以由用户自己修改设定(只支持6位密码),锁打开后才能 改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确 以防止误操作。 (3)报警、锁定键盘功能。密码输入用发光管显示,当连续3次输入错误 密码,系统声光报警。 电子密码锁的设计主要由三部分组成:4×4矩阵键盘接口电路、密码锁 的控制电路、输出八段显示电路。另外系统还有LED提示灯等。 密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能: (1)密码输入功能:按下一个数字键,一个“”就显示在最右边的数码 管上,同时将先前

3、输入的所有“”向左移动一位。 (2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所 有显示。 (3)密码更改功能:将输入的值作为新的密码。 (4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果 确锁打开,否则不打开。 主要的设计实施过程:首先,选用8051单片机,以及选购其他电子元器件。第二步,设计硬件电路。第三步,编写单片机语言实现功能。第四部,分别进行软件和硬件的调试。最后,联合软、硬件调试整个系统,完成本次课程设计。 关键词:4×4矩阵键盘;8051单片机;密码锁;密码二次确认二、&

4、#160;绪论 2.1         背景 随着社会物质财富的日益增长,安全防盗已成为社会问题。而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。目前国内,大部分人使用的还是传统的机械锁。然而,眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。所谓互开率,是各种锁具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。经国家工商局、国家内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍。 

5、为何弹子锁的“互开率”会如此之高?据有关专家人士剖析,弹子锁质量好坏主要取决于弹子数量的多少以及弹子的大小,而弹子的多少和大小受一定条件的限制。此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。机械锁的这些弊端为一种新型的锁-电子密码锁,提供了发展的空间。 2.2          电子锁 电子锁是采取电子电路控制,以电磁铁或者卫星电机和锁体作为执行装置的机电一体化锁具,相比传统的机械锁具,电子锁不使用金属钥匙,保密性、精度都有很大提高。

6、60; 电子锁的发明思路,源自古代发明的自动机械,例如古希腊数学家赫伦的液压自动门,中国古代诸葛亮的木牛流马,它们以重力或蒸汽压力驱动,最广泛的用途乃是用在古代墓道的地下机关。电子工业的诞生,使得以微小电量驱动机械成为可能,于是有了电子锁一日千里的跃进。 三、课题要求 本次课程设计,基于8051单片机电子密码锁的设计,利用4*4小键盘作为输入,LED作为显示。当输入密码和设定的密码一致时,系统利用继电器输出解锁信号,其主要具有如下功能: (1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。 (2)密码可以由用户自己修改设定(只支持6位

7、密码),锁打开后才能 改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确 以防止误操作。 (3)报警、锁定键盘功能。密码输入用发光管显示,当连续3次输入错误 密码,系统声光报警。四、 课题分析 电路主要包括矩阵键盘输入密码,外部密码验证,单片控制,原理方框图如下: 4.1矩阵键盘输入控制电路 设计方案是非编码键盘,每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。

8、0;行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。通过不断读行线口线,或者中断方式触发键位扫描。 当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。 将每个行线和列线的组合值作成列表,每次就可以通过查表确定键位,以决定之后要进行的操作。 五、课题方案选择 方案一:使用8051单片机,采用汇编语言编写程序,该程序语言功能强大,调试较为方便,具有很强的实用性。 方案二:利用数字逻辑电路,运用电压比较器,555单稳态电路,计数器,JK触发器,UPS电源等实现对

9、门的电子控制。 方案三:使用8051单片机,利用基于单片机的C语言编写程序,通过Keil C51 uVision2软件进行仿真模拟。 方案二基于数字电路,操作繁琐,会出现较多的器件故障,同时调试复杂,难于维护。方案三该逻辑语言较为复杂,编写程序时也较为复杂,还需进行软件仿真模拟,设计复杂。综上所述,使用方案一,设计较为简便,调试简单,硬件电路较少,易于维护。六、程序部分 ORG  1000H MOV R4,#08H 密码个数8个  MOV R0,#40H 

10、密码暂存区  MOV A,#00H 初始密码0,1,2,3,4,5  GO: MOV R0,A  INC R0  INC A  DJNZ R4,GO SETB P3.0; 确认 SETB P3.1 锁开  SETB P3.2 错误 SETB P3.4 报警  MOV R

11、0,#20H   MOV A,#03H    MOV R0,A  8155初始化   MOV R0,#79H   MOV R7,#06H INIT: MOV R0,#0  显示缓冲区清零   INC R0   DJNZ R7,INIT LOP: LCALL D

12、ISP   LCALL KEYB   JB ACC.4,LOP  未按键返回   MOV R0,#7EH   MOV R7,#05H        PUSH A SETD: DEC R0 MOV A,R0INC R0 MOV R0,ADEC 

13、;R0 DJNZ R7,SETD POP ACC MOV R0,A MOV 7DH,7CH CJNE ,A,#0AH,LOP CLR P3.0 ACALL COMP  CJNE  R3,  #03H, LOP CLR  P3.4 SJMP LOP-KEYB: LCALL BKS  按键处理子程序&#

14、160;  JNZ BLK1   LCALL DISP  SJMP KEYB BLK1: LCALL DISP   LCALL DISP   LCALL BKS   JNZ BLK2   LCALL DISP   SJMP KEYB BLK2: MO

15、V R2,#0FEH   MOV R4,#0 BLK4: MOV R1,#21H   MOV A,R2   MOVX R1,A   MOV R1,#23H   MOVX A,R1   JB ACC.0,BL1   MOV A,#0   SJMP

16、60;BLKP BL1:  JB ACC.1,BL2   MOV A,#08H   SJMP BLKP BL2: JB ACC.2,BL3   MOV A,#10H   SJMP BLKP BL3: JB ACC.3,BL   MOV A,#18H BLKP: ADD 

17、A,R4   PUSH ACCBLK3: LCALL DISP   LCALL BKS   JNZ BLK3   POP ACC   CJNE A,#10H,PP PP:  JNC PP1   MOV DPTR,#TBL   MOVC A,A+DPTR

18、0;PP1: RET TBL: DB 07H,04H,08H,05H,09H,06H,0AH,0BH,01H,00H   DB 02H,0FH,03H,0EH,0CH,0DH BL:   INC R4   MOV A,R2JNB ACC.7,BKLD   RL A   MOV R2,A   SJMP 

19、;BLK4 BLKD: SJMP KEYBBKS: MOV R1,#21H   MOV A,#0   MOVX R1,A   MOV R1,#23H   MOVX A,R1   CPL A   ANL A,#0FH   RET - DISP: MOV

20、 R0,#79H   MOV R3,#20H BTL: MOV A,R3   MOV R1,#21H   MOVX R1,A  送位选码到PA口   MOV A,R0  MOV DPTR,#TAB1   MOVC A,A+DPTR 查表   INC R1

21、60;  MOVX R1,A  送显示码到PB口   LCALL DELAY  延时   INC R0   MOV A,R3   JB ACC.0,HERE  一轮显示完到HERE   RR A   MOV R3,A   SJMP 

22、;BTL   继续本轮显示 HERE: RET TAB1: DB 0C0H,0F9,0A4H,0B0H,99H,92H,82H 共阳显示码   DB 0F8H,80H,90H DELAY: MOV R6,#0FFH 延时子程序  D1: MOV R5,#0FFH  D2: DJNZ R5,D2   DJNZ 

23、R6,D1       MOV 30H,7EH       MOV 31H,7DH       MOV 32H,7CH MOV 33H,7BH MOV 34H,7AH MOV 35H,79HRET - COMP: MOV  R1,#40H 

24、       MOV  A,R1        CJNE  A,30H, MORE        INC R1 MOV  A,R1        CJNE  A,31H, 

25、;MORE        INC R1 MOV  A,R1        CJNE  A,32H, MORE        INC R1 MOV  A,R1        

26、;CJNE  A,33H, MORE        INC R1 MOV  A,R1        CJNE  A,34H, MORE        SJMP K MORE: INC R3  

27、0;     CLR P3.2    K: RET   END   ORG  1000H MOV R4,#08H 密码个数8个  MOV R0,#40H 密码暂存区  MOV A,#00H 初始密码0,1,2,3,4,5  GO: MOV R0,A 

28、 INC R0  INC A  DJNZ R4,GO SETB P3.0; 确认 SETB P3.1 锁开  SETB P3.2 错误 SETB P3.4 报警 MOV R0,#20H   MOV A,#03H   MOV R0,A  8155初始化 

29、0; MOV R0,#79H   MOV R7,#06H INIT: MOV R0,#0  显示缓冲区清零   INC R0   DJNZ R7,INITLOP: LCALL DISP   LCALL KEYB   JB ACC.4,LOP  未按键返回   

30、MOV R0,#7EH   MOV R7,#05H        PUSH A SETD: DEC R0 MOV A,R0 INC R0 MOV R0,A DEC R0 DJNZ R7,SETD POP ACC MOV R0,A MOV 7DH,7CH CJN

31、E ,A,#0AH,LOP CLR P3.0 ACALL COMP  CJNE  R3,  #03H, LOP CLR  P3.4 SJMP LOP   - KEYB: LCALL BKS  按键处理子程序   JNZ BLK1   LCALL DISP &#

32、160; SJMP KEYB BLK1: LCALL DISP   LCALL DISP   LCALL BKS   JNZ BLK2   LCALL DISP   SJMP KEYB BLK2: MOV R2,#0FEH   MOV R4,#0 BLK4: 

33、MOV R1,#21H   MOV A,R2   MOVX R1,A   MOV R1,#23H   MOVX A,R1   JB ACC.0,BL1   MOV A,#0   SJMP BLKP BL1:  JB ACC.1,BL2 MOV A,#

34、08H   SJMP BLKP BL2: JB ACC.2,BL3   MOV A,#10H   SJMP BLKP BL3: JB ACC.3,BL   MOV A,#18H BLKP: ADD A,R4   PUSH ACC BLK3: LCALL DISP 

35、60; LCALL BKS   JNZ BLK3   POP ACC   CJNE A,#10H,PP PP:  JNC PP1   MOV DPTR,#TBL   MOVC A,A+DPTR PP1: RET TBL: DB 07H,04H,08H,05H,09H,06H,0AH,0BH

36、,01H,00H   DB 02H,0FH,03H,0EH,0CH,0DH BL: INC R4   MOV A,R2   JNB ACC.7,BKLD   RL A   MOV R2,A   SJMP BLK4 BLKD: SJMP KEYB BKS: MOV R1,

37、#21H   MOV A,#0   MOVX R1,A  MOV R1,#23H   MOVX A,R1   CPL A   ANL A,#0FH   RET - DISP: MOV R0,#79H   MOV R3,#20H BTL: M

38、OV A,R3   MOV R1,#21H   MOVX R1,A  送位选码到PA口   MOV A,R0   MOV DPTR,#TAB1  MOVC A,A+DPTR 查表INC R1   MOVX R1,A  送显示码到PB口   LCALL DELA

39、Y  延时   INC R0   MOV A,R3   JB ACC.0,HERE  一轮显示完到HERE   RR A   MOV R3,A   SJMP BTL   继续本轮显示 HERE: RET TAB1: DB 0C0H,0F9,

40、0A4H,0B0H,99H,92H,82H 共阳显示码   DB 0F8H,80H,90H DELAY: MOV R6,#0FFH 延时子程序  D1: MOV R5,#0FFH  D2: DJNZ R5,D2   DJNZ R6,D1        MOV 30H,7EH  &

41、#160;     MOV 31H,7DH        MOV 32H,7CH MOV 33H,7BH MOV 34H,7AH MOV 35H,79H RET - COMP: MOV  R1,#40H        MOV  A

42、,R1       CJNE  A,30H, MORE        INC R1 MOV  A,R1        CJNE  A,31H, MORE        INC R1

43、 MOV  A,R1        CJNE  A,32H, MORE        INC R1 MOV  A,R1        CJNE  A,33H, MORE        INC R1

温馨提示

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

评论

0/150

提交评论