




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、设计任务及要求.1二、设计内容及步骤.11、方案设计说明.22、硬件电路的设计33、使用说明 .44、软件设计55、程序流程图66、源程序.7三、制作调试.12四、设计心得13五、参考文献:.14单片机课程设计报告一、设计任务及要求设计、制作一采样用单片机的“电子密码锁”,用一个发光管指示灯代表锁,灯亮表示开锁,灯灭表示关锁,通过按键操作控制“锁”的开关,要求操作简便,安全性能好。同时,为降低成本,限定操作按键用普通微动开关,数量不超过5个,显示器件用发光二极管指示灯,数量不超过3个(不包括开锁那个)。二、设计内容及步骤1、方案设计说明:我所设计的密码锁就是把密码设为3位密码。每位密码
2、的取值范围为可以设为0-9,设置初始密码为2(K3),3(K4),1(K2)。只有按顺序依次按下K3,K4,K2才能开锁。它具有开锁,修改密码,报警等功能。这个密码锁虽然只设置了三位密码,但可以根据这个思路扩展为更多的密码位数。总的用了四个开关和三个发光二极管,三个开关时密码键,一个开关时修改密码键。一个指示灯用来指示锁的开或不开。一个指示灯输入的密码正确与否。一个指示灯用来指示买密码错误,报警。每输入一位正确密码则相应的发光二极管亮,密码全正确则开锁那个指示灯亮,代表开锁,若键入的密码不正确,则相应的指示灯闪烁,开锁指示灯熄灭,相当于报警。这时按按键无效。若用户想修改密码,在输入正确密码开锁
3、后,按下修改密码键,并出现相应的指示灯闪烁,即可键入新的密码,在重新输入新密码开锁,开锁情况和前面一样。2.硬件电路的设计:本课程设计只需采用单片机的最小系统即可,单片机的最小系统就是,电源(20角VSS,40角VCC),复位电路(9角RST/VPD),时钟电路(18、19角XTAL),EA。在硬件电路设计中,我选用P1口作为按键输入口,P0口作为输出口,接指示灯,由于P0口没有上拉电阻,所以还要接限流电阻。按键K1作为修改密码的按键,K2,K3,K4作为密码键,发光二极管D1作为开锁指示灯,D2作为每输入一位正确密码的指示灯,D 3作为输入错误密码的指示灯。材料清单:整的原理图:3.使用说明
4、:当接通电源,指示灯D1闪一下,说明可以输入密码,如果每输入一位密码正确,则指示灯D2闪一下,如果错误则指示灯D3闪三下,模拟报警,并且返回重新输入密码。如果三位密码都正确则指示灯D2连续闪三下,D1指示灯一直亮。输入正确密码开锁后,如果想要修改密码,按下K1键,指示灯D2会闪两下,说明可以修改密码了。每输入一位新密码指示灯D2会闪一下。当三位新密码输入完之后,指示灯D2会连续闪两下,并且指示灯D3会闪一下,代表可以输入新密码开锁。开锁过程同前面一样。4.软件设计首先把初始密码存放在30H,31H,32H。设置P1.1口代表1,P1.2代表2,P1.3代表3。当按下那个键就代表按下相应的密码。
5、把0FBH存放在30H,把0F7H存放在31H,把0FDH存放在32H。然后依次按下密码键,在与初始密码比较,相同就代表输入的密码正确,不同就说明密码错误,并都做相应的指示。当按下P1.0口即可以修改密码,然后把新密码依次存放在40H,41H,42H单元里。然后再输入与新密码比较,正确开锁,错误报警。把P0.0口设置为开锁指示,P0.1为按键指示。P0.2为报警指示。只有依次按顺序按下P1.2,P1.3,P1.1 按键 。才能开锁。否则就报警。 、程序流程图:开始初始化键盘扫描判断是否有键按下设置新密码 NO判断是什么键按下设置键 比较密码 错误 正确调用报警子程序开锁源程序: .存初始密码.
6、ORG 0000H MOV SP,#60H MOV 30H,#0FBH MOV 31H,#0F7H MOV 32H,#0FDH CLR P0.0 ;D1亮一下 ACALL D50mS SETB P0.0.判断第一位密码 MOV R0,#30HL1: MOV P1,#0FFH ;判断是否有按键按下 MOV A,P1 CJNE A,#0FFH,L2 AJMP L1L2: ACALL DEL10mS CJNE A,#0FFH,L3 AJMP L1L3: ACALL DEL10mS CLR C SUBB A,R0 INC R0 CJNE A,#00H,BP ;比较第一位密码是否正确 CLR P0.1
7、ACALL D50mS SETB P0.1.比较第二位密码.L5: MOV P1,#0FFH MOV A,P1 CJNE A,#0FFH,L6 AJMP L5L6: ACALL DEL10mS CJNE A,#0FFH,L7 AJMP L5L7: ACALL DEL10mS CLR C SUBB A,R0 INC R0 CJNE A,#00H,BP CLR P0.1 ACALL D50mS SETB P0.1.比较第三位密码.L8: MOV P1,#0FFH MOV A,P1 CJNE A,#0FFH,L9 AJMP L8L9: ACALL DEL10mS CJNE A,#0FFH,L10 A
8、JMP L8L10: ACALL DEL10mS CLR C SUBB A,R0 CJNE A,#00H,BP AJMP L4.模拟报警.BP: CLR P0.2;D3闪三下 ACALL D50mS SETB P0.2 ACALL D50mS CLR P0.2 ACALL D50mS SETB P0.2 ACALL D50mS CLR P0.2 ACALL D50mS SETB P0.2 SETB P0.0 AJMP L0 密码正确开锁. L4: CLR P0.1 ; D2指示灯亮三下,D1一直亮 ACALL D50mS SETB P0.1 ACALL D50mS CLR P0.1 ACALL
9、 D50mS SETB P0.1 ACALL D50mS CLR P0.1 ACALL D50mS SETB P0.1 CLR P0.0 ;开锁确认是否修改密码.K0: JB P1.0,$ ;判断按键K1是否按下, ACALL DEL10mS JB P1.0,K0 JNB P1.0,$ SETB P0.1 ; 按下D2指示灯闪两下 ACALL D50mSCLR P0.1 ACALL D50mS CLR P0.1 ACALL D50mS SETB P0.1 ;以修改密码 修改新密码第一位 . G1: MOV P1,#0FFH ; D2只是灯闪一下 MOV A,P1 CJNE A,#0FFH,G2
10、 AJMP G1G2: ACALL DEL10mS CJNE A,#0FFH,G3 AJMP G1G3: MOV 40H,A INC R1 CLR P0.1 ACALL D50mS SETB P0.1 修改新密码第二位 . G4: MOV P1,#0FFH ; D2只是灯闪一下 MOV A,P1 CJNE A,#0FFH,G5 AJMP G4G5: ACALL DEL10mS CJNE A,#0FFH,G6 AJMP G4G6: MOV 41H,A CLR P0.1 ACALL D50mS SETB P0.1 修改新密码第三位.G7: MOV P1,#0FFH MOV A,P1 ;D2只是灯闪
11、一下 CJNE A,#0FFH,G8 AJMP G7G8: ACALL DEL10mS CJNE A,#0FFH,G9 AJMP G7G9: MOV 42H,A CLR P0.1 ;D2闪两下,新密码修改完 ACALL D50mS SETB P0.1 ACALL D50mS CLR P0.1 ACALL D50mS SETB P0.1 ACALL D50mS 输入新密码开锁H0: CLR P0.2;D3指示灯闪一下,可以输入新密码开锁 ACALL D50mS SETB P0.2 MOV R1,#40H H1: MOV P1,#0FFH ;输入第一位新密码 MOV A,P1 CJNE A,#0F
12、FH,H2 AJMP H1H2: CALL DEL10mS CJNE A,#0FFH,H3 AJMP H1H3: CLR C SUBB A,R1 INC R1 CJNE A,#00H,HP CLR P0.1 ACALL D50mS SETB P0.1H5: MOV P1,#0FFH ;输入第二位新密码 MOV A,P1 CJNE A,#0FFH,H6 AJMP H5H6: ACALL DEL10mS CJNE A,#0FFH,H7 AJMP H5H7: CLR C SUBB A,R1 INC R1 CJNE A,#00H,HP CLR P0.1 ACALL D50mS SETB P0.1H8:
13、 MOV P1,#0FFH ;输入第三位新密码 MOV A,P1 CJNE A,#0FFH,H9 AJMP H8H9: ACALL DEL10mS CJNE A,#0FFH,H10 AJMP H8H10: CLR C SUBB A,R1 CJNE A,#00H,HP AJMP H4HP: CLR P0.2 ;输入密码错误D3指示灯闪三下 ACALL D50mS SETB P0.2 ACALL D50mS CLR P0.2 ACALL D50mS SETB P0.2 ACALL D50mS CLR P0.2 ACALL D50mS SETB P0.2 SETB P0.0 ;D1指示灯熄灭,报警
14、AJMP H0 H4: CLR P0.1 ;密码都正确,D2指示灯闪三下, ACALL D50mS SETB P0.1 ACALL D50mS CLR P0.1 ACALL D50mS SETB P0.1 ACALL D50mS CLR P0.1 ACALL D50mS SETB P0.1 ;D1一直亮,代表开锁 AJMP K0 .延时0.5S.D50mS: MOV R2,#50D0: ACALL DEL10mS DJNZ R2,D0RET延时10Ms.DEL10mS: MOV R6,#20 D1: MOV R7,#248 DJNZ R7,$DJNZ R6,D1RETEND三、制作调试1、调试
15、程序:编写程序之后,编译改错,改正确之后,生成16进制文件,把它调到proteus软件中进行仿真。若有问题,就根据其现象更改程序直到仿真成功,再烧写程序。2、程序烧写:写好程序,并通过仿真就可以把程序烧进的单片机8051芯片里,用Sasy51p软件进行程序烧写。3、调试电路:烧好程序后,把芯片放到实际的电路中进行调试,如果没有要求的结果。检测硬件两个方面,重复调试及检测的过程,直到调试成功四、设计心得经过两周的时间我们的密码锁课程设计结束了。在设计的过程中遇到很多问题,对于我来说最困难的就是修改程序的过程,当我把程序写好后,在电脑上调试程序的过程中出现了很多的问题,错误一个一个得修改完了,但仿真又出不来我想要的结果,有得返回来再修改调试程序,这样一步一步的修改,最后出来啦。这个过程我大概用了两天的时间。接下来就是焊电路,虽然电路图简单,但很容易会出错,我的程序烧在芯片里,一上电灯全亮的。有得检查电路板。在整个设计和制作过程中我觉得我学到了许多东西,特别是调试程序的过程,我发现了很多问题,也解决了很多问题。亲身体会到了整个过程。有些问题是不能一下就发现的,有些问题在修改中不知不觉就发现了。还有就是绘制程序的系统框图,这个是很重要的,当绘制好框图在写程序,条理非常清晰。这次的课程设计培养了我独
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年乡村旅游与非物质文化遗产传承报告
- 玛利亚vip门诊协议书
- 聘用退休人员签合同范本
- 猪场合作养殖协议书范本
- 首封人债权转让合同范本
- 淘宝与快递合作合同范本
- 汽油餐饮车转让合同范本
- 涂料机低价转让协议合同
- 签订借款合同后的协议书
- 篮球互租合同协议书范本
- 2024年贵州省凯里市事业单位公开招聘医疗卫生岗笔试题带答案
- 河南豫信电科所属公司招聘笔试题库2025
- 农商行催收培训
- 《Python数据分析与实战(微课版)》全套教学课件
- 脑卒中规范化培训脑出血课件
- 蜘蛛车专项施工方案
- 2025年推拿按摩临床主治医师职业技能资格知识考试题与答案
- 微专题06总光合速率净光合速率呼吸速率的辨析与测定-2023年高考生物一轮复习考点微专题(新高考专用)
- 2025年江苏苏锡通科技产业园区残联专委岗位招聘笔试参考题库附带答案详解
- 交通运输行业夏季安全措施
- 《中国少数民族服饰》课件
评论
0/150
提交评论