单片机电子密码锁的设计(汇编语言)
- 格式:docx
- 大小:49.82 KB
- 文档页数:10
单片机电子密码锁设计一、设计背景随着科技的不断发展,传统的机械锁已经不能满足人们对于安全性和便捷性的需求。
电子密码锁具有保密性好、操作方便等优点,逐渐取代了传统机械锁。
单片机作为一种集成度高、功能强大的微控制器,为电子密码锁的设计提供了良好的硬件基础。
二、系统总体设计本电子密码锁系统主要由单片机控制模块、键盘输入模块、显示模块、存储模块和开锁控制模块等部分组成。
单片机控制模块是整个系统的核心,负责处理输入信息、控制各个模块的工作以及进行密码的验证和存储。
键盘输入模块用于用户输入密码,通常采用 4×4 矩阵键盘,可实现数字 0 9 以及确认、取消等功能按键的输入。
显示模块用于显示系统的相关信息,如输入的密码、提示信息等。
常见的显示方式有液晶显示屏(LCD)和数码管显示。
存储模块用于存储设置的密码,以便系统在断电后仍能保存密码信息。
EEPROM 存储器具有掉电不丢失数据的特点,适合用于密码存储。
开锁控制模块在密码验证通过后,控制电磁锁或电机等执行机构完成开锁动作。
三、硬件设计1、单片机选型选择一款合适的单片机是系统设计的关键。
常用的单片机有 51 系列、STM32 系列等。
51 系列单片机价格低廉、开发简单,适合本设计的需求。
2、键盘接口电路采用行列式扫描的方式实现 4×4 矩阵键盘的接口电路。
通过单片机的 I/O 口依次扫描行线和列线,判断按键的按下状态。
3、显示电路如果选择液晶显示屏(LCD),则需要通过单片机的并行接口或串行接口与 LCD 控制器进行通信,实现字符和图形的显示。
数码管显示则相对简单,通过单片机控制数码管的段选和位选信号即可。
4、存储电路EEPROM 存储器通过 I2C 总线与单片机连接,单片机通过发送特定的指令和数据来实现对 EEPROM 的读写操作。
5、开锁控制电路使用继电器或三极管驱动电磁锁或电机,单片机输出高电平或低电平来控制开锁电路的通断。
四、软件设计1、主程序流程系统上电后,首先进行初始化操作,包括单片机内部资源的初始化、显示模块的初始化、存储模块的初始化等。
设计题目:电子密码锁功能实现:八位密码锁具有设置密码,然后输入密码验证的功能:1)设置密码成功后会点亮LED灯提示;2)录放音模块;3)输入密码错误则有语音提示;4)输错3次后LED灯闪烁提示,输错5次以上就禁止输入,且LED灯闪的频率加快;5)输入正确后播放音乐提示;6)设置密码和输入密码时不小心按错可以使用清除键;7)密码破解后可以选择重置密码或继续使用原密码;实现方法:状态机设置密码----输入密码----判断密码是否正确----错误继续回到输入密码状态-----正确则选择是回到输入密码状态或者重置密码设计源程序:#include <mega16.h>flash unsigned char led_7[13]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x40}; // 字型码,后3位为“A”,“b”,“-”flash unsigned char position[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; unsigned char dis_buff[8]; // 显示缓冲区,存放要显示的8个字符的段码值unsigned char key_disbuff[8];unsigned char key_stime_counter,key_stime_ok1,sign;unsigned char posit;bit key_stime_ok;unsigned char count=0;flash unsigned int t[9]={0,956,865,759,716,638,568,506,470};flash unsigned char d[9]={0,105,116,132,140,157,176,198,209};#define Max_note 32flash unsigned char music[Max_note]={1,2,1,2,1,2,3,2,5,2,5,2,5,4,5,2,6,2,6,2,6,2,8,2,5,4};unsigned char note_n;unsigned intint_n;bit play_on;interrupt [TIM1_COMPA]void timer1_compa_isr(void) //音乐播放中断{if (!play_on){note_n=0;int_n=1;play_on=1;}else{if (--int_n==0){TCCR1B=0x08;if(note_n<Max_note){OCR1A=t[music[note_n]];int_n=d[music[note_n]];note_n++;int_n= int_n * music[note_n];note_n++;TCCR1B=0x09;}elseplay_on=0;}}}void display (void) // 8位LED数码管动态扫描函数{PORTC = 0xff;PORTA = led_7[dis_buff[posit]];PORTC = position[posit];if (++posit >=8 ) posit = 0;}#define No_key255#define K1_1 1#define K1_2 2#define K1_3 3#define K2_1 4#define K2_2 5#define K2_3 6#define K3_1 7#define K3_2 8#define K3_3 9#define K4_1 10#define K4_2 0#define K4_3 11#define Key_mask 0b00001110unsigned char read_keyboard() //键盘输入子程序{static unsigned char key_state = 0, key_value, key_line;unsigned char key_return = No_key,i;switch (key_state){case 0:key_line = 0b00010000;for (i=1; i<=4; i++) // 扫描键盘{PORTB = ~key_line; // 输出行线电平PORTB = ~key_line; // 必须送2次!!!(注1)key_value = Key_mask& PINB; // 读列电平if (key_value == Key_mask)key_line<<= 1; // 没有按键,继续扫描else{key_state++; // 有按键,停止扫描break; // 转消抖确认状态}}break;case 1:if (key_value == (Key_mask& PINB)) // 再次读列电平,{switch (key_line | key_value) // 与状态0的相同,确认按键{ // 键盘编码,返回编码值case 0b00011100:key_return = K1_1;break;case 0b00011010:key_return = K1_2;break;case 0b00010110:key_return = K1_3;break;case 0b00101100:key_return = K2_1;break;case 0b00101010:key_return = K2_2;break;case 0b00100110:key_return = K2_3;break;case 0b01001100:key_return = K3_1;break;case 0b01001010:key_return = K3_2;break;case 0b01000110:key_return = K3_3;break;case 0b10001100:key_return = K4_1;break;case 0b10001010:key_return = K4_2;break;case 0b10000110:key_return = K4_3;break}key_state++; // 转入等待按键释放状态}elsekey_state--; // 两次列电平不同返回状态0,(消抖处理)break;case 2: // 等待按键释放状态PORTB = 0b00001110; // 行线全部输出低电平PORTB = 0b00001110; // 重复送一次if ( (Key_mask& PINB) == Key_mask)key_state=0; // 列线全部为高电平返回状态0 break;}return key_return;}#define keystate_0 0#define keystate_1 1#define keystate_2 2#define keystate_3 3#define keystate_4 4#define keystate_5 5// Timer 0 比较匹配中断服务,2ms定时interrupt [TIM0_COMP] void timer0_comp_isr(void){unsigned char i, key_temp;static unsigned char m=0,n=0;display(); // 调用LED扫描显示if (++key_stime_counter>=5){key_stime_counter = 0;key_stime_ok = 1; // 10ms到}if (++key_stime_counter>=50){key_stime_counter = 0;key_stime_ok1 = 1; // 100ms到}if (key_stime_ok){key_stime_ok = 0; // 10ms到key_temp = read_keyboard (); // 调用键盘接口函数读键盘if (key_temp != No_key){ // 有按键按下switch(m){case keystate_0:if(key_temp==10) m=keystate_1; //状态0:按下设置键开始设置密码else m=0;break;case keystate_1: //状态1:按下0~9之间的数字设置密码if(key_temp!=11&&n<8&&key_temp!=10){for (i=0; i<7; i++){dis_buff[i] = dis_buff[i+1];} // LED显示左移一位dis_buff[7] = key_temp; // 最右显示新按下键的键值n++;}else if(key_temp==11) //按下确认键,设置密码成功,PD.4输出0,LED灯点亮{PORTD=0x60;n=0; //n回到初始值0for (i=0; i<8 ;i++){key_disbuff[i]=dis_buff[i];} //锁存密码值for (i=0; i<8 ;i++){dis_buff[i]= 12;} //数码管显示回到初始值m=keystate_2;break;}else m=keystate_1;break;case keystate_2:if(key_temp==10){PORTD=0x70;m=keystate_3;}else m=keystate_2;break;case keystate_3: // 输入密码if(key_temp!=11&&n<8&&key_temp!=10){ if ( key_temp==0 ){{for (i=7; i>0; i--)dis_buff[i] = dis_buff[i-1]; //清除键}dis_buff[0] = 12;}else{for (i=0; i<7; i++){dis_buff[i] = dis_buff[i+1];} // LED显示左移一位dis_buff[7] = key_temp;}}else if(key_temp==11) //按下确认键确认输入的密码{for (i=0; i<8 ;i++) //判断输入密码是否成功{if(key_disbuff[i]!=dis_buff[i]){PORTD=0xcf; //输入密码错误则语音提示密码错误TCCR1B=0x08;n=0;count++;if(count>=5){sign=2;}if(count>=3&&count<5){sign=1;}for (i=0; i<8 ;i++) //数码管显示回到初始值{dis_buff[i]= 12;}m=keystate_3; //重新回到输入密码状态PORTD=0x1f;}}if(i==8){sign=0;PORTD.6=1;count=0;for (i=0; i<8 ;i++){dis_buff[i]= 12;} //数码管显示回到初始值play_on=0; //若密码正确,则启动音乐播放if(!play_on){TCCR1B=0x09;}if(key_temp==11){m=keystate_0;break;} //重新回到设置密码状态else if(key_temp==10){m=keystate_3; //重新回到输入密码状态break;}}}}}}}void main(void){unsigned char i; //初始化TCCR1A=0x40;TCCR1B=0x08;TIMSK=0x12;GICR|=0x80;MCUCR=0x08;MCUCSR=0x00;GIFR=0x80;PORTD=0x7f;DDRD=0xf0;PORTA = 0x00; // 显示控制I/O端口初始化DDRA = 0xFF;PORTC = 0xFF;DDRC = 0xFF;PORTB = 0xFF; // 键盘接口初始化DDRB = 0xF0; // PD2、PD1、PD0列线,输入方式,上拉有效// T/C0 初始化TCCR0=0x0B; // 内部时钟,64分频(4M/64=62.5KHz),CTC模式TCNT0=0x00;OCR0=0x20; // OCR0 = 0x7C(124),(124+1)/62.5=2ms//TIMSK=0x02; // 允许T/C0比较匹配中断for (i=0; i<8 ;i++){dis_buff[i]= 12;} // LED初始显示8个“-”#asm("sei") // 开放全局中断while (1){if(key_stime_ok1) // 100ms到{if(sign==1){key_stime_ok1=0;PORTD.6=~PORTD.6;}}if(key_stime_ok) // 10ms到{if(sign==2){PORTD.6=~PORTD.6;for (i=0; i<8 ;i++){dis_buff[i]= 12;} // 禁止输入}}};}。
单片机密码锁设计(汇编语言)带原理图电路图什么是密码锁电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
硬件设计基于AT89C51为核心的单片机控制的电子密码锁设计。
本设计能完成开锁,修改密码,密码错误报警,LCD显示密码等基本的密码锁功能。
设计的电路框如图1。
《,图一&电路的功能单元设计1.单片机AT89C51组成基本框图单片机引脚介绍P0:P0口是一个漏极开路的8位双向I/O口。
在访问片外存储器时P0分时提供低8位地址线和8位双向数据线。
当不接片外存储器或不扩展I/O口时,P0可作为一个通用输入/输出口。
P0口作输入口使用时,应先向口锁存器写“1”,P0口作输出口时,需接上拉电阻。
P1:P1口是一个内部提供上拉电阻的8位双向I/O口,因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁存器写“1”。
&P2:P2口也是一个内部提供上拉电阻的8位双向I/O口,在访问片外存储器时,输出高8位地址。
P3:P3口除了一般的准双向通用I/O口外,还有第二功能。
VCC:+5V电源VSS:接地ALE:地址锁存器控制信号。
在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。
此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
/PSEN:外部程序存储器读选通信号。
在读外部ROM时,/PSEN有效(低电平),以实现外部ROM单元的读操作。
/EA:访问程序存储控制信号。
当/EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当/EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。
RST:复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完成单片机的复位初始化操作。
XTAL1和XTAL2:外接晶体引线端。
山东交通学院单片机原理与应用课程设计院(部):轨道交通学院班级:自动化121学生姓名:学号:指导教师:时间: 2015.6.1—2015.6.12课程设计任务书题目电子密码锁设计系 (部) 轨道交通学院专业班级自动化121学生姓名学号06 月 01 日至 06 月 12 日共 2 周指导教师(签字)系主任(签字)年月日一、设计内容及要求本实验基于51单片机利用矩阵按键、步进电机、lcd1602等模块实现电子密码锁的输入密码、密码比对、步进电机的驱动、修改密码等功能。
设计内容包括:1)lcd1602显示;2)矩阵按键的输入;3)24C08的储存于读取;4)步进电机的驱动;5)线路的链接。
设计要求:1)能演示;2)能回答答辩过程中提问的问题;3)完成设计报告。
二、设计原始资料单片机原理及接口技术李全利 2010年 1月单片机原理及应用教程范立南 2006年 1月单片机原理及应用教程刘瑞新 2003年07月三、设计完成后提交的文件和图表1.计算说明书部分1)方案论证报告打印版或手写版2)程序流程图3)具体程序2.图纸部分:具体电路原理图打印版四、进程安排教学内容学时地点资料查阅与学习讨论 2天 406实验室分散设计 4天 406实验室编写报告 2天 406实验室成果验收 2天 406实验室按分组选择不同的实验台,每组3人,题目可重复选择,但每题目不得超过10人。
五、主要参考资料《电子设计自动化技术基础》马建国、孟宪元编清华大学出版2004年4月《单片机原理及接口技术》张毅刚人民邮电出版社.2008年《实用电子系统设计基础》姜威 2008年1月《单片机系统的PROTEUS设计与仿真》张靖武 2007年4月指导老师成绩答辩小组成绩总成绩目录摘要 (1)1.设计要求 (2)2.功能概述 (2)3.总体设计 (2)4.硬件设计 (3)4.1矩阵按键设计 (3)4.2 LCD显示设计 (4)4.3步进电机模块设计 (5)4.4密码修改设计 (5)4.5密码比较模块 (6)5.软件设计及流程图 (6)6.个人体会 (8)7.参考文献 (9)附录 (10)摘要设计运用了ATMEL公司的AT89S52芯片系统,将微处理器、总线、蜂鸣器、矩阵键盘、存储器和I/O口等硬件集中一块电路板上,通过读取键盘输入的数据(密码)并储存到ATMEL912 24C08存储器中,然后判断之后键盘输入的数据与已存储的数据是否相同来决定打开密码箱或锁键盘或报警。
单片机课程设计密码锁设计在当今社会,安全问题越来越受到人们的重视,密码锁作为一种常见的安全防护设备,在保护个人财产和隐私方面发挥着重要作用。
本次单片机课程设计的任务就是设计一款基于单片机的密码锁。
一、设计要求本次设计的密码锁需要具备以下功能:1、能够设置和修改 4 位数字密码。
2、输入密码正确时,锁打开,并有相应的指示灯提示。
3、输入密码错误时,有错误提示,且错误次数超过 3 次则报警。
4、具备密码重置功能。
二、系统方案设计1、硬件设计单片机选型:选择 STC89C52 单片机作为核心控制器,其具有性能稳定、价格低廉、易于编程等优点。
输入模块:采用 4×4 矩阵键盘作为密码输入设备,可方便地输入数字和功能按键。
显示模块:选用 1602 液晶显示屏,用于显示密码输入状态、提示信息等。
存储模块:使用 EEPROM 芯片 AT24C02 来存储密码,以保证断电后密码不丢失。
报警模块:当密码输入错误次数超过 3 次时,通过蜂鸣器发出报警声音。
2、软件设计主程序:负责系统的初始化、键盘扫描、密码输入处理、密码验证、显示控制等。
键盘扫描程序:检测矩阵键盘上的按键动作,并将按键值返回给主程序。
密码处理程序:包括密码设置、修改、存储和验证等功能。
显示程序:控制 1602 液晶显示屏的显示内容。
三、硬件电路设计1、单片机最小系统包括单片机芯片、晶振电路和复位电路。
晶振为单片机提供时钟信号,复位电路用于系统的初始化。
2、矩阵键盘电路由16 个按键组成 4×4 矩阵,通过行线和列线的扫描来确定按键值。
3、显示电路1602 液晶显示屏通过数据总线和控制总线与单片机相连,实现数据的传输和显示控制。
4、存储电路AT24C02 通过 I2C 总线与单片机进行通信,用于存储密码数据。
5、报警电路蜂鸣器通过三极管驱动,当单片机输出高电平时,蜂鸣器发声报警。
四、软件程序设计1、主程序流程系统初始化,包括单片机端口初始化、液晶显示屏初始化、EEPROM 初始化等。
目录摘要----------------------------------------------------------- 3 关键字------------------------------------------------------------------------------------- 3 第一章前言----------------------------------------------------------------------------- 3 第二章基本功能设计--------------------------------------------------------------- 4⏹ 2.1 实验任务----------------------------------------------------------------- 4⏹ 2.2基本设计------------------------------------------------------------------ 4⏹ 2.3 系统框图-------------------------------------------------------------- -- 5 第三章硬件设计----------------------------------------------------------------------- 5 3.1硬件工作接线口---------------------------------------------------------------- 5 3.2 LED显示器结构与原理------------------------------------------------------- 6 3.3复位电路----------------------------------------------------------------------------- 6 3.4按键方式--------------------------------------------------------------------------- 7 3.5电路原理图------------------------------------------------------------------------- 8 3.6 元器件清单-------------------------------------------------------------------------9第四章软件设计-------------------------------------------------------------------- 10 4.1软件结构---------------------------------------------------------------------------------- 10 4.2源程序--------------------------------------------------------------------------------------12 第五章心得体会----------------------------------------------------------------------- 13 第六章参考文献----------------------------------------------------------------------- 14【摘要】电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,我们采取的是单片机,它具有超大规模集成电路技术,有极强的数据处理能力,I/O口多以它为核心设计的密码锁,结构小,功能强,现在很多单位甚至家里的各个家用电器,还有保险箱都需要它。
单片机控制电子密码锁设计+汇编程序+摘要+原理分析单片机控制电子密码锁设计+汇编程序+摘要+原理分析[Abstract]Designs one kind the password lock which controls based on at89C2051 monolithic integrated circuit. And gives the hardware electric circuit and the software procedure which this monolithic integrated circuit password locks. The AT89C2051 programming realization control circuit, has the pressed key effective instruction, the input mistake, the decoding effective instruction, the control unblanking, fixed time interrupts, reports to the police wrongly, functions and so on password revision; 8 10 enter the system password, keeps secret the good use scope to be broad, is suitable places especially and so on family, guesthouse uses. After the user input password and presses down inputs the key, the procedure judgment input password is whether correct. If the input password is correct, then from P3.0 output unblanking signal, if the input password is not correct, then from P3.1 output password rub-out signal, if continual three times inputs the password is wrong, then from P3.2 output alarm, once the output alarm, after must wait for relieves reports to the police only then unlocks.单片机电子密码锁设计【摘要】设计一种基于AT89C2051单片机控制的密码锁。
目录目录 (1)中文摘要 (2)第一章概述 (5)第二章系统总体方案设计 (6)第三章硬件电路设计 (10)3.1键盘电路设计 (10)3.2 LED显示电路 (12)3.3 开锁警电路 (15)第四章软件设计 (17)4.1 软件设计思路 (17)4.2各子程序设计 (17)第五章系统调试 (22)第六章心得体会 (23)第七章参考文献 (24)附录 (25)源程序清单 (25)中文摘要摘要:在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣,随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁得使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作等优点。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐替代传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。
随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的只能密码锁,它除了具有电子密码锁的功能外,还引进了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是,这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。
加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
基于以上思路,本次设计使用ATMEL公司的AT89C51实现—基于单片机的电子密码锁的设计,其主要具有如下功能:密码通过键盘输入,若密码正确,则将锁打开。
单片机密码锁设计(汇编语言)带原理图电路图(带注释)单片机密码锁设计(汇编语言)带原理图电路图(带注释)摘要随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。
本文介绍了一种应用AT89S52单片机设计的防盗自动报警电子密码锁系统。
经实验验证该系统具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可作为产品进行开发,应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,所以电子密码锁凭着比较强的实用性、锁密匙量大,又要制造简单;既安全可靠,又成本低廉;既保密性强,又实用性广,在密码锁的巨大市场上占有一席之地。
本文讲述了基于AT89S52单片机的“电子密码锁”的设计与实现,首先在绪论中介绍了此系统的简介、研究本系统的目的和意义。
此后,本文在第二、三、四章论述了系统整体结构框图,系统各模块功能,论述了系统工作原理并对所使用各种芯片的功能与特性进行了介绍、系统硬件设计;在第五章中重点剖析了软件设计开发的过程。
而在最后一章简述了本次设计的总结,个人感受。
此外,通过对系统软硬件的不断调试,进一步完善功能,同时也加深了对单片机、LCD液晶显示器、电路设计等方面知识。
关键词:单片机;AT89S52;电子密码锁;LCD显示目录1绪论 (1)1.1密码锁简介 (1)1.2电子密码锁发展趋势 (1)1.3基本原理 (2)1.4研究的主要内容 (3)2系统总体设计方案 (4)2.1系统的功能介绍 (4)2.2系统的整体框图 (4)2.3系统各单元模块功能 (4)3密码锁的工作原理 (6)3.1系统工作原理简介 (6)3.2AT89S52单片机 (6)3.31602LCD液晶显示模块 (8)3.3.1显示特性 (8)3.3.2物理特性 (9)3.3.3外型尺寸图 (9)3.3.4结构块图 (10)3.3.5模块显示特性详解 (10)3.3.6字符码与字符字模之间的对应关系表 (11)4系统硬件设计 (12)4.1单片机AT89S52中断系统 (12)4.28051单片机的复位电路 (12)4.3光声报警电路 (13)4.4矩阵键盘电路 (13)4.51602LCD显示电路 (14)4.6利用PROTEUS仿真的电路图 (14)4.7硬件实物演示 (15)5系统软件设计 (17)5.1KEIL软件介绍 (17)5.2软件开发 (17)6结束语 (20)附录 (21)参考文献 (25)致谢 (26)1绪论1.1密码锁简介安全问题是现代社会各界普遍关注的焦点之一。
目录单片机电子密码锁的设计 (1)第1章绪论 (3)1.1引言 (3)1.2电子密码锁的背景 (3)1.3电子锁设计的意义的本设计特点 (4)第2章系统总体方案设计 (5)第3章硬件电路设计 (8)3.1键盘电路设计 (8)3.2LED显示电路 (9)3.3开锁电路 (11)3.4报警电路 (12)第4章软件设计 (12)4.1软件设计思路 (12)4.2各子程序设计 (13)第5章系统调试 (18)第6章单片机电子密码锁的应用趋势 (19)第7章设计总结与展望 (19)附录 (23)源程序清单 (23)单片机电子密码锁的设计摘要:随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。
本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。
根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。
而且采用键盘输入的电子密码锁具有较高的优势。
采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。
软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。
测试结果表明,本系统各项功能已达到本设计的所有要求。
关键词:单片机;密码锁;单片机设计,电子锁。
The design of electronic locks SCMABSTRACT:Along with the exaltation of social science and the living level of people, how carry out the family to guard against theft, this problem also change particularly outstanding.Because of the simple construct of traditional machine lock,the affairs of theft is hackneyed.the electronics lock is safer because of its confidentiality, using the vivid good, the safe coefficient is high, being subjected to the large customer close.It can carry out the key information to register in the main on board initial attestation, the password information encrypt etc. Go to correspond by letter the principle according to the string between 51 machines, this is easy to encrypt and protect to the passwords information random. Adopt the numerical signal codes,not only can carry out many controls of the road information, raise the anti- interference that signal deliver, reduce the mistake action,but also the power consume is low,Respond quickly,the efficiency deliver is high, work stable credibility etc. The software design adoption the design thought from top to bottom, to make the system toward wear distribute type,turn to the direction development of small, strengthen the system and can expand the stability and circulate.Test the result enunciation, various functions of this system are already all request of this design.KEYWORD:singlechip;cryptogram lock;singlechip design; electronics lock.第1章绪论1.1 引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。
单片机电子密码锁的设计1.系统功能要求通过学习的数电、模电、单片机原理的相关知识,利用所学的综合理论知识,设计单片机电子密码锁。
本系统由单片机系统、LCD显示器和报警系统等组成。
要求具有有键盘输入、LED数码管显示、开锁、超时报警基本的密码锁的功能,主要通过密码按键预设输入密码,,解锁后能通过按键手动复位,误输入密码三次后自动报警,鸣叫并退出,简单易懂、使用方便、安全性能高等。
2.设计方案描述该方案采用一种是用以AT89C52为核心的单片机控制方案。
这样单片机可具有足够的空余硬件资源实现其它的扩充功能,利用单片机灵活的编程设计和丰富的IO 端口,及其控制的准确性,实现最基本的密码锁功能。
其原理如图2-1所示。
图2-1单片机控制方案3.系统硬件的设计单片机电子密码锁的总电路图如图3.1 。
该设计是用以AT89C52单片机为中心。
在这个设计中有8位LCD数码管的数字显示,采用的是行列键盘,比较简单易操作。
图3-13.1.行列键盘的设计各按键功能为P1.0-P1.7为"0"-"7"数字键,P3.0为"8"键,P3.4为"9"键,P3.1为开锁开始键,P3.2为重输键,P3.3确认键。
p3.6时间设定,长按住为"分调整"-"时调整"-退出,短按为省电-分加1-时加1,P3.5为分或时减1,P3.7为小喇叭口。
本设计采用行列设计如图3—1—1。
图3—1—13.2.单片机系统设计采用的是AT89C52单片机如图3—2—2。
该单片机性能稳定性高,成本低。
单片机引脚接口P1.0到P1.7分别接到LCD显示数码管, P2.0到P2.7通过放大器分别接到LCD数码管的另一端。
都是作为数码管显示电路输入端口,使得数码管显示各功能的结果。
图3-2—2 单片机系统3.3.报警电路的设计报警电路图如图3—3—3所示。
电子锁设计报告一,实验目的1. 学习8051定时器时间计时处理,键盘扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上8个LED数码管,设计带有报警功能的可掉电保存的电子密码锁。
3.通过本次实验,加强对所学知识的理解,增强编程能力及实践能力。
二,实验要求A.基本要求:1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。
2:可以自行设定或删除8位密码,能够掉电保存。
3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
4:自由发挥其他功能.5:要求有单片机硬件系统框图,电路原理图,软件流程图B.拓展部分:无三,实验基本原理单片机密码锁是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有安全性高,使用方便等优点。
本系统考虑到单片机密码锁成本及体积因素,在设计单片机密码锁部分时,以AT89S52单片机为核心,24C04、LED等构成外围电路。
本系统单片机密码锁硬件部分结构简单、成本低,软件部分使用电子加密提高锁的安全性,具有比较好的市场前景。
同时,由于本电子密码锁可以实现掉电保存,而且可以自行设计或者删除8位密码,所以具有较高的实用价值。
本密码锁采用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led 发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led 发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
此项功能方便用户使用。
单片机课程设计---电子密码锁一.课题1.电子密码锁:随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。
为了更好地推广单片机在家电领域中的应用,本文介绍一种应用AT89C2051单片机设计的电子密码锁。
经实际制作表明该密码锁具有安全、实用、成本低等特点,符合住宅用锁的要求,具有一定的现实意义。
2.组员:二.总体方案1.设计方案论证与比较方案一:卡片式电子密码锁。
卡片式电子密码锁,它利用光电耦合的方式,将密码信息从打孔的形式做在卡片上 ,只要将卡片插入锁内,就能将锁打开。
如果卡片上密码信息不对,密码锁发出报警声。
这种方法是需要卡片做为钥匙,容易被盗和被仿制,安全性不高。
方案二:磁卡式电子密码锁,具有功能强、故障率低、可靠性高和工作寿命长等优点,但这种方法的缺点是磁卡容易消磁,对用户造成不必要的麻烦。
方案三:用STC89C51设计的多功能密码锁。
以单片机作为微控制器,可以实现基于以上优点,本系统选用该方案作为设计方案。
按键有效指示、输入错误、控制开锁、错误报警、密码修改等功能,工作稳定可靠,保密性高,实用性强。
2.电子密码锁的总体设计电子密码锁是由以下几个部分组成的,其核心部分是8位STC89C51单片机作为整个系统的控制中心。
包括驱动电路模块,显示电路模块,报警模块和键盘模块。
图1 电子密码锁的总体框图三.硬件设计1.电路设计图2 电路原理图如图2所示是一种用STC89C51控制的电子密码锁的原理图。
其主要功能为:可设定从1位到10位的密码,从键盘键入正确密码才可开锁。
输入三次错误密码电路就报警。
其主要工作原理为:STC89C51的P1口为键盘扫描口,接着3行4列的键盘即“0、1、2…设置、”确定”,P3.0~P3.3接4盏LED灯显示系统状态等,P3.5接个小喇叭,当输入3次密码错误后报警,P3.5接个按钮,当输入正确密码开锁后,可以重新锁上。
XTAL1,XTAL2接晶振,用来充当驱动。
基于单片机的电子密码锁的设计随着电子技术的高速发展,越来越多的电子设备在我们的日常生活中得到广泛应用,其中电子密码锁是一种非常实用的设备。
本文将介绍一种基于单片机的电子密码锁的设计方案。
一、设计原则电子密码锁可以实现安全有效地控制门的进出,因此在设计时需要考虑以下几个原则:1、安全性原则:电子密码锁的主要作用是保护门的安全,因此在设计时要充分考虑安全性原则,确保该锁的密码安全保密,并且无法被破解。
2、简易性原则:电子密码锁的使用应该非常方便,不需要复杂的操作步骤,任何人都能轻松地使用。
3、灵活性原则:电子密码锁应该具有良好的灵活性,以适应各种不同的使用环境和场合。
二、设计思路基于上述原则,我们可以采用基于单片机的密码锁设计方案。
它可以实现方便、高效、稳定和安全的门控制。
1、硬件设计:硬件设计主要包括电子密码锁系统的各个模块的设计,其中包括微控制器、键盘输入、存储器、LCD显示和驱动电路等。
我们采用AT89C2051单片机来实现密码锁的控制功能,该单片机具有字节可编程存储器、RAM存储器、定时器和串口等功能模块,可满足密码锁的功能要求。
输入模块采用矩阵键盘,在设计过程中需要根据输入键位的数量和大小合理地布局键盘电路。
存储模块采用EEPROM,按动某个键时,将按键值存储在EEPROM中。
显示模块采用1602液晶显示屏,该显示屏具有高清晰度、低功耗和长寿命等特点,可以方便地显示密码输入信息和程序的运行状态。
2、软件设计:软件设计主要包括密码输入、密码储存、密码比较和门控制等功能。
在密码输入部分,用户可以用矩阵键盘输入密码,输入的密码被存储在EEPROM中。
在密码储存部分,将用户数据(即输入的密码)存储在EEPROM中。
EEPROM的储存器地址是固定的,编写程序时须对地址进行下标处理。
密码比较部分,将输入密码和储存密码在EEPROM中进行比较,如果相同则门打开,否则告知用户。
在门控制部分,控制开关电路,门锁打开后关闭门锁,使其快速反弹,保证门锁卡住门框。
基于单片机的电子密码锁设计基于单片机的电子密码锁设计在日常生活中,密码锁是一种常见的安全设备,被广泛应用于家庭、办公室等场所。
随着科技的发展,传统的机械密码锁已经不能完全满足人们对安全性和便捷性的需求。
为了提高密码锁的安全性和实用性,许多基于单片机的电子密码锁被设计出来。
本文将介绍一种基于单片机的电子密码锁设计,并详细说明其工作原理和实现过程。
1. 设计思路基于单片机的电子密码锁的设计目标是提高安全性和便捷性。
传统的机械密码锁容易被暴力破解,而且如果密码被泄露,需要更换整个锁体。
因此,采用电子密码锁可以提供更高的安全性和方便的密码管理功能。
2. 系统组成基于单片机的电子密码锁主要由以下几个部分组成:(1)输入模块:用于输入密码的设备,可以是键盘、触摸屏等。
(2)单片机控制模块:使用单片机作为核心控制器,接收输入密码并进行验证。
(3)驱动模块:通过驱动模块对电子锁进行控制开关。
(4)显示模块:以LED或LCD等形式显示相关信息。
(5)电源模块:为电子密码锁系统提供电能供应。
3. 工作原理基于单片机的电子密码锁的工作原理如下:(1)初始状态下,用户可以通过输入密码进行解锁或锁定。
输入模块接收用户输入的密码。
(2)输入模块将密码发送给单片机控制模块。
(3)单片机控制模块使用事先设定的密码进行比对。
如果密码匹配,单片机控制模块将发出控制信号给驱动模块。
(4)驱动模块接收到控制信号后,将根据信号的指示打开或关闭电子锁。
(5)同时,单片机控制模块会发出指令给显示模块,将结果显示给用户。
4. 实现过程基于单片机的电子密码锁的实现过程如下:(1)选择合适的单片机,如AT89C51。
(2)设计电路板,将输入模块、单片机控制模块、驱动模块、显示模块和电源模块连接在一起。
(3)编写单片机的控制程序,实现密码验证和控制信号的生成。
(4)制作密码锁外壳,将电子密码锁系统组装在一起。
(5)测试电子密码锁的各个功能是否正常。
单片机密码锁设计(汇编语言)带原理图电路图ORG 0000HLJMP STARTORG 1000HSTART:MOV SP,#4FHMAIN: MOV A,P3CJNE A,#0FEH,A0 ;测左转向灯有没有按下,没按则跳转测下一个ACALL ZUOAJMP MAINA0: MOV A,P3CJNE A,#0FDH,A1 ;测右转向灯有没有按下,没按则跳转测下一个 ACALL YOUAJMP MAINA1: MOV A,P3CJNE A,#0FBH,A2 ;测倒车灯有没有按下,没按则跳转测下一个ACALL DAOAJMP MAINMOV A,P3A2: CJNE A,#0F7H, A3 ;测故障灯有没有按下,没按则跳转测下一个 ACALL GUAJMP MAIN ;循环A3: MOV A,P3CJNE A,#0FAH,A4 ;测倒车灯和左灯有没有按下,没按则跳转测下一个 ACALL DAOZUOAJMP MAINA4: SETB P0.0MOV A,P3CJNE A,#0F9H,A5 ;测倒车灯和右灯有没有按下,没按则跳转测下一个 ACALL DAOYOUAJMP MAIN ;循环A5: SETB P0.0MOV A,P3CJNE A,#0F6H,A6 ;测左车灯和故障灯有没有按下,没按则跳转测下一个 ACALL ZUOGUAJMP MAINA6: SETB P0.0MOV A,P3CJNE A,#0F5H,A7 ;测故障车灯和右灯有没有按下,没按则跳转测下一个 ACALL YOUGUAJMP MAINA7: SETB P0.0MOV A,P3CJNE A,#0F3H,A8 ;测故障车灯和倒灯有没有按下,没按则跳转测下一个 ACALL GUDAOAJMP MAINA8: SETB P0.0 ;灭灯MOV A,P3CJNE A,#0F2H,A9 ;测倒车灯和故障灯及左灯有没有按下,没按则跳转测下一个 ACALL ZUOGUDAOAJMP MAINA9: SETB P0.0 ;灭灯MOV A,P3CJNE A,#0F1H,A10 ;测倒车灯和故障灯及右灯有没有按下,没按则跳转到下一个标号ACALL YOUGUDAOAJMP MAINA10: SETB P0.0;灭灯ACALL DELAYAJMP MAIN ;循环从新在从第一个开始测试ZUO: CLR P2.0 ;亮灯ACALL DELAYSETB P2.0 ;灭灯ACALL DELAYretYOU : CLR P2.1 ;亮灯ACALL DELAYSETB P2.1 ;灭灯ACALL DELAYretDAO: CLR P0.0 ;亮灯 ACALL DELAYretGU: SETB P0.0CLR P1.0 ;亮灯ACALL DELAYSETB P1.0 ;灭灯ACALL DELAYretDAOZUO:CLR P0.0 ;亮灯 CLR P2.0ACALL DELAY ;灭灯 SETB P2.0ACALL DELAYretDAOYOU:CLR P0.0 ;亮灯 CLR P2.1ACALL DELAY ;灭灯 SETB P2.1ACALL DELAYretZUOGU: CLR P2.0 ;亮灯 CLR P1.0ACALL DELAY ;灭灯 SETB P2.0SETB P1.0ACALL DELAYretYOUGU: CLR P1.0 ;亮灯 CLR P2.1ACALL DELAY ;灭灯 SETB P2.1SETB P1.0ACALL DELAYretGUDAO:SETB P0.0CLR P0.0CLR P1.0 ;亮灯ACALL DELAY ;灭灯 SETB P1.0ACALL DELAYretZUOGUDAO:CLR P0.0 ;亮灯 CLR P2.0CLR P1.0ACALL DELAYSETB P2.0 ;灭灯SETB P1.0ACALL DELAYretYOUGUDAO:CLR P0.0 ;亮灯 CLR P2.1CLR P1.0ACALL DELAY ;灭灯SETB P2.1SETB P1.0ACALL DELAYretDELAY: ;延迟子程序MOV R1,#0FFHLOOP0:MOV R2,#0FFHLOOP1:NOPNOPNOPDJNZ R2,LOOP1 DJNZ R1,LOOP0 RETEND。
电子密码锁设计1.实验任务根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。
2.电路原理图图4.32.13.系统板上硬件连线(1).把“单片机系统”区域中的P0.0/AD0用导线连接到“音频放大模块”区域中的SPK IN端子上;(2).把“音频放大模块”区域中的SPK OUT端子接喇叭和;(3).把“单片机系统”区域中的P2.0/A8-P2.7/A15用8芯排线连接到“四路静态数码显示”区域中的任一个ABCDEFGH端子上;(4).把“单片机系统“区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L1端子上;(5).把“单片机系统”区域中的P3.6/WR、P3.7/RD用导线连接到“独立式键盘”区域中的SP1和SP2端子上;4.程序设计内容(1).密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。
(2).密码的输入问题:由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。
在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。
进入密码的判断比较处理状态并给出相应的处理过程。
(3).按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。
5.C语言源程序#include <AT89X52.H>unsigned char code ps[]={1,2,3,4,5};unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};unsigned char pslen=9;unsigned char templen;unsigned char digit;unsigned char funcount;unsigned char digitcount;unsigned char psbuf[9];bit cmpflag;bit hibitflag;bit errorflag;bit rightflag;unsigned int second3;unsigned int aa;unsigned int bb;bit alarmflag;bit exchangeflag;unsigned int cc;unsigned int dd;bit okflag;unsigned char oka;unsigned char okb;void main(void){unsigned char i,j;P2=dispcode[digitcount];TMOD=0x01;TH0=(65536-500)/256;TL0=(65536-500)%256;TR0=1;ET0=1;EA=1;while(1){if(cmpflag==0){if(P3_6==0) //function key{for(i=10;i>0;i--)for(j=248;j>0;j--);if(P3_6==0){if(hibitflag==0){funcount++;if(funcount==pslen+2){funcount=0;cmpflag=1;}P1=dispcode[funcount];}else{second3=0;}while(P3_6==0);}}if(P3_7==0) //digit key{for(i=10;i>0;i--)for(j=248;j>0;j--);if(P3_7==0){if(hibitflag==0){digitcount++;if(digitcount==10){digitcount=0;}P2=dispcode[digitcount];if(funcount==1){pslen=digitcount;templen=pslen;}else if(funcount>1){psbuf[funcount-2]=digitcount;}}else{second3=0;}while(P3_7==0);}}}else{cmpflag=0;for(i=0;i<pslen;i++){if(ps[i]!=psbuf[i]){hibitflag=1;i=pslen;errorflag=1;rightflag=0;cmpflag=0;second3=0;goto a;}}cc=0;errorflag=0;rightflag=1;hibitflag=0;a: cmpflag=0;}}}void t0(void) interrupt 1 using 0{TH0=(65536-500)/256;TL0=(65536-500)%256;if((errorflag==1) && (rightflag==0)){bb++;if(bb==800){bb=0;alarmflag=~alarmflag;}if(alarmflag==1){P0_0=~P0_0;}aa++;if(aa==800){aa=0;P0_1=~P0_1;}second3++;if(second3==6400){second3=0;hibitflag=0;errorflag=0;rightflag=0;cmpflag=0;P0_1=1;alarmflag=0;bb=0;aa=0;}}if((errorflag==0) && (rightflag==1)) {P0_1=0;cc++;if(cc<1000){okflag=1;}else if(cc<2000){okflag=0;}else{errorflag=0;rightflag=0;hibitflag=0;cmpflag=0;P0_1=1;cc=0;oka=0;okb=0;okflag=0;P0_0=1;}if(okflag==1){oka++;if(oka==2){oka=0;P0_0=~P0_0;}}else{okb++;if(okb==3){okb=0;P0_0=~P0_0;}}}}。
一、设计总说明随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。
加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
本次基于8051单片机电子密码锁的设计,其主要具有如下功能:(1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
(2)密码可以由用户自己修改设定(只支持6位密码),锁打开后才能改密码。
修改密码之前必须再次输入密码,在输入新密码时候需要二次确以防止误操作。
(3)报警、锁定键盘功能。
密码输入用发光管显示,当连续3次输入错误密码,系统声光报警。
电子密码锁的设计主要由三部分组成:4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。
另外系统还有LED提示灯等。
密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:(1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。
(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。
(3)密码更改功能:将输入的值作为新的密码。
(4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果确锁打开,否则不打开。
主要的设计实施过程:首先,选用8051单片机,以及选购其他电子元器件。
第二步,设计硬件电路。
第三步,编写单片机语言实现功能。
第四部,分别进行软件和硬件的调试。
最后,联合软、硬件调试整个系统,完成本次课程设计。
关键词:4×4矩阵键盘;8051单片机;密码锁;密码二次确认‘二、绪论2.1 背景随着社会物质财富的日益增长,安全防盗已成为社会问题。
而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。
目前国内,大部分人使用的还是传统的机械锁。
然而,眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。
所谓互开率,是各种锁具的一个技术质量标准,也就是1把钥匙能开几把锁的比率。
经国家工商局、国家内贸局、中国消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍。
为何弹子锁的“互开率”会如此之高?据有关专家人士剖析,弹子锁质量好坏主要取决于弹子数量的多少以及弹子的大小,而弹子的多少和大小受一定条件的限制。
此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将锁打开。
机械锁的这些弊端为一种新型的锁---电子密码锁,提供了发展的空间。
2.2 电子锁电子锁是采取电子电路控制,以电磁铁或者卫星电机和锁体作为执行装置的机电一体化锁具,相比传统的机械锁具,电子锁不使用金属钥匙,保密性、精度都有很大提高。
电子锁的发明思路,源自古代发明的自动机械,例如古希腊数学家赫伦的液压自动门,中国古代诸葛亮的木牛流马,它们以重力或蒸汽压力驱动,最广泛的用途乃是用在古代墓道的地下机关。
电子工业的诞生,使得以微小电量驱动机械成为可能,于是有了电子锁一日千里的跃进。
三、课题要求本次课程设计,基于8051单片机电子密码锁的设计,利用4*4小键盘作为输入,LED作为显示。
当输入密码和设定的密码一致时,系统利用继电器输出解锁信号,其主要具有如下功能:(1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
(2)密码可以由用户自己修改设定(只支持6位密码),锁打开后才能改密码。
修改密码之前必须再次输入密码,在输入新密码时候需要二次确以防止误操作。
(3)报警、锁定键盘功能。
密码输入用发光管显示,当连续3次输入错误密码,系统声光报警。
四、课题分析电路主要包括矩阵键盘输入密码,外部密码验证,单片控制,原理方框图如下:4.1矩阵键盘输入控制电路设计方案是非编码键盘,每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。
行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。
通过不断读行线口线,或者中断方式触发键位扫描。
当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。
当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。
将每个行线和列线的组合值作成列表,每次就可以通过查表确定键位,以决定之后要进行的操作。
五、课题方案选择方案一:使用8051单片机,采用汇编语言编写程序,该程序语言功能强大,调试较为方便,具有很强的实用性。
方案二:利用数字逻辑电路,运用电压比较器,555单稳态电路,计数器,JK触发器,UPS 电源等实现对门的电子控制。
方案三:使用8051单片机,利用基于单片机的C语言编写程序,通过Keil C51 uVision2软件进行仿真模拟。
方案二基于数字电路,操作繁琐,会出现较多的器件故障,同时调试复杂,难于维护。
方案三该逻辑语言较为复杂,编写程序时也较为复杂,还需进行软件仿真模拟,设计复杂。
综上所述,使用方案一,设计较为简便,调试简单,硬件电路较少,易于维护。
六、程序部分ORG 1000HMOV R4,#08H 密码个数8个MOV R0,#40H 密码暂存区MOV A,#00H 初始密码0,1,2,3,4,5GO: MOV @R0,AINC R0INC ADJNZ R4,GOSETB P3.0; 确认SETB P3.1 锁开SETB P3.2 错误SETB P3.4 报警MOV R0,#20HMOV A,#03HMOV @R0,A ;8155初始化MOV R0,#79HMOV R7,#06HINIT: MOV @R0,#0 ;显示缓冲区清零INC R0DJNZ R7,INITLOP: LCALL DISPLCALL KEYBJB ACC.4,LOP ;未按键返回MOV R0,#7EHMOV R7,#05HPUSH ASETD: DEC R0MOV A,@R0INC R0MOV @R0,ADEC R0DJNZ R7,SETDPOP ACCMOV @R0,AMOV 7DH,7CHCJNE ,A,#0AH,LOPCLR P3.0ACALL COMPCJNE R3, #03H, LOPCLR P3.4SJMP LOP-----------------------------------KEYB: LCALL BKS ;按键处理子程序JNZ BLK1LCALL DISPSJMP KEYBBLK1: LCALL DISPLCALL DISPLCALL BKSJNZ BLK2LCALL DISPSJMP KEYBBLK2: MOV R2,#0FEHMOV R4,#0BLK4: MOV R1,#21HMOV A,R2MOVX @R1,AMOV R1,#23HMOVX A,@R1JB ACC.0,BL1MOV A,#0SJMP BLKPBL1: JB ACC.1,BL2MOV A,#08HSJMP BLKPBL2: JB ACC.2,BL3MOV A,#10HSJMP BLKPBL3: JB ACC.3,BLMOV A,#18HBLKP: ADD A,R4PUSH ACCBLK3: LCALL DISPLCALL BKSJNZ BLK3POP ACCCJNE A,#10H,PPPP: JNC PP1MOV DPTR,#TBLMOVC A,@A+DPTRPP1: RETTBL: DB 07H,04H,08H,05H,09H,06H,0AH,0BH,01H,00H DB 02H,0FH,03H,0EH,0CH,0DHBL: INC R4MOV A,R2JNB ACC.7,BKLDRL AMOV R2,ASJMP BLK4BLKD: SJMP KEYBBKS: MOV R1,#21HMOV A,#0MOVX @R1,AMOV R1,#23HMOVX A,@R1CPL AANL A,#0FHRET---------------------------------DISP: MOV R0,#79HMOV R3,#20HBTL: MOV A,R3MOV R1,#21HMOVX @R1,A ;送位选码到PA口MOV A,@R0MOV DPTR,#TAB1MOVC A,@A+DPTR 查表INC R1MOVX @R1,A ;送显示码到PB口LCALL DELAY ;延时INC R0 MOV A,R3JB ACC.0,HERE ;一轮显示完到HERERR AMOV R3,ASJMP BTL ;继续本轮显示HERE: RETTAB1: DB 0C0H,0F9,0A4H,0B0H,99H,92H,82H 共阳显示码DB 0F8H,80H,90HDELAY: MOV R6,#0FFH ;延时子程序D1: MOV R5,#0FFHD2: DJNZ R5,D2DJNZ R6,D1MOV 30H,7EHMOV 31H,7DHMOV 32H,7CHMOV 33H,7BHMOV 34H,7AHMOV 35H,79HRET---------------------------------COMP: MOV R1,#40HMOV A,@R1CJNE A,30H, MOREINC R1MOV A,@R1CJNE A,31H, MOREINC R1MOV A,@R1CJNE A,32H, MOREINC R1MOV A,@R1CJNE A,33H, MOREINC R1MOV A,@R1CJNE A,34H, MORESJMP KMORE: INC R3CLR P3.2K: RETENDORG 1000HMOV R4,#08H 密码个数8个MOV R0,#40H 密码暂存区MOV A,#00H 初始密码0,1,2,3,4,5 GO: MOV @R0,AINC R0INC ADJNZ R4,GOSETB P3.0; 确认SETB P3.1 锁开SETB P3.2 错误SETB P3.4 报警MOV R0,#20HMOV A,#03HMOV @R0,A ;8155初始化MOV R0,#79HMOV R7,#06HINIT: MOV @R0,#0 ;显示缓冲区清零INC R0DJNZ R7,INITLOP: LCALL DISPLCALL KEYBJB ACC.4,LOP ;未按键返回MOV R0,#7EHMOV R7,#05HPUSH ASETD: DEC R0MOV A,@R0INC R0MOV @R0,ADEC R0DJNZ R7,SETDPOP ACCMOV @R0,AMOV 7DH,7CHCJNE ,A,#0AH,LOPCLR P3.0ACALL COMPCJNE R3, #03H, LOPCLR P3.4SJMP LOP----------------------------------- KEYB: LCALL BKS ;按键处理子程序JNZ BLK1LCALL DISPSJMP KEYBBLK1: LCALL DISPLCALL DISPLCALL BKSJNZ BLK2LCALL DISPSJMP KEYBBLK2: MOV R2,#0FEHMOV R4,#0BLK4: MOV R1,#21HMOV A,R2MOVX @R1,AMOV R1,#23HMOVX A,@R1JB ACC.0,BL1MOV A,#0SJMP BLKPBL1: JB ACC.1,BL2MOV A,#08HSJMP BLKPBL2: JB ACC.2,BL3MOV A,#10HSJMP BLKPBL3: JB ACC.3,BLMOV A,#18HBLKP: ADD A,R4PUSH ACCBLK3: LCALL DISPLCALL BKSJNZ BLK3POP ACCCJNE A,#10H,PP PP: JNC PP1MOV DPTR,#TBLMOVC A,@A+DPTRPP1: RETTBL: DB 07H,04H,08H,05H,09H,06H,0AH,0BH,01H,00H DB 02H,0FH,03H,0EH,0CH,0DHBL: INC R4MOV A,R2JNB ACC.7,BKLDRL AMOV R2,ASJMP BLK4BLKD: SJMP KEYBBKS: MOV R1,#21HMOV A,#0MOVX @R1,AMOV R1,#23HMOVX A,@R1 CPL AANL A,#0FHRET---------------------------------DISP: MOV R0,#79HMOV R3,#20HBTL: MOV A,R3MOV R1,#21HMOVX @R1,A ;送位选码到PA口MOV A,@R0MOV DPTR,#TAB1MOVC A,@A+DPTR 查表INC R1MOVX @R1,A ;送显示码到PB口LCALL DELAY ;延时INC R0MOV A,R3JB ACC.0,HERE ;一轮显示完到HERERR AMOV R3,ASJMP BTL ;继续本轮显示HERE: RETTAB1: DB 0C0H,0F9,0A4H,0B0H,99H,92H,82H 共阳显示码DB 0F8H,80H,90HDELAY: MOV R6,#0FFH ;延时子程序D1: MOV R5,#0FFHD2: DJNZ R5,D2DJNZ R6,D1MOV 30H,7EHMOV 31H,7DHMOV 32H,7CHMOV 33H,7BHMOV 34H,7AHMOV 35H,79HRET---------------------------------COMP: MOV R1,#40HMOV A,@R1CJNE A,30H, MOREINC R1MOV A,@R1CJNE A,31H, MOREINC R1MOV A,@R1CJNE A,32H, MOREINC R1MOV A,@R1CJNE A,33H, MOREINC R1MOV A,@R1CJNE A,34H, MORESJMP KMORE: INC R3CLR P3.2K: RETEND七、系统调试电子密码锁主要由矩阵键盘,LED数码显示器,提示灯,单片机程序组成。