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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

, q0 }* i( s, J6 M
比如从矩阵键盘值输入1,2,3 要把它转换为123(一百二十三),然后用这个输入值来比较 b=200(比较大小)                                 
就像   double dat1=0.0,dat2=230.0;
9 T! v; }+ G; _7 [) J9 s
  x& v5 l2 g- B# S/ ]3 C5 Bif(dat1>dat2)0 F2 [. s% q4 ]" K0 `% |( N" T9 F8 ~
{   xxx  }
& a* j6 u% k4 M' m  l1 ` else + Q/ }, s" c& p% I2 s
  {      xxx  }
6 _. _. M, j# T6 ~) ?( h8 |1 {* D
/ H- d  Y" T; Q( K1 D9 w
这里的比较 如果输入 1 2 0 就判断 dat1<dat2 ,但是输入 1 4 0 就  dat1>dat2, 也就是它比较的不是一个整体,
而是 一个数一个数的比较,1 4 0 就大于 2 3 0 中 第二位 3 的大小
所以我想问问怎么样把输入的按键值转换为一个整体的数据,先谢谢大佬们解答了,最好能附上程序,空口讲的话我这初学小白太难了
0 W( N3 `% Q9 ?; ~; o# B2 ~/ v# [
; ^1 q' t" F$ |+ {; S+ y; M
5 a, l: b3 F6 c, G& B9 I

$ O8 H: ~: H) f: V" ~4 v

该用户从未签到

2#
发表于 2020-4-15 13:27 | 只看该作者
' g$ p" Q' h% ?$ @
可以定义一个数组,按最大输入位确定长度,初始数据全为大于9,如0x0f,键盘输入的数按序保存,当键盘输入运算符时按序判断数组中不大于9即为有效数据,按位和倍率求和并另存。数组全部复位待用。
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

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

      [+ o) S( T* h. G+ ^; D
    " ~) Q+ e( ]1 X$ tuchar number[3];   
    ) n; J+ ~3 ~8 i0 wuint num;
    8 K$ @* I$ J' ^% ~; {$ z! duchar j=0;
    " }4 q2 ]1 D/ C* \while(j<3)//输入三个数字后跳出: i) V5 b0 h, l- _( G2 R- |# I( L
               {
    + B! x, [! G8 q. [             Key=Keycan();//扫描键值赋值给Key
    + s$ C4 d3 v0 \             KeyDeal(Key);//键值映射键号,矩阵键盘设置0-9,剩余的键号大于十均可                                                      
    % O/ V  p0 B$ ]) e9 B# Q0 d             if(Key==0)K=10;//无键按下不输入
    + @2 T: {0 D" O8 W. P; Z             if((K>=0)&&(K<=9))//有键按下且键号为0-9则输入
    & X3 ~4 W2 |- w/ i. ?% @& T# k             {
    ) l2 P8 R2 ?, @! |                 number[j]=K;//将此键号放进数组( k% @7 |. W) X3 z
                      WriteCommand(0x88+j);                //指显示位置,显示在显示屏* A4 f! b4 u" M/ |: q! c! x, P
                      WriteData(0x0f);7 L, C( d  v, m4 g3 q
                      ++j;                                                                                          
    % a/ W2 I' q" T* M* P             }  0 ~$ L1 X2 E& S; J  w' T
            }1 `3 _" R% m8 d% F  }
    num=number[0]*100+number[1]*10+number[2];/将数组中的元素组合为一个数
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-25 04:48 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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