智能化控制_888 发表于 2015-1-4 20:48:06

关于单片机中用矩阵键盘输入然后比较两组数的大小更优化的算法

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

jianhong_wu 发表于 2015-1-4 20:59:06

大概看了一下。你不要把输入的个位和十位先转换成一个变量的数值,然后再整个数值比较。不要单独比个位和十位。我《从业将近十年!手把手教你单片机程序框架》“第84节:实时同步把键盘输入的BCD码数组转换成数值的液晶屏显示程序”中有这方面的例子。

智能化控制_888 发表于 2015-1-4 21:08:22

鸿哥我就是觉得我这种方法很不好,所以才问下更好的算法:lol:lol:lol:lol:lol,谢谢鸿哥:D:D
页: [1]
查看完整版本: 关于单片机中用矩阵键盘输入然后比较两组数的大小更优化的算法