单片机开机密码设计.docx
- 文档编号:24370544
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:19
- 大小:195.79KB
单片机开机密码设计.docx
《单片机开机密码设计.docx》由会员分享,可在线阅读,更多相关《单片机开机密码设计.docx(19页珍藏版)》请在冰豆网上搜索。
单片机开机密码设计
2012-2013学年第2学期
《单片机原理及应用》
课程设计报告
题目:
单片机开机密码设计
专业:
自动化
班级:
电气工程系
2013年5月5日
1、任务书
课题名称
单片机开机密码设计
指导教师(职称)
执行时间
2013学年第1学期第10周
设计目的
1、培养文献检索的能力,特别是如何利用Internet检索需要的文献资料。
2、培养综合分析问题、发现问题和解决问题的能力。
3、培养运用知识的能力和工程设计的能力。
4、提高课程设计报告撰写水平。
设计要求
1.完全正确输入八位密码的前提下,有开锁提示;
2.错误输入密码情况下,蜂鸣器报警;开锁密码错3次要报警10分钟,报警期间输入密码无效。
3.用户可以自行设定和修改密码;
4.只有内部上电复位时才能设置或修改密码。
摘要
在当今社会,安全防盗已成为社会问题,而锁自古以来就是防盗的重要工目前国内大部分人使用的还是传统的机械锁,然而,眼下假冒伪劣的机械锁互开率非常之高,此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。
机械锁的这些弊端为一种新型的锁——电子密码锁,提供了很大的发展空间。
本设计阐述通过Proteus软件仿真电子密码锁的实现过程,选用51单片机为核心的系统来实现按键输入、开锁和密码识别。
采用EPROM芯片24C02来完成密码的存储,通过1602A液晶显示器提示程序运行状态和使用步骤,利用蜂鸣器模拟报警,发光二极管模拟锁的开关。
最终将设计的防盗密码锁系统通过Protues仿真软件验证设计的正确性。
关键词:
密码锁;单片机;存储芯片;仿真
单片机开机密码设置
第1章系统整体方案设计
1.1设计目标
本设计采用MCS-8051单片机为主控芯片,结合外围电路矩阵键盘、液晶显示器LCD1602和密码存储24C02C等部分组成。
其中键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,组成的电子密码锁系统,能够实现:
1.完全正确输入八位密码的前提下,有开锁提示;
2.错误输入密码情况下,蜂鸣器报警;开锁密码错3次要报警10分钟,报警期间输入密码无效。
3.用户可以自行设定和修改密码;
4.只有内部上电复位时才能设置或修改密码。
系统整体设计框图如图1-1所示:
图1-1系统整体设计框图
1.2主控部分
选用单片机作为系统的核心部件,实现控制与处理的功能。
单片机具有资源丰富、速度快、编程容易等优点。
利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标
1.3密码输入方式
由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。
行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。
通过不断读行线口线,或者中断方式触发键位扫描。
当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。
当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。
第2章硬件系统设计
2.1系统芯片介绍
2.1.1单片机MCS-8051功能介绍
MCS-8051是51系列单片机的一个型号,它是Intel公司生产的。
MCS-8051是采用CMOS工艺,低功耗的8位单片机,片内含8kbytes的只读程序存储器和128bytes的随机存取数据存储器(RAM),片内置通用8位中央处理器和存储单元,非常适于电池供电或其他要求低功耗的场合。
MCS-8051有40个引脚,32个外部双向输入/输出(I/O)端口,2个16位可编程定时计数器,1个全双工串行通信口,均采用40引脚的双列直插封装(DIP)方式,其引脚图如图2-1示。
图2-1MCS-8051引脚分布图
2.2硬件电路设计
本系统共有两部分构成,即硬件部分与软件部分。
其中硬件部分由电源输入部分、键盘输入部分、复位部分、晶振部分、显示部分、报警部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。
2.2.1复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。
无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。
复位电路如图2-2。
图2-2复位电路原理图
2.2.2晶振电路
ST89C52引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图2-5所示方式连接。
晶振、电容C2/C3及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C2、C3取值范围在5~30pF之间。
根据实际情况,本设计中采用12MHZ做系统的外部晶振。
电容取值为20pF。
图2-3晶振电路原理图
2.2.3存储电路
24C02C是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。
24C02C有一个16字节页写缓冲器。
该器件通过IC总线接口进行操作,有一个专门的写保护功能。
采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。
2.2.4键盘输入电路
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×4个。
这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。
图2.4为ME300B矩阵键盘电路图,行线接P1.4-P1.7,列线接P1.0-P1.3。
图2.4矩阵键盘电路
2.2.5显示电路
为了提高密码锁的密码显示效果能力。
本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。
只有按下键盘上的开启按键后,显示器才处于开启状态。
同理只有按下关闭按键后显示器才处于关闭状态。
否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。
当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD子显示“RIGHT”,单片机其中P2.0引角会输出低电平,使三极管T2导通,电磁铁吸合,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“ERROR”,P2.0输出的是高电平,电子密码锁不能被打开[14]。
通过LCD显示屏,可以清楚的判断出密码锁所处的状态。
1602LCD主要技术参数:
显示容量:
16×2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
1602型LCD基本操作程序如下表所示:
表2-2LCD1602基本操作程序
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
输入
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
输出
无
读数据
输入
RS=H,R/W=H,E=H
输出
D0—D7=数据
写数据
输入
RS=H,R/W=L,D0—D7=数据,E=高脉冲
输出
无
其显示部分引脚接口如图2-5所示:
图2-5显示电路原理图
2.2.6电源输入电路
密码锁主要控制部分电源需要用5V直流电源供电,其电路如图2-9所示,而5V电源输入时往往伴有杂波,所以加一个2.2uF的电容滤波。
这样输出的电压一般能满足要求。
图2-6电源输入电路原理图
第3章软件程序设计
3.1主程序流程图
如图3-1所示为主程序流程图,开始接上电源,程序进行初始化设置,然后在键盘上输入密码,此系统进行键盘扫描,密码正确,开锁成功,密码错误3次出错报警,选择是否修改密码,若要修改密码,先输入旧密码密码,密码正确后设置新密码,错误时报警,需要两次确认新密码,确认后,密码修改成功,否则结束最终返回。
然后启动程序,进行保护,再次在键盘上输入密码,系统进行扫描,如果和之前一样,则执行相同程序,如不是,则执行另一种程序。
图3-1主程序流程图
3.2按键软件设计
3.2.1按键功能程序流程图
如图3-2为按键功能流程图,在按键当中,有与输入、开锁、清除、设置、确认的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,输入两次新密码正确时,可进行重新设置密码,最后确认程序。
图3-2按键功能流程图
3.2.2按键功能子程序
voidCheck_key(void)
{unsignedintrow,col,tmp1,tmp2;
tmp1=0x10;//tmp1用来设置P1口的输出,取反后使P1.1~P1.7中有一个为0
for(row=0;row<4;row++)//行检测
{P1=0x0f;//先将p1.0~p1.3置高
P1=~tmp1;//使p1.4~p1.7中有一个为0
tmp1*=2;//tmp1左移一位
if((P1&0x0f)<0x0f)//检测p1.0~p1.3中是否有一位为0
{DelayMs(30);
if((P1&0x0f)<0x0f)//检测p1.0~p1.3中是否有一位为0,只要有说明此行有按键按下,进入列检测
{tmp2=0x01;//tmp2用来检测哪一列为0
for(col=0;col<4;col++)//列检测
{if((P1&tmp2)==0x00)//该列如果为低电平则可以判定为列
{key_val=row*4+col;//获取键值,识别按键
while((P1&tmp2)==0x00);
return;}//退出循环
tmp2*=2;}//tmp2左移一位
while((P1&tmp2)==0x00)}}}}
3.3密码设置软件设计
3.3.1密码设置程序流程图
如图3-3为密码设置流程图,开始按下设置键,输入旧密码,如果错误累计三次,进行报警程序。
如输入正确,可以修改密码,确认后再次输入新密码,如两次输入一样,则更改成功。
如果两次输入的新密码不一样,则修改密码失败,重新返回设置新密码。
图3-3密码设置流程图
3.3.2密码设置子程序
if((sk[11]==1)&(cp[0]==0))
{GotoXY(0,0);print("oldcode:
");//提示输入旧密码
pass=1;count1=0;count=0;
count7=1;count2=1;count6=0;sk[11]==0;}
if((count!
=0)&(pass==1)&(cp[0]==0))
{pass0=0;//输出显示*
if(count==1){GotoXY(0,0);print("oldcode:
*");}
if((count!
=0)&(pass0==1)&(cp[0]==0))
{pass=0;
if(count==1){GotoXY(0,0);print("newcode:
*");}
if((sk[14]==1)&(count7==1))//按键盘认键,校验旧密码
{//旧密码输入正确
if((password[0]==cq[0])&(password[1]==cq[1])&(password[2]==cq[2])&(password[3]==cq[3])&(password[4]==cq[4])&(password[5]==cq[5])&(pass==1)&(count>6))
{{GotoXY(0,0);print("newcode:
");
pass0=1;pass=0;
sk[14]=0;count=0;count7=0;
n=0;m=0;}
else
{GotoXY(0,0);print("oldcodewrong");//旧密码输入错误
sk[14]=0;
count2=0;count7=0;
pass=0;m=0;}}
if(pa!
=10)&(pass0==1)
{co[n]=pa;n++;pa=10;}}
if(sk[14]==1)
{if((n>7)&(count==6))
{GotoXY(0,0);print("setover!
");//旧密码输入正确,存新密码
}}
第4章系统仿真、调试及结论
运行Proteus程序后,进入软件的主界面。
通过左侧工具栏中的P(从库中选择元件命令)命令,在PickDevices左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,进行连线。
最后载入hex文件后可以进行模拟仿真,可以全速运行也可以单步调试运行。
在利用Proteus进行仿真的条件下,通过不停的调试与改正,显示屏LCD1602不能显示任何内容,最后还是不能实现密码锁的功能,其Proteus仿真如图4-1所示。
图4-1Proteus仿真图
4.4各模块的电路图及说明
4.4.1电子密码锁系统的键盘模块图4-1键盘输入模块
4.4.2电子密码锁系统的显示模块
电子密码锁系统的显示模块在软件中如图4-2所示:
图4-2密码显示模块
4.4.3电子密码锁系统的晶振复位电路
电子密码锁系统的晶振复位电路在软件中的图如图4-3所示:
图4-3晶振及复位电路
4.4.4密码的掉电存储
密码的掉电存储如图4-4所示:
图4-4掉电存储
参考文献
[1]叶启明.单片机制作的新型安全密码锁[J].家庭电子.2000,第六期:
24-27
[2]胡乔木.中国大百科全书.中国大百科全书出版社.1993
[3]李明喜.新型电子密码锁的设计[J].机电产品开发与创新.2004,第八期:
77-79
[4]董继成.一种新型安全的单片机密码锁[J].电子技术.2004,第三期:
55-60
[5]王宽仁.可靠安全的智能密码锁[J].电子技术应用.2001年第2期
[6]何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:
北京航空航天大学出版社,1999
[7]胡汉才.单片机原理及其接口技术(第2版)[M].北京:
清华大学出版社,2004
[8]江志红.51单片机技术与应用系统开发[M].清华大学出版社,2008
附录:
密码锁电路原理图
答辩记录及评分表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 开机 密码 设计