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

按键按下提示返回?

[复制链接]
  • TA的每日心情

    2019-11-20 15:01
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    为何加上if(P1=0x0F){keyNo=0xFF;return;} //无按键按下时提前返回,程序就无法正常运行了?请大神们看看* F% S5 b8 B- |. N7 q- f

    , Y- S3 O/ M7 {6 I5 P: y$ |+ M

    & t- K( ^& V* t- Z) Pvoid main()1 h& e% A* e+ o/ a5 Y
    {, L: [- Z# @  s! ^
              P0 = 0xFF;
    5 c* e( u4 Z- A) |7 @" J        while(1): @. A# C! v* e6 o/ r( V5 f
            {
    - ?0 m- @4 E9 y0 [: ^: o/ N- p" ~8 H                Keys_Scan();
    ( @9 p4 b7 ?0 @$ E3 R* w                IF (keyNo == 0xFF) {delay_ms(10);continue;}
    ! }$ O& }1 p) z7 P% j8 t+ q, g$ k                P0 = SEG_CODE[keyNo];Beep();
    * r* w7 h' N. e+ W3 R& N                while (Keys_Scan(), keyNo != 0xFF);6 }6 |- w# a" m/ x
             }
    - ^) f4 e' m+ k/ ], S}1 N2 z/ @# U" K6 U$ s! a& ~
    void Keys_Scan()
    7 G$ N5 [. h/ V& I5 W! _{ : ?+ c. M5 }* W. X5 L* w' z
            P1=0x0F;delay_ms(1);  ^2 c; a  {' N- B; K9 v
    //        if(P1=0x0F){keyNo=0xFF;return;}        //无按键按下时提前返回
    8 |/ z) y! K& ]( }& r9 f        //按键后00001111将变成0000XXXX,X中1个为0,3个为1
    4 ?9 E- m8 V/ p* u# e+ t        //下面判断按键发生在0~3列中的那一列* B* G3 L0 x9 a8 d+ N
            switch(P1)
    . M! `6 q0 G" j4 p8 t) s( q8 r        {% n, v4 T9 ~7 c# _. l
                    case 0x0E:keyNo = 0; break;
    $ u3 a6 |# c5 B! C  M4 f                case 0x0D:keyNo = 1; break;
    / r- T* F) A7 s) f- t  S4 g                case 0x0B:keyNo = 2; break;2 x8 h' z0 B- ?9 q- I  |% {
                    case 0x07:keyNo = 3; break;# g  ~0 n. Z  Y: x: ]
                    default: keyNo = 0xFF;return;
    : A7 V' A* E+ S$ Z$ o         }
    5 D. v1 E/ }2 ?5 \         P1 = 0xF0; delay_ms(1);
    8 h5 P/ R- j5 N% \+ Z* I         //判断按键发生在哪一行并且加上列号确定准确的位置
    8 Y8 T) H( a) l4 c/ I         switch (P1)% W/ S) q9 x7 h' q
             {
    1 _, E+ C! F, o, m8 ^                 case 0xE0: keyNo +=0; break;
    ) ?6 C% t: q: I* O. B                case 0xD0: keyNo +=4; break;( J2 X& Y2 g, A; ]" H" i4 ?! m& u
                    case 0xB0: keyNo +=8; break;
    ) d' d  J- H8 s! D                case 0x70: keyNo +=12;break;
    : w4 y, f, I) B- f& K                default:  keyNo = 0xFF;
    ) L- Y/ F9 V0 i! J8 d( A% [" W8 J: Z         }
    * J% I7 {4 _, X               
    5 J9 F% O' k% x$ t: y/ T2 P9 ]& n/ f. t) ], h! N

    该用户从未签到

    2#
    发表于 2019-9-18 16:33 | 只看该作者
    按键会不会定义错

    点评

    不会的,不加那句就可以,加了后就不行了  详情 回复 发表于 2019-9-18 16:40
  • TA的每日心情

    2019-11-20 15:01
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
     楼主| 发表于 2019-9-18 16:40 | 只看该作者
    Quiescent_521 发表于 2019-9-18 16:33; a3 x! [9 [" I1 k" ~  l
    按键会不会定义错

    # b. j- l1 r9 `) q不会的,不加那句就可以,加了后就不行了
    2 ]8 Y0 ?" r) }2 Q* X

    该用户从未签到

    4#
    发表于 2019-9-18 17:14 | 只看该作者
    新加的那句写错了把if(P1=0x0F)* u  V6 j! g* T. j& b  l3 e

    - i. @7 a, u- ~- A# {9 u这是判断语句,应该写成if(P1==0x0F)
    ) T% a1 R, [' {( w# c# M8 S' c

    点评

    找到了,非常谢谢  详情 回复 发表于 2019-9-18 18:00
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
    发表于 2019-9-18 17:16 | 只看该作者
    学习学习学习学习
  • TA的每日心情

    2019-11-20 15:01
  • 签到天数: 1 天

    [LV.1]初来乍到

    6#
     楼主| 发表于 2019-9-18 18:00 | 只看该作者
    行者~ABC 发表于 2019-9-18 17:142 x" e- v5 E0 k: ^* L& J
    新加的那句写错了把if(P1=0x0F)- ~6 Q; `$ r2 _- i) G3 X8 D

    " y9 S" ^7 ?/ Q! ]" ~2 ^这是判断语句,应该写成if(P1==0x0F)

    2 G- f0 V" l2 A3 N6 Z* ?找到了,非常谢谢
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-11 12:01 , Processed in 0.140625 second(s), 29 queries , Gzip On.

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

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

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