收藏 分享(赏)

基于单片机控制电子密码锁报告.doc

上传人:精品资料 文档编号:8548196 上传时间:2019-07-02 格式:DOC 页数:18 大小:204.50KB
下载 相关 举报
基于单片机控制电子密码锁报告.doc_第1页
第1页 / 共18页
基于单片机控制电子密码锁报告.doc_第2页
第2页 / 共18页
基于单片机控制电子密码锁报告.doc_第3页
第3页 / 共18页
基于单片机控制电子密码锁报告.doc_第4页
第4页 / 共18页
基于单片机控制电子密码锁报告.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、单片机原理与应用技术课程设计报告(论文)基于单片机控制的电子密码锁专业班级:应用电子技术教育 151 班 姓 名: 黄永进 时 间: 2017.11.06-2017.11.24 指导教师: 孔晓红 邵锋_ 张素君 2017 年 11 月 24 日基于单片机控制的电子密码锁课程设计任务书1 设计目的与要求设计出一个基于单片机控制的电子密码锁。准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下功能:(一) 基本功能(1)状态显示功能: 锁定状态时系统用 3 位数码管显示 OFF,用 3 位数码管显示成功开锁次数;成功开锁时用 3 位数码管显示 888,用 3 位数码管显示成功开锁次数。

2、(2)密码设定功能: 通过一个 44 的矩阵式键盘可以任意设置用户密码(1-16 位长度) ,同时系统掉电后能自动记忆和存储密码在系统中。(3)报警和加锁功能:密码的输入时间超过 12 秒或者连续 3 次输入失败,声音报警同时锁定系统,不让再次输入密码。此时只有使用管理员密码方能对系统解锁。 (二)扩展功能实现电机的正反转状态指示及速度快慢指示。(二) 扩展功能可增加遥控控制功能2设计内容 (1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4)SCH 文件生成与打印输出;(5)硬件及程序综合调试;3编写设计报告写出设计的全过程,附上有关资料和图纸,有

3、心得体会4答辩在规定时间内,完成叙述并回答问题。目录1 引言 .12 总体设计方案 .12.1 设计思路 12.1.1 方案确立 .12.2 设计方框图 13 设计原理分析 .13.1 单片机最小系统的设计 .23.1.1 复位电路 .23.1.2 晶振电路 .23.2 显示电路的设计 .23.3 矩阵按键的设计 .33.3.1 矩阵按键电路图 33.3.2 矩阵按键说明 33.3.3 矩阵按键原理 33.4 I2C 电路的设计 .34 结束语 .4参考文献 .4附录 1 电路原理图 .5附录 2 电路 PCB 图 .6附录 3 程序代码 .71基于单片机控制的电子密码锁应教 151 班 黄永

4、进摘要:设计是采用 STC89C52 芯片控制一个三位一体的数码管,通过 4x4 矩阵按键来控制密码输入以及不同的系统指令来完成密码锁的密码输入和修改等,同时使用 AT24C04 芯片来实现掉电密码数据存储的功能。系统的核心控制主要是通过编写 C 语言来控制单片机实现。关键词:单片机 矩阵 I 2C 蜂鸣器 数码管1 引言随着科技的进步和社会的发展,安全隐患层出不穷,人们的安全意识逐渐提高,对锁的要求也随之提高。电子密码锁采用键盘输入密码,在具备传统锁的基础作用的同时,有更方便更安全的作用。本文对基于单片机的电子密码锁进行具体的介绍。该电子密码锁包含显示模块、按键举证、采用 1 到 16 位数

5、密码,正确输入密码开锁,三次输错密码报警,修改密码这些功能。该设计具有成本低、易操作、功耗低、效率高等优点。2 总体设计方案2.1 设计思路2.1.1 方案确立(1)方案内容该设计方案采用 STC89C52 芯片作为核心,配合数码管、矩阵按键、蜂鸣器等外围电路进行组合,组成电子密码锁系统。其中矩阵按键用来设置系统的密码和输入密码,数码管用于显示开锁状态和成功开锁的次数,最后用 C 语言程序控制其逻辑功能。2.2 设计方框图(1)设计框图如图 1.1图 1 设计框图3 设计原理分析STC89C52 芯片显示模块按键矩阵 报警模块存储模块23.1 单片机最小系统的设计3.1.1 复位电路单片机复位

