0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用单片机设计密码锁的详细资料和代码概述

Wildesbeast 来源:单片机 作者:h1654155169.2086 2020-05-05 15:11 次阅读

1.实验任务

根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键3秒钟,同时发现报警声,直到没有按键按下3种后,才打开按键锁定功能;否则在3秒钟内仍有按键按下,就重新锁定按键3秒时间并报警。

2.电路原理

图4.32.1

3.系统板上硬件连线

(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)%6;

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)%6;

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;

}

}

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620849
  • 存储器
    +关注

    关注

    38

    文章

    7150

    浏览量

    161998
  • 密码锁
    +关注

    关注

    6

    文章

    249

    浏览量

    34570
收藏 人收藏

    评论

    相关推荐

    单片机电子密码锁毕业设计论文报告完整版【电路图+源代码

    ` 本帖最后由 eehome 于 2013-1-5 09:51 编辑 单片机电子密码锁毕业设计论文报告完整版【电路图+源代码】1课题要求:用单片机设计一个
    发表于 01-06 15:22

    单片机电子密码锁设计

    单片机电子密码锁设计
    发表于 08-20 19:06

    基于STM32单片机设计的电子密码锁

    本文档的主要内容介绍了如何基于STM32单片机设计电子密码锁详细资料概述
    发表于 09-05 16:00

    基于单片机的电子密码锁设计

    资料在文末下载摘要:本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。除上述基本的
    发表于 09-24 08:50

    基于51单片机的电子密码锁程序

    基于51单片机的电子密码锁程序,51单片机控制的万能密码锁系统,PROTEUS仿真文件初始密码:12345678此程序用51
    发表于 07-14 07:26

    基于单片机的电子密码锁设计

    单片机电子密码锁Proteus仿真+程序3.6 开锁机构在基于单片机的电子密码锁设计中,用户需要输入密码
    发表于 11-30 08:24

    使用单片机设计电子密码锁

    本课程设计题目是基于单片机的电子密码锁,由单片机控制程序结合LCD1602显示器实现密码输入、密码显示、
    发表于 09-26 07:52

    用PIC单片机设计电子密码锁

    用PIC单片机设计电子密码锁
    发表于 01-04 14:16 3次下载

    如何基于STM32单片机设计电子密码锁详细资料概述

    本文档的主要内容介绍了如何基于STM32单片机设计电子密码锁详细资料概述
    发表于 06-08 08:00 151次下载

    使用单片机设计的电子密码锁代码和protel电路图详细资料免费下载

    本文档的主要内容详细介绍的是使用51单片机设计的电子密码锁代码+电路图。代码亲测可用,详细原理
    发表于 12-17 08:00 18次下载
    使用<b class='flag-5'>单片机设</b>计的电子<b class='flag-5'>密码锁</b>源<b class='flag-5'>代码</b>和protel电路图<b class='flag-5'>详细资料</b>免费下载

    使用51单片机设计的密码锁程序资料免费下载

    本文档的主要内容详细介绍的是使用51单片机设计的密码锁程序资料免费下载,需要自取。
    发表于 12-18 08:00 15次下载
    使用51<b class='flag-5'>单片机设</b>计的<b class='flag-5'>密码锁</b>程序<b class='flag-5'>资料</b>免费下载

    STC89C52单片机电子密码锁源程序的详细资料说明

    本文档的主要内容详细介绍的是STC89C52单片机电子密码锁源程序的详细资料说明。
    发表于 12-18 16:11 34次下载
    STC89C52<b class='flag-5'>单片机</b>电子<b class='flag-5'>密码锁</b>源程序的<b class='flag-5'>详细资料</b>说明

    使用51单片机设计电子密码锁的程序免费下载

    本文档的主要内容详细介绍的是使用51单片机设计电子密码锁的程序免费下载。
    发表于 07-26 17:36 48次下载
    使用51<b class='flag-5'>单片机设</b>计电子<b class='flag-5'>密码锁</b>的程序免费下载

    使用51单片机设计指纹密码锁的电路原理图和PCB资料免费下载

    本文档的主要内容详细介绍的是使用51单片机设计指纹密码锁的电路原理图和PCB资料免费下载。
    发表于 07-05 08:00 71次下载
    使用51<b class='flag-5'>单片机设</b>计指纹<b class='flag-5'>密码锁</b>的电路原理图和PCB<b class='flag-5'>资料</b>免费下载

    使用单片机设计电子密码锁详细资料说明

    本课程设计题目是基于单片机的电子密码锁,由单片机控制程序结合LCD1602显示器实现密码输入、密码显示、
    发表于 03-17 08:00 5次下载
    使用<b class='flag-5'>单片机设</b>计电子<b class='flag-5'>密码锁</b>的<b class='flag-5'>详细资料</b>说明