好像不是数据类型的问题是我的程序有问题,大家帮我看看吧?
我是想要从键盘按下的数字取出数据,比如说按下8和9,要求取出89.但是在程序里面没法区分你是第几次按键,所以我加了个计数器。
if((P1&0x0F)!=0x0F) //是否有按键按下,由于程序前后关联比较多没法全部发出来,就不要深究了
{
if(uc_KeyShock==250) //防抖,不要深究
{
k=k+1; //这里是计数器,判断是第几次按键
if (k==1)
{
vKeyProcess(ucKeyScan()); //扫描键盘,并把扫描结果进行处理,程序太多不要深究
key1=ul_Number; //看这里,第一次按键后把按下的数字赋给key1
}
if (k==2)
{
vKeyProcess(ucKeyScan()); //扫描键盘,并把扫描结果进行处理,不要深究
key2=ul_Number; //看这里,第二次按键,把值赋给key2
}
uc_KeyShock=0; //恢复防抖动标志初始值。
}
else uc_KeyShock++; //如果有抖动则不执行键扫描,增加计数。
}
temp=(int)key1*1000 + (int)key2*100 //把两次按键组合成一个数字放大100倍。我怀疑前面通过计数器取出来的key1和key2是有问题的,但是不知道怎么取出两次按键的值再组合成一个数字
k的初值是0.由于前后程序较多没办法全部发出来,只请大家帮忙看看怎么取出两次按键的值并组合成一个数字? |