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

📄 key.c

📁 此代码是我精心调试而成
💻 C
字号:
#include<LPC213X.h>
#include"KEY.h"
void KEY_INIT()
{
 
 PINSEL1 |=1<<18 ;
 AD0CR = (1 << 4)						|	// SEL=8,选择通道3
			((12000000 / 600000 - 1) << 8)	|	// CLKDIV=Fpclk/1000000-1,转换时钟为1MHz
			(0 << 16)						|	// BURST=0,软件控制转换操作
			(0 << 17)						|	// CLKS=0, 使用11clock转换
			(1 << 21)						|  	// PDN=1,正常工作模式
			(0 << 22)						|  	// TEST1:0=00,正常工作模式
			(0 << 24)						|	// START=1,直接启动ADC转换
			(0 << 27);						 	// 直接启动ADC转换时,此位无效
 
}
const enum KeyV Ktab[] = { S10, S9, S8, S7, S6, KEY_NONE,S5, S4,S3,S2,S1};
int KEY_READ()
{
   unsigned char  i=0;
	const unsigned short KeyTable[] =
	 { 0, 0xA8, 0x130, 0x180, 0x1F0, 0x230, 0x270,0x2B0,0x310,0x380,0x3E0,0x410};
   int  ADC_Data=0;
  	AD0CR |= 1 << 24;					// 进行第一次转换
	while ((AD0DR & 0x80000000) == 0);	// 等待转换结束
 
	ADC_Data = AD0DR;					// 读取ADC结
	ADC_Data = (ADC_Data >> 6) & 0x3ff;
 		for(i=0;i<11;i++) {
		if( KeyTable[i] <= ADC_Data && ADC_Data < KeyTable[i+1] ) {
			return Ktab[i];
					}
			}
	return KEY_NONE;
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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