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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

多功能密码锁.docx

1、多功能密码锁皖西学院课程设计任务书系 别: 机电学院 专 业: 电气0803 学生姓名: 梅盼 张涛 学号: 2008011258 课程设计题目: 多功能密码锁 起讫日期: 6月13日6月26 日 课程设计地点: 指导老师: 徐宇宝 完成任务书日期:2011年6月23日课程设计主要内容和要求:通过键盘和用户获得交互,密码锁在输入密码正确的情况下则输出开锁电平,控制电控锁开启,在本系统中是使黄色LED灯点亮。如果密码输入错误时,则蜂鸣器发出报警声音。系统支持错误密码的退位,并且支持输入完成之后的确认。摘要:本系统是密码锁设计,系统通过键盘和用户获得交互,如果输入的密码与预定的密码相符的话,则授予

2、其相应权限,在本系统中是使黄色LED灯点亮。如果密码输入错误,则蜂鸣器发出报警声音。输入密码时,系统显示的是“-”型字符,防止密码泄露,系统支持错误密码的退位,并且支持输入完成之后的确认。关键字: 密码锁 AT89C51 八段数码管 矩阵式键盘目录一、 系统方案选择与论证 1(一) 设计要求 1(二) 系统基本方案 11、 主控模块的选择 12、 并行I/O扩展模块的选择 13、 显示模块的设计 14、 键盘接口的设计 25、 系统各模块的最终方案 2二、 系统硬件设计与实现 3(一) 系统硬件概述 3(二) 主要单元电路设计 3(三) 并行I/O扩展模块电路设计 3(四) LED数码管显示模

3、块设计 4(五) 键盘接口模块的设计 4三、 系统软件设计 6(一) 主程序的设计 6(二) 子程序的设计 61、 键盘扫描子程序的设计 62、 按键处理子程序 73、 声音报警子程序 94、 左移子程序 105、 右移子程序 106、 数数码管显示子程序 10四、 系统测试 12(一) 测试工具 12(二) 指标测试 121、 硬件测试 122、 软件测试 12(三) 测试结果分析与结论 121、 功能实现 12五、 工作总结 12参考文献 13附录1系统电路图 14附录2系统主要元件清单 15附录3系统程序清单 16附录4系统使用说明书 20系统方案选择与论证设计要求设计数字密码锁,即将密

4、码保存再程序存储器中,上电后,系统进入初始化状态,表示要求用户输入密码,密码由程序中的TABLE表设定,若用户输入密码正确,则显示输入密码正确信号,并进行相应的动作,在本系统中,是使LED灯点亮;若用户输入密码错误,显示密码输入错误的信号,并使蜂鸣器发声,同时系统回到输入状态。系统基本方案主控模块的选择89C51芯片内部有ROM,且片内ROM全部采用Flash ROM,它能于3V的超低压工作,与MCS-51系列单片机完全兼容,但是其不具备ISP在线编程技术,而且内存也只有4KB。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMflash Programmable and

5、Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。基于前两种方案的比较,考虑到AT89S52,该芯片内部既有ROM,又与MCS-

6、51兼容,而且ISP在线编程技术适用AT89S52芯片中,这样既降低了成本也无需反复插拔芯片,可避免损坏芯片管脚,同时可省去了仿真器和专用编程器,大大减低了操作难度和成本。而且该单片机的性能稳定且内存达8KB。综观上述方案的论证与比较,采用AT89S52作为单片机的芯片。并行I/O扩展模块的选择MCS-51单片机系统如果不作任何扩展,P0P3口可作I/O接口使用。但是再很多数据采集场合都需要扩展外部数据存储器,而且P3口也要优先考虑第二功能的使用,这样,真正可以用作I/O接口的仅仅为P1或P2、P3的部分未用引脚。在一个实际应用系统中,需要很多I/O接口作为对外控制引脚,如控制键盘,显示电路等

