单片机课程设计智能密码锁Word文件下载.docx
- 文档编号:16471441
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:22
- 大小:367.90KB
单片机课程设计智能密码锁Word文件下载.docx
《单片机课程设计智能密码锁Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计智能密码锁Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
连续输错三次启动报警
LCD六位显示器
2.1系统总框图
2.2系统组成
本系统主要包括两个部分:
硬件部分和软件部分。
硬件部分:
矩阵键盘接口电路、密码锁的控制电路、复位控制电路和输出显示电路等三部分。
键盘部分包括键盘扫描时序产生电路、键盘扫描、弹跳消除、键盘译码、按键存储。
程序控制包括数字按键的数字输入、存储及清除、功能按键的功能设计、激活开锁电路、密码核对。
复位电路包括复位控制按钮。
输出显示电路的设计包括数据选择、BCD对显示译码、七段LED显示扫描。
软件部分:
汇编程序的主函数和子函数。
其中子函数又包括:
按键读取函数、延时函数、定时中断函数、按键处理函数、删除函数、密码比较函数、显示函数、报警函数、复位函数。
第3章系统硬件设计
3.1主控芯片80C51
此次智能密码的锁设计主要是围绕80C51芯片而做的,80C51是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。
它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。
80C51内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
图3.180C51芯片引脚图
80C51各管脚的功能如下:
●VCC和GND:
分别为外接电源和接地
●P0~P3:
为输入/输出口线,其各有的功能,其中P3口每一位还有特殊功能。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
●ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
●/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
●/EA/VPP:
当/EA保持低电平时,在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
●XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
●XTAL2:
来自反向振荡器的输出。
3.2单片机振荡电路
8051内置频率可达12MHz的时钟电路,用来产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容,晶振采用12M外接30pF电容构成单片机时钟电路。
图3.2单片机振荡电路
3.3单片机复位电路
单片机系统的复位电路在可以采用的是按钮式上电复位电路形式,其中电阻R采用10KΩ的阻值,电容采用10μF的电容值。
图3.3复位电路
3.4键盘按键电路
此次设计使用的是矩阵键盘,这种形式的键盘能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
图3.4(a)矩阵键盘
这种键盘内部结构为每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×
M个按键的键盘。
我们这次设计的电子密码锁的按键部分采用4X4矩阵键盘,键盘行列各有四条线键盘排列在行与列线的交点上如图3.4(a)所示。
图3.4(b)矩阵键盘内部结构图
如上图所示键盘,确定矩阵式键盘上何键被按下常使用的为“行扫描法”。
行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,介绍过程如下。
判断键盘中有无键按下:
(1)先将行线p1.7-p1.4置0111,然后检测列线的状态。
如果p1.3-p1.0为0111,则k0被按下;
如果p1.3-p1.0为1011,则k1被按下;
如果p1.3-p1.0为1101,则k2被按下;
如果p1.3-p1.0为1110,则k3被按下;
(2)将行线p1.7-p1.4置1011,然后检测列线的状态,方法同
(1);
(3)将行线p1.7-p1.4置1101,然后检测列线的状态,方法同
(1);
(4)将行线p1.7-p1.4置1110,然后检测列线的状态,方法同
(1)。
3.5显示电路
八段共阳显示器的结构是八个二极管连接一个阳极的结构,只要另一段为低电平,二极管就会发光,从而形成一段。
将八段顺序排列后就成为具有一定编码的共阳显示器了。
本设计显示电路采用共阳显示器显示输入的五位密码,和一个密码输入次数提示位。
其显示状态有三种:
当密码锁处于开始状态时,LED不做任何显示,当密码锁输入正确的密码是即显示GOOD,当密码连续输入三次错误时LED显示“——————”并且不停闪烁。
此三种状态图如下所示。
图3.5(a)无任何输入时显示状态
图3.5(b)输入密码正确的显示状态
图3.5(c)连续三次输错密码的显示状态
3.6报警电路
输入密码与设定密码做比较,当输入密码与设定密码不同,返回再输入,当输入密码次数超过3次时,通过软件从80C51的P3.6输出脉冲,是红色报警二极管闪烁,并且从P3.7输出脉冲使三极管导通扬声器鸣笛报警。
图3.6报警电路原理图
第4章软件设计
4.1软件总体设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、密码比较程序、密码对开锁、错报警和延时程序等组成。
软件设计总流程图如下:
手动复位
图4.1软件设计总流程图
4.2键盘扫描及识别子程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。
4.3比较密码子程序
当按下确定按键后程序执行密码比较,判断密码是否正确,从而决定是否禁止键盘,是否报警,还是继续等待按键输入,图4.2是密码比较函数流程图:
图4.2比较密码子程序流程图
4.4显示程序设计
由于是分屏显示数据,所以就要用到5个显示子程序,分别是:
关闭状态显示子程序、开锁状态显示子程序、密码输入及修改状态显示子程序、密码输入错误后的提示子程序。
密码在规定的时间内输入错误次数超过3次后的锁定状态显示子程序。
为了显示数字,要为LED显示器提供字型代码。
我用的是共阳极的显示器。
4.5按键功能流程图
如图4.3为按键功能流程图,在按键当中,有与输入、开锁、清除、确认的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,最后确认程序。
图4.3按键功能流程图
4.6开锁流程图
如图4.4为开锁流程图,开始时按开锁键,输入密码,如果输入正确,则开锁成功。
如果输入错误累计达到三次,则执行报警程序。
开锁流程图如下所示:
图4.4开锁流程图
第5章安装调试说明
对于智能密码锁的设计,我们可以使用proteus软件来仿真,Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
仿真之前我们得先做一些准备工作。
首先,根据密码锁设计所需,使用编程软件写一个程序,这里既可以用C语言来编写也可用伟福软件来编写汇编语言。
现在我们用所熟悉的单片机汇编语言来编写,程序编写完了,进行程序的编译,正确后软件部分完成。
然后进行原理图的制作,先打开protues软件,将所需要的元件找到放置好,调整合理,然后依次连上线。
将各个线进行网络编号。
完毕后,进行电气规则检查,检查正确后就可以加载汇编程序了。
打开工具栏中源代码项的添加源文件,选择编好的汇编程序。
这些都做好之后我们就可以进行软硬件的模拟仿真了,单击调试中的执行,进入仿真状态。
初始时,为了节约电能,LED上无任何显示,这时可以从键盘上输入5位数字进去,如不小心输入错误,可以按下删除键进行修改。
输完五位数字之后,按确认键。
如果密码正确,LED显示GOOD此时密码锁打开,若是输入错误,不做任何显示,进行二次重复输入,倘若连续三次输错,便会自动启动报警,以引起主人注意。
只有按下异地解除报警复位按钮方能解除报警。
以上是密码锁所具有的功能,如果满意的话这时我们就能按照原理图以及结合实际需要来进行实物的制作。
第6章设计总结
通过连续两周的课程设计,我学到了许多书本上无法学到的知识,也深刻体会到单片机技术应用领域的广泛。
不仅让我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。
本设计让我对专业知识有了更深的理解。
在本次课程设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中包括:
AT89C51单片机及其引脚说明、键盘扫描程序的编写等,为本次课程设计提供了一定的资料。
在做课程设计的初期阶段,难度较大。
在设计基本完成时密码的修改还是不能实现,通过求助于老师、查找了问题的所在。
最后经过指导老师的耐心指点和连续的奋战才基本设计出来。
感谢老师的无私的帮助!
本次设计我能独立完成,算是有了很大的收获。
不但对单片机有了更为深入的了解,对一个课题如何实现模拟仿真及编写汇编程序等,有了一定的认识。
进一步加强了自己的动手能力和运用专业知识的能力,从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案;
特别是深刻体会到的是软件和硬件结合的重要性,以及两者的联系和配合作用。
同时明白了办事只要有信心,有毅力,找对方法,就会成功!
通过本次课程设计,让我了解到智能化技术对当今人们生活的重要性。
同时这次做课程设计的经历也使我受益匪浅。
让我知道做任何事情都应脚踏实地,刻苦努力地去做。
只有这样,才能做好。
在这次课程设计中,我既巩固了专业知识,又学到了在设计过程中的许多流程和该注意的事项,增强了电子产品开发的意识。
本次经历将是我在大学时期很好的一次实践和锻炼机会。
参考文献
[1]、《微型计算机原理及应用》许立梓编机械工业出版社2002
[2]、《微型计算机接口技术及应用》刘乐善编华中理工大学出版社2000
[3]、《计算机硬件技术基础试验教程》邹逢兴编高等教育出版社2000
[4]、《16位微型计算机原理接口及其应用》周佩玲编中国科学技术大学出版社2000
[5]、《微型计算机原理与接口技术》吴秀清编中国科学技术出版社2001
[6]、《微型计算机接口技术》邓亚平编清华大学出版社2001
[7]、《单片机原理及及应用》王迎旭编机械工业出版社2001
[8]、《单片机应用程序设计技术》周航慈著北京航空航天大学出版社
2002
[9]、《单片机实用技术问答》谢宜仁主编人民邮电出版社2002
附录A硬件原理图
附录B源程序清单
KEYOKBIT20H.0
NUM5BIT20H.1
NUM3BIT20H.2
NUM1BIT20H.3
LEDBITP3.6
BEEPBITP3.7
ORG0000H
SJMPMAIN
ORG000BH
;
***********初始化**********
INIT:
MOVR6,#5
MOVR1,#40H
IN1:
MOV@R1,#16
INCR1
DJNZR6,IN1
MOVR3,#1
RET
**************************
********主函数************
MAIN:
ACALLINIT
MOVR0,30H;
R0作为按键值指针
MOVR1,40H;
R1作为显示指针
M:
JNBNUM5,M0
ACALLDISP
M0:
JBNUM3,M1;
密码是否输错三次了,如果输错三次就屏蔽按键输入
ACALLKEYSCAN
JBKEYOK,M3
SJMPM
M1:
JBKEYOK,M3;
如果密码正确就转,错误就报警
MOVR5,#5
MOVR0,#40H
M2:
MOV@R0,#16
INCR0
DJNZR5,M2
MOVR3,#16
M22:
CPLLED
ACALLBBP
JNBP3.0,FUWEI;
远程控制,报警后手动复位。
SJMPM22
M3:
MOV40H,#16;
密码正确了,就显示GOOD
MOV41H,#09
MOV42H,#17
MOV43H,#17
MOV44H,#13
MOVR0,#0FFH;
设置GOOD显示时间
M6:
ACALLDISP;
显示正确后,采用自动复位
ACALLDELAY
DJNZR0,M6
ACALLFUWEI
SJMPM6
*********复位函数*********
FUWEI:
CLRKEYOK
SETBLED
CLRNUM3
SJMPMAIN
********读取按键函数******
KEYSCAN:
MOVP2,#0F0H
MOVA,P2
CJNEA,#0F0H,KEYGO
RET
KEYGO:
ACALLDELAY;
延时去抖动
CJNEA,#0F0H,KEYGO1
KEYGO1:
MOVA,R4;
赋地址值
ADDA,#30H
MOVR0,A
ADDA,#16
MOVR1,A
MOVA,P2
MOV@R0,A
MOVP2,#0FFH
MOVp2,#0FH
ORLA,@R0
MOV@R0,A
GO0:
MOVP2,0FFH
CJNEA,#00H,GO0;
等待按键松开
DECR1
MOV@R1,#16
INCR1
INCR4;
输入密码个数加1
SETBNUM5
MOVA,@R0;
A作为传递参数
ACALLKEYCHU
MOVA,@R0
MOV@R1,A
********按键处理**********
KEYCHU:
CJNEA,#0D7H,K1;
0键
MOV@R0,#0
K1:
CJNEA,#0EBH,K2;
1键
MOV@R0,#1
K2:
CJNEA,#0DBH,K3;
2键
MOV@R0,#2
K3:
CJNEA,#0BBH,K4;
3键
MOV@R0,#3
K4:
CJNEA,#0EDH,K5;
4键
MOV@R0,#4
K5:
CJNEA,#0DDH,K6;
5键
MOV@R0,#5
K6:
CJNEA,#0BDH,K7;
6键
MOV@R0,#6
K7:
CJNEA,#0EEH,K8;
7键
MOV@R0,#7
K8:
CJNEA,#0DEH,K9;
8键
MOV@R0,#8
K9:
CJNEA,#0BEH,K10;
9键
MOV@R0,#9
K10:
CJNEA,#0E7H,k11;
10键
ACALLBIJIAO
k11:
CJNEA,#0B7H,RENT2;
11键
ACALLDEL
RENT2:
********删除************
DEL:
MOVR4,#0
IN2:
DJNZR6,IN2
MOVR0,30H
MOVR1,40H
LJMPM
********比较**************
BIJIAO:
MOVDPTR,#TAB1
MOVR6,#5
MOVR7,#0
MOVR0,#30H
B0:
MOVA,R7
MOVCA,@A+DPTR
MOV29H,A
MOVA,@R0
CJNEA,29H,RETT
INCR7
DJNZR6,B0
SETBKEYOK
RETT:
MOVR5,#5
MOVR0,#30H
BJ2:
DJNZR5,BJ2
CLRNUM5
MOVR4,#00H
INCR3;
输入密码次数加1
CJNER3,#4H,RETT1
SETBNUM3;
输入三次密码标志位
RETT1:
********报警声************
BBP:
MOVR5,#100
BB0:
CPLBEEP
ACALLDELAY2
DJNZR5,BB0
********显示**************
DISP:
MOVDPTR,#TAB0
MOVR2,#5
MOVR5,#01H
DI1:
MOVA,@R1
MOVP0,A
MOVA,R5
MOVP1,A
RLA
MOVR5,A
MOVP1,#0
DJNZR2,DI1
MOVA,R3
MOVP1,#00100000B
********延时**************
DELAY:
D1:
MOVR7,#248
DJNZR7,$
DJNZR6,D1
*******定时中断***********
DELAY2:
D2:
MOVR7,#100
DJNZR6,D2
TAB0:
db0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90H,88H,83H,0c6H,0a1H,86H,8eH,0BFH,0A3H,0ffH;
A0H是消隐值
TAB1:
db1,2,3,4,5
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 智能 密码锁