ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:448.71KB ,
资源ID:13766665      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13766665.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子密码锁.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

电子密码锁.docx

1、电子密码锁课 程 设 计 报 告主 课 题 : 电子密码锁 报 告 人 : 同组成员 : 课设时间 : 05月30日-06月10 日一、实现功能1)设计一多位电子密码锁,输入密码用“0”表示,输入密码正确,显示“YES”,输入密码错误,显示“NO”,蜂鸣器响2)具有确定键和取消键,在未确定之前可以取消,重新输入3)连续输入三次错误密码,蜂鸣器响,显示“ERROR”键盘锁定4)具有密码重置功能5)显示北京时间,同时可对北京时间进行修改二、使用硬件1.ADUC848ADUC848管脚图如下图所示Pin14:(P1.0P1.3)作为矩阵式键盘或独立按键的输入,P1口只能用于输入,默认用于模拟输入,作

2、为数字输入使用时应先往P1口相应引脚写0,这里可以用P0&=0xf0。若P2、P3、P0口要作为输入,则应往相应引脚写1。Pin5、6:AVDD、AGND,模拟电源输入。Pin7、8:外部参考电压接入,Pin7接AGND。片内DAC有2.5V内部参考,ADC有1.25V内部参考。Pin9、10:(P1.4、P1.5)两路AD输入,可做差分输入,需要设置ADC的寄存器。Pin11、12:(P1.6、P1.7)各200uA激励电流源,可配合RTD等做应用。Pin13:两路AD输入做普通输入时的电压参考端,AD输入电压不能低于此引脚电压。Pin14:片内DAC输出。Pin15:复位引脚。Pin16、

3、17:单片机RS232接口的RXD(P3.0) TXD(P3.1)。Pin18:(P3.2) 外部中断0,用于红外接收和PS/2接口。Pin19:(P3.3)LCD1602,LCD12864A的EN引脚,控制第一位数码管。Pin20、21:DVDD、DGND数字电源输入。Pin22:(P3.4)PS/2接口的data信号。Pin23:(P3.5)LCD1602和LCD12864A的RW。Pin24:(P3.6)LCD1602和LCD12864A的RS。Pin25:LCD12864A的CS1。Pin26:IIC接口时钟信号。Pin27:IIC接口data信号。Pin28:(P2.0)SPI接口时

4、钟信号。Pin29:(P2.1)SPI接口MOSI信号、控制第6位数码管的位码。Pin30:(P2.2)SPI接口MISO信号、控制第7位数码管的位码。Pin31:(P2.3)SPI接口SS信号、控制第8位数码管的位码;P2.03也作为4X4矩阵式键盘的扫描输出信号、步进电机的控制信号、数码管第数码管第6、7、8位位码。但是SPI、4X4矩阵式键盘、步进电机、数码管第6、7、8位功能不能同时实现。Pin32、Pin33:接外部32.768KHz晶振。Pin34、Pin35:DVDD、DGND。Pin36:(P2.4)LCD12864A的CS2。Pin37:(P2.5)内部PWM模块输出,控制红

5、外LED。Pin38:(P2.6)内部PWM模块输出,控制蜂鸣器。Pin39:(P2.7)内部PWM模块的外部时钟输入(也可以用内部时钟)。Pin40:EA,低电平有效,正常使用时拉低。Pin41:PSEN,在此引脚电平为低时按复位键进入debug模式,可以下载和调试程序。Pin42:ALE。Pin47、Pin48:DGND、DVDD。Pin43、44、45、46、49、50、51、52:P0口、LCD1602和LCD12864的数据总线,数码管的段码。2. 电源模块 本学习板共有如下3种供电方式:(1)5V电源适配器供电(开关往上拨、插针1下面两脚接跳线帽)。(2)712V电源适配器供电(开

6、关往上拨、插针1上面两脚接跳线帽) 。(3)USB供电(开关往下拨)。电源模块原理图本次使用第3种供电方式,将开关sw4第1、2脚接通(开关往下拨),电源网络DVDD连接到USB电源输入端。3.数码管该模块原理如图(1)DS07:数码管段码。(2)BIT07:数码管位码。(3)MOTORAD:步进电机驱动信号。(4)DISCTRL04:显示控制信号,控制数码管低5位。(5)D08:单片机P0口。本设计采用共阴极数码管,段码由PNP三极管驱动,位码由NPN型三极管驱动。引脚复用: 数码管低5位(板上为右边5位)的位码由DISCTRL04控制,可单独使用,高3位的位码控制信号与SPI信号,电机驱动