6、电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。在本设计中也不例外,如图 1.2 中复位电路由电容串联电阻构成,并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且这个高电平持续的时间由电路的 RC 值来决定。典型的 51 单片机当RST 脚的高电平持续两个机器周期以上就将复位,所以适当组合 RC 的取值就可以保证可靠的复位。3.1.2 晶振电路每个单片机系统里都有晶振(如图 1.2 中器件 Y1) ,全称是叫晶

7、体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。本设计中晶振取 12MHz,因为可以准确地得到 9600 波特率和 19200 波特率,用于有串口通讯的场合,12MHz 产生精确的 uS 级时歇,方便定时操作。 0uFCVGND47KRYpP568ST9XALEU图 2 最小系统3.2 显示电路的设计本设计中的密码输入显示及系统状态的显示都是采用一个共阳极的三位一体的数码管实现。 edhcgbfaQ图 3 数码管 图 4 三极管驱动在电路中将三位一体

8、数码管(如图 1.3)的 a b c d e f g 脚通过分别串接一个电阻之后与单片机 P2.0P2.7 连接,另外为了实现位选控制将三位一体数码管的 DG1、DG2 与 DG3 引脚通过三3极管驱动(如图 1.4)与单片机 P3.1、P3.2、P3.3 连接。3.3 矩阵按键的设计3.3.1 矩阵按键电路图 45689OPDES102NA7.图 5 矩阵按键电路3.3.2 矩阵按键说明表 1 按键说明表按键 键名 功能0-9 数字键 密码输入OP 开锁键 开启输入密码请求DE 退格键 删除已输入的内容SE 设置键 用户密码修改重置EN 确定键 输入内容确定AD 管理键 用于开启管理员权限3

9、.3.3 矩阵按键原理当无按键闭合时,P1.0P1.3 与 P1.4P1.7 之间开路。当有键闭合时,与闭合键相连的两条I/O 口线之间短路。判断有无按键按下的方法是:第一步,置列线 P1.4P1.7 为输入状态,从行线 P1.0P1.3 输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线 P1.4P1.7 读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。3.4 I2C 电路的设计

10、在本设计中应用 I2C 总线的 EEPROM 做存储设备(24C04 芯片如图 1.6 所示) 。为了驱动I2C 总线,在单片机向总线送数据程序时则可以在 SCL 还在低电平时,把数据电平送到 SDA,然后拉高 SCL,这时 SDA 不应有电平跳变,延时后拉低 SCL,再进行下一位的数据传送直到完成。在总线上读数据时也是只有在 SCL 为高时,SDA 为有效数据。4A0123VSD5CL6WP78UGNKR9图 6 I2C 电路图3.5 报警电路的设计 Q.图 7 报警电路设计中报警电路如图 1.7 所示,蜂鸣器使用三极管驱动,通过一个限流电阻之后与单片机P3.0 连接。因此,我们可以通过程序

11、控制 P3.0 脚的电平来使蜂鸣器发出声音和关闭,从而实现系统报警。4 结束语在这次实习的过程中,从选题到定稿,从理论到实践,可以说得是苦多于甜,但是可以学到很多的的东西,不仅巩固了以前学过的知识,还学到了很多在书本上没有学到过的知识。通过这次课程设计使我懂得了理论与实践同等重要,只有将理论和实践相结合才能提高自己的实际动手能力和独立思考的能力。当然这次实习能够那么顺利的完成,除了自己的努力外,离不开院方为我们制定的严格的计划,离不开指导老师的严格的督查和耐心的教导指点,离不开班级同学的帮助与支持。参考文献1 谭浩强.c 语言程序设计.北京:清华大学出本社,20102 李建忠.单片机原理及应用

12、.西安:西安电子科技新大学出版社,20135附录 1 电路原理图625839DeltAB417Enr#0*器uFCVGN.KRYpLSQPTXUdhcgbfaH W-附录 2 电路 PCB 图7附录 3 程序流程图8附录 4 程序代码9#include #define uint unsigned int#define uchar unsigned char#define KeyPort P1uchar DD_F=0,DM_F=0;uchar R16; /用户密码uchar M16; /芯片密码uchar G6=6,6,6,6,6,6;uchar code DIS_SEG7=0xc0,0xf9,

13、0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff;/uchar code DIS_BIT8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;sbit fmq=P30;sbit wei1=P31;sbit wei2=P32;sbit wei3=P33;sbit scl=P34; / 24c08 SCLsbit sda=P35; / 24c08 SDAsbit LED=P37;char dis3=0;unsigned char num=1,num1=0,num2=0;

