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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

电子密码锁程序Word格式.docx

1、unsigned char code name = =Coded Lock= /显示名称unsigned char code Correct = correct /输入正确unsigned char code Error = error /输入错误unsigned char code codepass = pass unsigned char code LockOpen = open /OPENunsigned char code SetNew = SetNewWordEnableunsigned char code Input = input: /INPUTunsigned char cod

2、e ResetOK = ResetPasswordOK unsigned char code initword = Init password.unsigned char code Er_try = error,try again!unsigned char code again = input again unsigned char InputData6; /输入密码暂存区unsigned char CurrentPassword6=1,3,1,4,2,0; /当前密码值unsigned char TempPassword6;unsigned char N=0; /密码输入位数记数unsig

3、ned char ErrorCont; /错误次数计数unsigned char CorrectCont; /正确输入计数unsigned char ReInputCont; /重新输入计数unsigned char code initpassword6=0,0,0,0,0,0;/=5ms延时=void Delay5Ms(void) unsigned int TempCyc = 5552; while(TempCyc-);/=400ms延时=void Delay400Ms(void) unsigned char TempCycA = 5; unsigned int TempCycB; whil

4、e(TempCycA-) TempCycB=7269; while(TempCycB-); /=/=24C02=void mDelay(uint t) /延时 uchar i; while(t-) for(i=0;i125;i+) ; void Nop(void) /空操作 _nop_();/*起始条件*/void Start(void) Sda=1; Scl=1; Nop(); Sda=0; /*停止条件*/void Stop(void)/*应答位*/void Ack(void) Sda=0; Nop(); Scl=1; Scl=0;/*反向应答位*/void NoAck(void) Scl

5、=0; /*发送数据子程序,Data为要求发送的数据*/void Send(uchar Data) uchar BitCounter=8; uchar temp; do temp=Data; Scl=0; Nop(); if(temp&0x80)=0x80) Sda=1; else Sda=0; Scl=1; temp=Data1; Data=temp; BitCounter-; while(BitCounter);/*读一字节的数据,并返回该字节值*/uchar Read(void) uchar temp=0; uchar temp1=0; uchar BitCounter=8; Sda=1

6、; do if(Sda) temp=temp|0x01; else temp=temp&0xfe; if(BitCounter-1) temp1=temp0;x-) for(y=110;yy-);/-写指令-write_1602com(uchar com)/*液晶写入指令函数* lcd1602_rs=0;/数据/指令选择置为指令 lcd1602_rw=0; /读写选择置为写 P0=com;/送入数据 delay(1); lcd1602_en=1;/拉高使能端,为制造有效的下降沿做准备 lcd1602_en=0;/en由高变低,产生下降沿,液晶执行命令/-写数据-write_1602dat(uc

7、har dat)/*液晶写入数据函数* lcd1602_rs=1;/数据/指令选择置为数据 P0=dat; /en置高电平,为制造下降沿做准备 /en由高变低,产生下降沿,液晶执行命令/-初始化-void lcd_init(void) write_1602com(0x38);/设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据 write_1602com(0x0c);/开显示不显示光标 write_1602com(0x06);/整屏不移动,光标自动右移 write_1602com(0x01);/清显示/=/=/=将按键值编码为数值=unsigned char coding(unsig

8、ned char m) unsigned char k; switch(m) case (0x18): k=1;break; case (0x28): k=2; case (0x48): k=3; case (0x88): k=A; case (0x14): k=4; case (0x24): k=5; case (0x44): k=6; case (0x84):B case (0x12): k=7; case (0x22): k=8; case (0x42): k=9; case (0x82):C case (0x11):* case (0x21): k=0; case (0x41):# c

9、ase (0x81):D return(k);/=按键检测并返回按键值=unsigned char keynum(void) unsigned char row,col,i; P1=0xf0; if(P1&0xf0)!=0xf0) Delay5Ms(); Delay5Ms(); if(P1& row=P10xf0; /确定行线 i=0; P1=ai; /精确定位 while(i4) if(P1& col=(P1&0xff); /确定列线 break; /已定位后提前退出 else i+; P1=ai; else return 0; while(P1&=0xf0); return (row|co

10、l); /行线与列线组合后返回 else return 0; /无键按下时返回0/=一声提示音,表示有效输入=void OneAlam(void) ALAM=0; ALAM=1;/=二声提示音,表示操作成功=void TwoAlam(void)/=三声提示音,表示错误=void ThreeAlam(void)/=显示输入的N个数字,用H代替以便隐藏=void DisplayOne(void)/ DisplayOneChar(9+N,1,); write_1602com(yi+5+N); write_1602dat(/=显示提示输入=void DisplayChar(void) unsigned

11、 char i; if(pass=1) /DisplayListChar(0,1,LockOpen); write_1602com(er); for(i=0;16; write_1602dat(LockOpeni); if(N=0) /DisplayListChar(0,1,Error); write_1602com(er); write_1602dat(Errori); else /DisplayListChar(0,1,start_line); write_1602dat(start_linei);void DisplayInput(void) if(CorrectCont=1) /Dis

12、playListChar(0,0,Input); write_1602dat(Inputi);/=重置密码=/=void ResetPassword(void) unsigned char j; if(pass=0) pass=0; DisplayChar(); ThreeAlam(); if(ReInputEn=1) if(N=6) ReInputCont+; if(ReInputCont=2) for(i=0;6;) if(TempPasswordi=InputDatai) /将两次输入的新密码作对比 i+; else /DisplayListChar(0,1,Error); write_

13、1602com(er); for(j=0;jj+) write_1602dat(Errorj); ThreeAlam(); /错误提示 pass=0; ReInputEn=0; /关闭重置功能, ReInputCont=0; DisplayChar(); break; if(i=6) /DisplayListChar(0,1,ResetOK); write_1602com(er); for(j=0; write_1602dat(ResetOKj); TwoAlam(); /操作成功提示 WrToROM(TempPassword,0,6); /将新密码写入24C02存储 ReInputEn=0;

14、 ReInputCont=0; CorrectCont=0; else OneAlam(); /DisplayListChar(0, 1, again); /显示再次输入一次 write_1602com(er); for(j=0; write_1602dat(againj); TempPasswordi=InputDatai; /将第一次输入的数据暂存起来 N=0; /输入数据位数计数器清零/=输入密码错误超过三过,报警并锁死键盘=void Alam_KeyUnable(void) P1=0x00; ALAM=ALAM;/=取消所有操作=void Cancel(void) /DisplayListChar(0, 1, start_line); write_1602c

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

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