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

📄 4x5text.c

📁 4x5的键盘扫描,一个实用的单片机键盘程序
💻 C
字号:
/*****************************************************************
File:4x5text.c
Author:xiaorunyi
Edition:V1.0
Email:qq315626168@126.com
www.ednchina.com/blog/xiaorunyi
功能:4x5健盘铃声测试
******************************************************************/
#include <reg51.h>

#define uint unsigned int
#define uchar unsigned char

void kbscan();             //4*5按键扫描
void delay(int count);
unsigned char kbp;        //存储键值

sbit bell=P1^4;
/*************************************************************                                                          
蜂鸣器响一声                                              
*************************************************************/
void  delay1(uchar x)
{ uchar j;
    while((x--)!=0)
    { for(j=0;j<125;j++)
         {;}
    }
}
void beep()
{
  unsigned char i;
  for (i=0;i<100;i++)
   {
   delay(4);
   bell=!bell;       	//BEEP取反
   } 
   bell=1;           	//关闭蜂鸣器
   delay1(250);       	//延时     
}

main()
{
   while(1)
   {
     kbscan();
	if(kbp!=0xff)
         beep();
   }// end while
}//end maim

void kbscan()    
{
    unsigned char scanrow[]={0xfb,0xf7,0xef,0xdf,0x7f}; 
    unsigned char scancol[]={0xfe,0xfd,0xfb,0xf7}; 
    uint row,col,kbtemp;          //计数器定义
	kbp=0xff;
	for(row=0;row < 5;row++)
	{
     P3=scanrow[row];               //0值输出 
     kbtemp=P1&0x0f;				//取P1口值
	 if(kbtemp !=0x0f)       
	 {
       delay(7);              		//延时去斗
       if(kbtemp !=(P1&0x0f));    	//再次判断是否有健按下
	   {
         for(col=0;col<4;col++)
		 {
           if(kbtemp==(scancol[col]&0x0f))
           kbp=row*4+col;
		 } // for col detect
		 delay(7);              	//等待延时
		 while((P1&0x0f)!=0x0f);    //等待按键释放
		 while((P1&0x0f)!=0x0f);    //等待按键释放
 	   } // end if keyin 
     } // end if keyin 
	} // for row
}  // end kbscan

void delay(uint count)
{
   int i,j;
   for(i=0;i<count;i++)
       for(j=0;j<122;j++);
} 

⌨️ 快捷键说明

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