ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:64.77KB ,
资源ID:7297263      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7297263.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(44键盘及8位数码管显示构成的电子密码锁设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

44键盘及8位数码管显示构成的电子密码锁设计.docx

1、44键盘及8位数码管显示构成的电子密码锁设计33 44键盘及8位数码管显示构成的电子密码锁 1实验任务 用44组成09数字键及确认键。用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用LED发光二极管亮一秒钟做为提示,同时发出“叮咚”声;若密码不正确,禁止按键输入3秒,同时发出“嘀、嘀”报警声;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。2电路原理图 图4.33.13系统板上硬件连线 (1)把“单片机系统”区域中的P0.0P0.7用8芯排线连接到“动态数码显示”区域中的ABCD

2、EFGH端子上。(2)把“单片机系统“区域中的P2.0P2.7用8芯排线连接到“动态数码显示”区域中的S1S2S3S4S5S6S7S8端子上。(3)把“单片机系统”区域中的P3.0P3.7用8芯排线连接到“44行列式键盘”区域中的R1R2R3R4C1C2C3C4端子上。(4)把“单片机系统”区域中的P1.0用导线连接到“八路发光二极管模块”区域中的L2端子上。(5)把“单片机系统”区域中的P1.7用导线连接到“音频放大模块”区域中的SPK IN端子上。(6)把“音频放大模块”区域中的SPK OUT接到喇叭上。4 程序设计内容 (1)44行列式键盘识别技术:有关这方面内容前面已经讨论过,这里不再

3、重复。(2)8位数码显示,初始化时,显示“P”,接着输入最大6位数的密码,当密码输入完后,按下确认键,进行密码比较,然后给出相应的信息。在输入密码过程中,显示器只显示“8.”。当数字输入超过6个时,给出报警信息。在密码输入过程中,若输入错误,可以利用“DEL”键删除刚才输入的错误的数字。(3)44行列式键盘的按键功能分布图如图4.33.2所示:图4.33.25 C语言源程序 #include unsigned char ps=1,2,3,4,5; unsigned char code dispbit=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f; unsig

4、ned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71, 0x00,0x40,0x73,0xff; unsigned char dispbuf8=18,16,16,16,16,16,16,16; unsigned char dispcount; unsigned char flashcount; unsigned char temp; unsigned char key; unsigned char keycount; unsigned ch

5、ar pslen=5; unsigned char getps6; bit keyoverflag; bit errorflag; bit rightflag; unsigned int second3; unsigned int aa,bb; unsigned int cc; bit okflag; bit alarmflag; bit hibitflag; unsigned char oka,okb; void main(void) unsigned char i,j; TMOD=0x01; TH0=(65536-500)/256; TL0=(65536-500)%256; TR0=1;

6、ET0=1; EA=1; while(1) P3=0xff; P3_4=0; temp=P3; temp=temp & 0x0f; if (temp!=0x0f) for(i=10;i0;i-) for(j=248;j0;j-); temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=7; break; case 0x0d: key=8; break; case 0x0b: key=9; break; case 0x07: key=10; break;

7、temp=P3; P1_1=P1_1; if(key=0) & (key10) if(keycount6) keycount=6; keyoverflag=1;/key overflow else if(key=12)/delete key if(keycount0) keycount-; getpskeycount=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)/enter key if(keycount!=pslen) errorflag=1; rightflag=0; second3=0; else for(i=0

8、;i0;i-) for(j=248;j0;j-); temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=4; break; case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x07: key=11; break; temp=P3; P1_1=P1_1; if(key=0) & (key10) if(keycount6) keycount=6; keyoverflag=1;/key overf

9、low else if(key=12)/delete key if(keycount0) keycount-; getpskeycount=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)/enter key if(keycount!=pslen) errorflag=1; rightflag=0; second3=0; else for(i=0;i0;i-) for(j=248;j0;j-); temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp &

10、0x0f; switch(temp) case 0x0e: key=1; break; case 0x0d: key=2; break; case 0x0b: key=3; break; case 0x07: key=12; break; temp=P3; P1_1=P1_1; if(key=0) & (key10) if(keycount6) keycount=6; keyoverflag=1;/key overflow else if(key=12)/delete key if(keycount0) keycount-; getpskeycount=0; dispbufkeycount+2

11、=16; else keyoverflag=1; else if(key=15)/enter key if(keycount!=pslen) errorflag=1; rightflag=0; second3=0; else for(i=0;i0;i-) for(j=248;j0;j-); temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=0; break; case 0x0d: key=13; break; case 0x0b: key=14; b

12、reak; case 0x07: key=15; break; temp=P3; P1_1=P1_1; if(key=0) & (key10) if(keycount6) keycount=6; keyoverflag=1;/key overflow else if(key=12)/delete key if(keycount0) keycount-; getpskeycount=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)/enter key if(keycount!=pslen) errorflag=1; righ

13、tflag=0; second3=0; else for(i=0;ikeycount;i+) if(getpsi!=psi) i=keycount; errorflag=1; rightflag=0; second3=0; goto a2; errorflag=0; rightflag=1; a2: i=keycount; temp=temp & 0x0f; while(temp!=0x0f) temp=P3; temp=temp & 0x0f; keyoverflag=0;/? void t0(void) interrupt 1 using 0 TH0=(65536-500)/256; TL

14、0=(65536-500)%256; flashcount+; if(flashcount=8) flashcount=0; P0=dispcodedispbufdispcount; P2=dispbitdispcount; dispcount+; if(dispcount=8) dispcount=0; if(errorflag=1) & (rightflag=0) bb+; if(bb=800) bb=0; alarmflag=alarmflag; if(alarmflag=1)/sound alarm signal P1_7=P1_7; aa+; if(aa=800)/light ala

15、rm signal aa=0; P1_0=P1_0; second3+; if(second3=6400) second3=0; errorflag=0; rightflag=0; alarmflag=0; bb=0; aa=0; else if(errorflag=0) & (rightflag=1) P1_0=0; cc+; if(cc1000) okflag=1; else if(cc2000) okflag=0; else errorflag=0; rightflag=0; P1_7=1; cc=0; oka=0; okb=0; okflag=0; P1_0=1; if(okflag=1) oka+; if(oka=2) oka=0; P1_7=P1_7; else okb+; if(okb=3) okb=0; P1_7=P1_7; if(keyoverflag=1) P1_7=P1_7;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1