密码锁程序修改.doc

密码锁程序修改.doc

ID:61416523

大小:44.00 KB

页数:10页

时间:2021-01-27

密码锁程序修改.doc_第1页
密码锁程序修改.doc_第2页
密码锁程序修改.doc_第3页
密码锁程序修改.doc_第4页
密码锁程序修改.doc_第5页
资源描述:

《密码锁程序修改.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、由此键盘改为列1列2列3列4行1123A行2456B行3789C行4*0#D对应上面的键盘及键盘的键值编码方法,各按键及其编码的对应关系如下表所示:按键行号列号键值编码11111H()21221H()31341H()A1481H()42112H()52222H()62342H()B2482H()73114H()83224H()93344H()C3484H()*4118H()04228H()#4348H()D4488H()四位共阴数码管SM管脚图C4afC3C2b121110987SM123456edDpcgC1六.

2、程序详解#ifndef_PWLOCK_H//防止PWLock.h被重复引用#define_PWLOCK_H#include#include#include#include#defineucharunsignedchar#defineuintunsignedintuchardigbit;//字位ucharwordbuf[4];//字型码缓冲区uchart1count;//定时器1由50ms累积到1s所用的计数器ucharcount;//密码位计数

3、ucharpw[4];//初始密码存储区ucharpwbuf[4];//输入密码存储区bitenterflag;//确认键按下与否标志bitpwflag;//密码正确与否标志bitshowflag;//数码管显示与否标志sbitgreen=P2^6;sbitred=P2^7;voiddisplay(void);//显示函数#endif#include"PWLock.h"/*键消抖延时函数*/voiddelay(void){uinti;for(i=10000;i>0;i--);}/*键扫描函数*/ucharkeysc

4、an(void){ucharscancode,tmpcode;P1=0xf0;//发全0行扫描码if((P1&0xf0)!=0xf0)//若有键按下{delay();//延时去抖动if((P1&0xf0)!=0xf0)//延时后再判断一次,去除抖动影响{scancode=0xfe;while((scancode&0x10)!=0)//逐行扫描{P1=scancode;//输出行扫描码if((P1&0xf0)!=0xf0)//本行有键按下{tmpcode=(P1&0xf0)

5、0x0f;/*返回特征字节码,为1的位即对

6、应于行和列*/return((~scancode)+(~tmpcode));}elsescancode=(scancode<<1)

7、0x01;//行扫描码左移一位}}}return(0);//无键按下,返回值为0}/*定时器0中断服务子程序,2ms定时动态扫描显示*/voidtime0_int(void)interrupt1{/*重置2ms定时*/TH0=-2000/256;TL0=-2000%256;if(showflag==1)display();//调用显示函数}/*定时器1中断服务子程序,50ms*/voi

8、dtime1_int(void)interrupt3{uchark;/*重置50ms定时*/TH1=-50000/256;TL1=-50000%256;if(t1count<20){t1count++;}else//计时到1s{TR1=0;//关闭计数器1t1count=0;green=1;//绿灯不亮red=1;//红灯不亮showflag=1;//打开数码管显示digbit=0x01;//从数码管第1位开始动态显示for(k=0;k<4;k++)//显示8888wordbuf[k]=8;}}/*根据共阴极字型编

9、码表获取0~9,A~B字型代码*/uchargetcode(uchari){ucharp;switch(i){case0:p=0x3f;break;/*0*/case1:p=0x06;break;/*1*/case2:p=0x5B;break;/*2*/case3:p=0x4F;break;/*3*/case4:p=0x66;break;/*4*/case5:p=0x6D;break;/*5*/case6:p=0x7D;break;/*6*/case7:p=0x07;break;/*7*/case8:p=0x7F;

10、break;/*8*/case9:p=0x67;break;/*9*/case10:p=0x77;break;/*A*/case11:p=0x7C;break;/*B*/case12:p=0x39;break;/*C*/case13:p=0x5E;break;/*D*/case14:p=0x79;break;/*E*/case15:p=0x71;break;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。