7、信号,4X4矩阵式键盘复用,使用数码管高3位时参与复用的其他功能则不能使用。插针配置: (1)若要使用数码管第40位(板上为右边5位),可以接通插针8。(2)若要使用数码管第75位(板上为左边3位),可以分别接通插针57和9。4. 蜂鸣器 该模块原理图如图1.10所示。本设计中采用无源电磁式蜂鸣器,蜂鸣器由PWM1(P2.6)控制。PWM1和PWM0均为片内PWM模块的输出。蜂鸣器采用普通NPN三极管。插针配置: 使用蜂鸣器,可以接通插针3。5.按键模块 该模块原理如图由于P1口(用于行扫描)内部无上拉电阻,为使无键按下时行信号为高电平,故将行信号接上拉电阻,电阻大小10K即可。引脚复用:P2

8、.0P2.3为4X4矩阵式键盘列扫描信号,又复用作步进电机控制信号,SPI信号、P2.1P2.3还复用为数码管第5、6、7位位码控制信号。参与复用的一项功能使用时,其他参与复用的功能则不能使用。插针配置: (1)插针10上面两脚接跳线帽,4X4矩阵式键盘输入,行扫描信号为P1.0P1.3,列扫描信号为P2.02.3。 (2)插针10下面两脚接跳线帽,独立按键输入,该模式有4个独立按键可用,按键扫描所用端口为P1.0P1.3。这4个按键为4X4矩阵键盘的左边4个按键。6. 复位与下载 复位与下载电路如图进入下载或调试模式的步骤为: (1)按住BTN1(down or debug按键)不要放开;

9、(2)按下BTN2(reset按键),然后放开BTN2(reset按键);(3)放开BTN1(down or debug按键)。这样单片机就进入了调试模式,可以下载或调试程序。三程序流程图:检测按键程序流程图:设置时间流程图:输入密码流程图:NNNYNYNY修改密码流程图:NYYY四、源程序:BITCNT DATA 58HERRORCNT DATA 5AH BUF EQU 2BHSBF EQU 2AHMBF EQU 29HHBF EQU 28H ORG 0000H LJMP MAIN ORG 000BH LJMP CLOCK0 ORG 0039H MAIN: MOV BUF,#00H MOV

10、SBF,#06H MOV MBF,#10H MOV HBF,#02H MOV TMOD ,#11H /T0十六位 MOV TL0,#00H MOV TH0,#1CH SETB ET0 SETB ET1 SETB EA SETB TR0;密码初始化程序L0: MOV BITCNT,#00H ;输入计数 MOV ERRORCNT,#00H ;存放错误次数 MOV R4,#08H MOV R1,#27HSTART: MOV A,R4 MOV R1,A DEC R1 DJNZ R4,START ;20H-27H存放初始密码;检测按键程序 SCAN: LCALL KEY0 ;调用键盘输入子程序 MOV

11、R5,A XRL A,#0BH JZ TIME ;设置时间键被按下,转到TIME(设置时间程序) MOV A,R5 XRL A,#0CH JZ ENTER ;输密码键被按下,转到输入密码程序 MOV A,R5 XRL A,#0DH JZ NNN1 SJMP NNN2NNN1: LJMP SET0 ;改密码键被按下,转到修改密码程序NNN2: LJMP SCAN ;其他键被按下,无效,再扫描按键;设置时间程序TIME: CLR TR0B0: LCALL INPUTTIME MOV R6,A CLR C SUBB A,#03H JC W0 SJMP B0W0: MOV 70H,R6 B1: LCA

12、LL INPUTTIMEW1: MOV 61H,A MOV A,70H SWAP A ADD A,61H MOV HBF,AB2: LCALL INPUTTIME MOV R6,A CLR C SUBB A,#06H JC W2 SJMP B2W2: MOV 73H,R6 B3: LCALL INPUTTIMEW3: MOV 64H,A MOV A,73H SWAP A ADD A,64H MOV MBF,AB4: LCALL INPUTTIME MOV R6,A CLR C SUBB A,#06H JC W4 SJMP B4W4: MOV 76H,R6B5: LCALL INPUTTIMEW

