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

📄 key.c

📁 AVR键盘控制程序AVR键盘控制程序AVR键盘控制程序AVR键盘控制程序AVR键盘控制程序
💻 C
字号:
////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////4*4键盘程序//////////////////////////////////////////////


#include <delay.h>   
#include "key.h"
/******************************按键定义**************************************/
                                
//////////////////////////////////////////////////////////////////////////////

#define KEY_READ_DELAY_US 20 


/////////////////////////////////////////////////////////////////////////////////////////////////
/********键盘扫描函数 读取当前键盘的状态 有按键按下返回相应按键值 无按键按下返回"0x00"**********/

unsigned char key_read(void)
{  unsigned char add;
 unsigned char row_add;        //行地址
 unsigned char col_add;        //列地址
  //KEYPADDec = 0x00;
  //获取列地址
  PORTA&=0X0f;                   //PC高位输出低电平
  DDRA|=0xF0; 
  PORTA|=0X0F;                  //PB0--PB3起用上拉电阻
  DDRA&=0xf0;                   //PB0--PB3为输入
	delay_us(KEY_READ_DELAY_US);
  //delay_ms(10);   //延时10ms,否则可能因为低电平时间太短,出现单片机无法识别按键!重要!
  col_add =~((PINA&0X0f)|0xf0);
  
  
  //获取行地址
  PORTA&=0Xf0;                  //PB低四位输出低电平
  DDRA|=0x0F;
  PORTA|=0XF0;   
  DDRA&=0x0f;
  delay_us(KEY_READ_DELAY_US);
  //delay_ms(10);
  row_add=~((PINA&0Xf0)|0x0f);
  add=row_add+col_add; 
  return add;
}
















⌨️ 快捷键说明

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