新闻中心

EEPW首页>嵌入式系统>设计应用> 矩阵键盘控制forMSP430

矩阵键盘控制forMSP430

作者: 时间:2016-11-27 来源:网络 收藏
  • /*************************************************************************
  • //名称:KeyScan
  • //参数:储存矩阵键盘结果的数组的指针
  • //返回值:无
  • //功能:将矩阵键盘扫描到的数据存储到数组中
  • *************************************************************************/
  • voidKeyScan(uchar*keyscan)
  • {
  • uchari,n,flag;
  • i=0;
  • flag=0;
  • for(;;)
  • {
  • KeyEvent();
  • if(keyFlag==1)keyFlag=0;
  • if(keyval>=0&&keyval<=9)keyscan[i]=keyval+0;//按下数字键
  • if(keyval==11)keyscan[i]=.;//按下小数点
  • if(keyval==12)//按下退格键
  • {
  • keyscan[i-1]=;//清除前一位
  • i=i-2;//数组指针前移两位
  • flag=1;//小数点标志位置1
  • }
  • if(keyval==13)//按下确定键
  • {
  • keyscan[i]=;
  • break;
  • }
  • if(keyval==16)
  • {
  • for(n=0;n
  • WriteStr(0x90,keyscan,(i+1)/2);
  • i=-1;
  • }
  • if(keyval==17)i--;//无键按下
  • keyval=17;
  • i++;
  • //在这里写入显示keyscan数组的语句,长度为i
  • WriteStr(0x90,keyscan,(i+1)/2);
  • if(flag==1)//有小数点键按下
  • {
  • //在这里写入在显示末尾写入空格的语句
  • Send(1,);
  • flag=0;
  • }
  • }
  • }
  • /*************************************************************************
  • //名称:Str2Float
  • //参数:储存浮点数据result,储存键盘结果的数组指针
  • //返回值:result
  • //功能:将矩阵键盘扫描到的数据转化为浮点数
  • *************************************************************************/
  • floatStr2Float(uchar*keyscan)
  • {
  • floatresult;
  • uchari;
  • uintdot;
  • i=0;
  • dot=0;
  • for(i=0;;i++)
  • {
  • if(keyscan[i]==.)
  • {
  • if(keyscan[i+2]==)keyscan[i+2]=0;
  • if(i==1)result=(keyscan[0]-0)+(keyscan[2]-0)*0.1+(keyscan[3]-0)*0.01;
  • if(i==2)result=(keyscan[0]-0)*10+(keyscan[1]-0)+(keyscan[3]-0)*0.1+(keyscan[4]-0)*0.01;
  • break;
  • }
  • if(keyscan[i]==&&dot==0)
  • {
  • if(i==1)result=keyscan[0]-0;
  • if(i==2)result=(keyscan[0]-0)*10+keyscan[1]-0;
  • break;
  • }
  • }
  • return(result);
  • }

  • 上一页 1 2 下一页

    评论


    技术专区

    关闭