AT89S52语言常用程序——锁定键盘的程序

来源:本站
导读:目前正在解读《AT89S52语言常用程序——锁定键盘的程序》的相关信息,《AT89S52语言常用程序——锁定键盘的程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《AT89S52语言常用程序——锁定键盘的程序》的详细说明。
简介:这里给大家分享一个AT89S52语言常用程序——锁定键盘的程序。

#include <reg51.h>#include <absacc.h>#define uchar unsigned char#define uint unsigned intvoid delays(void);uchar kbscan(void);main(){bit CRT; /*密码正确标志,=1密码正确*/bit PRT; /*密码部分输入标志,=1密码部分输入*/uchar COUNT; /*计数单元,存放密码正确的位数*/uchar KEY; /*被按下的键的编码*/CRT=0;PRT=0;COUNT=0;KEY=kbscan();/*键扫描函数*/delays();/*键消抖的延时函数*/switch (KEY){case 0xb7: /*0键*/{if (CRT) {}else/*密码不正确时*/{if (PRT) /*部分密码正确时*/{COUNT=COUNT+1; /*密码正确的位数加1*/if (COUNT==3)/*密码所有位都正确*/{CRT=1;PRT=0;COUNT=0;}}}}; break;case 0x7e: /*1键*/{if (CRT) {/*密码正确时的操作内容*/}else /*密码不正确时*/{PRT=0;COUNT=0;}}; break;case 0xbe: /*2键*/{if (CRT) {/*密码正确时的操作内容*/}else /*密码不正确时*/{if (PRT) /*部分密码正确时,说明密码错误*/ {PRT=0;COUNT=0;}else /*密码正确位数为0时,说明密码第一位正确*/{PRT=1;COUNT=1;}}}; break;case 0xd7: /*#键*/{if (CRT) /*密码正确时,锁定键盘*/{CRT=0;PRT=0;COUNT=0;}}; break;}}// 键消抖的延时函数void delays(void){uchar i;for(i=300;i>0;i--);}//  kbscan(void) 键扫描函数uchar kbscan(void)  {uchar sccode,recode;P1=0xf0;/*发全"0"行扫描码,列线输入*/if((P1&0xf0)!=0xf0)/*若有键按下*/{delays();    /*延时去抖动*/if((P1&0xf0)!=0xf0){sccode=0xfe;/*逐行扫描初值*/while((sccode&0x10)!=0){P1=sccode;/*输出行扫描码*/if((P1&0xf0)!=0xf0)    /*本行有键按下*/{recode=(P1&0xf0)|0x0f;return((~sccode)+(~recode)); /*返回特征字节码*/}else sccode=(sccode<<1)|0x01;/*行扫描码左移一位*/}}}return(0);/*无键按下,返回值为0*/} 

提醒:《AT89S52语言常用程序——锁定键盘的程序》最后刷新时间 2024-03-14 01:02:28,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《AT89S52语言常用程序——锁定键盘的程序》该内容的真实性请自行鉴别。