独闷闷网

标题: 关于单片机中用矩阵键盘输入然后比较两组数的大小更优化的算法 [打印本页]

作者: 智能化控制_888    时间: 2015-1-4 20:48
标题: 关于单片机中用矩阵键盘输入然后比较两组数的大小更优化的算法
我做了一个温控报警装置,用矩阵键盘输入上限和下限,(如果上限>下限指示灯亮,否则灯不亮),
我已给出我的算法,希望大家给出更加优化的算法出来,我现在的只是比较2组数而且是只有两位数的,
那么要是2组3位数,或则更加多的数,那我这种方法会弄的很复杂,看大家有没有更好的算法。
(注释给大家写详细点:)
void temper_control_service()    //温度控制函数,进行上限和下限比较的函数
{
        if(uiSetData4_flag)          //第四个键按下的标志,表示输入已完成,开始比较
         {
                        if((uiSetData1>uiSetData3)||\
                                ((uiSetData1==uiSetData3)&&uiSetData2>uiSetData4))   //uiSetData1上限十位,uiSetData2上限个位
                                                                                                            //uiSetData3下限十位,uiSetData4下限个位
                        {
                                       
                                XBYTE[0x8000]=0xfe;  //灯亮                          //地址法,用的库函数absacc.h                       
                        }
                        else
                        {
                                XBYTE[0x8000]=0xff;  //灯亮                                     
                        }
                        uiSetData4_flag=0;                                        //完后清零
  }
}       

作者: jianhong_wu    时间: 2015-1-4 20:59
大概看了一下。你不要把输入的个位和十位先转换成一个变量的数值,然后再整个数值比较。不要单独比个位和十位。我《从业将近十年!手把手教你单片机程序框架》“第84节:实时同步把键盘输入的BCD码数组转换成数值的液晶屏显示程序”中有这方面的例子。
作者: 智能化控制_888    时间: 2015-1-4 21:08
鸿哥我就是觉得我这种方法很不好,所以才问下更好的算法,谢谢鸿哥




欢迎光临 独闷闷网 (http://www.dumenmen.com/) Powered by Discuz! X3.2