keyscay._h

来自「基于mega128上实现ad7705的驱动程序」· _H 代码 · 共 37 行

_H
37
字号
/*............................................................*/ 
 //键盘扫描函数
 //输入无
 //输出无
 //备注:采用线反转法
 
 uchar key_scay(void) 
  {
   unsigned char key;
   DDRB=0xF0;           //PB0-3为输入,PB4-7为输出,
   PORTB=0x0F;          //行线为1且内部上拉,列线为0
   
   if(PINA&0x08)        //第一行有键按下
     key=0;
   else if(PINA&0x04)   //第二行有键按下
     key=4;
   else if(PINA&0x02)   //第三行有键按下
     key=8;
   else if(PINA&0x01)   //第四行有键按下
     key=12;
   DDRB=0x0F;           //反转I/O口方向
   PORTB=0xF0;          //置行为低电平
   delay_nms(20);       //延迟消抖
   
   if(PINA&0x80)        //第一列有键按下
     key+=0;
   else if(PINA&0x40)   //第二列有键按下
     key+=1;
   else if(PINA&0x20)   //第三列有键按下
     key+=2;
   else if(PINA&0x10)   //第四列有键按下
     key+=3;
   DDRB=0xF0;
   PORTB=0x0F;
   return(key);
  }

⌨️ 快捷键说明

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