找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3833|回復: 8
打印 上一主題 下一主題
收起左側

單片機按鍵值怎么轉換為數(shù)據(jù)?

[復制鏈接]
跳轉到指定樓層
樓主
ID:419842 發(fā)表于 2020-4-14 22:43 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
50黑幣
比如從矩陣鍵盤值輸入1,2,3 要把它轉換為123(一百二十三),然后用這個輸入值來比較 b=200(比較大。                                 就像   double dat1=0.0,dat2=230.0;

                                                               if(dat1>dat2)
                                                                {   xxx  }
                                                               else
                                                                      {      xxx  }

這里的比較 如果輸入 1 2 0 就判斷 dat1<dat2 ,但是輸入 1 4 0 就  dat1>dat2, 也就是它比較的不是一個整體,而是 一個數(shù)一個數(shù)的比較,1 4 0 就大于 2 3 0 中 第二位 3 的大小
所以我想問問怎么樣把輸入的按鍵值轉換為一個整體的數(shù)據(jù),先謝謝大佬們解答了,最好能附上程序,空口講的話我這初學小白太難了

最佳答案

查看完整內(nèi)容

思路我都寫在程序里了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:658665 發(fā)表于 2020-4-14 22:43 | 只看該作者
思路我都寫在程序里了

1.jpg (1.63 MB, 下載次數(shù): 103)

1.jpg

矩陣鍵盤模塊(顯示空鍵值).rar

20.6 KB, 下載次數(shù): 6

回復

使用道具 舉報

板凳
ID:213173 發(fā)表于 2020-4-15 07:35 | 只看該作者
可以定義一個數(shù)組,按最大輸入位確定長度,初始數(shù)據(jù)全為大于9,如0x0f,鍵盤輸入的數(shù)按序保存,當鍵盤輸入運算符時按序判斷數(shù)組中不大于9即為有效數(shù)據(jù),按位和倍率求和并另存。數(shù)組全部復位待用。

回復

使用道具 舉報

地板
ID:406231 發(fā)表于 2020-4-15 08:22 | 只看該作者
這個問題也困擾了我很久,后來我想用算式能解決。key=key1*100+key2*10+key3*1
回復

使用道具 舉報

5#
ID:450849 發(fā)表于 2020-4-15 08:31 | 只看該作者
你用個變量 算出你現(xiàn)在輸入的值再做比較。比如你輸入1,2,3,定義value = 1*100+2*10+3;
回復

使用道具 舉報

6#
ID:332444 發(fā)表于 2020-4-15 08:51 | 只看該作者
回復

使用道具 舉報

7#
ID:592807 發(fā)表于 2020-4-15 08:55 | 只看該作者
  1. void bijiao(uint8_t n,int b)//n位數(shù)比較,
  2. {
  3. double data1,data2;
  4. uint8_t times = 0;
  5. data2 = b;
  6. data1 =0;
  7. while(1)
  8. {
  9. data1 = data1 * 10 + KEY;
  10. times++;
  11. if(times >= n)
  12. {break;}

  13. }
  14. if(data1>data2)
  15. {}
  16. else{}


  17. }
復制代碼


b就是你要比較的數(shù),n是你要輸入的位數(shù),比如3位數(shù)。如果你的按鍵矩陣有除了0-9外的按鍵可以將其中一個按鍵做成確認建

回復

使用道具 舉報

8#
ID:452950 發(fā)表于 2020-4-15 09:47 | 只看該作者

uchar number[3];   
uint num;
uchar j=0;
while(j<3)//輸入三個數(shù)字后跳出
           {
             Key=Keycan();//掃描鍵值賦值給Key
             KeyDeal(Key);//鍵值映射鍵號,矩陣鍵盤設置0-9,剩余的鍵號大于十均可                                                     
             if(Key==0)K=10;//無鍵按下不輸入
             if((K>=0)&&(K<=9))//有鍵按下且鍵號為0-9則輸入
             {
                 number[j]=K;//將此鍵號放進數(shù)組
                  WriteCommand(0x88+j);                //指顯示位置,顯示在顯示屏
                  WriteData(0x0f);
                  ++j;                                                                                          
             }  
        }
num=number[0]*100+number[1]*10+number[2];/將數(shù)組中的元素組合為一個數(shù)

回復

使用道具 舉報

9#
ID:584814 發(fā)表于 2020-4-15 11:37 | 只看該作者
壇內(nèi)自行搜索一下“計算器”,你會找到你比想象的更復雜的解決之道。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表