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

加入VIP,省得不是一点点
 

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

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

下载须知

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

版权提示 | 免责声明

本文(数显电子密码锁.doc)为本站会员(11****ws)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

数显电子密码锁.doc

1、#include#include#define uchar unsigned char#define uint unsigned intuchar a1=14,b1=14,c1=14,d1=14,e1=14,f1=14,mx1,mx2,mx3,mx4,mx5,mx6;uchar wei,key,queding,esc,change,flag,flag1,flag2,T;uchar x,m1=0,m2=0,m3=0,m4=0,m5=0,m6=0;uchar n1=16,n2=16,n3=16,n4=16,n5=16,n6=16;sbit led=P33;sbit beep=P37;uchar c

2、ode table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x89,0x86,0xc7,0xc8,0xbf,0xc1,0xf6;/H,E,L,N,-,Uuchar code table1=0xfe,0xbf,0xfb,0xf7,0xef,0xdf;#define WaitTime 0x01/定义 CPU 等待时间sfr ISP_DATA=0xe2;/ISP/IAP 数据寄存器声明sfr ISP_ADDRH=0xe3;/ISP/IAP 高字节地址寄存器sfr ISP_ADDRL=0xe4;/ISP/IAP 低字节地址寄存器sfr I

3、SP_CMD=0xe5;/ISP/IAP 命令模式寄存器sfr ISP_TRIG=0xe6;/ISP/IAP 命令触发寄存器sfr ISP_CONTR=0xe7;/ISP/IAP 控制寄存器#define RdCommand 0x01#define PrgCommand 0x02#define EraseCommand 0x03#define WaitTime 0x01/* = 打开 ISP,IAP 功能 = */void ISP_IAP_enable()EA=0; /* 关中断 */ISP_CONTR=ISP_CONTR/* 0001,1000 */ISP_CONTR=ISP_CONTR|W

4、aitTime;/* 写入硬件延时 */ISP_CONTR=ISP_CONTR|0x80;/* ISPEN=1 */* = 关闭 ISP,IAP 功能 = */void ISP_IAP_disable()ISP_CONTR=ISP_CONTR /* ISPEN = 0 */ISP_TRIG =0x00;EA =1;/* 开中断 */* = 公用的触发代码 = */void ISPgoon()ISP_IAP_enable(); /* 打开 ISP,IAP 功能 */ISP_TRIG=0x46; /* 触发 ISP_IAP 命令字节 1 */ISP_TRIG=0xb9; /* 触发 ISP_IAP

5、 命令字节 2 */_nop_();/* = 字节读 = */uchar byte_read(uint byte_addr)ISP_ADDRH=(uchar)(byte_addr8); /* 地址赋值 */ISP_ADDRL=(uchar)(byte_addrISP_CMD =ISP_CMD /* 清除低 3 位 */ISP_CMD =ISP_CMD|RdCommand; /* 写入读命令 */ISPgoon(); /* 触发执行 */ISP_IAP_disable(); /* 关闭 ISP,IAP 功能*/return (ISP_DATA); /* 返回读到的数据 */* = 扇区擦除 =

6、*/void sectorerase(uint sector_addr)uint iSectorAddr;iSectorAddr=sector_addr /* 取扇区地址 */ISP_ADDRH=(uchar)(iSectorAddr 8);ISP_ADDRL=0x00;ISP_CMD =ISP_CMD /* 清空低 3 位*/ISP_CMD =ISP_CMD|EraseCommand;/* 擦除命令 3*/ISPgoon(); /* 触发执行*/ISP_IAP_disable(); /* 关闭 ISP,IAP 功能 */* = 字节写 = */void byte_write(uint byt

7、e_addr, uchar original_data)ISP_ADDRH=(uchar)(byte_addr 8);/* 取地址*/ISP_ADDRL=(uchar)(byte_addr ISP_CMD =ISP_CMD /* 清低 3 位*/ISP_CMD =ISP_CMD|PrgCommand; /* 写命令 2*/ISP_DATA =original_data; /* 写入数据准备*/ISPgoon(); /* 触发执行*/ISP_IAP_disable(); /* 关闭 IAP 功能*/void delay(uint z)uchar i,j;while(z-)for(i=10;i0;

8、i-)/1msfor(j=44;j0;j-);void dis_play(uchar k,uchar information)P2=tableinformation;P0=table1k;delay(3);P0=0xff;void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)dis_play(0,a);dis_play(1,b);dis_play(2,c);dis_play(3,d);dis_play(4,e);dis_play(5,f);void matrixkeys()uchar temp,h;for(h=0;h0;x-)

9、/开机显示“HELLO-“display(10,11,12,12,0,14);while(1)matrixkeys();entering();display(a1,b1,c1,d1,e1,f1);if(queding=1queding=0;m1=byte_read(0x2000);m2=byte_read(0x2002);m3=byte_read(0x2004);m4=byte_read(0x2006);m5=byte_read(0x2008);m6=byte_read(0x200A);a1=14;b1=14;c1=14;d1=14;e1=14;f1=14;if(mx1=m1/密码必须连续错误

10、 3 次时,才能锁定/-所以这里将 FLAG2 置 0flag1=1;/重置密码标志led=0;a1=10;b1=11;c1=12;d1=12;e1=0;f1=14;elsefor(x=100;x0;x-)display(13,0,14,14,14,14); /密码错误显示 “NO-“flag1=0;/若一次输入密码正确,再次输入密码错误,不可更改密码flag2+;/密码错误次数计数标志flag=1;/密码错误重新输入密码标志while(flag22)TR0=1;flag=0;/不再进入清除程序,将 FLAG 置 0display(13,0,14,14,14,14);while(queding

11、=1)/*关锁键 flag1=1 时有效*/led=1;queding=0;flag1=0;a1=14;b1=14;c1=14;d1=14;e1=14;f1=14;mx1=0;mx2=0;mx3=0;mx4=0;mx5=0;mx6=0;while(T=1)/报警结束键盘锁定,数显“SUO-“display(5,15,0,14,14,14);qinchu();while(change=1)/重置密码flag1=0;/若用 IF 语句会出现显示重影matrixkeys();qinchu();switch(wei)case 1:m1=key;n1=10;break;case 2:m2=key;n2=

12、10;break;case 3:m3=key;n3=10;break;case 4:m4=key;n4=10;break;case 5:m5=key;n5=10;break;case 6:m6=key;n6=10;break;case 7:wei=6;break;display(n1,n2,n3,n4,n5,n6);if(queding=1)sectorerase(0x2000);/此段不能和显示函数放一起byte_write(0x2000,m1);/不然会造成密码更改时显示不明显byte_write(0x2002,m2);byte_write(0x2004,m3);byte_write(0x2006,m4);byte_write(0x2008,m5);byte_write(0x200A,m6);change=0;queding=0;led=1;flag=1;/进入清除程序n1=16;n2=16;n3=16;n4=16;n5=16;n6=16;

Copyright © 2018-2021 Wenke99.com All rights reserved

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

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

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