单片机课程设计文档密码锁.docx
《单片机课程设计文档密码锁.docx》由会员分享,可在线阅读,更多相关《单片机课程设计文档密码锁.docx(42页珍藏版)》请在冰点文库上搜索。
![单片机课程设计文档密码锁.docx](https://file1.bingdoc.com/fileroot1/2023-6/12/4228262d-a3e3-465a-93ef-18417172554d/4228262d-a3e3-465a-93ef-18417172554d1.gif)
单片机课程设计文档密码锁
湖南工学院
课程设计任务书
课程:
单片机技术
课程设计题目:
数字电子钟
数字频率计
数字电压表
交通灯
抢答器
密码锁
波形发生器
数字温度计
计算器
数字式秒表
适用班级:
通信工程1201
时间:
2014~2015学年第一学期
指导教师:
凌云
《单片机技术》课程设计任务书
一、设计题目:
数字电子钟、数字频率计、数字电压表、交通灯、抢答器、密码锁、波形发生器、数字温度计、计算器、数字式秒表。
二、适用班级:
通信1201
三、指导教师:
凌云
四、设计目的与任务:
学生通过理论设计和实物制作解决相应的实际问题,巩固和运用在《单片机技术》中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。
五、设计内容与要求
设计内容
1、数字电子钟
设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。
2、数字频率计
设计一个能够测量周期性矩形波信号的频率、周期、脉宽、占空比的频率计。
该频率计上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态。
按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。
3、数字电压表
设计一个能够测量直流电压的数字电压表。
测量电压范围0~5V,测量精度小数点后两位。
该电压表上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上,按测量结束键则自动返回“P.”状态。
4、交通灯
设计一个具有特定功能的十字路口交通灯。
该交通灯上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
按开始键则开始工作,按结束键则返回“P.”状态。
要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。
有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。
5、抢答器
设计一个具有特定功能的抢答器。
该抢答器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
主持人按下开始按钮后,抢答开始并限定时间30S;10S内无人抢答,蜂鸣器发出音响;主持人按下开始按钮之前有人按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,其它按钮不起作用;正常抢答,显示器显示台号,蜂鸣器发出音响,其它抢答按钮无效;正常抢答下,从按下抢答按钮开始30S内,答完按钮没按下,则作超时处理,超时处理时,违规指示灯亮,显示器显示违规台号。
蜂鸣器发出音响;各台数字显示的消除,蜂鸣器音响及违规指示灯的关断,都要通过主持人按复位按钮。
6、密码锁
设计一个具有特定功能的密码锁。
该密码锁上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。
7、波形发生器
设计一个具有特定功能的波形发生器。
该波形发生器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该波形发生器可以分别产生幅值0~5V、频率100Hz~100KHz范围内的三角波、锯齿波、方波、梯形波和正弦波。
8、数字温度计
设计一个具有特定功能的数字温度计。
该数字温度计上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
测量温度范围0℃~99℃,测量精度小数点后两位,可以通过开始和结束键控制数字温度计的工作状态。
9、计算器
设计一个具有特定功能的计算器。
该计算器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
能实现
(1)基本的加、减、乘、除、平方、开方;
(2)三角函数运算;(3)十进制、十六进制转换运算;(4)其他功能。
10、数字式秒表
设计一个具有特定功能的数字式秒表。
该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该数字式秒表应具有开始、暂停、连续、清零和停止功能。
设计要求
1、以上课题可以任选其一或多选,学生也可以自拟课题;
2、编程语言:
汇编或C51;
3、计算机打印《单片机技术》课程设计说明书一份;
4、设计时间:
一周;
5、实物制作;
6、人员分组:
一人一组一实物。
六、《单片机技术》课程设计说明书正文主要内容
参照“《单片机技术》课程设计说明书正文主要内容”文件。
七、《单片机技术》课程设计说明书书写规范格式
参照“《单片机技术》课程设计说明书书写规范格式”文件。
八、参考资料
1、马忠梅,单片机的C语言Windows环境编程宝典[M],北京:
北京航空航天大学出版社,2003.6;
2、李光飞,单片机C程序设计指导[M],北京:
北京航空航天大学出版社,2003.01;
3、李光飞,单片机课程设计实例指导[M],北京:
北京航空航天大学出版社,2004.9。
电气自动化教研室
2014年9月10日
摘要
利用AT89S52单片机芯片,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接24C02B芯片用于密码的存储,外接LCD12864显示器用于显示作用。
当用户修要开锁时,进入开锁界面之后按键盘的数字键0-9输入密码。
密码输入完成后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新新输入密码,当三次输入密码错误时则发出报警;当用户需要修改密码时,进入密码修改界面,接着输入原来的密码,只有当输入的原密码正确后才能设置新密码。
新密码输入后按下确认键后系统将得到存储,密码修改成功。
单用户忘记密码可启用管理员操作系统,实现系统初始化,其具体功能如下:
(1)具有系统原始密码888888,管理员密码999999。
(2)用户可以自定义密码。
(3)具有管理员密码,用于非常情况,可使系统恢复出厂设置,锁屏后可以通过超级密码进行重置密码。
(4)密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息。
(5)断电记忆功能。
(6)原始密码只供普通用户修改一次,修改后原始密码无效,断电后,按修改后的密码解锁。
(7)开机密码连续输入三次错误,自动报警,并且锁住屏幕,无法再次进入密码输入界面。
关键词:
键盘输入;密码存储;显示;报警;开锁
1设计任务及功能介绍························································8
1.1设计课题任务··························································8
1.2功能要求说明··························································8
1.3设计总体方案及工作原理说明·····································8
2密码锁硬件系统的设计·····················································9
2.1密码锁硬件系统各模块功能简要介绍····························9
2.1.1电路总体构成················································9
2.1.2键盘输入部分················································9
2.1.3密码存储部分················································10
2.1.4复位部分······················································10
2.1.5晶振部分······················································11
2.1.6显示部分······················································11
2.1.7报警部分······················································11
2.1.8开锁部分······················································11
2.2密码锁电路原理图、PCB图、元件布局图·····················11
2.3密码锁元件清单·······················································11
3密码锁软件系统设计·······················································12
3.1密码锁使用单片机资源情况·······································12
3.2密码锁软件系统各模块功能简要介绍···························12
3.3密码锁软件系统程序流程框图····································12
4设计结果······································································16
4.1设计结论及使用方法················································16
4.2心得体会·······························································16
4.3教学建议·······························································16
结束语·············································································17
参考文献··········································································18
致谢················································································19
附录················································································20
附录A·······································································20
附录B·······································································21
附录C·······································································22
附录D·······································································23
附录E·······································································24
1设计任务及功能介绍
1.1设计课题任务
本设计采用AT89S52型号的单片机和其外围电路包括电源输入口、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分。
根据实际情况键盘输入部分选择4×4矩阵键盘,显示部分选择字符型液晶显示LCD12864,密码存储部分选用AT24C02芯片来完成密码锁的开锁、密码修改和密码初始化。
用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。
密码可以由用户自己修改设定,锁打开后才能修改密码。
当用户不记得密码时可通过专业认证服务用管理员密码使密码锁恢复出厂设置,管理员密码为999999。
1.2功能要求说明
设计一个具有特定功能的密码锁。
该密码锁上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。
1.3设计总体方案及工作原理说明
由于单片机总类繁多,各种型号都用一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。
一般来说在选择单片机时下面几个方面考虑:
性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的比如:
中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。
当用户修要开锁时,进入开锁界面之后按键盘的数字键0-9输入密码。
密码输入完成后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新新输入密码,当三次输入密码错误时则发出报警;当用户需要修改密码时,进入密码修改界面,接着输入原来的密码,只有当输入的原密码正确后才能设置新密码。
新密码输入后按下确认键后系统将得到存储,密码修改成功。
2密码锁硬件系统的设计
2.1密码锁硬件系统各模块功能简要介绍
2.1.1电路总体构成
采用以单片机为核心的控制方案,总体框图见图1。
在确定了选用什么型号的单片机后,就要确定外围电路。
其外围电路包括电源输入口、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分。
根据实际情况键盘输入部分选择4×4矩阵键盘,显示部分选择字符型液晶显示LCD12864,密码存储部分选用AT24C02芯片来完成。
其原理图见附录1。
采用以单片机为核心的控制方案,总体框图见图1
图1设计总体框图
2.1.2键盘输入部分
按键采用矩阵式排列的独立式按键键盘,它由行线和列线组成,按键位于行列的交叉点上,密码锁的密码有按键输入完成,本设计中使用的这个4×4键盘不但能完成密码的输入还能作为特别功能键使用,比如清空显示功能等,键盘的每个按键功能在程序设计中设置。
其大体功能(看按键上的标志)及与单片机引脚接法见附录1原理图。
2.1.3密码存储部分
用E2PROM芯片AT24C02存储密码。
AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含256×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)、抗干扰能力强、数据不易丢失、体积小等特点。
而且它是采用了I2C总线式进行数据读取的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存储十分方便。
AT24C02中带有的片内地址寄存器。
每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。
所有字节均以单一操作方式读取。
为降低总的写入时间,一次操作可写入多达8个字节的数据。
I2C总线是一种用于IC器件之间连接的二线制总线。
它通过SDA及SCL两根线再连到总线上的器件之间传送信息,并根据地址识别每个器件。
AT24C02正是运用了I2C规程,使用主/从机双向通信,主机和从机均可工作于接收器和发送器状态。
主机产生串行时钟信号并发出控制字,控制总线的传送方向,并产生开始和停止的条件。
无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。
AT24C02的控制字有8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线的传送方向。
其接线见附录1原理图。
2.1.4复位部分
单片机复位是使CPU和系统的其他功能部件处在一个正确的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第一个单元去指令。
无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。
在复位期间(RST为高电平期间),P2口为高阻态,P0、P2、P3口输出高电平;外部程序存储器读选通信号PSEN无效。
地址锁存信号ALE也为高电平。
复位电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。
增加手动复位按键式为了避免死机时无法可靠复位。
当复位按键按下后电容通过电阻放电,当电容放电结束后,RST端的复位由两电阻分压比决定。
由于两电阻的电阻值差距大,因此RST为高电平,CPU处于复位状态。
其接线见附录1原理图。
2.1.5晶振部分
AT89S52引脚XTAL1和XTAL2与晶体振荡器及其两电容的接线见附录1原理图。
晶振、电容及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容的容量有关,但主要有晶振频率决定,范围在0~33MHz之间。
根据实际情况,本设计采用12MHz作为系统的外部晶振。
电容取值为100pF。
2.1.6显示部分
为了提高密码锁的密码显示效果能力。
本设计的显示部分由液晶显示器LCD12864取代普通的数码管来完成。
只有按下电源开关后,显示器才处于开启状态。
同理只有按下电源开关后显示器才处于关闭状态。
否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码,每按下一个数字键后再显示器上显示一个*,输入多少位就显示多少个*,当密码输入完成时,按下确认键,如果输入的密码正确的话,显示真确的提示信息,使密码锁打开,如果密码不正确,就会显示错误的信息,电子密码锁不能打开,通过LCD显示屏,可以清楚的判断出锁所处的状态。
其显示部分引脚接口见附录1原理图。
2.1.7报警部分
报警部分由发声装置及外围电路组成,加电后不发声,密码正确时,不发声直接开锁,当密码输入三次错误时,单片机的P3.0引脚为高电平,导通蜂鸣器发出噪鸣声报警。
其图见附录1原理图。
2.1.8开锁部分
开锁控制电路的功能是当密码输入正确后将锁打开。
系统使用单片机其中一引脚线发出信号,驱动外围电路将锁打开。
用户通过按键任意设置密码,并存储在E2PROM中作为锁码指令。
开锁步骤如下:
根据液晶屏上的页面提示,然后利用键盘上的数字键0-9输入密码,最后按下确认键。
当用户输入一密码后,单片机自动识别,如果识别不符,则显示错误。
只有当识别正确,单片机才能控制开锁电路将锁打开。
完成本次开锁后,单片机自动清除掉由用户输入的这个密码。
电路图见附录1原理图。
2.2密码锁电路原理图、PCB图、实物图
密码锁电路原理图实物图分别见附录1、附录2、附录3。
2.3密码锁元件清单
密码锁元器件清单见附录3。
3密码锁软件系统设计
3.1密码锁使用单片机资源情况
RS接P3^1口,RW接P3^6口,EN接P3^7口;PSB接VCC(并行)P2^0~P2^7口接D0~D7口(P2^0接D0);P1口接J16(P1^0接S1);SCL接P0^1,SDA接P0^0;蜂鸣器(SPEAK)接P3^0。
3.2密码锁软件系统各模块功能简要介绍
本系统软件设计由主程序、、LCD显示程序、键盘扫描程序、密码设置程序、E2PROM读写程序和延时程序等组成。
3.3密码锁软件系统程序流程框图
图2主程序流程图
图3键功能程序流程图
图4密码设置流程图
图5开锁流程图
4设计结果
4.1设计结论及使用方法
本程序从经济实用的角度出发,采用美国Atmel公司的单片机AT89S52与低功耗CMOS型E2PROMAT24C02作为主控芯片与数据存储单元,结合外围的键盘输入、显示、报警、开锁等电路并用汇编语言编写主控芯片的控制程序,研制了一款可以多用户使用可多次更改密码具有报警功能的电子密码锁。
设计完全可行可以达到设计目的。
使用单片机制作的电子密码锁具有软硬件设计简单,易于开发,成本低,安全可靠,操作方便等特点,可用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有一定的实用性。
该电路设计还具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码,多用户使用等功能。
可在意外泄密的情况下随时修改密码。
保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等场所。
使用说明:
初始密码为888888,当用户要开锁时,先要按下自己的用户位,再输入正确的密码,按下确定键后就能实现开锁,如果连续3次输入不正确,密码锁就会报警;当用户要重设密码时,根据界面提示,进入密码重设界面,紧接着输入原先的密码,按下确定键后如果密码正确才能输入新密码,按下确定键后密码修改成功,否则不成功,需重新修改。
4.2心得体会
通过本次课程设计实践,我对C语言有了更深的理解,特别是标志位的使用,通过灵活使用标志位,可以加强软件系统各模块之间的联系,达到意想不到的效果。
同时也加深了对设计方法的理解,进一步理解了软件设计中整体与局部的关系,本次实践我就运用了从整体到局部的设计思想,达到了满意的效果,它使我少走了很多弯路,既节约了时间,又很好的组织了软件系统各部的联系。
结束语
对于单片机与C语言的学习,我觉得应该加强创造性思维的培养,同时结合实验加以实践。
我觉得思维是知识的灵魂,只有加强了思维的训练与培养,才能使知识的能量达到最大化。
软件系统设计是一种对语言的运用实践,精妙的思维也就必不可少。
创造性思维是丰富的,因此应加强老师与同学们、同学们之间的思维互动,加强探讨,加强课程设计实践。
参考文献
[1]李广弟,朱月秀,冷祖祁.单片机基础[M].第三版.北京:
北京航空航天大学出版社,2007.0-260
Liguangdi,Zhuyuexiu,Lengzuqi.Microcontrollerbased[M].TheThirdEdition.Beijing:
BeijingUniversityofAeronauticsandAstronauticsPress,2007.0-260
[2]李朝青.单片机原理及接口技术[M].北京:
北京航空航天大学出版社,1998.26-40
LiChaoqing.SCMPrincipleandInterfaceTechnology[M].Beijing:
BeijingUni