7、,这样就需要用到I/O扩展的问题在本系统中,选用74LS245作为并行I/O扩展模块显示模块的设计LCD数码管液晶显示,有单片机驱动.它主要用来显示大量数据、文字、图形,能够显示的位数多,显示得清晰多样、美观,但同时液晶显示器的程序编写复杂,价格昂贵,从而降低了整个系统的性价比,故不采用此种方案。LED数码管静态显示,电路容易理解且驱动的程序简单,多片七段译码器驱动显示,这不仅增加了成本,还需要占用单片机多个I/O口,也给电路的焊接带来一定的困难,因此不选用这种方案作为显示模块。采用LED数码管动态扫描显示,价格低廉,不仅减少了对I/O口的浪费,而且能够同时驱动多个数码管。其驱动程序容易编写和

8、理解。经过以上方案的比较,排除了前两种方案之后,最后选择方案三:LED数码管动态扫描显示。7SEG-MPX8-CC八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。本系统选用7SEG-MPX8-CC键盘接口的设计键盘接口电路是嵌入式系统设计中与用户进

9、行人机交互的重要界面,实现向单片机输入命令的功能。键盘由一组敞开的键盘开关组成,每个按键被赋予一个代码,称为键码。键盘分为编码式键盘和非编码式键盘,由于编码式键盘硬件实现复杂,本系统采用实现简单的编码式矩阵键盘。本系统使用43矩阵式键盘,是比较常见的键盘排列方式,键盘由09的数字键和1个后退键、1个确认键构成。系统各模块的最终方案经过方案论证和比较,选出最优秀的系统框架如图片 1所示。图片 1系统硬件设计与实现系统硬件概述密码锁系统主要由六个部分构成,其核心是AT89C51单片机,其核心是AT89C51单片机,通过AT89C51进行控制各个模块,并行I/O扩展模块从P0口传输数据到AT89C5

10、1单片机中,并行I/O扩展模块接数码管ABCDEFG和DP口,P2口传输数据到八段数码管的18位。利用AT89C51单片机编程实现数码管的动态显示,显示模块是连接一片八段数码管以动态扫描方式同时驱动八个数码管来显示当前的数字; P3口用来接矩阵式键盘,单片机P1口接上一个发光二极管和一个蜂鸣器,如果密码正确,则单片机驱动二极管发亮显示,如果密码错误,则通过蜂鸣器来报警。主要单元电路设计AT89C51单片机是双列直插40引脚的集成电路芯片,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。MCS-51单片机第8引脚接蜂鸣器,第40引脚为电源

11、端,第31引脚需要接高电位使单片机选用内部程序存储器;第18、19脚之间接上一个12MHz的晶振为单片机提供时钟信号;第9脚为复位脚,当其接高电位时,单片机停止当前工作并恢复到初始状态。电路连接如图片 2所示。图片 2并行I/O扩展模块电路设计利用74LS245实现并行I/O接口扩展是通过分时选通74LS245来实现的,利用如下指令实现对P1口的分时复用。74LS245为三态输出的八组缓冲器和总线驱动器,8位输入有八个输入引脚(A0A7),输出端同样由八个引脚(B0B7)构成。74LS245芯片使用双向数据缓冲器,所以输入输出方向是双向的,即不但能用于对外部设备的读数据操作也能进行写操作。在本

12、系统中,只需要使用其中的输出功能。电路连接如图片 3所示。图片 3LED数码管显示模块设计单片机P0口连接74LS245,由于74LS245的输出是低电位有效,因此采用共阳极的数码管。通过单片机P0口输出的信号经过74LS245译码后输出给数码管显示。由于采用的是动态方式因此我们使用的是P2口来组合选择通道,通过编程来实现数码管的动态显示。电路连接图如图片 4所示。图片 4键盘接口模块的设计键盘接口电路是嵌入式系统设计中与用户进行人机交互的重要界面,实现向单片机输入命令的功能。键盘由一组敞开的键盘开关组成,每个按键被赋予一个代码,称为键码。键盘分为编码式键盘和非编码式键盘,由于编码式键盘硬件实

