矩阵键盘控制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;nWriteStr(0x90,keyscan,(i+1)/2);i=-1;}if(keyval==17)i--;//无键按下keyval=17;i++;//在这里写入显示keyscan数组的语句,长度为iWriteStr(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 下一页
评论