13、5: MOV 67H,A MOV A,76H SWAP A ADD A,67H MOV SBF,A SETB TR0 LJMP SCAN;输入密码程序ENTER: CALL CLEAR ;调用存放数码管段码子程序,数码管全显示-,表示等待密码输入状态 MOV BITCNT,#08H ;输入密码程序 MOV R1,#30H ;30H-37H存放数码管段码 MOV R0,#40H ;40H-47H存放输入的密码 CALL INPUT ;调用密码输入子程序 XRL A,#0EH ;判断取消键是否被按下 JZ ENTER ;取消键被按下,跳到ENTER重新输入密码 CALL COMP ;调用比较密码子

14、程序 JNC NNN3 ;C=0,密码错误,转到L1检测按键 SJMP PASSNNN3: LJMP L1 ;C=0,密码错误,转到L1检测按键PASS: MOV ERRORCNT,#00H ;全部正确,错误次数清零 MOV R1,#30H MOV R2,#05H MOV R1,#89H ;30H存入y的段码 INC R1 MOV R1,#61H ;31H存入e的段码 INC R1 MOV R1,#49H ;32H存入S的段码LOOP0: INC R1 ;33H-37H存入全灭的段码 MOV R1,#0FFH DJNZ R2,LOOP0 LJMP DISP1 ;修改密码程序 SET0: CAL

15、L CLEAR ;调用存放数码管段码子程序,数码管全显示-,表示等待密码输入状态 MOV BITCNT,#08H MOV R1,#30H MOV R0,#40H CALL INPUT ;调用输入密码子程序,输入原密码 XRL A,#0EH ;判断取消键是否被按下 JZ SET0 ;取消键被按下,跳到SET0重新输入密码 CALL COMP ;调用比较密码子程序,比较密码 JNC NNNN3 SJMP NENTERNNNN3: LJMP X1 ;C=0,密码错误,转到L1检测按键NENTER: MOV R1,#30H ;密码正确,进入输新密码准备程序 MOV R2,#07H MOV R1,#71

16、H ;30H存入F的段码,原密码输入正确,接着输入两次新密码LOOP1: INC R1 MOV R1,#0FFH DJNZ R2,LOOP1 ;33H-37H存入全灭的段码 MOV BITCNT,#08H ;8位密码 MOV R1,#30H ;30H-37H存放数码管段码 MOV R0,#50H ;50H-57H暂存放新密码 CALL INPUT ;调用输入密码子程序,输入新密码 XRL A,#0EH ;判断取消键是否被按下 JZ NENTER ;取消键被按下,跳到NENTER重新输入密码 AGAIN: CALL CLEAR MOV R1,#30H ;进入输第二次新密码准备程序 MOV R2,

17、#07H MOV R1,#0F5H ;30H存入r的段码,提示输入新密码LOOP2: INC R1 MOV R1,#0FFH DJNZ R2,LOOP2 ;35H-37H存入全灭的段码 MOV BITCNT,#08H ;确认新密码 MOV R1,#30H MOV R0,#40H CALL INPUT ;调用输入密码子程序,再次输入新密码 XRL A,#0EH ;判断取消键是否被按下 JZ AGAIN ;取消键被按下,跳到AGAIN重新输入密码 MOV R0,#40H ;比较新密码程序 MOV A,R0 CJNE A,50H,X5 ;比较第0位新密码,相同则跳到下一位比较,错误则跳到X5,调用错

18、误子程序N1: INC R0 MOV A,R0 CJNE A,51H,X5 ;比较第1位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N2: INC R0 MOV A,R0 CJNE A,52H,X5 ;比较第2位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N3: INC R0 MOV A,R0 CJNE A,53H,X5 ;比较第3位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N4: INC R0 MOV A,R0 CJNE A,54H,X5 ;比较第4位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N5: INC R0 MOV A

19、,R0 CJNE A,55H,X5 ;比较第5位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N6: INC R0 MOV A,R0 CJNE A,56H,X5 ;比较第6位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序N7: INC R0 MOV A,R0 CJNE A,57H,X5 ;比较第7位新密码,相同则跳到下一位比较,错误则跳到X5,调用错误子程序 MOV R2,#08H ;两次输入的密码相同,将新密码存入20H-27H单元中 MOV R1,#20H MOV R0,#50HLOOP3: MOV A, R0 MOV R1,A INC R1 INC R0 DJ

20、NZ R2,LOOP3 MOV R1,#30H ;修改成功,在数码管上显示donE MOV R2,#03H MOV R1,#71H ;30H存入F的段码 INC R1 MOV R1,#0F3H ;31H存入I的段码 INC R1 MOV R1,#13H ;32H存入n的段码 INC R1 MOV R1,#49H ;33H存入S的段码 INC R1 MOV R1,#91H ;34H存入H的段码LOOP4: INC R1 ;35H-37H存入全灭的段码 MOV R1,#0FFH DJNZ R2,LOOP4 LJMP DISP1X1: LJMP L1X5: CALL NO LJMP NENTER;以

