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

📄 matrixkey._c

📁 ATmega16应用例子
💻 _C
字号:
/*********************************************************************
	微 雪 电 子   WaveShare   http://www.waveShare.net	

功能目的:   测试"MatrixKeyBoard"模块

目标系统:   基于任何AVR单片机

应用软件:   ICCAVR                                               

版    本:   Version 1.0

圆版时间:   2005-03-01

开发人员:   SEE

说    明:   若用于商业用途,请保留此段文字或注明代码来源 

	深 圳 微 雪 电 子 保 留 所 有 的 版 权
*********************************************************************/

/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
版本更新记录:

----------------------------------------------------------------------
接入模块: MatrixKeyBoard
接口说明: MatrixKeyBoard	M16SmartGuider	   		
				K0	---------     PD0
                K1	---------     PD1
		 	    		.	
			    		.
				K7  ---------     PD7
----------------------------------------------------------------------
注意事项:
		* 
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/

#include <iom16v.H>
#include "E:\ICC_H\CmmICC.H"

#define LED_DDR 	DDRB
#define LED_PORT 	PORTB
#define KEY_DDR 	DDRA
#define KEY_PORT 	PORTA
#define KEY_PIN  	PINA

/*--------------------------------------------------------------------
函数名称:
函数功能:查询按键
注意事项:
提示说明:
输    入:
返    回:
--------------------------------------------------------------------*/
/*
	K4-----K5-----K6-----K7
     |      |      |      |
	03H----02H----01H----00H -K0
	07H----06H----05H----04H -K1
	0BH----0AH----09H----08H -K2
	0FH----0EH----0DH----0CH -K3
*/
const uint8 setSta_[4]={0xfe,0xfd,0xfb,0xf7};		
const uint8 getSta_[4]={0x70,0xb0,0xd0,0xe0};  
uint8 GetKeyVal()
{
	uint8 i,j,getSta,keyVal;
	for(i=0;i<4;i++)              
	{							
		KEY_PORT = setSta_[i];
		delay50us(1);       
		if(KEY_PIN!=setSta_[i])
		{
			getSta=KEY_PIN&0xf0;
			for(j=0;j<4;j++)    
				if(getSta==getSta_[j])                                 
				{
					keyVal=j+i*4;
					return keyVal;
				}
		}
	}
	return 0xFF;
}
/*--------------------------------------------------------------------
函数名称:
函数功能:
注意事项:
提示说明:
输    入:
返    回:
--------------------------------------------------------------------*/
void main()
{
 	uint8 keyVal;
	LED_DDR = 0XFF;
	KEY_DDR = 0X0F;		
	while(1)
	{
	 	keyVal = GetKeyVal();
		if( keyVal!=0xFF )		
			LED_PORT = keyVal;
	}
}

⌨️ 快捷键说明

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