电子竞赛设计总结报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.显示部分
为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。只有接通电源后,显示器才处于开启状态,否则显示器将一直处于初始状态。当需要对密码锁进行开锁时,利用键盘上的数字键0-9输入密码后按键盘上的“开锁”键进行开锁。每按下一个数字键后在显示器上显示一个‘*‘或实际输入的数字,通过功能键可以切换密码的显示方式。当密码输入完成时,按下“开锁“键,然后LCD显示相关的提示信息。显示部分接线图如图5所示。
图1 单片机电子密码锁原理框图
各部分电路设计介绍:
1.电源部分
密码锁主控制部分电源需要用5V直流电源供电,本设计直接留出电源端提供外置电源输入接口,使用外置5V稳压直流电源供电。
2.晶振部分
STC89C52引脚XTAL1和XTAL2与晶体振荡器及电容C按图2所示方式连接。晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C1、C2取值范围在5~30pF之间。根据实际情况,本设计中采用12MHZ做为系统的外部晶振。电容取值为30pF。其接线如图2所示
图3复位电路原理图
图4键盘输入部分原理图
图5显示电路原理图
图6密码存储电路原理图
图7声光报警电路
图8整机电路图
功能:
四位密码可随意设定,且能够在LCD上显示。
密码锁上电后,通过矩阵式键盘上的0~9数字键任意 输入四位密码进行解锁,解锁密码以明文或密文方式显示在LCD上。
开锁提示
使用发光二极管、蜂鸣器等进行开锁提示。若密码正确蓝色指示灯亮,若密码错误红色指示灯闪烁蜂鸣器报警。
方案论证与选定:
综合多方面考虑,可以看出方案二更适合本次设计要求,且人机交互友好,根据需要本次设计采用此方案。
二:电路设计
本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、复位部分、晶振部分、键盘输入部分、显示部分、开锁部分、密码存储部分、报警部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、密码设置程序、EEPROM读写程序和延时程序等组成。
uchar DSY_BUFFER[16]=" ";
uchar DSY_BUFFER1[16]=" ";
uchar Userpassword[4]={0};
sbit rs=P2^0;
sbit rd=P2^1;
sbit lcden=P2^2;
sbit led=P2^7;
sbit led_red=P2^6;
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay()//短延时,两个机器周期,做总线的延时用
{;;}
void write_com(uchar com)
{
rs=0;
rd=0;
lcden=0;
P0=com;
delayms(3);
软件设计流程图如下:
图9密码设置流程图 图10开锁操作流程图
图11按键功能流程图
三、测试方法与测试结果
测试仪器
仪器
数量
仪器
数量
可提供+5V的直流稳压电源
一台
数字万用表
一台
电脑
一台
下载器
一台
ISP下载线
一条
指标测试
功能测试
测试结果
1
时时显示功能
可以时时显示出当前输入的:“0”—“9”数字
2
显示密码功能
总之,参加这次电子设计竞赛使我们学到了许多知识。不管是专业基础知识还是动手制作能力,经过这次大赛,都得到了很大的提高,既开拓了思维也积累了经验,更重要的是使我们看到自己的不足和今后更需要努力的方向。以后我们将更加努力学好专业知识,不断地积累更丰富的经验,进一步提高动手能力。
附件:电路图
图2晶振电路原理图
修改密码功能
开锁成功后,可按‘输入新密码’键进行密码修改,按‘保存新密码’键保存密码。
密码重新输入功能
若密码输入有误,可按‘重新输入’键清除密码。
手动上锁功能
当解锁或改密成功后,按‘上锁’键可以手动给密码锁上锁。
断电密码保存功能
具有掉电存储功能,可记忆用户修改的密码供用户下次解锁使用
1-9次的解锁次数任意设定功能
6.密码外存部分
用EEPROM芯片AT24C02存储密码。开锁成功后,按输入新密码键修改密码,按保存新密码键将修改后的密码保存到AT24C02中。其接线如图6所示:
7.声光报警部分
本次设计使用LED和蜂鸣器进行开锁提示,输入密码后进行开锁,若密码正确,蓝色指示灯亮;若密码错误,红色指示灯闪烁,并且蜂鸣器长响一声;若密码错误超过三次,红色指示灯闪烁并且蜂鸣器滴答报警。其接线如图7所示。
东北电力大学
电子竞赛设计与总结报告
题目:基于单片机电子密码锁的设计
院系:信息工程学院
班级:通信081
组员:-------------------------------------
指导教师:---------------------------
【摘要】
本设计主要由单片机AT89C52芯片、AT24C02芯片、4*4矩阵键盘、LCD1602和报警电路等部分组成。该电路除能完成开锁、开锁提示、修改用户密码、错误密码报警(声光提示)、重新输入等密码锁的基本功能外,还具有掉电存储、超次锁定、产生随机密码、密码明文与密文方式切换、管理员解密、解锁次数任意设定等扩展功能。本系统成本低廉,功能实用。其中AT24C02部分用于存储设置的新密码。矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后将控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。LCD1602用于显示密码输入、信息提示等功能。
开锁前按‘保存新密码’键可实现输入密码明文与密文之间的切换
超级密码功能
当用户忘记密码时,可使用万能密码(1989)进行解锁。解锁后修改新密码即可。
超过解锁次数自动锁定120秒功能
解锁时,若超过设定的解锁次数,密码锁在声光报警后会锁定2分钟。
错误操作提示功能
执行错误操作时,LCD上有提示信息
源程序
#include<reg51.h>
本设计使用proteus进行电路设计与仿真,按照设计画好电路图后,双击单片机将keil中生成的HEX文件加载到单片机中,点击运行按钮进行仿真,根据情况进行调试与修改。
四、总结
我们设计的是简易电子密锁。经过将近一个月的努力,我们基本上完成了题目的要求设计和制作。
在设计过程中,我们首先进行方案的设计,然后是对电路的布局和设计,再到电路板的焊接制作,最后是对电路进行调试。在方案的设计过程中,经过了验证和筛选,才确定最终方案。电路板的焊接制作更是成功完成制作的保证,因此在整个焊接过程中,我们从始至终都秉着严谨、认真的态度来完成,从线路的布局到焊接工艺的把握,即要保证焊接质量还要做到焊接美观,特别要避免虚焊和假焊的出现。在编程调试的时侯,开始是一点不懂,经过查找一些教程学习后,终于熟悉并予以运用。
开锁成功后,按‘输入新密码’键两次进入解锁次数设定功能,初始解锁次数为3次,每按一次加1实现1-9次循环。
解锁次数显示功能
每次解锁错误都有提示,并将已试次数显示在LCD上。
模拟密码箱产生随机密码,并可进行解码
通过‘随机’键可产生随机密码供用户解码,也可在修改新密码时将其作为新密码保存。
密码明文与密文切换功能
方案二:采用矩阵式按键来控制
把按键按行列组成矩阵,在行列交点上都对应有一个键,这样使用的按键要
少,节约了单片机大量的I/O口,免去了上拉电阻,为焊接带来了方便,提高了整块电路板的美观度。
选用单片机STC89S52作为设计的核心元件,在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘的数字键0-9输入密码之后按键盘“开锁”键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,并且有声光提示;当三次密码错误则发出报警,并锁定大约2分钟;当用户需要修改密码时,先按下键盘“输入新密码”键后可以设置新密码。新密码输入无误后按“保存新密码”键使新密码存储,密码修改成功。设计可产生随机密码,并用随机密码进行解码,同时随机密码还可作为新密码。
一、方案设计与论证
方案设计:
方案一:使用独立式按键来控制
使用独立式按键来控制数码管或LCD1602的显示,这样需要很多的按键,每个按键实现一个功能,易于控制,程序编写简单,但是每个按键都要接上拉电阻,占用了单片机大量的I/O接口资源,要对单片机外扩I/O口,并且在电路焊接方面又不方便,还要浪费大量的资源,提高了成本。
#define LCDIO P0
#define delay4us() _nop_();_nop_();_nop_();_nop_();
uchar buffer[4]={0};//缓冲
sbit sda=P3^3;//掉电存储引脚
sbit scl=P3^2;
sbit beep=P3^7;//蜂鸣器引脚
bit flag=0,aa;//定时溢出标志位
【引言】
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,安全性能低,无法满足人们的需要。针对这些锁具给人们带来的不便,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
本次课题要求使用单片机设计一个简易的电子密码锁,模拟实现下述功能:
ห้องสมุดไป่ตู้#include<string.h>
#include<intrins.h>
#include<stdlib.h> //包含随机函数rand()的定义文件
#include<intrins.h> //包含_nop_()函数定义的头文件
#define uchar unsigned char
#define uint unsigned int
unsigned char code digit[ ]={"0123456789"}; //定义字符数组显示数字
sbit BF=P0^7; //忙碌标志位,,将BF位定义为P0.7引脚
uchar code table[]="Your Password...";//初始化时,lcd显示
void delayms(uint z)
3.复位部分
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。根据实际情况选择如图3所示的复位电路。
4.键盘输入部分
由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,密码锁的密码由键盘输入完成。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用。键盘的每个按键功能在程序中设置。其大体功能及与单片机引脚接法如图4所示。
可以显示出当前所设置的密码
3
开锁功能
如果输入密码不正确会发出声光报警开锁不成功,如果输入密码正确则蓝灯点亮开锁成功
4
修改密码功能
开锁后按下修改密码键可修改密码
5
重新输入
可以清除当前输入的密码
6
上锁
可以使密码锁回到解锁前的状态
7
随机
可以产生随机密码并进行解锁
程序调试与仿真
本设计使用keil进行程序的调试。1)打开keil后,首先点击”project”选择“new project”在keil中创建新的工程文件,选择单片机的型号为ATMEL 的89C52; 2)把编辑好的程序加载到keil中;3)单击“target 1”前面的“+”号,然后单击“source group1”,选择“add files to group‘source group1’”,添加文件到工程; 4)单击“project”选择“options for target‘target1’”,选择“output”,然后选中“create hex file”,使程序编译后产生HEX代码,供下载器下载到单片机中;5)点击编译按钮对程序进行编译调试。
1.基本要求
(1)四位数密码可随意设定,且能够显示在LED数码管或LCD上。
(2)输入的解锁密码能够显示,并且使用发光二极管、蜂鸣器等进行密码错误提示、正确提示的声光报警功能。
2.发挥部分
(1)具有断电密码保存功能。
(2)具有1-9次的解锁次数任意设定功能。
(3)模拟密码箱随机产生密码,并进行解码。
为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。只有接通电源后,显示器才处于开启状态,否则显示器将一直处于初始状态。当需要对密码锁进行开锁时,利用键盘上的数字键0-9输入密码后按键盘上的“开锁”键进行开锁。每按下一个数字键后在显示器上显示一个‘*‘或实际输入的数字,通过功能键可以切换密码的显示方式。当密码输入完成时,按下“开锁“键,然后LCD显示相关的提示信息。显示部分接线图如图5所示。
图1 单片机电子密码锁原理框图
各部分电路设计介绍:
1.电源部分
密码锁主控制部分电源需要用5V直流电源供电,本设计直接留出电源端提供外置电源输入接口,使用外置5V稳压直流电源供电。
2.晶振部分
STC89C52引脚XTAL1和XTAL2与晶体振荡器及电容C按图2所示方式连接。晶振、电容C1/C2及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在0~33MHz之间,电容C1、C2取值范围在5~30pF之间。根据实际情况,本设计中采用12MHZ做为系统的外部晶振。电容取值为30pF。其接线如图2所示
图3复位电路原理图
图4键盘输入部分原理图
图5显示电路原理图
图6密码存储电路原理图
图7声光报警电路
图8整机电路图
功能:
四位密码可随意设定,且能够在LCD上显示。
密码锁上电后,通过矩阵式键盘上的0~9数字键任意 输入四位密码进行解锁,解锁密码以明文或密文方式显示在LCD上。
开锁提示
使用发光二极管、蜂鸣器等进行开锁提示。若密码正确蓝色指示灯亮,若密码错误红色指示灯闪烁蜂鸣器报警。
方案论证与选定:
综合多方面考虑,可以看出方案二更适合本次设计要求,且人机交互友好,根据需要本次设计采用此方案。
二:电路设计
本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、复位部分、晶振部分、键盘输入部分、显示部分、开锁部分、密码存储部分、报警部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、密码设置程序、EEPROM读写程序和延时程序等组成。
uchar DSY_BUFFER[16]=" ";
uchar DSY_BUFFER1[16]=" ";
uchar Userpassword[4]={0};
sbit rs=P2^0;
sbit rd=P2^1;
sbit lcden=P2^2;
sbit led=P2^7;
sbit led_red=P2^6;
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay()//短延时,两个机器周期,做总线的延时用
{;;}
void write_com(uchar com)
{
rs=0;
rd=0;
lcden=0;
P0=com;
delayms(3);
软件设计流程图如下:
图9密码设置流程图 图10开锁操作流程图
图11按键功能流程图
三、测试方法与测试结果
测试仪器
仪器
数量
仪器
数量
可提供+5V的直流稳压电源
一台
数字万用表
一台
电脑
一台
下载器
一台
ISP下载线
一条
指标测试
功能测试
测试结果
1
时时显示功能
可以时时显示出当前输入的:“0”—“9”数字
2
显示密码功能
总之,参加这次电子设计竞赛使我们学到了许多知识。不管是专业基础知识还是动手制作能力,经过这次大赛,都得到了很大的提高,既开拓了思维也积累了经验,更重要的是使我们看到自己的不足和今后更需要努力的方向。以后我们将更加努力学好专业知识,不断地积累更丰富的经验,进一步提高动手能力。
附件:电路图
图2晶振电路原理图
修改密码功能
开锁成功后,可按‘输入新密码’键进行密码修改,按‘保存新密码’键保存密码。
密码重新输入功能
若密码输入有误,可按‘重新输入’键清除密码。
手动上锁功能
当解锁或改密成功后,按‘上锁’键可以手动给密码锁上锁。
断电密码保存功能
具有掉电存储功能,可记忆用户修改的密码供用户下次解锁使用
1-9次的解锁次数任意设定功能
6.密码外存部分
用EEPROM芯片AT24C02存储密码。开锁成功后,按输入新密码键修改密码,按保存新密码键将修改后的密码保存到AT24C02中。其接线如图6所示:
7.声光报警部分
本次设计使用LED和蜂鸣器进行开锁提示,输入密码后进行开锁,若密码正确,蓝色指示灯亮;若密码错误,红色指示灯闪烁,并且蜂鸣器长响一声;若密码错误超过三次,红色指示灯闪烁并且蜂鸣器滴答报警。其接线如图7所示。
东北电力大学
电子竞赛设计与总结报告
题目:基于单片机电子密码锁的设计
院系:信息工程学院
班级:通信081
组员:-------------------------------------
指导教师:---------------------------
【摘要】
本设计主要由单片机AT89C52芯片、AT24C02芯片、4*4矩阵键盘、LCD1602和报警电路等部分组成。该电路除能完成开锁、开锁提示、修改用户密码、错误密码报警(声光提示)、重新输入等密码锁的基本功能外,还具有掉电存储、超次锁定、产生随机密码、密码明文与密文方式切换、管理员解密、解锁次数任意设定等扩展功能。本系统成本低廉,功能实用。其中AT24C02部分用于存储设置的新密码。矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后将控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。LCD1602用于显示密码输入、信息提示等功能。
开锁前按‘保存新密码’键可实现输入密码明文与密文之间的切换
超级密码功能
当用户忘记密码时,可使用万能密码(1989)进行解锁。解锁后修改新密码即可。
超过解锁次数自动锁定120秒功能
解锁时,若超过设定的解锁次数,密码锁在声光报警后会锁定2分钟。
错误操作提示功能
执行错误操作时,LCD上有提示信息
源程序
#include<reg51.h>
本设计使用proteus进行电路设计与仿真,按照设计画好电路图后,双击单片机将keil中生成的HEX文件加载到单片机中,点击运行按钮进行仿真,根据情况进行调试与修改。
四、总结
我们设计的是简易电子密锁。经过将近一个月的努力,我们基本上完成了题目的要求设计和制作。
在设计过程中,我们首先进行方案的设计,然后是对电路的布局和设计,再到电路板的焊接制作,最后是对电路进行调试。在方案的设计过程中,经过了验证和筛选,才确定最终方案。电路板的焊接制作更是成功完成制作的保证,因此在整个焊接过程中,我们从始至终都秉着严谨、认真的态度来完成,从线路的布局到焊接工艺的把握,即要保证焊接质量还要做到焊接美观,特别要避免虚焊和假焊的出现。在编程调试的时侯,开始是一点不懂,经过查找一些教程学习后,终于熟悉并予以运用。
开锁成功后,按‘输入新密码’键两次进入解锁次数设定功能,初始解锁次数为3次,每按一次加1实现1-9次循环。
解锁次数显示功能
每次解锁错误都有提示,并将已试次数显示在LCD上。
模拟密码箱产生随机密码,并可进行解码
通过‘随机’键可产生随机密码供用户解码,也可在修改新密码时将其作为新密码保存。
密码明文与密文切换功能
方案二:采用矩阵式按键来控制
把按键按行列组成矩阵,在行列交点上都对应有一个键,这样使用的按键要
少,节约了单片机大量的I/O口,免去了上拉电阻,为焊接带来了方便,提高了整块电路板的美观度。
选用单片机STC89S52作为设计的核心元件,在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘的数字键0-9输入密码之后按键盘“开锁”键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,并且有声光提示;当三次密码错误则发出报警,并锁定大约2分钟;当用户需要修改密码时,先按下键盘“输入新密码”键后可以设置新密码。新密码输入无误后按“保存新密码”键使新密码存储,密码修改成功。设计可产生随机密码,并用随机密码进行解码,同时随机密码还可作为新密码。
一、方案设计与论证
方案设计:
方案一:使用独立式按键来控制
使用独立式按键来控制数码管或LCD1602的显示,这样需要很多的按键,每个按键实现一个功能,易于控制,程序编写简单,但是每个按键都要接上拉电阻,占用了单片机大量的I/O接口资源,要对单片机外扩I/O口,并且在电路焊接方面又不方便,还要浪费大量的资源,提高了成本。
#define LCDIO P0
#define delay4us() _nop_();_nop_();_nop_();_nop_();
uchar buffer[4]={0};//缓冲
sbit sda=P3^3;//掉电存储引脚
sbit scl=P3^2;
sbit beep=P3^7;//蜂鸣器引脚
bit flag=0,aa;//定时溢出标志位
【引言】
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,安全性能低,无法满足人们的需要。针对这些锁具给人们带来的不便,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
本次课题要求使用单片机设计一个简易的电子密码锁,模拟实现下述功能:
ห้องสมุดไป่ตู้#include<string.h>
#include<intrins.h>
#include<stdlib.h> //包含随机函数rand()的定义文件
#include<intrins.h> //包含_nop_()函数定义的头文件
#define uchar unsigned char
#define uint unsigned int
unsigned char code digit[ ]={"0123456789"}; //定义字符数组显示数字
sbit BF=P0^7; //忙碌标志位,,将BF位定义为P0.7引脚
uchar code table[]="Your Password...";//初始化时,lcd显示
void delayms(uint z)
3.复位部分
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。根据实际情况选择如图3所示的复位电路。
4.键盘输入部分
由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,密码锁的密码由键盘输入完成。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用。键盘的每个按键功能在程序中设置。其大体功能及与单片机引脚接法如图4所示。
可以显示出当前所设置的密码
3
开锁功能
如果输入密码不正确会发出声光报警开锁不成功,如果输入密码正确则蓝灯点亮开锁成功
4
修改密码功能
开锁后按下修改密码键可修改密码
5
重新输入
可以清除当前输入的密码
6
上锁
可以使密码锁回到解锁前的状态
7
随机
可以产生随机密码并进行解锁
程序调试与仿真
本设计使用keil进行程序的调试。1)打开keil后,首先点击”project”选择“new project”在keil中创建新的工程文件,选择单片机的型号为ATMEL 的89C52; 2)把编辑好的程序加载到keil中;3)单击“target 1”前面的“+”号,然后单击“source group1”,选择“add files to group‘source group1’”,添加文件到工程; 4)单击“project”选择“options for target‘target1’”,选择“output”,然后选中“create hex file”,使程序编译后产生HEX代码,供下载器下载到单片机中;5)点击编译按钮对程序进行编译调试。
1.基本要求
(1)四位数密码可随意设定,且能够显示在LED数码管或LCD上。
(2)输入的解锁密码能够显示,并且使用发光二极管、蜂鸣器等进行密码错误提示、正确提示的声光报警功能。
2.发挥部分
(1)具有断电密码保存功能。
(2)具有1-9次的解锁次数任意设定功能。
(3)模拟密码箱随机产生密码,并进行解码。