032、电子密码锁设计.doc

上传人:滴答 文档编号:1276062 上传时间:2019-01-26 格式:DOC 页数:7 大小:56.50KB
下载 相关 举报
032、电子密码锁设计.doc_第1页
第1页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、32 电子密码锁设计 1实验任务 根据设定好的密码,采用二个按键实现密码的输入功能,当密码输入正确之后,锁就打开,如果输入的三次的密码不正确,就锁定按键 3 秒钟,同时发现报警声,直到没有按键按下 3种后,才打开按键锁定功能;否则在 3秒钟内仍有按键按下,就重新锁定按键 3 秒时间并报警。 2电路原理图 图 4.32.1 3系统板上硬件连线 ( 1) 把 “ 单片机系统 ” 区域中的 P0.0/AD0 用导线连接到 “ 音频放大模块 ”区域中的 SPK IN 端子上; ( 2) 把 “ 音频放大模块 ” 区域中的 SPK OUT 端子接喇叭和; ( 3) 把 “ 单片机系统 ” 区域中的 P2

2、.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) 按键禁止功能:初始化时,是 允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在 3 次密码输入不正确的情况下发生的。 5 C语言源程序 #include unsigned char code ps=1,2,3,4,5; unsigned char code dispcode=0x3f,0x06,0x5b,0x4f

4、,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 psbuf9; bit cmpflag; bit hibitflag; bit errorflag; bit rightflag; unsigned int second3; unsigned int aa; unsigned int bb; bit

5、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=dispcodedigitcount; 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

6、;i0;i-) for(j=248;j0;j-); if(P3_6=0) if(hibitflag=0) funcount+; if(funcount=pslen+2) funcount=0; cmpflag=1; P1=dispcodefuncount; else second3=0; while(P3_6=0); if(P3_7=0) /digit key for(i=10;i0;i-) for(j=248;j0;j-); if(P3_7=0) if(hibitflag=0) digitcount+; if(digitcount=10) digitcount=0; P2=dispcoded

7、igitcount; if(funcount=1) pslen=digitcount; templen=pslen; else if(funcount1) psbuffuncount-2=digitcount; else second3=0; while(P3_7=0); else cmpflag=0; for(i=0;ipslen;i+) if(psi!=psbufi) hibitflag=1; i=pslen; errorflag=1; rightflag=0; cmpflag=0; second3=0; goto a; cc=0; errorflag=0; rightflag=1; hi

8、bitflag=0; a: cmpflag=0; void t0(void) interrupt 1 using 0 TH0=(65536-500)/256; TL0=(65536-500)%256; if(errorflag=1) 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) cc+; if(cc1000) okflag=1; else if(cc2000) 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;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 演示文稿

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。