单片机:基于AT89S52设计一个密码锁

热门关键字:
共搜到“密码锁论文”相关论文 7 条
基于vhdl的数字密码锁设计
首发时间:
浏览量:27 收藏数:0 推荐数:0
全部作者:
作者单位:
中国矿业大学信息与电气工程学院
论文摘要:
由于数字密码锁的优点,它越来越受到大家欢迎,而更广泛的应用在实际中。数字密码锁主要完成密码输入、密码核对、密码清除、密码更改、上锁、解锁等功能。数字密码锁的设计电路主要包括键盘接口电路、控制电路和...... 基于at89s52的智能密码锁设计
全部作者 :
第一作者单位 :
中国矿业大学电子信息科学与技术系
论文摘要 :
家庭防盗问题近年来已越来越引起人们的重视,本系统基于此而设计,由单片机系统、矩阵键盘、led显示和报警系统组成。系统能完成开锁、超时报警、超时锁定、管理员解密、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依实...... 基于at89s52单片机的电子密码锁设计
首发时间:
浏览量:30 收藏数:0 推荐数:5
全部作者:
作者单位:
中国矿业大学计算机科学与技术学院,江苏徐州 221008
论文摘要:
本文介绍了一种基于at89s52单片机的电子密码锁的设计方法。该设计以at89s52单片机为硬件核心,结合4×4矩阵键盘电路、 lcd显示电路、密码存储电路、开锁电路...... 基于proteus的多功能数字锁设计
全部作者 :
第一作者单位 :
中国矿业大学信电学院
论文摘要 :
本系统由单片机系统、矩阵键盘、led显示和报警系统组成。系统能完成开锁、超时报警、超次锁定、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有自设报警音效、字符提示等功能,依据实际的情况还可以添加其他各种功能。并通过proteus进行仿真调试,取得了...... 红外遥控电子密码锁设计
全部作者 :
盛蒙蒙 罗维 葛亦斌
第一作者单位 :
中国矿业大学计算机学院
论文摘要 :
本系统采用单片机8051作为本设计的核心元件,利用红外线遥控原理和单片机串行发射、接处等功能而设计的一款有本机开锁和遥控开锁的电子密码锁。详细介绍了设计方案的目的和要求,芯片的信息,系统的结构图。并对各个模块的原理详细说明,给出了硬件框图和系统流程图。设计明了...... 基于gsm网络的遥控密码锁系统的设计
全部作者 :
刘会娟 郝继飞 赵娟娟 闫文杰
第一作者单位 :
中国矿业大学信息与电气工程学院
论文摘要 :
本文介绍了基于gsm的单片机遥控密码锁的硬件及程序实现流程的具体设计,采用avr单片机atmega16作为控制器,在实现了电子锁的密码键盘输入开启控制,液晶串行显示,出错声光报警基础上,设计了通过串口控制gsm模块gtm...... 基于单片机的电子密码锁设计
全部作者 :
盛蒙蒙 罗维 葛亦斌
第一作者单位 :
中国矿业大学计算机学院
论文摘要 :
本文从经济实用的角度出发,采用美国atmel公司的单片机at89s51与低功耗cmos型e2prom at24c02作为主控芯片与数据存储器单元,结合外围的键盘输入、显示、报警、开锁等电路,用汇编语言编写主控芯片的控制程序,设计了一款可以多次更改密码具有报......
第1页 1 末页 1
· · · · ·单片机课程设计密码锁_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机课程设计密码锁
上传于||暂无简介
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩16页未读,继续阅读
你可能喜欢基于AT89S52单片机的简易密码锁设计
:随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤为突出,传统的机械锁,由于其构造的简单,安全性能低,无法满足人们的需要。在科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用显得日趋重要。本次设计的题目是基于单片机的电子密码锁的设计,系统由AT89S52与低功耗CMOS型E²PROM
AT24C02作为主控芯片与数据存储器单元,结合外围的键盘输入、LCD显示、报警、开锁等电路模块【1】。它能完成以下功能:按下一个数字键,一个“F”就显示在最右边的数码管上,同时将先前输入的所有“F”向左移动一位。当按下清除键时,清除前面输入的一位密码,并清除相应显示。当按下开锁键,系统将输入的数据与系统密码进行检查核对,如果正确锁打开,否则不打开。开锁后可以设定新的密码,新密码需要输入两次确认。密码输入次数太多时,密码锁报警,并锁定键盘。在操作错误时,密码锁可以有简单的提示。本密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,具有一定的推广价值。
关键词:电子密码锁,报警,液晶显示,单片机,EEPROM。
详细内容请联系QQ:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。广告剩余8秒
文档加载中
基于 AT89S52 单片机的电子密码锁设计
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于 AT89S52 单片机的电子密码锁设计
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口谁会用AT89S52单片机制作电子密码锁,密码存储于AT24C02中_百度知道
谁会用AT89S52单片机制作电子密码锁,密码存储于AT24C02中
tab_key[count3]=0x0f;if(指针所指位置 for(count3=0,左移到进位CY
scl=0;;count3&
tab_key[count3]=0x0f:key_manage10();switch(temp){case 0
red=0;8;uchar code table9[]=&i&if(uchar code table8[]=&调用键盘扫描函数
lcd_display();0;代码很长;count4++;
} return(flag);i&switch(temp){case 0密码错误;
delay(100);count4++; /&#47,j,0x4f;count3++){ write_date(table9[count3]); ET1=1;
write_com(0x01);
}/256; write_byte(0xa0);n++;sbit rs=P2^0;n;/16;初始没有密码输入;
write_com(0x80);
red=1;1;/; &#47,红灯亮
delay(5);;count4++; stop();红灯不亮&#47!=0xf0){delay(100);/ sda=1; for(i=0;sbit sda=P3^5;
a++;&#47,k; write_com(0x01); for(count3=0;i++){write_date(table3[0]);if(count4&/count3++)
write_date(table5[count3]):key_manage4();if(
/****************************应答信号*************************************void respond()
{ /}void stop()
/&#47:key_manage11();}while(密码错误;/temp=temp&0xf0, write_com(0x01);
} return k,显示/,显示 U TOMORROW ;
for(count3=0;用FFFFFFFF清楚已经输入的密码}}/ delay1();count3&定时器初始化 TMOD=0x11;count3++) { tab_key[count3]=0x0f; count3++)
write_date(table1[count3]);if( for(i=0;&#47,count1;/ lcden=0; for(a=x;/ scl=1;n++;if(xiugaiflag==1){mima[count4]=5,
/}/ /第一行显示INPUT THE PASSPORD;8; delay1();清零指令 write_com(0x80);0;count4++;
/if(xiugaiflag==1){mima[count4]=0;******************************键盘消抖函数*******************************void delay1(){ ;
/ write_com(0x80);16!=0xf0){temp=P1;**************************************************扫描第二行***********************************P1=0xfd,光标等等设置未零 write_com(0x06);ffffffff清除密码
delay(5); //}}void key_manage3(){tab_key[n]=2;/当读或写一个字符后地址指针加一; delay(5),故为零 enterflag=0;
mimaflag=0;count3++) / stop(),n=0;16;
delay1(); }}void main(){ rw=0;
delay2(100);1)|256;uchar code table1[]=&定时器1由50MS累计到1S所用的计数器
if(mimaflag==1)
a=0; write_com(0x80);停止{ sda=0,显示third error see:key_manage5(); respond();16;确认键按下与否的标志
bell=0;temp=temp&0xf0;if(xiugaiflag==1){mima[count4]=9;16;;i++) {
write_add(i;// } scl=0; sda=1;
delay1();/16;switch(temp){case 08;16; delay(5);
scl=1;*******************************读地址函数*************************************uchar read_add(uchar address){
n=0,8); lcden=1;temp=P1; ET0=1;/ delay(5);/ n=0;/}else{ TR0=0;uchar code table6[]=&/
} }}void key_manage12(){tab_key[n]=11;}TR0=1;***************************************************扫描第四行****************************************P1=0xf7;
tab_key[count3]=0x0f;**取消(C)**修改密码键(D)**确认修改键(E)**无效(F)void key_manage1(){tab_key[n]=0;
for(count3=0:
delay(5);count3++) /count4++;
/开始信号{
//用FFFFFFFF清楚已经输入的密码
} write_com(0x01);/
/!=0xf0){temp=P1;code
new&count3++)
write_date(table2[count3]);count3&lt!=0xf0){temp=P1;
write_com(0x80+0x40);
/}}/ respond();n++;count3&/if(xiugaiflag==1){mima[count4]=4;
write_com(0x80);/i++) {
temp=temp&/
tab_key[count3]=0x0f,0x7d;T1初始化50MS TR1=0;}}}/
bell=1;temp=temp&0xf0;**************************************************键盘扫描函数开始********************************void key_scan(){/ date=read_byte();
/&;count3++){ write_date(table1[count3]);
} }}//*********************************************扫描第三行***********************************P1=0xfb,0x7f;8;}/
TR1=1; / sda=1; lcden=1:
--------&***********************************************定时0**********************************************void time_0() interrupt 1{
/ scl=1;u tomorrow (^_^)&if(}}void key_manage10(){tab_key[n]=9;没有确认键按下 mimaflag=0,a;input the passco&quot,count4; } for(i=0;
write_com(0x80);uchar code table5[]=&count3++){ write_date(table2[count3]);初始密码存储区uchar tab_key[50];if(xiugaiflag==1){mima[count4]=2;****************************************定时器1的50MS!=0xf0){delay(100);}/n++;16;i++) {
mima[i]=read_add(i);//}}void key_manage16(){tab_key[n]=15;
/count3&打开显示模式设置 write_com(0x0c);
for(count3=0;n++;16; } TR1=1,0x39;*******************************************修改密码键**********************************void key_manage14(){ uchar aa=0;}}void key_manage2(){tab_key[n]=1;i&//打开显示; write_com(0x38);uchar mima[8];/密码错误;256;/i++)
if(mima[i]==tab_key[i])
write_com(0x80);打开计数器1
count1=0;16;总线释放 delay1(); write_byte(0xa1);count3++) {
write_date(table2[count3]);**********扫描第一行*********P1=0n++;}}void key_manage9(){tab_key[n]=8:key_manage15()!;
delay(5);,count3;
write_com(0x80+0x40);256;密码错误;; respond();*******************************读字节操作函数*****************************uchar read_byte(){ if(}}void key_manage5(){tab_key[n]=4;count3&}/
for(count3=0; delay1();初始化函数void init(){
&#47:key_manage12();define the passc& write_byte(address);count3++)
delay(5); write_com(0x80);case 0/计时到1S {
TR1=0;/case 0x7b; } write_com(0x80+0x40)!=0xf0){delay(100); delay1();}}/
TR1=1;16,0x5b; count0=0;temp=temp&0xf0;count4++;i& TL0=()%256;密码计数清零}/case 0x7d;密码正确与否键先置零
red=1; for(i=0;保持最高位; temp=P1!,0x77; count4=0;reg52!;case 0xb7;/*****************************写字节操作函数**********************************void write_byte(uchar date){ 显示define the password delay(5);case 0250))i++;/count3& for(i=0,共延时1秒*****************************void time_1() interrupt 3{
delay1()!=0xf0){temp=P1;/
write_com(0x01);
sda=CY; lcden=0; EA=1;******************************************修改密码键的确认键********************************void key_manage15(){n=0:key_manage16();/b&密码正确与否的标志n++;&#47,红灯亮
delay(5);/8;指针所指位置for(count3=0;count3++)
write_date(table8[count3]);**********************************确认键**************************************************************
void key_manage11(){ enterflag=1;i&break,T1工作方式1 TH0=()/ &#47,红灯亮
delay(5);/if(
write_com(0x80);/只有输入8个密码后按确认才做比较
mimaflag=mimacmp();case 0xd7;}}}/n++;/}}}/uchar code table2[]=&temp=temp&0xf0;count3&lt!=0xf0){temp=P1!; scl=0;&****************************LCD1602的初始化*******************************void write_com(uchar com){ rs=0;if(xiugaiflag==1){mima[count4]=7;&#47, /
write_com(0x01);T0;n++,红灯亮
delay(5);y--);if(xiugaiflag==1){mima[count4]=6; start();case 0x7e; write_byte(0xa0);ffffffff清除密码
delay(5);}/&#47:key_manage13();
/count3&密码计数清零write_com(0x80);
/输入密码存储区uchar code table[]={0x3f;ffffffff清除密码
delay(5); } else
tab_key[count3]=0x0f;b--);if(enter1flag==1){ enter1flag=0;uchar code table3[]=&&#47!&temp=temp&0xf0:key_manage3();**********************************写地址函数******************************void write_add(uchar address!;count3++)
write_date(table4[count3]);用FFFFFFFF清除已经输入的密码
for(count3=0;0;20) {
count1++;sbit bell=P3^6;
write_com(0x01);
&#47!=0xf0){temp=P1;
/ }void delay2(uchar x){ /uchar code table10[]=&quot:key_manage8(),且光标加一;
count1=0;/** 0 ** 1 **2 ** 3**
/**********************************LCD显示函数开始**************************************void lcd_display(){uchar i=0:key_manage7(); scl=1; respond(); P0=}}/ lcden=0;
flag=0;if(xiugaiflag==1){mima[count4]=8; sbit rw=P2^1;count3&count3&lt:key_manage6(),uchar date){ start();}while( tab_key[count3]=0x0f;switch(temp){case 0xe7; delay1();确认键按下 if(n==8)
/// } while(1) {
key_scan();显示-------- delay(5);
/}}void key_manage6(){tab_key[n]=5;/count3&lt,y;用FFFFFFFF清楚已经输入的密码} write_com(0x80+0x40); delay1(),0x6f;返回flag}/ lcden=0;/third error see &***************************************密码比较函数********************************bit mimacmp()
{ bit flag,0x71};
for(count3=0;count3& delay(5);}/开机显示FFFFFFFF
delay(5),0x7c;密码正确; while((sda==1)&&(i& /显示FFFFFFFF
write_com(0x01); temp=P1;//指针所指位置 //for(count3=0;
/count4++;a--)
for(b=100;
for(count3=0; TR0=0;//}/8; delay1();//case 0************密码存入EPROM中********************************** sda=1;
n=0; temp=
TR1=0;8;/第一行显示INPUT THE PASSPORD;
if(enterflag==1)
enterflag=0; /&#47.h&temp=temp&0xf0;}}void key_manage8(){tab_key[n]=7:key_manage2();开机显示FFFFFFFF
delay(5);count3++) {
write_date(table1[count3]); }void write_date(uchar date){ rs=1;}while(; /&#47:key_manage14();或运算;;;if(temp!& else
mimaflag=0;
for(count3=0;right
&quot!=0xf0){delay(100);/}while(/
/count4++;count3&
for(count3=0;
/T0初始化2MS TH1=()&#47,0x66;&#47,显示SECOND ERROR;#define uint unsigned int#define uchar unsigned charvoid key_scan();uchar code table7[]=&修改密码确认键标志 sbit red=P3^7,0x79; write_byte(address);uchar code table4[]=&8){ key_scan();
/case 0 P0=x&x--)
for(y=110;
&#47,显示RIGHT; for(count3=0;for(i=0;//
init(); TL1=()%256;y&**8** 9** 确认(A)
**无效(B)/****************************************************取消键********************************************
void key_manage13(){n=0;case 0x77:key_manage9();&#47,放到最低位
scl=0;显示INPUT THE PASSCODE
delay(5)!=0xf0){temp=P1;
//if(xiugaiflag==1){mima[count4]=1;
/** 4** 5** 6 **7 **/count3++) {
write_date(table11[count3]);count3++){ write_date(table10[count3]);count4++;
/ TL1=()%256; respond();case 0xdd,0x6d;i++) {
scl=1;count3++) / for(count3=0,希望你有耐心读下去#include&
for(count3=0;
/n++;/for(count3=0;****************************************键盘功能分配函数群开始****************************&#47, scl=1;// delay1()!;count3++)
write_date(table7[count3]);}//sbit scl=P3^4,当写一个字符后整频显示左移;temp=temp&0xf0: delay(5);16;/&#47,b;count3&****************************e^2room的初始化*******************************void start()
//0;for(count3=0;n++;case 0
delay1(); respond()!=0xf0){temp=P1;count3&16; if(count1& write_byte(date);uchar code table11[]=&16;count3++)
write_date(table6[count3]); TL0=()%256;/count4++; }/ start();count3&开机显示-------- delay(5);i&/ delay(5);
for(count3=0;/ delay1(); delay(5); count4=0;/ delay1();count3&*&/ sda=0,0x06;} void delay(uint z){ uint x,0x07;8;
/}write_com(0x80+0x40);}}void key_manage7(){tab_key[n]=6;if(xiugaiflag==1){mima[count4]=3; delay1();a&}}void key_manage4(){tab_key[n]=3:key_manage1();// temp=P1;/ count1=0;sbit lcden=P2^2; xiugaiflag=1,0x5e;修改密码标志 bit enter1count3&lt&#47:
--------&16; scl=0; lcden=0;/enter1flag=1;/write_com(0x80+0x40+8);uchar count0;break,绿灯亮
其他类似问题
为您推荐:
其他2条回答
推荐楼主去中国电子DIY之家参考其他同学的制作实例和代码。
你可到“谷歌”上搜索一下“基于51单片机的电子密码锁系统设计制作”,这款基于51单片机的电子密码锁系统,单片机用STC89C52RC单片机,电路简单,制作过程中不需要进行调试,支持密码掉电保存功能!密码储存于单片机内部自带的的EEPROM中,不需要外置AT24C01保存密码,是学习电子密码锁比较好的教学试验系统,主要功能如下:
1、1602液晶菜单显示。
2、6位密码,密码可重置,重置密码时,先输入原始密密,正确后输入新密码,再交输入新密码,两次输入的密码一致辞时,密码修改成功。开锁时,密码通过键盘输入,若密码正确,则将锁打开,诺密码不正确时,无法开锁,密码输入错误三次时,蜂鸣器报警并且锁定键盘,10分钟。
3、支持掉电保存密码功能。单片机中的密码是储存于单片内部的EEPROM中,在...
您可能关注的推广回答者:回答者:
电子密码锁的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信