找回密码
 注册
关于网站域名变更的通知
查看: 375|回复: 2
打印 上一主题 下一主题

单片机按键值转换问题?,求助

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-15 10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
1 V/ I( I; F4 I. t/ O+ ^$ X
比如从矩阵键盘值输入1,2,3 要把它转换为123(一百二十三),然后用这个输入值来比较 b=200(比较大小)                                 
就像   double dat1=0.0,dat2=230.0;
5 }/ L0 O- O$ T% }- n8 \1 \' T7 c: ?' ?9 O5 X
if(dat1>dat2)
+ n$ r2 U- r6 p{   xxx  }1 n2 Q8 [6 Q( m: Y4 D  s, Z
else
. P7 x4 A, j1 v' |  {      xxx  }7 e) ?3 U/ R6 }* f# ~

% L' H+ B+ {3 }  n% Z7 L4 y% b* t* H
这里的比较 如果输入 1 2 0 就判断 dat1<dat2 ,但是输入 1 4 0 就  dat1>dat2, 也就是它比较的不是一个整体,
而是 一个数一个数的比较,1 4 0 就大于 2 3 0 中 第二位 3 的大小
所以我想问问怎么样把输入的按键值转换为一个整体的数据,先谢谢大佬们解答了,最好能附上程序,空口讲的话我这初学小白太难了
; `! g0 c, ]$ M  [6 b1 k8 p
1 N9 ?( n: O# e5 a1 {+ [( n

4 p- r9 j( a; O1 W( t
, b- @0 t# Q- K; M6 i2 ~

该用户从未签到

2#
发表于 2020-4-15 13:27 | 只看该作者

3 u/ g& f( `" H" Z# r可以定义一个数组,按最大输入位确定长度,初始数据全为大于9,如0x0f,键盘输入的数按序保存,当键盘输入运算符时按序判断数组中不大于9即为有效数据,按位和倍率求和并另存。数组全部复位待用。
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-4-15 13:36 | 只看该作者

    7 l" G. x3 c9 j6 F$ U2 z
    ' J. m4 z1 n/ F1 Uuchar number[3];   
    * J, z- b) h" q$ x; z3 Cuint num;
    + N( Q- [4 d* j% l; euchar j=0;9 ?; ^' \& G- n# |" z
    while(j<3)//输入三个数字后跳出
    % L+ q! v/ _$ W4 V           {
    ' m: E; H7 S# l& h             Key=Keycan();//扫描键值赋值给Key
    , _. f$ S: ~3 n9 W6 S             KeyDeal(Key);//键值映射键号,矩阵键盘设置0-9,剩余的键号大于十均可                                                      . g' j2 j0 i/ X! t8 J% }
                 if(Key==0)K=10;//无键按下不输入8 R. Y: I) e$ T$ X" ^/ q
                 if((K>=0)&&(K<=9))//有键按下且键号为0-9则输入
    , t2 U5 o0 k" p, D3 t             {
    4 t% a* D6 G4 I/ I6 g+ w                 number[j]=K;//将此键号放进数组
    1 O# H  x9 k& i$ y8 G, H& [                  WriteCommand(0x88+j);                //指显示位置,显示在显示屏
    * f3 S/ k9 ]' m; a$ d0 ]                  WriteData(0x0f);
      `4 J0 ]* `* ]6 S# X; X/ D                  ++j;                                                                                           , j4 E  C& E! Z5 W) B
                 }  
    $ o0 p. Z" Z2 n        }
    " ^- M/ r$ s+ T% V7 }num=number[0]*100+number[1]*10+number[2];/将数组中的元素组合为一个数
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-11 07:28 , Processed in 0.140625 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表