13、现复杂,本系统采用实现简单的编码式矩阵键盘。本系统使用43矩阵式键盘,是比较常见的键盘排列方式,键盘由09的数字键和1个后退键、1个确认键构成。键盘电路图如图片 5所示。图片 5系统软件设计采用软件对系统进行编程比起硬件实现其功能要简单、快捷很多。本系统的软件设计采用了汇编语言编程。软件程序分为两部分:第一部分为主程序;第二部分为子程序。其中子程序又分键盘扫描程序子程序、按键处理子程序、声音报警子程序、左移子程序、右移子程序、和数码管显示子程序等。主程序中通过判断当前时间来跳转到相应的子程序来实现系统的各模块的功能。下面就各个部分进行逐一说明。主程序的设计主程序开始时先初始化,初始化8位数码管

14、的段码、初始密码,空间初始化,存储区清零,然后开始运行数码显示子程序,程序进出等待状态。主程序的流程图如图片 6所示。图片 6子程序的设计键盘扫描子程序的设计键盘使用矩阵式键盘,由行和列组成,CPU对所有按键进行监视,一旦发现按键被按下,CPU经过程序加以识别,并转入相应键的处理程序,实现该键功能。键盘设置再行列交叉点上,行列分别连接到按键开关的两端。行线通过上拉电阻接到Vcc上。平时按键无动作时,行线处于高电平状态,而当有按键按下时,行线电平状态将由此行线相连的列线电平决定。键盘扫描子程序如下:LSCAN: MOV P3,#0F0H ;扫描行码 L1: JNB P3.0,L2 LCALL D

15、LY_S JNB P3.0,L2 MOV LINE,#00H LJMP RSCAN L2: JNB P3.1,L3 LCALL DLY_S JNB P3.1,L3 MOV LINE,#01H LJMP RSCAN L3: JNB P3.2,L4 LCALL DLY_S JNB P3.2,L4 MOV LINE,#02H LJMP RSCAN L4: JNB P3.3,A0 LCALL DLY_S JNB P3.3,A0 MOV LINE,#03HRSCAN: MOV P3,#0FH ;扫描列码 C1: JNB P3.4,C2 MOV ROW,#00H LJMP CALCU C2: JNB P3

16、.5,C3 MOV ROW,#01H LJMP CALCU C3: JNB P3.6,C1 MOV ROW,#02HCALCU: MOV A,LINE ;计算键值 MOV B,#03H MUL AB ADD A,ROW MOV VAL,A按键处理子程序以下为按键处理程序,对不同的按键作出响应: CJNE A,#0AH,J1 ;是否为CLR键 MOV R1,KEY_CNT CJNE R1,#00H,J2 LCALL ALARM_1 LJMP START J2: LCALL SHIFTR DEC KEY_CNT W00:LCALL DISP ;等待按键抬起 MOV A,P3 CJNE A,#0FH

17、,W01 LJMP A0 W01:MOV A,P3 CJNE A,#0F0H,W02 LJMP A0 W02:SJMP W00 J1: MOV A,VAL CJNE A,#0BH,J3 ;判断是否为ENTER键 MOV R1,KEY_CNT CJNE R1,#06H,J4 MOV A,WORD_1 ;比较密码 CJNE A,3EH,J5 MOV A,WORD_2 CJNE A,3FH,J5 MOV A,WORD_3 CJNE A,40H,J5 MOV A,WORD_4 CJNE A,41H,J5 MOV A,WORD_5 CJNE A,42H,J5 MOV A,WORD_6 CJNE A,43

18、H,J5 CLR P1.0 LCALL DLY_L LJMP FINI J5: LCALL ALARM_2 LJMP START J4: LCALL ALARM_1 LJMP START J3: INC KEY_CNT ;按下数字键 MOV A,KEY_CNT CJNE A,#07H,K1 LCALL ALARM_1 W10:LCALL DISP ;等待按键抬起 MOV A,P3 CJNE A,#0FH,W11 LJMP START W11:MOV A,P3 CJNE A,#0F0H,W12 LJMP START W12:SJMP W10 LJMP START LJMP START K1: L