21、下是各种子程序CLEAR: MOV R2,#08H ;40H-47H单元清零,准备存放输入的密码 MOV R0,#40HLOP1: MOV R0,#00H INC R0 DJNZ R2,LOP1;存放数码管段码子程序X0: MOV R1,#08H MOV R0,#30H LOP2: MOV R0,#0FDH INC R0 DJNZ R1,LOP2 ;30H-37H存放等待输入密码时数码管的段码- RET ;输入时间子程序INPUTTIME:LCALL KEY0 MOV R5,A XRL A,#0AH JZ INPUTTIME ;无效键被按下,无效,转到INPUT,继续扫描 MOV A,R5 X

22、RL A,#0BH JZ INPUTTIME ;设置时间键被按下, MOV A,R5 XRL A,#0CH JZ INPUTTIME ;输密码键被按下,无效,继续扫描 MOV A,R5 XRL A,#0DH JZ INPUTTIME ;改密码键被按下,无效,继续扫描 MOV A,R5 XRL A,#0EH JZ INPUTTIME ;取消键被按下, MOV A,R5 XRL A,#0FH JZ INPUTTIME ;确定键被按下, MOV A,R5 RET ;输入密码子程序INPUT: LCALL KEY1 MOV R5,A XRL A,#0AH JZ INPUT ;无效键被按下,转到INPU

23、T MOV A,R5 XRL A,#0BH JZ INPUT ;设置时间键被按下,转到TIME(设置时间程序) MOV A,R5 XRL A,#0CH JZ INPUT ;输密码键被按下,无效,继续扫描 MOV A,R5 XRL A,#0DH JZ INPUT ;改密码键被按下,无效,继续扫描 MOV A,R5 XRL A,#0EH JZ CANCEL ;取消键被按下,转到ENTER(重新输入) MOV A,R5 XRL A,#0FH JZ OK ;确定键被按下,跳出子程序 MOV A,R5 MOV R0,A ;数字键被按下,存入密码 MOV R1,#03H ;输入密码用0表示 INC R0

24、INC R1 CALL DISP DJNZ BITCNT,INPUT LOP3: LCALL KEY1 ;已输入8位密码,检测按键 MOV R5,A XRL A,#0EH JZ CANCEL ;取消键被按下,转到CANCEL(取消程序) MOV A,R5 XRL A,#0FH JZ OK SJMP LOP3 ;确定键被按下,跳出子程序OK: RETCANCEL: MOV A,R5 ;A存放取消的键值 RET;比较密码子程序COMP: MOV R0,#40H MOV A,R0 CJNE A,20H,X3 ;比较第0位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT1: INC R0

25、 MOV A,R0 CJNE A,21H,X3 ;比较第1位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT2: INC R0 MOV A,R0 CJNE A,22H,X3 ;比较第2位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT3: INC R0 MOV A,R0 CJNE A,23H,X3 ;比较第3位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT4: INC R0 MOV A,R0 CJNE A,24H,X3 ;比较第4位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT5: INC R0 MOV A,R0 CJNE A,25H

26、,X3 ;比较第5位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT6: INC R0 MOV A,R0 CJNE A,26H,X3 ;比较第6位密码,相同则跳到下一位比较,错误则跳到no(错误程序)NEXT7: INC R0 MOV A,R0 CJNE A,27H,X3 ;比较第7位密码,相同则跳到下一位比较,错误则跳到no(错误程序) SETB C ;C=1表示密码正确 RETX3: CLR C ;C=0表示密码错误 INC ERRORCNT ;错误次数加1 CALL NO RETL1: MOV A,ERRORCNT CJNE A,#03H,NNNN1 SJMP NNNN2NNNN1: LJMP DISP1 ;错误次数不足3,则转到DISP1NNNN2: MOV R1,#30H ;错三次,锁键盘 MOV R2,#03H MOV R1,#61H ;30H存入E的段码 INC R1 MOV R1,#0F5H ;31H存入R的段码 INC R1 MOV R1,#0F5H ;32H存入R的段码 INC R1 MOV R1,#0C5H ;33H存入0的段码 INC R1 MOV R1,#0F5H ;34H存入R的段码LOP: INC R1 ;35H-37H存入全灭的段码

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2