最近在用汇编编写独立按键的程序时,输出总是不稳定

2020-01-21 21:35发布

本帖最后由 thy110 于 2014-12-13 11:00 编辑

最近在用汇编编写独立按键的程序时,输出总是不稳定,用于测试的led灯总是闪烁,怎么回事啊,之前用c写的就很正常,按照原来的思路一步一步写下来就不正常了,大家帮忙看看。

  1. ORG 0000H
  2. LJMP START
  3. ORG 0200H
  4. START:MOV P1,#0FFH
  5. LOOP: LCALL DELAY_10MS
  6.       MOV A,P1
  7.       MOV R1,A
  8.       CPL A
  9.           ANL A,#0FFH
  10.           JZ  LOOP
  11.           LCALL DELAY_10MS
  12.       MOV A,P1
  13.       MOV R1,A
  14.           CPL A
  15.           ANL A,#0FFH
  16.           JZ LOOP
  17.           ACALL SKEY
  18.           SJMP LOOP
  19. SKEY: MOV A,R1     
  20.       JNB ACC.0,KEY1
  21.           JNB ACC.1,KEY2
  22.           JNB ACC.2,KEY3
  23.           JNB ACC.3,KEY4
  24.           JNB ACC.4,KEY5
  25.           JNB ACC.5,KEY6
  26.           JNB ACC.6,KEY7
  27.           JNB ACC.7,KEY8
  28.           RET
  29. KEY1: CPL P0.4
  30.       RET
  31. KEY2: CPL P0.4
  32.       RET
  33. KEY3: CPL P0.4
  34.       RET
  35. KEY4: CPL P0.4
  36.       RET
  37. KEY5: CPL P0.4
  38.       RET
  39. KEY6: CPL P0.4
  40.       RET
  41. KEY7: CPL P0.4
  42.       RET
  43. KEY8: CPL P0.4
  44.       RET                
  45. DELAY_10MS:MOV R7,#10H
  46. TS1:       MOV R6,#0FFH
  47. TS2:       DJNZ R6,TS2
  48.            DJNZ R7,TS1
  49.                    RET
  50.                    END      
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
thy110
2020-01-23 19:14
本帖最后由 thy110 于 2014-12-13 11:24 编辑
limuzi2012 发表于 2014-12-13 08:32
用的是CPL P0.4指令啊?这样子按键按的时间不确定的话结果当然也不确定了。应该松开按键判断,长按就不进入 ...


是延时一段时间在判断是否是高定平吗


ORG 0000H
LJMP START
ORG 0200H
START:MOV P1,#0FFH
LOOP: LCALL DELAY_10MS
      MOV A,P1
      MOV R1,A
      CPL A
          ANL A,#0FFH
          JZ  LOOP
          LCALL DELAY_10MS
      MOV A,P1
      MOV R1,A
          CPL A
          ANL A,#0FFH
          JZ LOOP
skey1:           LCALL DELAY_10MS
          MOV A,P1
          CPL A
          ANL A,#0FFH
           JNZ skey1

          ACALL SKEY
          SJMP LOOP
SKEY: MOV A,R1     
      

一周热门 更多>