19、CALL SHIFTL W20:LCALL DISP ;等待按键抬起 MOV A,P3 CJNE A,#0FH,W21 LJMP A0 W21:MOV A,P3 CJNE A,#0F0H,W22 LJMP A0 W22:SJMP W20 LJMP A0ALARM_1:SETB TR0 ;操作错误报警 JB TR0,$ RETALARM_2:SETB TR0 ;密码错误报警 JB TR0,$ LCALL DLY_L RET声音报警子程序定时器中断服务程序,用于声音报警,以下为程序代码:INT_T0: CPL P1.7 MOV TH0,#(65536-700)/256 MOV TL0,#(6553

20、6-700)MOD 256 INC CNT_A MOV R1,CNT_A CJNE R1,#30,RETUNE MOV CNT_A,#00H INC CNT_B MOV R1,CNT_B CJNE R1,#20,RETUNE MOV CNT_A,#00H MOV CNT_B,#00H CLR TR0RETUNE: RETI左移子程序当输入一个密码时,8位数码管显示的数字往左移动一位,实现代码如下:SHIFTL: MOV LED_BIT_6,LED_BIT_5 MOV LED_BIT_5,LED_BIT_4 MOV LED_BIT_4,LED_BIT_3 MOV LED_BIT_3,LED_BI

21、T_2 MOV LED_BIT_2,LED_BIT_1 MOV LED_BIT_1,#40H MOV KEY_6,KEY_5 MOV KEY_5,KEY_4 MOV KEY_4,KEY_3 MOV KEY_3,KEY_2 MOV KEY_2,KEY_1 MOV KEY_1,VAL RET右移子程序当输入一个密码出现错误时,可以通过CLR按键往后退一位,8位数码管显示的数字往右移动一位,实现代码如下:SHIFTR: MOV LED_BIT_1,LED_BIT_2 MOV LED_BIT_2,LED_BIT_3 MOV LED_BIT_3,LED_BIT_4 MOV LED_BIT_4,LED_B

22、IT_5 MOV LED_BIT_5,LED_BIT_6 MOV LED_BIT_6,#00H MOV KEY_1,KEY_2 MOV KEY_2,KEY_3 MOV KEY_3,KEY_4 MOV KEY_4,KEY_5 MOV KEY_5,KEY_6 MOV KEY_6,#00H RET数数码管显示子程序本系统采用动态扫描的方式来显示数字,在第一时刻P0口输出的信号经74LS245和单片机的P3口的数字相组合成的不同的通道来选择送给第一个数码管显示,同理第二时刻第二个数码管显示数字,直到最后一个数码管显示。当处于输入状态时候,显示“PE”,每输入一个字符,出现一个“-”表示密码,程序代码实

23、现如下:DISP: CLR P2.7 MOV P0,LED_BIT_8 LCALL DLY_S SETB P2.7 CLR P2.6 MOV P0,LED_BIT_7 LCALL DLY_S SETB P2.6 CLR P2.5 MOV P0,LED_BIT_6 LCALL DLY_S SETB P2.5 CLR P2.4 MOV P0,LED_BIT_5 LCALL DLY_S SETB P2.4 CLR P2.3 MOV P0,LED_BIT_4 LCALL DLY_S SETB P2.3 CLR P2.2 MOV P0,LED_BIT_3 LCALL DLY_S SETB P2.2 CL

24、R P2.1 MOV P0,LED_BIT_2 LCALL DLY_S SETB P2.1 CLR P2.0 MOV P0,LED_BIT_1 LCALL DLY_S SETB P2.0 RETDLY_S: MOV R6,#10D1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RETDLY_L: MOV R5,#100D2: MOV R6,#100D3: MOV R7,#248 DJNZ R7,$ DJNZ R6,D3 DJNZ R5,D2 RET四系统测试测试工具keil c51 v7.50Proteus6.7指标测试硬件测试利用Proteus的ISIS电路板设计功能

