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

📄 jianpan.c

📁 单片机数据通讯典型应用(光盘内容)
💻 C
字号:
#include<reg51.h>

#define KEYBOARD_PORT P1	//定义键盘接口
unsigned char KeyScan ( void );
void KeyBoardProcess ( unsigned char keyValue );
/**************************定时器0初始化程序************************/
void Init_Timer0 ( void )
{
	TMOD |= 0x01;	//定时器0工作于方式1,16位定时器
	TH0=0xB8;		//定时器初始值,11.059MHz晶振下定时20ms
	TL0=0x00;
	EA=1;			//中断使能
	ET0=1;			//使能定时器0中断
	TR0=1;			//开启定时器0
}
/*************************定时器0中断服务程序***********************/
void Timer0_isr(void) interrupt 1 using 1
{
	static unsigned char count = 0 ;
	unsigned char keyValue ;
	TH0=0xB8;
	TL0=0x00;
	if ( 9 < count )
	{
		count = 0 ;
		keyValue = KeyScan() ;	//键盘扫描程序
		KeyBoardProcess( keyValue ) ;		//键盘处理程度
	}
	else
	{
		count ++ ;
	}
}
/*******************************延时函数****************************/
void delay(unsigned char i)
{
	unsigned int j = 1000;
	for ( i ; i > 0 ;i -- )
	{
		while ( j -- ) ;
	}
}

/**********************键盘扫描程序,使用行列反转法********************/
unsigned char KeyScan ( void )
{
	unsigned char keyValue ;
	unsigned char cord_h , cord_l ;	//行列值
	KEYBOARD_PORT = 0x0F ;			//行线输出全为0
	cord_h = KEYBOARD_PORT & 0x0F ;	//读入列线值
	if ( cord_h != 0x0F )			//检测有无键按下
	{
		delay( 10 ) ;				//延时去抖
		if ( cord_h != 0x0F )	 	//确定有键按下
		{
			KEYBOARD_PORT = 0xF0 ;	//列线输出全为0
			cord_l = KEYBOARD_PORT & 0xF0 ;	//读入行线值
			keyValue = cord_h + cord_l ;	//按下键的键值
		}
		else
			keyValue = 0xFF ;
	}
	else
		keyValue = 0xFF ;
	return keyValue ;
}

/*	按键	符号 键值(P1.7-P1.0)	按键		符号  键值(P1.7-P1.0)
	S1	 1		0xEE			S9		 7			0xEB
	S2 	 2		0xDE			S10		 8			0xDB
	S3	 3		0xBE			S11		 9			0xBB
	S4	 ↑		0x7E			S12		 ←			0x7B
	S5	 4		0xED			S13		确定			0xE7
	S6	 5		0xDD			S14		 0			0xD7
	S7	 6		0xBD			S15		取消			0xB7
	S8	 ↓		0x7D			S16		 →			0x77 */
/****************************键盘处理程序***************************/
void KeyBoardProcess ( unsigned char keyValue )
{
	switch ( keyValue )
	{
	case 0xEE :
		//按键1的处理程序
	   	break ;
	case 0xDE :
		//按键2的处理程序
		break;
	case 0xBE :
		//按键3的处理程序
		break;
	case 0x7E :
		//按键↑的处理程序
		break;
	default :
		break;
	}
}

⌨️ 快捷键说明

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