资源简介

文件内含完整代码与Proteus仿真图,通过4×4矩阵键盘输入密码,密码将在LDC1602液晶显示屏上显示,按下输入键将输入密码与预设密码校对

资源截图

代码片段和文件信息

/*************************************************  
*文件名称: keyscan.c
*作 者:    
*版 本:    V1.00
*环 境:    Keil uVision4
*说 明:    矩阵键盘扫描实验
*修改记录: 2020.5  
--------------------------------------------------
/*********************引脚定义********************/
#include “reg51.h“
#include “intrins.h“
#define uchar unsigned char //数据类型宏定义
#define uint unsigned int  //数据类型宏定义
#define outk  P1
/*********************延时函数********************/
void delayms1(uint j)
 {
  uchar i;
  for(;j>0;j--)
   {
i=250;
    while(--i);
    i=249;
    while(--i);
   }
 }
/*********************键盘处理********************/
uchar KeyScan(void)
 {
   uchar cord_hcord_l;//行列值中间变量
   outk=0x0f;    //行线输出全为0
   cord_h=outk&0x0f;   //读入列线值
   if(cord_h!=0x0f)    //先检测有无按键按下
  {
   delayms1(10);        //去抖
  if((outk&0x0f)!=0x0f)
   {
    cord_h=outk&0x0f;  //读入列线值
    outk=cord_h|0xf0;  //输出当前列线值
    cord_l=outk&0xf0;  //读入行线值

    while((outk&0xf0)!=0xf0);//等待松开并输出

    return(cord_h+cord_l);//键盘最后组合码值
   }
  }return(0xff);     //返回该值
}
/*------------------------------------------------
按键值处理函数,返回扫键值
------------------------------------------------*/
unsigned char KeyPro(void)
{
 switch(KeyScan())
 {
  case 0x7e:return 0;break;//0 按下相应的键显示相对应的码值
  case 0x7d:return 1;break;//1
  case 0x7b:return 2;break;//2
  case 0x77:return 3;break;//3
  case 0xbe:return 4;break;//4
  case 0xbd:return 5;break;//5
  case 0xbb:return 6;break;//6
  case 0xb7:return 7;break;//7
  case 0xde:return 8;break;//8
  case 0xdd:return 9;break;//9
  case 0xdb:return ‘A‘;break;//a
  case 0xd7:return ‘B‘;break;//b
  case 0xee:return ‘C‘;break;//c
  case 0xed:return ‘D‘;break;//d
  case 0xeb:return ‘E‘;break;//e
  case 0xe7:return ‘F‘;break;//f
  default:return 0xff;break;
 }
}  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1962  2020-07-14 00:06  密码锁\密码锁\keyscan.c

     文件        127  2020-07-13 13:03  密码锁\密码锁\KEYSCAN.H

     文件       3890  2020-07-21 12:10  密码锁\密码锁\keyscan.LST

     文件       2900  2020-07-21 12:10  密码锁\密码锁\keyscan.OBJ

     文件     133179  2020-07-21 12:10  密码锁\密码锁\Last Loaded 密码锁.DBK

     文件       1708  2020-07-13 21:44  密码锁\密码锁\LCD1602.C

     文件        377  2020-07-13 14:38  密码锁\密码锁\LCD1602.H

     文件       4430  2020-07-21 12:10  密码锁\密码锁\LCD1602.LST

     文件       5499  2020-07-21 12:10  密码锁\密码锁\LCD1602.OBJ

     文件       3147  2020-07-27 19:43  密码锁\密码锁\main.c

     文件       7011  2020-07-21 12:10  密码锁\密码锁\main.LST

     文件       5196  2020-07-21 12:10  密码锁\密码锁\main.OBJ

     文件       6160  2020-07-10 11:14  密码锁\密码锁\mima.c

     文件      12068  2020-07-10 11:14  密码锁\密码锁\mima.LST

     文件       1484  2020-07-10 00:11  密码锁\密码锁\uart.c

     文件        242  2020-05-08 23:31  密码锁\密码锁\UART.H

     文件       3137  2020-07-13 23:19  密码锁\密码锁\uart.LST

     文件       2660  2020-07-13 23:19  密码锁\密码锁\uart.OBJ

     文件      11674  2020-07-21 12:10  密码锁\密码锁\密码箱

     文件       2522  2020-07-21 12:10  密码锁\密码锁\密码箱.hex

     文件         74  2020-07-21 12:10  密码锁\密码锁\密码箱.lnp

     文件      14668  2020-07-21 12:10  密码锁\密码锁\密码箱.M51

     文件       2631  2020-07-21 12:10  密码锁\密码锁\密码箱.plg

    .......     91746  2020-07-27 19:43  密码锁\密码锁\密码箱.uvgui.茂名余文乐

    .......      6104  2020-07-27 19:43  密码锁\密码锁\密码箱.uvopt

    .......     14595  2020-07-27 19:34  密码锁\密码锁\密码箱.uvproj

    .......     58675  2020-07-20 14:52  密码锁\密码锁\密码箱_uvopt.bak

    .......     13729  2020-07-13 14:41  密码锁\密码锁\密码箱_uvproj.bak

     文件     133056  2020-07-27 19:45  密码锁\密码锁\密码锁.DSN

     文件        768  2020-07-27 19:45  密码锁\密码锁\密码锁.PWI

............此处省略5个文件信息

评论

共有 条评论