LamborghiniQ7 LamborghiniQ7
再不疯狂,我们就老了
关注数: 4 粉丝数: 29 发帖数: 1,587 关注贴吧数: 4
实在看不懂,请大神给注解一下这个程序 /******************************************************************** * 名称:矩阵键盘扫描 * 功能:矩阵键盘扫描,检测输入数字和运算符号 * 输入:键盘输入 * 输出:无 *********************************************************************/ void matrikeyscan() { uchar temp,fs,a; float key; P1=0xfd; //第三行 temp=P1; temp=temp&0xf0; if(temp!=0xf0) { delayms(10); temp=P1; temp=temp&0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xed: key=1; write('1'); if (sign1==0)//整数处理 { if(sign2==0) number1=number1*10+key; else number2=number2*10+key; } else //小数处理,sing1=1时 { if(sign2==0) //第一个数 { flo_s[fs]='1'; number3=atof(flo_s); fs++; } else //第二个数 { flo_s[fs]='1'; number3=atof(flo_s); fs++; } } break; case 0xdd: key=2; write('2'); if (sign1==0)//整数处理 { if(sign2==0) number1=number1*10+key; else number2=number2*10+key; } else //小数处理 { if(sign2==0) { flo_s[fs]='2'; number3=atof(flo_s); fs++; } else { flo_s[fs]='2'; number3=atof(flo_s); fs++; } } break; case 0xbd: key=3; write('3'); if (sign1==0)//整数处理 { if(sign2==0) number1=number1*10+key; else number2=number2*10+key; } else //小数处理 { if(sign2==0) { flo_s[fs]='3'; number3=atof(flo_s); fs++; } else { flo_s[fs]='3'; number3=atof(flo_s); fs++; } } break; case 0x7d: //"+"加号 key=10; write('+'); sign2=1; symbol='+'; sign1=0;//小数标志清零 number1=number1+number3; number3=0; break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } } }
1 下一页