单片机课程设计密码锁Word文档下载推荐.docx
- 文档编号:20489067
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:23
- 大小:227.05KB
单片机课程设计密码锁Word文档下载推荐.docx
《单片机课程设计密码锁Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机课程设计密码锁Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
本设计晶振选择频率为12MHZ,电容选择33pF。
经计算得单片机工作的机器周期为:
12×
(1?
12M)=1us。
(7)下载口:
该密码锁系统设计了一个下载口用于单片机系统的程序导入,附带可以作为补充电源只用,即用一个引脚接电源VCC,因此可以实现程序输入和供电。
2.2密码锁电路原理图、PCB图、元器件布局分布图
电路原理图见附录A
PCB顶层图见附录B
PCB底层图见附录B
元器件布局图见附录C
2.3密码锁元器件清单
元器件清单见附录D
3密码锁软件系统的设计
3.1密码锁设计使用单片机资源的情况
原始密码存放在内部程序存储器中,78H-7FH单元做字形代码缓冲区,70H-77H单元做数据比较缓冲区,61H-66H作为新密码存放区,88H-8DH做密码缓冲区。
3.2密码锁设计软件系统各模块功能简介及流程图
密码锁软件的设计主要包括:
键盘扫描、密码显示、密码比较、密码修改、错误报警。
程序设计总流程图如图2所示:
开始
显示设定符号P.
输入6位密码
是否和原始密码Y相同,
修改原始密N码
显示错误并
报警
结束
图2程序设计总流程图
3.2.1键盘扫描程序:
本设计采用独立式键盘,共八个按键,程序开始时,先给P1口送高电平,
有按键按下后,相应的P1口线会变为低电平,将P1口的电平取反,再送到20H
中,20H为可位寻址区,通过查询20H的八位,即可得到是哪个按键按下,就可
以转向每个按键所要执行的程序。
键盘扫描程序流程框图如图3所示:
调键扫子程序
是否有键按下?
调延时程序去抖
确认键按下,N
Y
保存键值
N
调延时
按键是否释N放,
恢复键值
返回
图3键盘扫描程序流程图
3.2.2显示程序:
本设计采用数码管共阳极显示,位控由P0口输出,段控由P2口输出,程序开始后,先对程序初始化,选好寄存器以及查表显示的表地址,先将低位位控码送到P2口,然后通过查表得到段控码,并送到该位,这样依次查完八位,使八位数码管显示,以此循环。
显示程序流程图如图4所示:
段控码送P0口
压入堆栈保护
调延时1MS子程序初始化显示缓冲
区指针地址
是否显示到最高
位,设位控初值
位控码送P2口修改位控码
出栈恢复现场
显示数据送累加器A
查表取显示数据返回执行代码
图4显示程序流程图
3.2.3密码判断程序:
原密码存放在内部程序存储器中,程序开始后,上电后通过键盘输入六位密码来解锁,六位密码输入完后,会自动判断是否与原始密码相同,相同的话可以解锁,解锁后可以更改用户密码,若与原始密码不同,则出错报警,然后按复位键可以重新输入。
修改完用户密码后若再解锁,步骤与上述相同。
密码判断程序流程图如图5所示:
输入六位密码
与原始密码比较
是否与原始密码N相等
Y进入错误显
示报警程序
进入密码修
改程序
图5密码判断程序流程图
3.2.4错误报警程序
密码输入错误后,会进入自动错误报警,报警时数码管上会显示“ERROR”
字样,蜂鸣器会响,与蜂鸣器连在一起的LED灯也会亮,从而实现错误报警。
错误报警程序流程图如图6所示:
显示缓冲区
送相应代码
调显示程序,
是数码管上显
示“ERROR”
P3.1取反,使
蜂鸣器报警
按下复位
键,
图6密码修改程序流程图
3.3密码锁设计程序清单
程序清单见附录E
4设计结论、缺陷分析、仿真结果、心得体会、教学建议
4.1密码锁设计结论及使用说明
该密码锁基本实现了开锁,修改用户密码,错误报警等功能,具有一定的应用推广价值。
密码锁上电后,屏幕上会显示“P.”,通过键盘可以输入六位密码,保密显示“口”形;
密码输完后,密码正确则自动开锁,出现上“口”形,并可以任意输入1-7在数码管显示,若错误数码管会出现“ERROR”和蜂鸣器与LED灯间歇性鸣叫、闪烁报警,按复位键返回重输。
密码正确后按下第八个键出现六“_”,“口”形显示保密输入六位新密码,完成后按第八个键确认后又可回到输密码状态“P.”;
在修改密码后,如果出现密码输入错误,也会出现“ERROR”字样和蜂鸣器与LED的报警,但可按任意键返回到输密码状态重新输入密码状态;
现在可以摆脱复位键,可重复修改密码。
4.2密码锁设计的缺陷分析
本设计的密码锁不能进行掉电保护,即用户修改密码后不能进行密码保存,掉电后密码就变为原始密码,在实际应用中还须进行改进,例如在硬件电路中加入存储芯片24C02。
由于硬件电路的限制,按键过少,使有些功能缺失或复杂,在实际应用中可采用行列式键盘。
4.3密码锁的仿真结果
为了能让本次课程设计的准确性特用Protues仿真软件做了仿真如图7:
图7仿真图P点的显示
4.4心得体会
本次单片机课程设计安排在临近期末。
由于期末复习紧张,要在短时间内完成程序设计到硬件调试,我遇到很大的困难。
首先在程序设计上,基于强大的网络资源和图书资源我很快的确定了设计方案和总体设计思路——构建一个由数码管和独立按键以单片机为核心的电子密码锁。
但是,从软件设计完成到实现仿真却并不简单。
好在,前期在做单片机实验上积累了一定的程序设计和分析功底,经过反复调试和修改,到底还是实现了当初预定的功能。
通过这次实践课程,我不光学到了很多关于单片机应用的知识,同时也增长见识、开扩了专业方面的视野。
另外,我感觉课程设计与实验课这样的实践课程对理论知识的巩固,动手能力的增强,综合素质的提高有着理论课堂学习无法比拟的效果,是大学,尤其是应用型工科学院必不可少的学习单元。
4.5教学建议
经过为期半年的单片机学习,我们在王老师的指导下对单片机有了较系统的认识,有了一定了程序设计能力,掌握各个应用软件的使用。
但是,我也有个人的感受:
王老师在理论课上教学认真细致,实践课时习惯让同学们自我摸索,也许希望这样锻炼同学们独立解决问题的能力。
但是,我们更希望在实践课时有更多机会得到老师的点拨和指导,这样会令我们的学习效率更高,积极性更高。
那样,我相信我们的学习成绩将会更进一步,老师的教学效果将更突出。
结束语
作为本学期的单片机课程设计,由单片机为控制核心的密码锁从设计方案确定到原理图设计,到程序设计及软硬件结合调试,整个过程有苦有甜,但我收获了颇多,学到了许多课本上没有的东西,增强了自己的动手能力,还培养了自己查阅资料,自学的技能,总之,是获益匪浅的。
尤其在资料查阅和程序设计和调试上能力提高效果明显。
此次设计的密码锁虽然实现了其基本功能,但还有很多要改进的地方,比如掉电保护的实现,必须在原有的电路上增加模块(比如24C52芯片),但由于时间紧凑,资源有限未能完成。
在以后的学习中,我还应该继续努力去完善。
此次课程设计虽然接近尾声,但我对单片机的学习和研究将永远不会停止,我必将努力自我探索,不断自主学习,孜孜以求。
致谢
期末考试结束了,我的单片机课程设计也要完成了。
能够顺利完成密码锁的设计,当然要感谢王韧老师悉心教授单片机的理论知识以及在实验课程上的严格要求。
王老师在课程设计前期的单片机技术课的教授上认真细致,使我们夯实了理论知识基础;
在单片机实验课上,王老师严格要求,使我们强化了实践动手能力、能够熟练的运用各种应用软件。
并且,在我们遇到技术难题和设计瓶颈的时候适当的启发了我们。
另外,在程序设计和硬件调试上,我很大程度上获得了班上同学的帮助,尤其是上期暑假参加过单片机培训的三位同学使我顺利完成了程序的后期完善。
在设计结束之际,祝老师新年快乐,工作顺利,桃李满天下,祝同学们期末考试顺利,学有所成。
参考文献
[1]李广第,朱月秀,冷祖祁.单片机基础[M].北京:
北京航空航天大学出版社,
2007.6
LiGuangfirst,ZhuYueXiu,LengZuQi.Singlechipmicrocomputerbased[M].Beijing:
Beijinguniversityofaeronautics&
astronauticspress,2007.6[2]康华光.电子技术基础模拟部分(第五版)[M].北京:
高等教育出版社,2006
kanguhguano.Electronictechnologyfoundationsimulationpart(fifthedition)[M].Beijing:
highereducationpress,2006
[3]阎石,数字电子技术基础(第五版)[M].北京:
YanShi,digitalelectronictechnologyfoundation(fifthedition)[M].Beijing:
[4]邱光源.电路(第五版)[M].北京:
QiuGuangYuan.Circuit(fifthedition)[M].Beijing:
附录
附录A:
电路原理图
JP1JP2P00P1011P01P1122P02P1233P03P1344P0455P0566P0677P0788CON8CON8JP3JP4P20P3011P21P3122P22P3233P23P3344P24P3455P25P3566P26P3677P27P3788CON8CON8
P00P01P02P03P04P05P06P07
LED236d4dp喻鹏g5f数码管电路108d3e1d2.ddbDrawnBy:
c49d2R00b470R017470R02数码管系统a下载口470R03\yu11470P27R04d112470P26R05单片机\470P25R06470P24R07VCC470P23单片机控制系统LED1学习资料P22\36P21d4dp资料P20g5f密码锁原理图108d3e1d2c49d2b7123456aPNP1PNP2PNP3PNP4PNP5PNP6PNP7PNP811d1Q19012Q29012Q39012Q49012Q59012Q69012Q79012Q8901212R20470R21470R22470R23470R24470R25470R26470R27DD470短路帽J5P009P018P027P036P045P054P063P07蜂鸣电路21VCCC1U110K139P10P00238D133pFX1470P11P01RP0337P30Y1P12P02436D212MHzX2470P13P03RP1535P31C2P14P04LED634D3470P15P05RP2733P32晶振电路P16P06LED832D4P10P0033pF470P17P07RP3P33CCP11P01LED1321D5P12P02470INT1P20RP41222P34P13P03INT0P21LEDAT89S5223D6P14P04470P22RP51524P35P15P05T1P23LED1425JP5D7P16P06470T0P24RP626P36VCCCON2P17P071P25LEDXXX3127D8470EA/VPP262RP728P37P33P20P27LED19P32P21X118XXXP22X2LEDP35P23910P34P24RESETRXD11P25TXD1730VCCP26RDALE/PVCC1629JX2P27WRPSENB21X12P31X21Q99012VCCCON2PNP9RETP30R12B21P31P37ALE/P1KP36PSENLS1BBD9LEDVCCISPVCCJ2P1516C316VCCBELL1S1+S222uF227S3273S4独立键盘电路4RET3ISP8S5流水灯电路RET385S66P1749R13S74971KS8SS8R111P165WE10S9复位电路510920010KGND
R2221KP14P15P16AAP17单排插Title111222J1CON2J3USB电源SizeNumberRevisionBDate:
5-Jan-2013SheetofFile:
E:
\123456
P10P11P12P13P14P15P16P17图A密码锁电路原理图
附录B:
PCB图
图B1电子密码锁PCB图顶层
图B2电子密码锁PCB图底层
附录C:
元器件分布图
图C电子密码锁元器件分布3D效果图
附录D:
元器件清单
表D电子密码锁元器件清单
附录E:
程序清单
项目名称:
密码锁
项目功能:
初始自动显示系统提示符“P.”,进入准备工作状态。
具有系统原
始密码888888,用户可以设定并存储用户密码,密码输入时应处于
保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,
显示密码输入错误提示信息并报警。
电路描述:
采用芯片AT89S52单片机,利用P1口与键盘相连,做输入口,P0
口与显示器段控相连,输入段控码,P2口输入位控码,将P3.1口与
蜂鸣器和二极管电路相连,产生错误报警。
编程作者:
喻鹏
完成时间:
2013年1月3日
备注:
78H~7FH单元做字形代码缓冲区,70H~77H单元做数据比较缓冲单元,
MAIN为原始密码存放区,61H~66H作为新密码的存放区,88H~8DH为
密码缓冲区。
密码锁程序清单:
ORG0000H
LJMPSTART
ORG0100H
START:
MOVSP,#30H
MOVR0,#70H
MOV6FH,#00H
MOVR1,#78H
MOV20H,#00H
CLR21H.1
MOVA,#00H
MOVDPTR,#MAIN
MOV78H,#0CH
MOV79H,#0FFH
MOV7AH,#0FFH
MOV7BH,#0FFH
MOV7CH,#0FFH
MOV7DH,#0FFH
MOV7EH,#0FFH
MOV7FH,#0FFH
LOOP:
LCALLDISP
LCALLKEYCL
JB20H.0,KEY11
JB20H.1,KEY12
JB20H.2,KEY13
JB20H.3,KEY14
JB20H.4,KEY15
JB20H.5,KEY16
JB20H.6,KEY17
JB20H.7,KEY18
CLRCY
DECR0
MOVR4,A
MOVCA,@A+DPTR;
SUBBA,@R0;
密码值与输入值的比较
INCR0
JZHERE;
相等则转移过去继续判断按键
SETB21H.1;
不等则将21H.1置1HERE:
MOVA,R4;
CJNER1,#7EH,LOOP;
LJMPBIJIAO
//**判断是哪个按键,然后进行相应操作**//KEY11:
MOV@R0,#01H
SJMPZZZ
KEY12:
MOV@R0,#02H
KEY13:
MOV@R0,#03H
KEY14:
MOV@R0,#04H
KEY15:
MOV@R0,#05H
KEY16:
MOV@R0,#06H
KEY17:
MOV@R0,#07H
KEY18:
MOV@R0,#08H
ZZZ:
MOV@R1,#0A3H;
送显示字形,保密输出显示“口”形
INCR0;
将R0、R1、A加1
INCR1
INCA
LJMPLOOP;
返回再继续判断按键//*********比较后对标志位进行判断***//BIJIAO:
JB21H.1,ERROR;
标志位等于1则进入错误提醒设置
MOVR1,#7FH;
密码正确后显示缓冲段
MOV78H,#9DH;
上半'
口'
MOV79H,#0FFH;
'
灭'
MOV7AH,#0FFH;
MOV7BH,#0FFH;
MOV7CH,#0FFH;
MOV7DH,#0FFH;
MOV7EH,#0FFH;
MOV7FH,#0FFH;
‘灭’
BOOP1:
MOV20H,#00H
LCALLDISP
JB20H.0,KEY21
JB20H.1,KEY22
JB20H.2,KEY23
JB20H.3,KEY24
JB20H.4,KEY25
JB20H.5,KEY26
JB20H.6,KEY27
JB20H.7,KEY28;
第八个键按下,直接进入密码修改
CJNER1,#77H,BOOP1
MOVR1,#7FH
SJMPBOOP1
//错误提示则出现‘ERROR’字样,并伴有蜂鸣声和LED灯闪烁//ERROR:
MOV79H,#88H;
‘R’
MOV7AH,#0C0H;
O'
MOV7BH,#88H;
R'
MOV7CH,#88H;
MOV7DH,#86H;
E'
MOV78H,#0FFH;
LOOP2:
MOVR5,#32H;
显示函数的循环次数
CLRP3.1;
蜂鸣器和P3.1对应的灯隔0.5响灭LOOP1:
DJNZR5,LOOP1;
显示循环50次,约为0.4s
SETBP3.1;
取反P3.1口
LCALLDELAY400MS;
调延时0.4s
SJMPLOOP2;
按复位键返回重新输入;
//***密码输入正确后,可以任意输入1~7中的数字**//KEY21:
MOV@R1,#0F9H
DECR1
LJMPBOOP1
KEY22:
MOV@R1,#0A4H
KEY23:
MOV@R1,#0B0H
KEY24:
MOV@R1,#99H
KEY25:
MOV@R1,#92H
KEY26:
MOV@R1,#82H
KEY27:
MOV@R1,#0F8H
//*****密码修改*******************//KEY28:
MOV78H,#0F7H;
‘_’
MOV79H,#0F7H;
_'
MOV7AH,#0F7H;
MOV7BH,#0F7H;
MOV7CH,#0F7H;
MOV7DH,#0F7H;
MOVR0,#61H;
新密码存放区
MOVR1,#7DH;
显示代码缓冲区
KOOP1:
JB20H.0,KEY31
JB20H.1,KEY32
JB20H.2,KEY33
JB20H.3,KEY34
JB20H.4,KEY35
JB20H.5,KEY36
JB20H.6,KEY37
JB20H.7,KEY38
CJNE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 密码锁