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

📄 4x4键盘._c

📁 ISD1720芯片实现录音,定点录音,播放,定点播放等.
💻 _C
字号:
/*********************************************************************
           注意在调用时要初始化DDRA=0xff;
		   这最好是用中断扫描键盘,在中断里先保存以前DDRA的数值;
		   扫描完后再恢复以前的DDRA的值
***********************************************************************/
#include <iom16v.h>
#include <macros.h>
//#include"延时子程序.c"
#define  uchar unsigned char
#define  uint  unsigned int

uchar key_scan()
{ 
  uchar i=0X7F,key,j=0;
  delay_ms(1);
 do
 { 
   i=(i<<1|i>>7);
   PORTD=i;
   DDRD=0x0F;
   key=PIND;
   j=key&0xF0;
   }while(j==0xF0);
   switch(key)
 { case 0x7E:key=0;break;//0
   case 0x7D:key=10;break;//.
   case 0x7B:key=11;break;//*
   case 0x77:key=15;break;//=
   case 0xBE:key=1;break;//1
   case 0xBD:key=2;break;//2
   case 0xBB:key=3;break;//3
   case 0xB7:key=14;break;//-
   case 0xDE:key=4;break;//4
   case 0xDD:key=5;break;//5
   case 0xDB:key=6;break;//6
   case 0xD7:key=13;break;//+
   case 0xEE:key=7;break;//7
   case 0xED:key=8;break;//8
   case 0xEB:key=9;break;//9
   case 0xE7:key=12;break;//C
   default:key=16;
   }
    return key;}

uchar key_press()
{   uchar i,j;
    DDRD=0XFF;
    PORTD=0XF0;
	DDRD=0X0F;
	delay_ms(1);
	i=PIND;
	if(i==0xF0) j = 0;
	else j = 1;
	return j;
}
/*void main()
{ 
  DDRA=0XFF;
  while(1)
  {    
    if(key_press()) l=key_scan();
	xiansi(l);
  }
 }*/

⌨️ 快捷键说明

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