14、char Time_temp=0;char DIG_C1=0;char DIG_C2=0;char DIG_C3=0;uchar flag=1,adm=0,flagg=1,adm1=1,flagb=0;uint scs=0,ecs=0;char Tim_flog=0;int Tim_temp1=0;char Tim_CNT=0;void delay() /delay 5us ; void Delay10ms(unsigned int c)unsigned char a, b;for (;c0;c-)for (b=15;b0;b-)for (a=130;a0;a-);void display(u

15、int i,uint j,uint k)dis0=i;dis1=j;dis2=k;unsigned char KeyScan(void)unsigned char cord_h,cord_l;KeyPort=0x0f;cord_h=KeyPortif(cord_h!=0x0f)Delay10ms(1);if(KeyPortKeyPort=cord_h|0xf0;cord_l=KeyPortwhile(KeyPortreturn(cord_h+cord_l);return(0xff);unsigned char KeyPro(void)switch(KeyScan()case 0x7e:retu

16、rn 0;break;/0case 0x7d:return 1;break;/1case 0x7b:return 2;break;/2case 0x77:return 3;break;/3case 0xbe:return 4;break;/4case 0xbd:return 5;break;/5case 0xbb:return 6;break;/6case 0xb7:return 7;break;/7case 0xde:return 8;break;/8case 0xdd:return 9;break;/9case 0xdb:return 10;break;/acase 0xd7:return

17、 11;break;/bcase 0xee:return 12;break;/ccase 0xed:return 13;break;/dcase 0xeb:return 14;break;/ecase 0xe7:return 15;break;/fdefault:return 0xff;break;void Tim_Iint(void)10TMOD TMOD |= 0X01;TL0 = (65535-1000)%256;TH0= (65535-1000)/256;ET0=1;TR0=1;EA=1;void Close_DIG(char i,char k,char j)if(i=1)DIG_C1

18、=1;if(i=0)DIG_C1=0;if(k=1)DIG_C2=1;if(k=0)DIG_C2=0;if(j=1)DIG_C3=1;if(j=0)DIG_C3=0;void Time0(void) interrupt 1 using 1char i;TL0 = (65535-1000)%256;TH0= (65535-1000)/256;if(Tim_flog=1)Tim_temp1+;if(Tim_temp11000)Tim_temp1=0;Tim_CNT+;if(Time_temp=0)if(DIG_C1=1)P2=DIS_SEG7dis0;wei1=0;wei3=1;wei2=1;if

19、(DIG_C1=0)wei1=1;wei3=1;wei2=1;Time_temp=1;goto end;if(Time_temp=1)if(DIG_C2=1)P2=DIS_SEG7dis1;wei1=1;wei2=0;wei3=1;if(DIG_C2=0)wei1=1;wei3=1;wei2=1;Time_temp=2;goto end;if(Time_temp=2)if(DIG_C3=1)P2=DIS_SEG7dis2;wei1=1;wei2=1;wei3=0;if(DIG_C3=0)wei1=1;wei2=1;wei3=1;Time_temp=0;11goto end;end: i=0;v

20、oid start() /开始信号sda=1;delay();scl=1;delay();sda=0;delay();void stop() /停止信号sda=0;delay();scl=1;delay();sda=1;delay();void respons() /应答uchar i;scl=1;delay();while(sda=1)fmq=0;flagb=1;Tim_flog=0;Tim_CNT=0;break;if(num=10)Close_DIG(0,0,0);14if(num=11)Close_DIG(0,0,0);cnt3=0;while(1)num=KeyPro();if(nu

21、m10) Close_DIG(1,1,1);Rcnt3=num;while(num=KeyPro();temp3+;cnt3+;if(temp3=4)temp3=1;if(num=13)cnt3-;if(cnt3=0)cnt3=0;temp3-;if(temp3=0)temp3=3;if(temp3=1)display(Rcnt3-1,16,16);if(temp3=2)display(16,Rcnt3-1,16);if(temp3=3)display(16,16,Rcnt3-1);if(num=15)Tim_CNT=0;Tim_flog=0;if(cnt3=6)for(j=0;j6;j+)flagg=flaggif(flaggfmq=1;adm=0;adm1=0;Tim_flog=0;Tim_CNT=0;break;else if(flaggTim_CNT=0;ecs=0;fmq=1;adm=0;adm1=1;flagb=0;break;elseTim_flog=0;Tim_CNT=0;flagg=1;Delay10ms(1);Delay10ms(1);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报