⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yjkey.c

📁 实现单片机对键盘的响应
💻 C
📖 第 1 页 / 共 2 页
字号:
                Byte1=0xa1;Byte2=0xef;//  显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 8;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键

      break;
      case 0x24:  //第三行第二列, 数字9

                Byte1=0xa1;Byte2=0xef;//  显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 9;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键
      break;

      case 0x44:  //第三行第三列, 确认
      enterflag=1;
      if (count==6)//只有输入6个密码后确认键才做比较
      pwflag=pwcmp();
      else pwflag=0;//否则比较标志位为0
      while(flag==1)//密码正确
      {
                display(0x89,0xa2,0xf0);//输入为空
                display(0x8a,0xa2,0xf0);//输入为空
                display(0x8b,0xa3,0xcf);//o
                display(0x8c,0xa3,0xcb);//k
                display(0x8d,0xa2,0xf0);//输入为空
                display(0x8e,0xa2,0xf0);//输入为空
      }
      while(flag==0)//密码错误
      {
                display(0x89,0xa2,0xf0);//输入为空
                display(0x8a,0xc3,0xdc);//密
                display(0x8b,0xc2,0xeb);//码
                display(0x8c,0xb4,0xed);//错
                display(0x8d,0xce,0xf3);//误
                display(0x8e,0xa2,0xf0);//输入为空
                }
      delay(100000000); //沿时防止连续按键
      break;

      case 0x84:  //第三行第四列, 取消
        add--;
        count--;
        display(add,0xa2,0xf0); //让前面的数显示为空
        delay(100000000); //沿时防止连续按键
        break;

        case 0x18:  //第四行第一列,开机
        POWER=0;
        lcdinit();
        delay(100);
           display(0x82,0xbd,0xf5);//锦
           display(0x83,0xcd,0xbc);//图
           display(0x84,0xca,0xfd);//数
           display(0x85,0xc2,0xeb);//码
           display(0x92,0xca,0xe4);//输
           display(0x93,0xc8,0xeb);//入
           display(0x94,0xc3,0xdc);//密
           display(0x95,0xc2,0xeb);//码
        delay(100000000); //沿时防止连续按键
        break;

        case 0x28:  //第四行第二列,关机
        POWER=1;
        delay(100000000); //沿时防止连续按键
        break;

        case 0x48:  //第四行第三列,点播

        break;

        case 0x88:  //第四行第四列,改密
        while(1)
        {
           display(0x80,0xca,0xe4);//输
           display(0x81,0xc8,0xeb);//入
           display(0x82,0xc1,0xf9);//六
           display(0x83,0xce,0xbb);//位
           display(0x84,0xd4,0xad);//原
           display(0x85,0xca,0xbc);//始
           display(0x86,0xc3,0xdc);//密
           display(0x87,0xc2,0xeb);//码
           key=keyscan();
            switch(key)
      {
       case 0x11: //第一行第一列,数字0
                Byte1=0xa1;Byte2=0xef;// 显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 0;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键
                break;

      case 0x21:  //第一行第二列,数字1

                Byte1=0xa1;Byte2=0xef;// 显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 1;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键
                break;
      case 0x41:  //第一行第三列, 数字2


                Byte1=0xa1;Byte2=0xef;//  显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 2;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键

      break;
      case 0x81:  //第一行第四列, 数字3


               Byte1=0xa1;Byte2=0xef;//  显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 3;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键

      break;
      case 0x12:  //第二行第一列, 数字4


                Byte1=0xa1;Byte2=0xef;// 显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 4;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键

      break;
      case 0x22:  //第二行第二列, 数字5

               Byte1=0xa1;Byte2=0xef;// 显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 5;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键
      break;

      case 0x42:  //第二行第三列, 数字6

                Byte1=0xa1;Byte2=0xef;// 显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 6;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键
      break;
      case 0x82:  //第二行第四列, 数字7

                Byte1=0xa1;Byte2=0xef;//  显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 7;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键

      break;
      case 0x14:  //第三行第一列, 数字8

                Byte1=0xa1;Byte2=0xef;//  显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 8;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键

      break;
      case 0x24:  //第三行第二列, 数字9

                Byte1=0xa1;Byte2=0xef;//  显示五角星
                display(add,Byte1,Byte2);
		pwbuf[count] = 9;
		count++;
                add++;
                judge();
                delay(100000000); //沿时防止连续按键
      break;

      case 0x44:  //第三行第三列, 确认
      enterflag=1;
      if (count==6)//只有输入6个密码后确认键才做比较
      pwflag=pwcmp();
      else pwflag=0;//否则比较标志位为0
      while(flag==1)//密码正确,进入点播
      {
                display(0x89,0xa2,0xf0);//输入为空
                display(0x8a,0xc3,0xdc);//密
                display(0x8b,0xc2,0xeb);//码
                display(0x8c,0xd5,0xfd);//正
                display(0x8d,0xc8,0xb7);//确
                display(0x8e,0xa2,0xf0);//输入为空
                }
      while(flag==0)//密码错误,请重新输入
      {
               for(i=0;i<5;i++)
                {
                display(0x89,0xa2,0xf0);//输入为空
                display(0x8a,0xc3,0xdc);//密
                display(0x8b,0xc2,0xeb);//码
                display(0x8c,0xb4,0xed);//错
                display(0x8d,0xce,0xf3);//误
                display(0x8e,0xa2,0xf0);//输入为空
                delay(10000000000);
                }
                }

                for(i=0;i<5;i++)
                {
                display(0x89,0xc7,0xeb);//请
                display(0x8a,0xd6,0xd8);//重
                display(0x8b,0xd0,0xc2);//新
                display(0x8c,0xca,0xe4);//输
                display(0x8d,0xc8,0xeb);//入
                display(0x8e,0xa2,0xf0);//输入为空
                delay(10000000000);}
                display(0x89,0xa2,0xf0);//输入为空
                display(0x8a,0xa2,0xf0);//输入为空
                display(0x8b,0xa2,0xf0);//输入为空
                display(0x8c,0xa2,0xf0);//输入为空
                display(0x8d,0xa2,0xf0);//输入为空
                display(0x8e,0xa2,0xf0);//输入为空
                add=0x89;//将光标放到初始地址
                count=0;
                }
           }
      delay(100000000); //沿时防止连续按键
      break;

     /* case 0x84:  //第三行第四列, 取消
        add--;
        count--;
        display(add,0xa2,0xf0); //让前面的数显示为空
        delay(100000000); //沿时防止连续按键
        break;*/
             }
      delay(100000000); //沿时防止连续按键
        break;
       }
  }










⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -