资源简介

此文件是代码,矩阵键盘+lcd12864液晶显示 串行;之前也是受这个困惑,希望能帮到有需要的人。

资源截图

代码片段和文件信息

 /***********************************************
 * 矩阵键盘液晶显示
 *当 按键的值不对头时 可能是行列的线接反了  
 *应该把行 列的线 换过来
 ***********************************************/
 #include        //单片机52系列头文件
 #include“lcd12864.h“
  typedef unsigned int u16;
  typedef unsigned char u8;

  #define GPIO_KEY  P1   //定义矩阵键盘的端口为P1
   
  u8  KeyValue;  //定义一个变量
  u8  aa[]={0123456789101112131415};    //数码管的数值0到F

  void  keydown() //键盘扫描
  {
    u8 a;
GPIO_KEY=0x0f; //赋值给行
if(GPIO_KEY!=0x0f) //检测按键是否按下
     {
   delay(100);
   if(GPIO_KEY!=0x0f)  //再次检测按键是否被按下
   {
     GPIO_KEY=0x0f;         //测试行
 switch( GPIO_KEY) //多分支选择结构 看是行的那一个按键按下
     {
  case(0x07):KeyValue=0;break;  //第四行按下
  case(0x0b):KeyValue=1;break;  //第三行按下
  case(0x0d):KeyValue=2;break;  //第二行按下
  case(0x0e):KeyValue=3;break;   //第一行按下
     }


  GPIO_KEY=0xf0;          //测试列
  switch( GPIO_KEY) //判断是列的那一个按键被按下
  {
   case(0x70):KeyValue=KeyValue;break;    //第四列
   case(0xb0):KeyValue=KeyValue+4;break; //第三列
   case(0xd0):KeyValue=KeyValue+8;break; //第二列
   case(0xe0):KeyValue=KeyValue+12;break;   //第一列 
  }

  while((a<50)&&(GPIO_KEY!=0xf0)) //按键检测是否松开
   {
       delay(1000);
        a++;
       } 

   }
     }
  }
  void main()
{
P1=0X00;    //先给P1端口赋值
lcd_init();
Write_XY_String(11“按键号码是:“) ;
while(1)
{
keydown();    //按键判断函数
Set_XY(21);
write_dat(0x30+aa[KeyValue]/10);   //0x30s 连续显示 假若没有 则显示成符号
write_dat(0x30+aa[KeyValue]%10);  //分两种显示,因为有两位数
}
}
  

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

     文件       3361  2018-09-29 21:27  实验6:矩阵键盘液晶显示\lcd12864.h

     文件       1809  2018-09-29 23:10  实验6:矩阵键盘液晶显示\main.c

     文件       4270  2018-09-29 23:10  实验6:矩阵键盘液晶显示\main.LST

     文件       8488  2018-09-29 23:10  实验6:矩阵键盘液晶显示\main.OBJ

     文件       2064  2018-09-29 22:47  实验6:矩阵键盘液晶显示\矩阵键盘液晶显示.hex

     文件         52  2018-09-29 22:47  实验6:矩阵键盘液晶显示\矩阵键盘液晶显示.lnp

     文件      11632  2018-09-29 22:47  实验6:矩阵键盘液晶显示\矩阵键盘液晶显示.M51

    .......     56052  2018-09-30 15:57  实验6:矩阵键盘液晶显示\矩阵键盘液晶显示.uvopt

    .......     13246  2018-09-29 23:10  实验6:矩阵键盘液晶显示\矩阵键盘液晶显示.uvproj

    .......         0  2018-09-29 21:18  实验6:矩阵键盘液晶显示\矩阵键盘液晶显示_uvproj.bak

     目录          0  2018-09-30 15:57  实验6:矩阵键盘液晶显示

     文件        187  2018-09-30 14:45  实验6:矩阵键盘液晶显示\矩阵键盘液晶显示.plg

    .......     56050  2018-09-29 23:10  实验6:矩阵键盘液晶显示\矩阵键盘液晶显示_uvopt.bak

----------- ---------  ---------- -----  ----

               157211                    13


评论

共有 条评论