2022年基于51单片机的电子密码锁课程设计报告.docx
精品学习资源单片机原理与应用课程设计报告题目基于 51 单片机地电子密码锁设计系别物理与电子工程学院专业电子信息科学与技术同学姓名学号班级2021 年 12 月 26 日欢迎下载精品学习资源摘要电子密码锁是一种通过密码输入来掌握电路或是芯片工作,从而掌握机械开关地闭合,完成开锁、闭锁任务地电子产品 .在保密性、操作地便利性、密码地可变性、和一些自动化地功能上已经远远超过了机械密码锁. 因此其应用特别广泛.而且由于其使用微型运算机地特质,导致其可以敏捷地挂载电子化设备,比如界面友好地显示设备,便利快捷地输入设备等.本文简要介绍了一种基于AT89C51 单片机地电子密码锁设计,主要采纳汇编程序完成整个软件地设计,可以实现简易地电子密码锁功能.关键词: 4×4 矩阵键盘; AT89C51 ;密码锁;单片机目录一、绪论 3 二、系统所要完成地功能3 三、系统总体方案设计4 四、硬件电路设计 6欢迎下载精品学习资源4.1 单片机最小系统64.2键盘电路设计64.3 LCD显示电路84.4 开锁电路 8五、软件设计9六、系统调试13七、心得体会1参考文献 143附录 15源程序清单 15实物图 23欢迎下载精品学习资源一、绪论在日常地生活和工作中, 住宅与部门地安全防范、单位地文件档案、财务报表以及一些个人资料地储存多以加锁地方法来解决. 如使用传统地机械式钥匙开锁,人们常需携带多把钥匙, 使用极不便利 , 且钥匙丢失后安全性即大打折扣.随着科学技术地不断发 展,人们对日常生活中地安全保险器件地要求越来越高.为满意人们对锁地使用要求,增加其安全性,用密码代替钥匙地密码锁应运而生 .密码锁具有安全性高、成本低、功耗低、易操作等优点.在安全技术防范领域,具有防盗报警功能地电子密码锁逐步代替传统地机械式密码锁,克服了机械式密码锁密码量少、安全性能差地缺点,使密码锁无论在技术上仍是在性能上都大大提高一步.随着大规模集成电路技术地进展,特殊是单片机地问世,显现了带微处理器地智能密码锁,它除具有电子密码锁地功能外,仍引入了智能化治理、专家分析系统等功能,从而使密码锁具有很高地安全性、牢靠性,应用日益广泛 .随着人们对安全地重视和科技地进展,很多电子智能锁(指纹识别、IC 卡辨认)已在国内外相继面世 .但是这些产品地特点是针对特定地指纹和有效卡,只能适用于保密要求地箱、柜、门等. 而且指纹识识别器如在公共场所使用存在简洁机械损坏,IC 卡仍存在简洁丢失、损坏等特点.加上其成本较高,肯定程度上限制了这类产品地普及和推广.鉴于目前地技术水平与市场地接收程度,电子密码锁是这类电子防盗产品地主流. 二、系统所要完成地功能基于以上思路,本文主要介绍一种使用STC 公司地 STC11F16XE 单片机电子密码锁地设计, 其主要具有如下功能:1、密码确认功能:密码通过矩阵键盘输入,如密码输入正确,就将通过驱动口发出高电平信号作为机械制动开锁地依据完成开锁功能.同时在主界面上显示: “The keywords is ok! ”2、密码设置功能:单片机刚刚上电复位后会通过LCD1602 界面提示设置密码: “ Pleaseset the keywords! ”而且设置地密码是可重复地,程序运行中可再次通过输入相应密码然后修改.3 、在密码输入错误时系统会通过LCD1602界面提示密码输入错误字符: “ Thekeywordsis欢迎下载精品学习资源矩阵键盘掌握89S51false. 同”时不做开锁动作.4、本次设计中利用一只LED 代替机械制动系统,灯亮表示开锁,灯灭表示闭锁.在本次地设计中,详细实现系统设计地过程如下:1、完成硬件地设计.通过 PROTEL99SE 绘制单片机最小系统板和矩阵键盘地原理图和PCB 版图,然后通过试验室地腐蚀液腐蚀出来,焊上元件,下载测试程序调试.1、完成软件地设计 .通过 Keil uVision3软件,编辑好源汇编程序,然后编译和修改直到编译器通过为止 .2、把编译好地HEX文件下载到单片机内部运行,通过查找系统功能上地不足和可修改地地方,然后回过去修改源文件,最终成型.三、系统总体方案设计方案一:采纳数字电路掌握.利用数字电路地规律运算功能,然后设计成电子密码锁,也可以完成系统地设计,甚至直接用FPGA 完成设计就更加便利了 .但是假如用FPGA 完成就显得特别地铺张,由于, FPGA 一方面价格昂贵,另一方面用功能如此强大地芯片制作功能如此简洁地系统是一种耗费资源地行为,极不行取,故这里不采纳此方案.方案二:采纳 DSP 芯片 TMS320F2812 完成电子密码锁地设计 .由于 DSP 芯片在规律运算和数学运算上地强大,完成电子密码锁地设计特别简洁,而且简洁实现.但是 DSP 芯片 TMS320F2812 地价格昂贵,故此处不采纳此方案.方案三:采纳 51 系列单片机 STC11F16XE 为核心来完成掌握方案,然后实现电子密码锁地设计.我们可以利用单片机警活地编程设计和丰富地IO 端口,及其掌握地精确性,不但能实现基本地密码锁功能,仍能添加调电储备、声光提示甚至添加遥控掌握功能.其原理如图 31 所示 .欢迎下载精品学习资源输入错误锁定键盘延时报警掌握电路AT24C02 掉电储备开锁掌握电路串口显示电路指示电路图 3 1 单片机掌握方案通过比较以上三种方案,单片机方案有较大地活动空间,不但能实现所要求地功能而且能在很大地程度上扩展功能,而且仍可以便利地对系统进行升级,所以我们采纳第三种方案.设计地成效场景如下:1、输入密码用矩形键盘,包括数字键、字母键和功能键.2、用液晶显示屏 LCD1602 显示字符和操作界面 .3、用发光二极管代替开锁地电路,发光表示开锁,熄灭表示闭锁.4、打开电源后,显示器显示“ Please set the keyword!s ”提示用户设置密码,用户可以在此时输入一个 8 位地密码 .输入至 8 位后系统自动跳转到另一界面,显示字符“The keywords set ok! ”5、在完成上面地步骤后,系统再次跳换到另一个界面:“ Please input the keywords! ”此时系统提示用户输入正确地密码以完成开锁地功能.用户此时可以通过矩阵键盘来完成输入密码地功能.输入位数为 8 位数 .6、如输入密码正确就系统会显示:“ The keywords is ok! ”,同时点亮 LED 灯完成开锁 .否就系统将显示 “The keywords is false. 并且”不做任何动作.在本次设计中,硬件主要完成单片机最小系统和矩阵键盘地设计,软件主要由矩阵键盘子程序、显示初始化程序、显示字符子程序、数据比较子程序、数据寄存子程序和子程序调度主程序等组成 .四、硬件电路设计4.1 、单片机最小系统设计单片机地最小系统中包括外接晶振、复位电路和P0 口地上拉电阻 .其原理图如图4.1 所示:欢迎下载精品学习资源图 4.1 单片机最小系统4.2 、键盘电路设计本设计中使用矩阵键盘作为输入设备,它最大地优点就是可以削减单片机I/O 总线地占用,节约资源,而且可以产大量地不同组输入数据.在按键比较多地时候,通常采纳这样方法.其原理如图4.2 所示:欢迎下载精品学习资源.图 4.2 矩阵键盘原理图每一条水平(行线)与垂直线(列线)地交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N 条行线和 M 条列线,即可组成具有N×M 个按键地键盘 .在这种行列式矩阵键盘非键盘编码地单片机系统中,键盘处理程序第一执行等待按键并确认有无按键按下地程序段 .当确认有按键按下后,下一步就要识别哪一个按键按下.对键地识别通常有两种方法:一种是常用地逐行扫描查询法;另一种是速度较快地线反转法.对比图 4.2 所示地 4×4 键盘,说明线反转地工作原理.第一辨别键盘中有无键按下,有单片机I/O 口向键盘送全扫描字,然后读入行线状态来判定.方法是:向行线输出全扫描字00H ,把全部列线置为低电平,然后将列线地电平状态读入累加器A 中. 假如有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1.判定键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现地.方法是:依次给列线送低电平,然后查全部行线状态,假如全为1,就所按下地键不在此列;假如不全欢迎下载精品学习资源为 1,就所按下地键必在此列,而且是在与零电平行线相交地交点上地那个键.按 键1 9 键A-F 键键 名数 字 键字母键功 能 说 明输 入 密 码输入密码4.3、LCD 显示电路由于 LCD1602地引脚中有一个对比调整电压,因此电路设计中主要就是对它串联可调电阻和对背光灯串联可调电阻地设计.这里我们采纳用 P2.2、P2.3、P2.4 三个位组成,分别掌握比较简洁,故不截图单独说明.P0 口地并口总线和LCD1602RS、RW 和 E.在程序中用指令数据总线相对应 .掌握线采EQU 定义.由于显示电路4.4、开锁电路在本次设计中,基于节约材料地原就,临时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁.电路图如 3.3 所示.当 P2.0 口输出低电平常,二极管发光,表示开锁.本次电路地设计中,矩阵键盘地详细地功能设计如表3.1: 表 4.1 按键功能图 4.3 开锁电路五、软件设计5.1 、软件设计思路电子密码锁工作地主要过程是LCD1602液晶显示器提示开头输入密码,通过矩阵键盘输入密欢迎下载精品学习资源码,同时由液晶显示器显示输入地情形,到输入完成后系统自动作出判定,作出开锁或闭锁处理.密码地设定,在本设计中地程序中输入地密码是储存在30H 46H 中地 .在输入过程中,第一输入密码地长度,接着依据密码地长度输入密码位置数,直到全部长度地密码都已经输入完毕;或者输入确认功能键之后,才能完成密码地输入过程.进入密码地判定比较处理状态并给出相应地处理过程 .5.2 各个子程序地设计1、键盘扫描子程序键盘扫描流程图如图4.2.1图 5.1 键盘扫描流程图键盘扫描子程序如下:KEY1:MOV A,P1/ 键盘程序入口ORL A,#0F0HCPL A JZ KEY1欢迎下载精品学习资源ACALL DELAY10MS MOV A,P1ORL A,#0F0H CPL AJZ KEY1MOV P1,#7FH/ 确认有键按下MOV P1,#7FH MOV A,P1ORL A,#0F0H CPL AJNZ CHULI1/ 开头各种相应处理MOV P1,#0BFH MOV A,P1ORL A,#0F0H CPL AJNZ CHULI2 MOV P1,#0DFH MOV A,P1ORL A,#0F0H CPL AJNZ CHULI3MOV P1,#0EFH MOV A,P1ORL A,#0F0HCPL AJNZ CHULI42、液晶显示初始化程序初始化程序主要完成各种显示功能地配置:欢迎下载精品学习资源MOV P0,#01H/ 显示程序入口 初始化ACALL ENABLEMOV P0,#38H ACALL ENABLE MOV P0,#0FH ACALL ENABLE MOV P0,#06H ACALL ENABLE MOV P0,80H3、液晶显示部分程序液晶显示程序主要完成读时序和写时序地功能:ENABLE:CLR RSCLR RWCLR EACALL DELAY10MS SETB ERETDAT1:SETB RSCLR RW CLR EACALL DELAY10MSSETB E RET其中, ENABLE子程序主要完成对LCD1602 地写掌握地功能, DAT1 子程序主要完成对其地写数据地功能 .4、数据比较判定子程序BIJIAO:ACALL DELAYMOV P0,#01H欢迎下载精品学习资源ACALL ENABLE ACALL PLEASE ACALL INPUT ACALL PASSWORDMOV R3,#8MOV R1,#2AH ACALL MAINCLR CMOV A,20H SUBB A,2AH JNZ ZHONGZHI MOV A,21H SUBB A,2BH JNZ ZHONGZHI MOV A,22H SUBB A,2CH JNZ ZHONGZHI MOV A,23H SUBB A,2DH JNZ ZHONGZHI MOV A,24H SUBB A,2EH JNZ ZHONGZHI MOV A,25H SUBB A,2FH JNZ ZHONGZHI MOV A,26H SUBB A,30H欢迎下载精品学习资源JNZ ZHONGZHI MOV A,27H SUBB A,31H JNZ ZHONGZHI此子程序依据输入地密码自动和设置地密码进行比对,并且依据其是否相等作出判定而跳转至不同地其他地子程序中去做相应地操作.六、系统调试本次调试采纳实物调试.第一设计电子密码锁地源程序,源程序经过汇编后,生成地目标文件下载到单片机内部,运行并做操作后查看和预期结果是否一样. 经过不断地修改,成效见附页.其中主要包括了开机界面地显示,输入密码正确后地显示,提示输入密码地界面显示和开锁后地成效.七、心得体会实践是检验真理地唯独标准,当然也是检验学习成果地标准.在经过一段时间地学习之后, 我们需要明白自己地所学应当如何应用在实践中,由于任何学问都源于实践,归于实践,所以要将所学地学问在实践中来检验.这次课程设计最终顺当完成了,由于我们对于单片机地应用并不熟识,因此,我们请了硕勋 励志班地优秀同学给我们进行指导.虽然老师并不要求做出实物,但硕勋班地那位同学认为要在实践中我们才能学到更多,懂得地更全面.因此,我们在那位同学地指导下做出了实物,虽然并 不完善,但却比理论学习地更多,实践是检验真理地唯独标准.当然我们在设计中也遇到了很多问题,仿真软件不熟识,指令指针应用不熟识,实务操作就更是困难,真正表达出书到用时方恨少,我们女生在实践方面地劣势也严峻地凸显出来.开头地时候,几乎是寸步难行,编程,操作什么地都要靠硕勋班同学细心地说明指导,渐渐地才生疏地上手了,在这里要真诚地感谢硕勋励志班地同学,耐心地指导我们.其实始终到最终作品出来了,我们也没有真正地懂得了全部地东西,只是明白了很多零零散散地概念,这也证明白没有什么是可以轻易学到地.这次我们最大地心得就是要想真正地学习某一方面地东西,就必需全心全意心无旁骛地朝着这个方向走下去.在做设计期间,在励志班同学地指导下,通过自身地不断努力,无论是思想上,学习上,都 取得了长足地进展和庞大地收成.顾起此次单片机课程设计,至今我们感叹颇多,地确,从选题到定稿,从理论到实践,在整整两星期地日子里,可以说得是苦多于甜,但是可以学到很多很多地地东西,同时不仅可以巩固了以前所学过地学问,而且学到了很多在书本上所没有学到过地学问.通过这次课程设计使我们懂得了理论与实际相结合是很重要地,只有理论学问是远远不够地,只有把欢迎下载精品学习资源所学地理论学问与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己地实 际动手才能和独立摸索地才能.在设计地过程中遇到问题,可以说得是困难重重,这究竟第一次做地,难免会遇到过各种各样地问题,同时在设计地过程中发觉了自己地不足之处,对以前所学过地 学问懂得得不够深刻,把握得不够坚固,对单片机汇编语言把握得不好,通过这次课程设计之后, 肯定把以前所学过地学问重新温故.参考文献1 李朝青 .单片机原理及接口技术简明修订版 M .北京 :北京航空航天高校出版社,19982 李全利 .单片机原理及接口技术M .高等训练出版社,20033 PROTEL99 SE 电路设计与制板M .机械工业出版社, 20074 杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)J电子工业出版社, 20067 黄智伟 .全国高校生电子设计竞赛训练教程M .北京:电子工业出版社 , 2005附录源程序清单ORG 0000HRS EQU P2.2 RW EQU P2.3 E EQU P2.4AJMP STARTORG 2000HDB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46HORG 0030HSTART: MOV DPTR,#2000H/ 系统初始化MOV SP,#60HMOV R3,#8 MOV R1,#20H欢迎下载精品学习资源SETB P2.0MOV P0,#01H/ 显示程序入口 初始化ACALL ENABLEMOV P0,#38H ACALL ENABLE MOV P0,#0FH ACALL ENABLE MOV P0,#06H ACALL ENABLE MOV P0,80H ACALL ENABLE ACALL PLEASE ACALL SEET ACALL PASSWORD ACALL MAIN ACALL XIANSHI1 ACALL BIJIAO AJMP $MAIN:MOV P1,#0FHKEY1:MOV A,P1/ 键盘程序入口ORL A,#0F0HCPL A JZ KEY1ACALL DELAY10MSMOV A,P1 ORL A,#0F0H CPL AJZ KEY1MOV P1,#7FH/ 确认有键按下MOV P1,#7FH MOV A,P1ORL A,#0F0HCPL AJNZ CHULI1/ 开头各种相应处理MOV P1,#0BFH MOV A,P1ORL A,#0F0HCPL AJNZ CHULI2 MOV P1,#0DFH MOV A,P1ORL A,#0F0H CPL A欢迎下载精品学习资源JNZ CHULI3 MOV P1,#0EFH MOV A,P1ORL A,#0F0H CPL AJNZ CHULI4CHULI1:MOV P1,#07FH/ 键值生成程序部分MOV A,P1JNB ACC.0,C1Z1JNB ACC.1,C1Z2 JNB ACC.2,C1Z3 JNB ACC.3,C1Z4C1Z1: MOV A,#3AJMP WANC C1Z2:MOV A,#7AJMP WANC C1Z3:MOV A,#11AJMP WANC C1Z4:MOV A,#15AJMP WANCCHULI2:MOV P1,#0BFH MOV A,P1JNB ACC.0,C2Z1JNB ACC.1,C2Z2 JNB ACC.2,C2Z3JNB ACC.3,C2Z4 C2Z1:MOV A,#2AJMP W ANC C2Z2:MOV A,#6AJMP W ANCC2Z3:MOV A,#10 AJMP W ANCC2Z4:MOV A,#14 AJMP W ANCCHULI3:MOV P1,#0DFH MOV A,P1JNB ACC.0,C3Z1JNB ACC.1,C3Z2 JNB ACC.2,C3Z3 JNB ACC.3,C3Z4C3Z1:MOV A,#1AJMP W ANC C3Z2:MOV A,#5欢迎下载精品学习资源AJMP W ANC C3Z3:MOV A,#9AJMP W ANC C3Z4:MOV A,#13AJMP W ANC CHULI4:MOV P1,#0EFHMOV A,P1JNB ACC.0,C4Z1JNB ACC.1,C4Z2 JNB ACC.2,C4Z3 JNB ACC.3,C4Z4C4Z1:MOV A,#0AJMP W ANC C4Z2:MOV A,#4AJMP W ANC C4Z3:MOV A,#8AJMP W ANCC4Z4:MOV A,#12AJMP WANCWANC:MOV R1,A/ 键值显示程序INC R1MOVC A,A+DPTR MOV P0,AACALL DAT1DJNZ R3,MM1 MM0:AJMP ZUIHOUMM1:AJMP MAIN ZUIHOU:RET XIANSHI1: MOV P0,#01HACALL ENABLEMOV P0,#50H/ 清屏/PACALL DAT1MOV P0,#41H/AACALL DAT1MOV P0,#53HACALL DAT1/SMOV P0,#53H/SACALL DAT1MOV P0,#57HACALL DAT1/WMOV P0,#4FH/OACALL DAT1欢迎下载精品学习资源MOV P0,#52HACALL DAT1/RMOV P0,#44H/DACALL DAT1MOV P0,#2DH/-ACALL DAT1ACALL SEETMOV P0,#2DHACALL DAT1MOV P0,#4FH/-ACALL DAT1/OMOV P0,#4BHACALL DAT1/KMOV P0,#21HACALL DAT1/.ACALL DELAYMOV P0,#01H/ 清屏ACALL ENABLERETDELAY10MS:MOV R0,#5 DEL1:MOV R4,#192 DEL2:MOV R2,#255DJNZ R2,$DJNZ R4,DEL2 DJNZ R0,DEL1 RETDELAY:MOV 30H,#50DY1:MOV 31H,#200 DY2:MOV 32H,#200 DJNZ 32H,$DJNZ 31H,DY2 DJNZ 30H,DY1 RETBIJIAO: ACALL DELAYMOV P0,#01HACALL ENABLE ACALL PLEASE ACALL INPUT ACALL PASSWORDMOV R3,#8MOV R1,#2AHACALL MAINCLR C欢迎下载精品学习资源MOV A,20H SUBB A,2AH JNZ ZHONGZHI MOV A,21H SUBB A,2BH JNZ ZHONGZHI MOV A,22H SUBB A,2CH JNZ ZHONGZHI MOV A,23H SUBB A,2DH JNZ ZHONGZHI MOV A,24H SUBB A,2EH JNZ ZHONGZHI MOV A,25H SUBB A,2FH JNZ ZHONGZHI MOV A,26H SUBB A,30H JNZ ZHONGZHI MOV A,27H SUBB A,31H JNZ ZHONGZHITRUE:MOV P0,#01HACALL ENABLE/ 清屏MOV P0,#50H/PACALL DAT1MOV P0,#41HACALL DAT1/AMOV P0,#53H/SACALL DAT1MOV P0,#53HACALL DAT1/SMOV P0,#57H/WACALL DAT1MOV P0,#4FH/OACALL DAT1MOV P0,#52H/RACALL DAT1MOV P0,#44H/DACALL DAT1MOV P0,#2DH/-欢迎下载精品学习资源ACALL DAT1MOV P0,#49H/IACALL DAT1MOV P0,#53HACALL DAT1/SMOV P0,#2DHACALL DAT1/-MOV P0,#4FHACALL DAT1MOV P0,#4BH/OACALL DAT1/KMOV P0,#21HACALL DAT1/.CLR P2.0/LCALL DELAYAJMP EDDZHONGZHI: MOV P0,#01H ACALL ENABLE MOV P0,#50HACALL DAT1/ 清屏/PMOV P0,#41H/AACALL DAT1MOV P0,#53HACALL DAT1/SMOV P0,#53H/SACALL DAT1MOV P0,#57H/WACALL DAT1MOV P0,#4FHACALL DAT1/OMOV P0,#52H/RACALL DAT1MOV P0,#44HACALL DAT1/DMOV P0,#2DH/-ACALL DAT1MOV P0,#49H/IACALL DAT1MOV P0,#53HACALL DAT1MOV P0,#2DH/SACALL DAT1/-MOV P0,#46H欢迎下载精品学习资源ACALL DAT1MOV P0,#61HACALL DAT1MOV P0,#6CHACALL DAT1MOV P0,#53HACALL DAT1MOV P0,#65HACALL DAT1SETB P2.0EDD:AJMP BIJIAORETPLEASE:MOV P0,#50H/PACALL DAT1MOV P0,#6CH/LACALL DAT1MOV P0,#65H /eACALL DAT1MOV P0,#61H /aACALL DAT1MOV P0,#73H /sACALL DAT1MOV P0,#65H /eACALL DAT1MOV P0,#2DH /-ACALL DAT1RETINPUT:MOV P0,#69H / iACALL DAT1 MOV P0,#6EH /n ACALL DAT1 MOV P0,#70H /p ACALL DAT1 MOV P0,#75H /u ACALL DAT1 MOV P0,#74H /t ACALL DAT1 MOV P0,#2DH /- ACALL DAT1 RETPASSWORD: MOV P0,#50H/PACALL DAT1MOV P0,#41H/A欢迎下载精品学习资源ACALL DAT1MOV P0,#53H/SACALL DAT1MOV P0,#0C0HACALL ENABLEMOV P0,#53HACALL DAT1/SMOV P0,#57H/WACALL DAT1MOV P0,#4FH/OACALL DAT1MOV P0,#52H/RACALL DAT1MOV P0,#44H/DACALL DAT1MOV P0,#21HACALL DAT1RETSEET:MOV P0,#73H ACALL DAT1MOV P0,#65H ACALL DAT1 MOV P0,#74H ACALL DAT1 RETCHU:ACALL PLEASE ACALL INPUTACALL PASSWORD RETENABLE:CLR RSCLR RWCLR EACALL DELAY10MS SETB ERET DAT1:SETB RSCLR RWCLR EACALL DELAY10MS SETB ERET欢迎下载精品学习资源硬件实物图欢迎下载