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

📄 键盘扫描程序1.txt

📁 这是几个常用的键盘扫描程序
💻 TXT
字号:
4×4键盘程序(c语言) 分类:默认栏目#include <AT89X51.C> 

unsigned char code table[]={0x01,0x02,0x03,0x04,
       0x05,0x06,0x07,0x08
       0x09,0x0a,0x0b,0x0c
       0x0d,0x0e,0x0f,0x00};
unsigned char temp;
unsigned char key;
unsigned char i,j;


void main(void)
unsigned char loop;     //列数
unsigned char mark=0x10;  //
while(1)   //开始无限循环
{
 for(loop=0;loop<4;loop++)//共4列,分别循环4次
 p3=~(mark<<loop);  //mark=100000<<0,后取反为11100000
 temp=p3;  //读取p3口当前值
 temp=temp&0x0f;  //屏蔽高4位
 if (temp!=0x0f)  //判断temp的值是否等于0x0f 
 {for(i=50;i>0;i--)
 for(j=200;j>0;j--)  //等待50次200的循环
  
  temp=p3;  //又读一遍
  temp=temp&0x0f;
  if(temp!= 0x0f) // temp的低4位不等于0x0f
  {     switch(temp)
   case 0x0e:key=0;break;
   case 0x0d:key=1;break;
   case 0x0b:key=2;break;
   case 0x07:key=3;break;
   break;
   default;break;
   key=key+loop*4;  // 每循环一次,k的值就加4
   //send key value by uart   传送key的值
   while ((p3&0x0f)!=0x0f);  //如果按键没有松开就一直等
   
 }}}

⌨️ 快捷键说明

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