25、完成电路图的设计,并模拟所有元件的运行。在选用键盘,选用八段数码管时候,多次对AT89C51的I/O接口进行测试运行,最终选用了74LS245作为I/O端的译码管。做键盘接入时,P3引脚错误的连接使CPU无法解析正确的按键,在经过检查和更正之后,终于可以正确的识别按键输入,并做出相应的跳转,数码管也能正常的工作。软件测试在调试程序时,刚开始只编写出了数码管的时钟显示部分的程序,经过多次调试,删除都无法进行,以及确认键的进行。最后发现是DISP数码管显示子程序出现了问题,数码管要相互切换使用,一种情况是输入正确的密码,一种情况是输入错误。当输入错误的话,则蜂鸣器发出报警。当时在调试回退按钮时,还

26、出现了减乱的情况,后面经过分析程序,弄懂了是程序转换出现的问题。测试结果分析与结论功能实现依据调试后得出的结果来看,本设计在完成基本要求,电路需要键盘输入的数字判断是否与初始化的密码相符,密码输入时,数码管显示“-”,防止密码泄露,系统支持输入错误之后的回退,也支持密码错误之后的声音报警,基本功能都实现了。五工作总结本次设计的作品基本上实现了基本功能,达到了作品的设计要求,能够应用到实际生活中。在整个作品的制作中,比较困难的就是调试代码与电路的连接,从一开始调试连接就遭到失败,电路出现的种种的问题,但是我还是不怕失败,到最后终于把电路调试成功了,虽说电路小,但它也是我本次作品的重要电路之一,要

27、是调试不出来也就不、无法检测到密码是否正确虽然在作品制作过程中也出现了很多难解决的问题,但我还是坚持到最后了,积极的去想方案解决,在解决问题的过程中,我得到了很多锻炼,学会发挥我的主观能动性,通过寻求不同的渠道去弄懂和了解一些原理和电路。在作品制作的过程中,我遇到了很多我不懂的知识点,但经过互联网和图书馆查阅资料,也懂得了很多新的知识点,学到了很多知识。从这次的实训中让我知道了,无论在做什么事都不能半途而费,再怎么困难也要坚持到最后,无论最终的结果怎么样,都不要太在意只要我们付出过就足够了。因此不应该太在意结果,更多的应该注重过程,这将会使我终身受益。参考文献单片机原理及基于单片机的嵌入式系统

28、设计,中国水利水电出版社,2007年The L297 Stepper Motor Controller Application Note.潘永雄.新编单片机原理与应用M.西安:西安电子科技大学出版社,2003.年附录1系统电路图附录2系统主要元件清单序号元件名称元件规格型号数量备注1单片机AT89C5112并行I/O扩展译码管74LS24513数码管7SEG-MPX8-BLUE18段8位4电阻RES65蜂鸣器SOUNDER16发光二极管LED-YELLOW17点触式开关128晶振12MHz1附录3系统程序清单LSCAN: MOV P3,#0F0H ;扫描行码 L1: JNB P3.0,L2 L

29、CALL DLY_S JNB P3.0,L2 MOV LINE,#00H LJMP RSCAN L2: JNB P3.1,L3 LCALL DLY_S JNB P3.1,L3 MOV LINE,#01H LJMP RSCAN L3: JNB P3.2,L4 LCALL DLY_S JNB P3.2,L4 MOV LINE,#02H LJMP RSCAN L4: JNB P3.3,A0 LCALL DLY_S JNB P3.3,A0 MOV LINE,#03HRSCAN: MOV P3,#0FH ;扫描列码 C1: JNB P3.4,C2 MOV ROW,#00H LJMP CALCU C2: JNB P3.5,C3 MOV ROW,#01H LJMP CALCU C3: JNB P3.6,C1 MOV ROW,#02HCALCU: MOV A,LINE ;计算键值

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1