key.c

来自「采用AD9851设计的一个产生50M 方波」· C语言 代码 · 共 58 行

C
58
字号
/************************************************************************
*文件名:KEY。C                                                         *
*功能:  高频实验箱DDS程序。                                            *
*作者:  杨乐                                                           *
*日期:  2009年1月21日                                                  *
************************************************************************/
#include<REG52.h>
#include<intrins.h>
#include<absacc.h>
#include"key.h"
/************************************************************************
*作者:    杨乐                                                         *
*函数名:  Read_key                                                     *
*功能:    键盘扫描                                                     *
*入口参数:无                                                           *
*返回值:  有                                                           *
*日期:    2009年1月21日                                                *
************************************************************************/
unsigned char Read_key()
{
    unsigned char scancode;
	unsigned char i,j,key_value,tmp; //key_down ;


	KeyPort = 0x0F;
	_nop_();
	tmp = (KeyPort&0x0F)^0x0F;

	if (!tmp)
		return 0xFF;        //无按键		

	scancode = 0x7F;
	for (i = 0; i<4; i++)
	{
		KeyPort = scancode;
		_nop_();
		tmp = (KeyPort | 0xF0);
		if (tmp != 0xFF)
		{
			tmp = ~tmp;
			
			for (j = 4; j >0 ; j--)
			{
				tmp = tmp>>1;
				if (tmp == 0)
				{
					key_value = i + (j-1)*4;
					break;
				}
			}
		}
		scancode = scancode>>1;
		scancode += 0x80;
	}
	return 15-key_value;
}

⌨️ 快捷键说明

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