单片机电子密码锁课程设计.docx
- 文档编号:5660308
- 上传时间:2022-12-30
- 格式:DOCX
- 页数:19
- 大小:348.29KB
单片机电子密码锁课程设计.docx
《单片机电子密码锁课程设计.docx》由会员分享,可在线阅读,更多相关《单片机电子密码锁课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
单片机电子密码锁课程设计
中北大学
课程设计说明书
学生姓名:
学号:
学院:
信息与通信工程学院
专业:
电气工程及其自动化
题目:
电子密码锁
课程设计任务书
1.设计目的:
利用MCS-51系列单片机及相关元器件设计电子密码锁。
2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):
设计要求:
用4
3组成0-9数字键及确认键、删除键;用8位数码管组成显示电路提示信息,当输入密码时,只显示“—”,当密码位输入完毕按下确定键时,对输入的密码与设定的密码进行比较,若密码正确,则锁开,此处用LED发光二极管亮1S作为提示;若密码不正确,禁止按键输入3S,同时发出“嘀嘀”报警声。
3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:
本课题应完成以下设计内容:
1)硬件设计
设计电子密码锁硬件电路,用PROTEL绘制硬件电路图。
2)软件设计
(1)编制相应的软件;
(2)画出程序框图;
(3)调试与分析。
用PROTEUS进行仿真。
3)课程设计说明书。
课程设计任务书
4.主要参考文献:
1杨文龙.单片机原理及应用.西安:
西安电子科技大学出版社,1993
2李朝青.单片机原理及接口技术.北京:
北京航空航天大学出版社,2003
3胡汉才.单片机原理及系统设计.北京:
清华大学出版社,2003
4杨忠煌,黄博俊,李文昌.单芯片8051实务与应用.北京:
中国水利水电出版社,2001
5.设计成果形式及要求:
完成课程设计说明书一份,要求:
1)写出主要设计思路,工作原理;
2)画出硬件接线图;
3)调试出现的问题及解决方法;
4)提交程序清单。
6.工作计划及进度:
2010年6月7日~6月10日:
查阅相关文献资料
6月11日~6月14日:
总体方案设计
6月15日~6月18日:
硬件原理图设计
2010年6月19日~6月20日:
软件设计
6月20日:
答辩或成绩考核
系主任审查意见:
签字:
年月日
目录
1 前言------------------------------------------------------------------1
2设计任务和要求--------------------------------------------------------1
2.1实验任务------------------------------------------------------------1
2.2 基本要求------------------------------------------------v----------1
3系统框图和硬件设计---------------------------------------------------2
3.1系统框图-----------------------------------------------------------2
3.2 硬件设计-----------------------------------------------------------2
3.2.1LED显示器结构与原理----------------------------------------------2
3.2.2硬件工作连接口---------------------------------------------------3
3.2.3 复位电路---------------------------------------------------------3
3.2.4按键方式---------------------------------------------------------3
4电路原理图与说明=----------------------------------------------------4
4.1 电路原理图及其说明-------------------------------------------------4
4.2元器件清单---------------------------------------------------------4
5软件设计框图及源程序-------------------------------------------------4
5.1程序设计思路框图---------------------------------------------------4
5.2源程序清单与注释如下-----------------------------------------------5
6用PROTEUS进行仿真实验结果-------------------------------------------14
7课程设计体会及总结---------------------------------------------------16
参考文献------------------------------------------------------------17
1前言:
一种能防止多次试探密码的基于单片机的密码锁设计方案,根据基本要求规划单片机密码锁的硬件电路和软件程序,同时对单片机的型号选择、硬件设计、软件流程图、单片机存储单元的分配等都有注释。
我们知道现在很多行业都需要密码锁,电子密码锁的性能和安全性大大超过了机械锁,为了提高密码的保密性,可以经常更改密码,防止密码被盗;当密码输入错误多次时,报警系统可自动启动。
它们有很多扩展功能:
用户可以根据实际情况随意改变密码值或密码长度,按下“密码修改键”提示用户输入原密码,通过校验后提示输入新密码,一次写入CPU存储器中,另一次写入单片机内部RAM中,以便机器确认密码的正确性。
输入完毕后,按修改确认键,两次的密码完全一致时,密码修改完成。
我们这可以在输入的密码与程序中设定的密码相比,若失误,会有灯亮提示,但三次后都错误,系统可自动报警。
防盗报警功能是利用断线方式报警,当CPU检测不到返回信号时,系统自动报警单元报警,正常开启锁时,系统自动切断报警单元的电源。
2设计任务和要求:
2.1实验任务:
用4
3组成0-9数字键及确认键、删除键;用8位数码管组成显示电路提示信息,当输入密码时,只显示“—”,当密码位输入完毕按下确定键时,对输入的密码与设定的密码进行比较,若密码正确,则锁开,此处用LED发光二极管亮1S作为提示;若密码不正确,禁止按键输入3S,同时发出“嘀嘀”报警声。
2.2基本设计要求:
我们将密码程序存在EPROM中,用户通过单片机上P1.0口上的按键进行选择。
具体操作如下:
首先按一下P1.0口上的按键,然后再逐渐输入密码,最后按确认键确认即可。
设置显示输入符号“—”,该符号在输入一个显示一个“—”。
因此,用户可通过这个符号确定是否有键入。
有显示“—”,表示有键按下:
否则,键不入。
首先按下P1.0口上的按键,然后输入密码,正确则绿灯亮,输入三次都不正确的则红灯亮,并同时启动报警系统。
3系统框图及硬件设计:
3.1系统框图:
图3.1
说明:
图3.1密码键盘键入,由CPU控制灯的亮灭,晶振提供机械周期,电磁锁和报警器受控于CUP来执行,显示器相用户提供键入信息,复位是重启功能。
3.2硬件设计:
3.2.1LED显示器结构与原理:
LED显示块是由发光显示二极管显示字段的显示器件。
在单片机中我们通常用七段LED,这种显示共有共阴极和共阳极两种,本设计是用共阳极,是LED显示块的发光二极管与阳极并接。
图3.2.1
说明:
图3.2.1通常的七段显示块中共有8个发光二极管,其中7个发光二极管构成七笔字形“8”,一个发光二极管构成小数点。
七段显示块与单片机接口非常容易。
只要将一个8位并行输出与显示块的发光二极管引脚相连即可。
8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制发光二极管的8位字节数据称为段选码。
段选码如下表:
表3.2.1
显示字符
共阳极段选码
显示字符
共阳极段选码
0
C0H
A
88H
1
F9H
B
7CH
2
A4H
C
C6H
3
B0H
D
A1H
4
99H
E
86H
5
92H
F
8EH
6
82H
7
F8H
8
80H
9
90H
3.2.2硬件工作连接口:
图3.2.2
说明:
图3.2.2P0口接数码管,用来显示按键是否按下,P1口接键盘,P1.0外接选择密码键,P2口按串行方式传送信号给数码管,P2.7口显示电磁锁开还是闭合状态。
把单片机系统区域中的P0口用导线连接“四路静态数码显示”的任一端口上,把单片机系统区域中的P1口上接独立式键盘。
3.2.3复位电路:
如图所示为80C51型单片机上电复位电路。
RC构成微分电路,在接电瞬间,产生一个微分脉冲,其宽度若大于2个机器周期,80C51型单片机将复位,为保证微分脉冲宽度足够大,一般取10μF电容、8.2KΩ电阻。
3.2.4按键方式:
按键方式有独立式和行列式两种,本设计是采用独立式,共设置12个按键。
独立式按键是指直接用I/O口线构成的单个按键电路。
每个独立按键单独占有一根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线的工作状态。
若按键0~9,分enter代表“确认”号。
开锁时必须先按CLR,使从P1口读入的第一个值与存储单元的设定值相同,再顺序按按钮将密码输入,才能开锁。
4电路原理图与说明:
4.1电路原理图及其说明:
图4.1
说明:
图4.1电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,我们采取的是单片机,它具有超大规模集成电路技术,有极强的数据处理能力,I/O口多。
通过按键输入的密码与原来设定好的密码对比,一样则启动,否则有三次机会,超过三次机会,系统自动报警并启动电磁锁锁住。
这是需要复位重输入,才能重新启动。
4.2元器件清单:
表4.2
元件名称
参数
元件名称
参数
插座
DIP40
电源
5V
单片机
89C51
电阻
8.2KΩ
晶体振荡器
12MHZ
电解电容
瓷片电容
10μF
按钮开关
LED数码管
HS-5101BS2
5软件设计框图及源程序:
5.1程序设计思路框图:
图5.1
5.2源程序清单与注释如下:
;以下8个字节存放8位数码管的段码
LED_BIT_1EQU30H
LED_BIT_2EQU31H
LED_BIT_3EQU32H
LED_BIT_4EQU33H
LED_BIT_5EQU34H
LED_BIT_6EQU35H
LED_BIT_7EQU36H
LED_BIT_8EQU37H
;以下6个字节存放初始密码
WORD_1EQU38H
WORD_2EQU39H
WORD_3EQU3AH
WORD_4EQU3BH
WORD_5EQU3CH
WORD_6EQU3DH
;以下6个字节存放用户输入的6位密码
KEY_1EQU3EH
KEY_2EQU3FH
KEY_3EQU40H
KEY_4EQU41H
KEY_5EQU42H
KEY_6EQU43H
CNT_AEQU44H
CNT_BEQU45H
KEY_CNTEQU46H;已输出的密码位数
LINEEQU47H;按键行号
ROWEQU48H;按键列号
VALEQU49H;键值
;以下为初始化程序,包括数据存储空间初始化,设置初始密码
ORG00H
SJMPSTART
ORG0BH
LJMPINT_T0
START:
MOVCNT_A,#00H;程序初始化
MOVCNT_B,#00H
MOVKEY_CNT,#00H
MOVLINE,#00H
MOVROW,#00H
MOVVAL,#00H
SETBP1.0
MOVLED_BIT_1,#00H;段码存储区清0
MOVLED_BIT_2,#00H
MOVLED_BIT_3,#00H
MOVLED_BIT_4,#00H
MOVLED_BIT_5,#00H
MOVLED_BIT_6,#00H
MOVLED_BIT_7,#79H
MOVLED_BIT_8,#73H
MOVKEY_1,#00H;输入密码存储区清0
MOVKEY_2,#00H
MOVKEY_3,#00H
MOVKEY_4,#00H
MOVKEY_5,#00H
MOVKEY_6,#00H
MOVWORD_1,#6;设置初始密码为"123456"
MOVWORD_2,#5
MOVWORD_3,#4
MOVWORD_4,#3
MOVWORD_5,#2
MOVWORD_6,#1
MOVTMOD,#01H
MOVTH0,#(65536-700)/256
MOVTL0,#(65536-700)MOD256
MOVIE,#82H
A0:
LCALLDISP
以下为键盘扫描程序,计算键值并存入VAL
LSCAN:
MOVP3,#0F0H;扫描行码
L1:
JNBP3.0,L2
LCALLDLY_S
JNBP3.0,L2
MOVLINE,#00H
LJMPRSCAN
L2:
JNBP3.1,L3
LCALLDLY_S
JNBP3.1,L3
MOVLINE,#01H
LJMPRSCAN
L3:
JNBP3.2,L4
LCALLDLY_S
JNBP3.2,L4
MOVLINE,#02H
LJMPRSCAN
L4:
JNBP3.3,A0
LCALLDLY_S
JNBP3.3,A0
MOVLINE,#03H
RSCAN:
MOVP3,#0FH;扫描列码
C1:
JNBP3.4,C2
MOVROW,#00H
LJMPCALCU
C2:
JNBP3.5,C3
MOVROW,#01H
LJMPCALCU
C3:
JNBP3.6,C1
MOVROW,#02H
CALCU:
MOVA,LINE;计算键值
MOVB,#03H
MULAB
ADDA,ROW
MOVVAL,A
;以下为按键处理程序,对不同的按键作出响应
CJNEA,#0AH,J1;是否为"CLR"键
MOVR1,KEY_CNT
CJNER1,#00H,J2
LCALLALARM_1
LJMPSTART
J2:
LCALLSHIFTR
DECKEY_CNT
W00:
LCALLDISP;等待按键抬起
MOVA,P3
CJNEA,#0FH,W01
LJMPA0
W01:
MOVA,P3
CJNEA,#0F0H,W02
LJMPA0
W02:
SJMPW00
J1:
MOVA,VAL
CJNEA,#0BH,J3;判断是否为"ENTER"键
MOVR1,KEY_CNT
CJNER1,#06H,J4
MOVA,WORD_1;比较密码
CJNEA,3EH,J5
MOVA,WORD_2
CJNEA,3FH,J5
MOVA,WORD_3
CJNEA,40H,J5
MOVA,WORD_4
CJNEA,41H,J5
MOVA,WORD_5
CJNEA,42H,J5
MOVA,WORD_6
CJNEA,43H,J5
CLRP1.0
LCALLDLY_L
LJMPFINI
J5:
LCALLALARM_2
LJMPSTART
J4:
LCALLALARM_1
LJMPSTART
J3:
INCKEY_CNT;按下数字键
MOVA,KEY_CNT
CJNEA,#07H,K1
LCALLALARM_1
W10:
LCALLDISP;等待按键抬起
MOVA,P3
CJNEA,#0FH,W11
LJMPSTART
W11:
MOVA,P3
CJNEA,#0F0H,W12
LJMPSTART
W12:
SJMPW10
LJMPSTART
LJMPSTART
K1:
LCALLSHIFTL
W20:
LCALLDISP;等待按键抬起
MOVA,P3
CJNEA,#0FH,W21
LJMPA0
W21:
MOVA,P3
CJNEA,#0F0H,W22
LJMPA0
W22:
SJMPW20
LJMPA0
ALARM_1:
SETBTR0;操作错误报警
JBTR0,$
RET
ALARM_2:
SETBTR0;密码错误报警
JBTR0,$
LCALLDLY_L
RET
;定时器中断服务程序,用于声音报警
INT_T0:
CPLP1.7
MOVTH0,#(65536-700)/256
MOVTL0,#(65536-700)MOD256
INCCNT_A
MOVR1,CNT_A
CJNER1,#30,RETUNE
MOVCNT_A,#00H
INCCNT_B
MOVR1,CNT_B
CJNER1,#20,RETUNE
MOVCNT_A,#00H
MOVCNT_B,#00H
CLRTR0
RETUNE:
RETI
SHIFTL:
MOVLED_BIT_6,LED_BIT_5
MOVLED_BIT_5,LED_BIT_4
MOVLED_BIT_4,LED_BIT_3
MOVLED_BIT_3,LED_BIT_2
MOVLED_BIT_2,LED_BIT_1
MOVLED_BIT_1,#40H
MOVKEY_6,KEY_5
MOVKEY_5,KEY_4
MOVKEY_4,KEY_3
MOVKEY_3,KEY_2
MOVKEY_2,KEY_1
MOVKEY_1,VAL
RET
;段码,输入密码右移子程序
SHIFTR:
MOVLED_BIT_1,LED_BIT_2
MOVLED_BIT_2,LED_BIT_3
MOVLED_BIT_3,LED_BIT_4
MOVLED_BIT_4,LED_BIT_5
MOVLED_BIT_5,LED_BIT_6
MOVLED_BIT_6,#00H
MOVKEY_1,KEY_2
MOVKEY_2,KEY_3
MOVKEY_3,KEY_4
MOVKEY_4,KEY_5
MOVKEY_5,KEY_6
MOVKEY_6,#00H
RET
;以下为数码显示子程序
DISP:
CLRP2.7
MOVP0,LED_BIT_8
LCALLDLY_S
SETBP2.7
CLRP2.6
MOVP0,LED_BIT_7
LCALLDLY_S
SETBP2.6
CLRP2.5
MOVP0,LED_BIT_6
LCALLDLY_S
SETBP2.5
CLRP2.4
MOVP0,LED_BIT_5
LCALLDLY_S
SETBP2.4
CLRP2.3
MOVP0,LED_BIT_4
LCALLDLY_S
SETBP2.3
CLRP2.2
MOVP0,LED_BIT_3
LCALLDLY_S
SETBP2.2
CLRP2.1
MOVP0,LED_BIT_2
LCALLDLY_S
SETBP2.1
CLRP2.0
MOVP0,LED_BIT_1
LCALLDLY_S
SETBP2.0
RET
DLY_S:
MOVR6,#10
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
DLY_L:
MOVR5,#100
D2:
MOVR6,#100
D3:
MOVR7,#248
DJNZR7,$
DJNZR6,D3
DJNZR5,D2
RET
FINI:
NOP
END
6用PROTEUS进行仿真实验结果:
图6
说明:
图6当设置好密码之后,从对应的图之中输入数字,如果一样,就解锁,否则,可在输入两次,第四次报警,同时磁锁锁住。
CLR表示清零重输,enter表示确认。
7课程设计体会及总结:
我通过这次课程设计,可谓是重新将单片机,计算机控制以及工控机、PLC所有相关的知识联系起来,本来有些原理还是懵懂的,但是在找电子密码锁的基本知识时,我发现只有动手做才会孰能技巧,还有对材料的整理和理解。
这次设计运用到的知识很多方面,尤其是单片机,像AT89C51,引脚多,硬件内部线路接通,所以用起来很方便,还有我做的电子密码锁是结合数码管显示和键盘,它们之间的线路连接,四位一体的显示引脚的功能,当然也要对这些元器件作相应调查。
主要就是将元件焊接起来,一个就是电路原理图,还有对引脚的作用熟悉。
对于软件方面则是灵活运用单片机有关的程序语言,还有很多扩展功能,由于知识匮乏,但是理论知识还是比较详细的。
我最大的成功之处是在这整个过程,动脑寻求解决一个一个问题的办法,对程序是不断思索,务必写出很简单的程序来,使得电子密码锁能做成功!
参考文献
[1]彭介华.电子课程设计指导[J].北京高等
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子 密码锁 课程设计