




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
通信工程 专业课程设计题单 班级 0882041 学生 课程名称 专业课程设计 课 题 密码锁的设计 设计要求 设计一个数字式密码锁 密码由46位数字组成 密码相符开锁,三次不符报警 时间可以任意修改 密码可以更新 课 题 发 给 日 期 2011.6.14 课程设计完成日期 2011.7.9 指 导 教 师 评语: 评分: 摘要 数字密码锁广泛应用于机要部门、银行金库、军事要地、博物馆等,也可用于保险柜,家庭保险盒等。本实验由单片机系统组成,矩阵键盘,LED显示器和报警系统组成,系统能完成开锁,报警,密码、时间都可以修改的基本功能。本设计的基本目的为熟悉十六位单片机系统板C51板的基本构成,掌握 LED数码管原理及使用方法,掌握电路板的使用方法,掌握 4X4 键盘的扫描原理,初步掌握C51单片机汇编语言一般编程技巧。关键字:C51单片机,LED显示器,汇编语言,矩阵键盘目 录第一章 设计的目的及要求31.1 设计目的31.2 硬件选择要求31.3 设计内容3第二章 系统组成及工作原理22.1 44行列式键盘扫描原理22.2 系统设计框图3第三章 硬件设计方案43.1 方案比较43.2 键盘电路设计53.3 LED显示电路53.4 开锁电路63.5 报警电路7第四章 软件设计方案84.1 设计思路84.2 个子程序设计8第五章 调试结果与分析5.1 调试结果145.2 结果分析14第六章 结论与体会15参考文献16附录17第一章 设计目的及要求1.1 设计目的熟悉十六位单片机系统板C51板的基本构成,掌握 LED数码管原理及使用方法,掌握电路板的使用方法,掌握 4X4 键盘的扫描原理,掌握C51单片机汇编语言一般编程技巧。1.2 硬件选择要求装有Windows系统和nSP IDE仿真环境的PC机一台,nSP 十六位单片机实验箱一个。本设计用到的实验箱硬件模块为:SPCE061A核心及周边电路模块(包含32个I/O口),4X4 键盘,十六位单片机系统板61板。1.3 设计内容行列式键盘的操作一般完成两个任务,一是检测是否有键被按下,二是识别被按下的键是哪一个。一般会采用行列扫描法,可以同时完成上述两项任务。基本的扫描原理是: 先使行扫描线全部输出高电平,然后读取列扫描线的状态,得到与按键横向位置对应的4位列码;如果有键被按下,则对应的列扫描线必然会被读回高电平,如果无键按下,则读取的列码必定全是0(低电平)。这也就可以判断有无按键的按下了。 一旦检测到有键按下时,还需要有一个延时消抖操作,以消除按键时带有的抖动信号;一般延时在15ms左右即可。延时后,如还能检测到有按键按下,则可确定当前是有键按下,可进入获取键值的操作。 获取键值时,采用行列依次扫描的方法。首先使第一行扫描线输出高电平,其它的行扫描线输出低电平,然后读取列扫描线的状态,得到列码;如果本行无键按下,则得到的列码为全0,并扫描下一行;如本行有键按下,则会读取到对应的列码值,并退出扫描,进行键值计算。当第一行扫描没有检测到按键时,则扫描第二行,即置第二行扫描线输出高电平,其它行扫描线输出低电平,其它与前面所述类似。第二章 系统组成及工作原理根据电子密码锁的设计要求人机界面系统的设计理念,整个系统以44行列式键盘作为输入部分,以SPCE061A板作为系统的单片机的控制处理部分,以一个4位的LED和一个2位的LED作为显示部分组成。2.1 44行列式键盘扫描原理键盘按其接线方法有:直接式键盘、行列式键盘(又称矩阵键盘)、串转并键盘等;在本设计中,采用4X4的行列式键盘,即键盘排列为4行、4列,共16个按键。 4X4键盘的电路连线如图所示,分别定义这16个按键盘的键值为116。单片机与该电路连接时,使用4个端口作为输出口,接4条行扫描线;使用4个端口作为输入口,接4条列扫描线;在此介绍中,使用SPCE061A的IOA07这8个端口作4X4键盘的扫描,IOA03接行扫描线,IOA47接列扫描线。 图2-1 44键盘输入电路图如上图中,IOA03设置为输出口,接行扫描线;IOA4IOA7设置为带下拉电阻的输入口,接列扫描线。 行列式键盘的操作一般完成两个任务,一是检测是否有键被按下,二是识别被按下的键是哪一个。一般会采用行列扫描法,可以同时完成上述两项任务。基本的扫描原理是:先使行扫描线全部输出高电平,然后读取列扫描线的状态,得到与按键横向位置对应的4位列码;如果有键被按下,则对应的列扫描线必然会被读回高电平,如果无键按下,则读取的列码必定全是0(低电平)。这也就可以判断有无按键的按下了。 一旦检测到有键按下时,还需要有一个延时消抖操作,以消除按键时带有的抖动信号;一般延时在15ms左右即可。延时后,如还能检测到有按键按下,则可确定当前是有键按下,可进入获取键值的操作。 获取键值时,采用行列依次扫描的方法。首先使第一行扫描线输出高电平,其它的行扫描线输出低电平,然后读取列扫描线的状态,得到列码;如果本行无键按下,则得到的列码为全0,并扫描下一行;如本行有键按下,则会读取到对应的列码值,并退出扫描,进行键值计算。当第一行扫描没有检测到按键时,则扫描第二行,即置第二行扫描线输出高电平,其它行扫描线输出低电平,其它与前面所述类似。 在行列扫描时,可以用一个变量记录下当前扫描的行号,在计算键值时,可以利用此行号以及读回的列码得知是哪一行、哪一列上的按键按下了。如:当S5按下时,应该检测出第二行扫描时读取到有效的列码0001(IOA74)。 2.2 系统组成框图根据系统的功能选择61板作为单片机控制处理部分,利用一个4位的LED和一个2位LED作为显示部分,键盘采用4X4的行列式键盘,系统框图如图所示。图2-2 电子密码锁系统设计框图第三章 硬件电路方案设计 3.1方案比较与确定方案一运用74LS112双JK触发器构成数字逻辑电路并将其作为设计密码控制系统的核心部分。一共含9个输入按键,其中4个有效按键,其它为无效的干扰按键。如果输入干扰按键,则键盘输入自动清零,需要重新输入正确的有效密码按键;另外用户输入按键的时间一旦超过预置时间,则电路报警提示,连续三次密码错误还会锁定键盘一定时间。虽然该方案简单易行,但因为准确性和灵敏性太差而不采用。方案二选用单片机AT89C51作为设计的核心元件,在单片机的外围电路部分外接输入键盘用于输入密码及其功能的调用和控制,LCD1602显示器用于显示部分。用户输入正确的密码开锁时,需要按照键盘按键输入0-9、A-F来进行输入。按下确认键,密码正确则绿灯亮,开锁;错误则绿灯不亮,转而黄灯亮,不开锁;倘若三次密码输入错误则报警提示,此时红灯亮起。用户要自行修改密码时,先按下键盘设置键后再次输入正确的密码,唯有密码输入无误后才可以设定新密码,新密码输入进电路后按确认键检查并保存起来,此时密码修改成功。同时单片机灵活的编程设计和丰富的IO端口地址总线,除了能实现基本的密码锁功能外,还能添加声光报警提示等其它更加高级的功能。鉴于方案二控制性好,准确性高,安全性能良好还带有众多的扩展功能,最后决定采用方案二进行设计。3.2 键盘电路设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图3.1。图3.1 矩阵键盘每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有NM个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。具体的功能设计如表3.1:表3.1 按键功能按 键键 名功 能 说 明19键数 字 键输 入 密 码* 键重 设 密 码 键设 定 新 密 码D键确 定 键比 较 密 码# 键清 除 键使 显 示 器 清 零3.3 LED显示电路本系统设计的显示电路是为了给使用者以提示而设置的。本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路的电路原理图如图3.2所示。用P0.0P0.3接74LS247的A,B,C,D四端口,74LS247的输出口接LED的七段显示;而P0.4P0.6接74LS138的A,B,C三个输入口,74LS138的输出口接LED的位显示。通过软件实现数字和位控制。图3.2 LED显示电路3.4 开锁电路在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如3.3所示。当P2.0口输出低电平时,二极管发光,表示开锁。图3.3 开锁电路3.5 报警电路图3.4报警电路报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图3.4所示。当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声第四章 软件设计方案4.1 软件设计思路电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,系统报警。密码的设定,在此程序中密码是固定40H45H中,假设预设的密码为123456共6位密码。由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。4.2 各子程序设计1 键盘扫描子程序键盘扫描流程图如图4.2.1 图4.2.1 键盘扫描流程图键盘扫描子程序如下:L2: MOV R3,#0F7H MOV R1,#00HL3: MOV A,R3 MOV P1,A MOV A,P1 MOV R4,A SETB C MOV R5,#04HL4: RLC A JNC KEYIN INC R1 DJNZ R5,L4 CALL DISP MOV A,R3 SETB C RRC A MOV R3,A JC L3 JMP L22 LED显示子程序 LED显示流程图如图4.2.2图4.2.2 LED显示流程图LED显示子程序如下:DISP:MOV R0,#45HDISP1: MOV A,R0 ADD A,#50H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#40H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#30H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#20H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#10H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#00H MOV P0,A CALL DELAY RET3 密码比较和报警程序密码比较和报警流程图如4.2.3图4.2.3 密码比较和报警流程密码比较和报警程序:COMP: MOV R1,#45H MOV R0,#35H MOV R2,#06HC1: MOV A,R1 XRL A,R0 JNZ C3 DEC R1 DEC R0 DJNZ R2,C1 CLR P2.0 MOV R2,#200C2: MOV R6,#248 DJNZ R6,$ DJNZ R2,C2C3: INC R5 MOV A,R5 MOV R5,A CJNE R5 ,#03H,C4 CLR P2.1 MOV R5,#00H C4: JMP START第五章 调试结果与分析5.1 调试结果将LED数码管与单片机板I/O接口连接,然后连接单片机与44键盘。用短路子将S5的2、3引脚短接,即选择EZ-PROBE,将EZ-PROBE的5针接口连到J11的位置使用,这时74HC244起作用。再用下载线连接单片机下载线接口与电脑接口,打开单片机电源开关,打开集成开发环境,以PROJECT方式打开程序,或直接按F8将程序下载到单片机芯片中。下载完毕后,拔掉下载线,把S5上的短路子拨到PROBE(J4)处(即用短接冒短接S5的1、2插针)脱机运行下载到电子密码锁芯片中的程序,打开电源开关 ,开机时数码管显示“000000”,初始化密码为“123456”,密码可以更改,并保存在 RAM 中;然后按下述步骤对硬件电路进行测试: (1)开机时数码管显示“000000”,初始化密码为“123456”,密码可以更改,并保存在 RAM 中。 (2)按下“#”,则显示全部清零为“000000”。 (3)随时可以输入数值,并在 LED 数码管上实时显示,当键入一个新数值时,原来显示的数字左移一位,并在最右边的一位上显示出新键入的键值,键值为 09。 (4)按下“D”键,则表示确定键按下,则进行密码对比,如相符则在 LED数码管上显示“=”以示通过;如不符,则显示“-”。 (5)按下“*”键,如当前在已经通过密码验证的状态,则根据当前输入的号码更新原有的密码;如当前在尚未通过密码验证状态,则显示“-”。 (6)按下“A”键,如当前在已经通过密码验证的状态,则显示当前的密码;如当前在尚未通过密码验证状态,则显示“-”。 (7)按下“C”键,退出通过密码验证状态,进入尚未通过验证状态。5.2 结果分析此设计验证了LED板可以按照相应的给定值进行显示的功能基本达到了作为数字密码锁的绝大部分功能,但还有许多不足和需要完善的地方。第六章 结论与体会通过此次试验我对十六位单片机的应用系统开发的过程有了一定的了解,掌握了系统硬件设计及软件设计的设计原则、思路、步骤。在这次试验之前就认真的学习了单片机语言,并复习C语言和汇编语言。回顾此次单片机课程设计,至今我仍感慨颇多,从理论到实现,在做设计的这些日子里,可以说是苦多于甜,但是可以学到许多许多有用的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多书本上没有学到过的知识。并通过不断上网查资料、到图书馆借阅图书的方式,进一步熟悉并掌握利用这些工具来进行单片机设计的方法。通过这次的学习,真正学到了不少东西,真正体会到了理论联系实际的重要性。经过这次实习可以使同学们能更快更准确的掌握专业方面的理论知识同时,通过实践,又证明了我们所学理论知识的科学性和正确性。这次课程设计终于顺利完成了,在设计中也遇到了很多编程问题,在同组人的帮助下,困难得到了解决。在此,非常感谢同组人!参考文献1 张先庭.C51单片机原理与应用M.北京:国防工业出版社,2005.2 薛峰.微机通讯技术大全M.北京:电子工业出版社,2002.3 张念维.USB总线接口开发指南M.北京:电子出版社,2002.4 周立功.单片机实验与实践M.北京:北京航空航天大学出版社,2004.5 周航慈.单片机应用程序设计技术M.北京:航空航天大学出版社,2002.6 袁勤勇.嵌入式系统构件M.北京:北京机械工业出版 附录源程序清单 ORG 00H MOV R5,#00H MOV R7,#00H DJNZ R7,$ MOV R7,#10H MOV R6,#06H MOV R1,#35HL1: MOV A,R7 MOV DPTR,#TABLE MOVC A,A+DPTR MOV R1,A DEC R1 INC R7 DJNZ R6,L1START: ORL P2,#0FFH MOV R4,#06H MOV R0,#40HCLEAR: MOV R0,#00H INC R0 DJNZ R4,CLEARL2: MOV R3,#0F7H MOV R1,#00HL3: MOV A,R3 MOV P1,A MOV A,P1 MOV R4,A SETB C MOV R5,#04HL4: RLC A JNC KEYIN INC R1 DJNZ R5,L4 CALL DISP MOV A,R3 SETB C RRC A MOV R3,A JC L3 JMP L2KEYIN: MOV A,R1 XRL A,#0BH JZ X3 MOV A,R1 XRL A,#0FH JZ X4 MOV R7,#10D1: MOV R6,#24 DJNZ R6,$ DJNZ R7,D1D2: MOV A,P1 XRL A,R4 JZ D2 MOV A,R1 MOV DPTR,#TABLE MOVC A,A+DPTR MOV R7,A XRL A,#0AH JZ SET0 MOV A,R7 XRL A,#0BH JZ START MOV A,R7 XRL A,#0CH JZ L2 MOV A,R7 XRL A,#0DH JZ L2 MOV A,R7 XCH A,40H XCH A,41H XCH A,42H XCH A,43H XCH A,44H XCH A,45H CALL DISP JMP L2X3: JMP DISP2X4: JMP COMPDISP:MOV R0,#45HDISP1: MOV A,R0 ADD A,#50H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#40H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南旅游考试题库及答案
- 2017路政考试题及答案
- 2015施工员考试试题及答案
- 疲劳运动表现关系-洞察及研究
- Module 2(单元试卷)外研版英语六年级下册(含答案含听力原文)
- 大数据在影视制作中的多维度应用研究-洞察阐释
- 智能运动鞋技术创新-洞察阐释
- 煤炭综合采掘机械设备项目投资风险评估报告
- 学前教育专业师范生的融合教育素养培养
- 云南轻纺职业学院《文学概论2》2023-2024学年第二学期期末试卷
- 种子萌发过程中的生物化学动态研究
- 外科创伤处理-包扎技术课件
- 小三断绝关系协议合同
- 二级注册计量师考试知识点大全2025
- 医院护理清单式管理流程
- 2025云南省德宏州瑞丽市人民医院合同制聘用人员招聘(2人)笔试参考题库及答案解析
- 无人配送车辆故障诊断与维护-深度研究
- 2024北京东城区初一(下)期末英语试题和答案
- 肿瘤患者化疗的健康教育
- 2025年双方协商确立房产产权归属协议
- 香料限公司年产香精11000吨建设项目环评资料环境影响
评论
0/150
提交评论