4*4键盘输入任何数,通过串口发送出去,出现问题了!!百度上说需要一个变量保存啊!不知道怎么保存,然后发送出去
void dispaly_number()
{
uchar number[]={"000"}; ////取多少位数
char i=0; ////高位在前,低位在后。
number[0]=datc%1000/100+'0';
number[1]=datc%100/10+'0';
number[2]=datc%10/1+'0';
for(i=0;i<3;i++)
{
delay(1000);
SendData(number[i]);
delay(1000);
}
SendString("
");
}
void KeyDown()
{
uchar bai,shi,ge,ci;
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f)//读取按键是否按下
{
delay(1);
if(GPIO_KEY!=0x0f)//再次检测键盘是否按下
{
//测试列
GPIO_KEY=0X0F;
switch(GPIO_KEY)
{
case(0X07): KeyValue_l=0;break;
case(0X0b): KeyValue_l=1;break;
case(0X0d): KeyValue_l=2;break;
case(0X0e): KeyValue_l=3;break;
}
//测试行
GPIO_KEY=0XF0;
switch(GPIO_KEY)
{
case(0X70): KeyValue_h=0;break;
case(0Xb0): KeyValue_h=1;break;
case(0Xd0): KeyValue_h=2;break;
case(0Xe0): KeyValue_h=3;break;
}
a1=KeyValue_h*4+KeyValue_l; //得出键值
a1++;
if(a1==11)
a1=0;
if(a1==10)
datc=datc/10;
ge=0;
shi=0;
bai=0;
}
}
////-------------------------------------------------------------------------------
// switch(a1)
// {
// case(10): datc=0;break;
// case(0): datc=1;break;
// case(1): datc=2;break;
// case(2): datc=3;break;
// case(3): datc=4;break;
// case(4): datc=5;break;
// case(5): datc=6;break;
// case(6): datc=7;break;
// case(7): datc=8;break;
// case(8): datc=9;break;
// }
///*****************************************************************************///
if(a1<12)
{
ci++;
if(ci==4)
{
ci=1;
}
if(ci==1)
{
ge=a1;
datc=ge;
// if((flag==1)&&(key==0))
// {
//
// dispaly_number();
//
// }
}
//--------------------------------------------------------------------------------------------------
if(ci==2)
{
flag=1;
shi=ge*10;
datc=a1+shi;
// if((flag==1)&&(key==0))
// {
//
// dispaly_number();
//
// }
}
///-------------------------------------------------------------------------------------------
if(ci==3)
{
if(datc>25)
{
datc=0;
}
else
{
if(datc==25&&a1>5)
datc=0;
else
{
bai=datc*10;
datc=bai+a1;
}
}
}
}
dispaly_number();
////---------------------------------------------------------------------------------------
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>