c语言手机键盘

Python019

c语言手机键盘,第1张

#include <stdio.h>

int main()

{

int i,j,s=0,t=1

char a[100],b[]="adgjmptw",c,p[100]

gets(a)

for(i=0a[i]!='\0'i++)

{

for(j=0a[i]>=b[j]j++)

j--

c=b[j]

printf("%c%d",c,a[i]-b[j]+1)

}

p[s]='\0'

}

用AD转,16个电阻串联在一起,每个节点引出线与按键相连,按键另一端为公共端与P1^n相连。然后AD口采集到的电压也不同,就能判别按的是哪个按键,因此只要写AD采样程序就可以了

这是STC12C2052AD的例子

/**********************************************************AD转换**********************************************************/

voidInitADC()

{P1=0xff

ADC_CONTR|=0x80

delayNOP(200)

P1M0=0x01//这两个寄存器用来设置P1口四种状态,每一位对应一个P1引脚,按状态组合操作

P1M1=0x01//设置P1.0为开漏状态

delayNOP(200)

}

uintADC()

{

ADC_DATA=0//清除结果ADC_CONTR=0x60//转换速度设置0x60最快速度ADC_CONTR=0xE0//1110,0000清ADC_FLAG,ADC_START位和低3位

ADC_CONTR=0xe0

delayNOP(200)//使输入电压达到稳定

ADC_CONTR=0xe8//1110,1000令ADCS=1,启动A/D转换,

while(1)//等待A/D转换结束

{

if(ADC_CONTR&0x10)//0001,0000测试A/D转换结束否

{break}

}

ADC_CONTR=0xe0//1110,0111清ADC_FLAG位,关闭A/D转换,

delayNOP(400)returnADC_DATA//返回A/D10位转换结果

}

voidADC_to_key()//ADC数据转换按键信号

{

V=ADC()

。。。

。。。

。。。你自己完成咯}

1、在键盘区的大Enter上方,是有一个|和一个\组成的那个键,然后用shift+这个键就可以打出来了。有时候是分成两段的,这是在C语言编辑器中的效果,并不影响编译。

2、果任一操作数或两个操作数为true,则逻辑“或”运算符 (||) 返回布尔值true;否则返回false。操作数在计算之前隐式转换为类型bool,结果的类型为bool。逻辑“或”具有从左向右的关联性。

or运算符是||的等效文本。

逻辑“或”运算符的操作数不需要是同一类型,但是它们必须是整型或指针类型。操作数通常为关系或相等表达式。

第一个操作数将完全计算,并且在继续计算逻辑“或”表达式之前将完成所有副作用。

仅当第一个操作数的计算结果为 false (0) 时计算第二个操作数。在逻辑“或”表达式为 true 时,这将消除对第二个操作数的不必要的计算。