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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
8 b3 b' @$ F: k5 B6 c0 c
比如从矩阵键盘值输入1,2,3 要把它转换为123(一百二十三),然后用这个输入值来比较 b=200(比较大小)                                 
就像   double dat1=0.0,dat2=230.0;
" I( g9 N- t2 U( _( \7 r5 t% t: }+ P; _
if(dat1>dat2)! |2 q( H/ F9 O$ T
{   xxx  }. _$ q1 p- L3 ~; s/ n
else 9 }2 f5 L8 K5 }/ }& B/ z
  {      xxx  }8 R( E! K% ]& |6 |% k5 m5 i( Q
. w: }  E* [# {) v) Y# Z! A2 b( h

8 r# M+ @) B% I( M
这里的比较 如果输入 1 2 0 就判断 dat1<dat2 ,但是输入 1 4 0 就  dat1>dat2, 也就是它比较的不是一个整体,
而是 一个数一个数的比较,1 4 0 就大于 2 3 0 中 第二位 3 的大小
所以我想问问怎么样把输入的按键值转换为一个整体的数据,先谢谢大佬们解答了,最好能附上程序,空口讲的话我这初学小白太难了
9 E6 G7 j, v: F8 t4 d, |

  {9 s2 F6 k4 S% @8 A+ m3 K" C! U' t. T6 H3 j3 z/ {
$ [, M2 m" I6 x* M- A9 \# F

该用户从未签到

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

4 n/ E; U2 U: R1 k可以定义一个数组,按最大输入位确定长度,初始数据全为大于9,如0x0f,键盘输入的数按序保存,当键盘输入运算符时按序判断数组中不大于9即为有效数据,按位和倍率求和并另存。数组全部复位待用。
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-4-15 13:36 | 只看该作者
    : [( ~2 I5 ~/ Q8 H& n( a9 Y. b$ N
    3 p- I! D5 C. @7 J( o6 b
    uchar number[3];    + K- o* O. r. e' Q9 p
    uint num;; R' j/ h9 v0 L! p; r7 E( s
    uchar j=0;
    " k1 K& u: i( N; i' w, s: J% Cwhile(j<3)//输入三个数字后跳出- |4 e6 N1 u4 h% L# p8 @8 X
               {. I0 b0 a; E9 X7 G* Z+ t
                 Key=Keycan();//扫描键值赋值给Key
    ) M, Q, I! Z2 x: v             KeyDeal(Key);//键值映射键号,矩阵键盘设置0-9,剩余的键号大于十均可                                                      
    & |  g' I, W* ^6 ~4 ^             if(Key==0)K=10;//无键按下不输入" W2 h' F+ U) n
                 if((K>=0)&&(K<=9))//有键按下且键号为0-9则输入$ \; O+ M/ k4 ?& y- C3 @8 o1 l( [6 `0 R  {
                 {% O& V  l' ~# ~, M6 Q1 a, D0 g
                     number[j]=K;//将此键号放进数组
    # A( p4 ^) G: e/ D                  WriteCommand(0x88+j);                //指显示位置,显示在显示屏
    ; \" S. ]; I+ a% D: n  |1 p% P                  WriteData(0x0f);* y9 J" d: c, h1 `# ?7 p' A" q3 t
                      ++j;                                                                                          
    8 K7 w' A" T5 y# c1 Q+ Q) p             }  
    * G' N: S) d& O        }0 W- N. @+ M/ r  K9 s
    num=number[0]*100+number[1]*10+number[2];/将数组中的元素组合为一个数
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-19 16:33 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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