标题: 使用单片机汇编语言实现按键识别程序与Proteus仿真图 [打印本页]

作者: 456请问    时间: 2021-11-19 10:38
标题: 使用单片机汇编语言实现按键识别程序与Proteus仿真图
实现的效果如下

单片机源程序如下:
  1. KEY        DATA        30H
  2. LED0        BIT        P2^0
  3. LED1        BIT        P2^1
  4. LED2        BIT        P2^2
  5. LED3        BIT        P2^3
  6. LED4        BIT        P2^4
  7. LED5        BIT        P2^5
  8. LED6        BIT        P2^6
  9. LED7        BIT        P2^7


  10.         ORG        0000H
  11.               AJMP        START                           
  12.               ORG        0030H
  13. START:        
  14.         ACALL        KEYSCAN
  15.         MOV        A,KEY

  16.         CJNE        A,#1,M1
  17.         CLR        LED1
  18.         AJMP        START

  19. M1:        CJNE        A,#2,M2
  20.         CLR        LED2
  21.         AJMP        START

  22. M2:        CJNE        A,#3,M3
  23.         CLR        LED3
  24.         AJMP        START

  25. M3:        CJNE        A,#4,M4
  26.         CLR        LED4
  27.         AJMP        START

  28. M4:        MOV        P2,#0FFH
  29.         AJMP        START




  30. KEYSCAN:ORL        P3,#0FH                ;读前先写1
  31.         MOV        A,P3                ;读取扫描码
  32.         ORL        A,#0F0H                ;屏蔽高4位
  33.         
  34.         CJNE        A,#0FEH,KS1
  35.         MOV        KEY,#1
  36.         SJMP        KSRE
  37. KS1:        CJNE        A,#0FDH,KS2
  38.         MOV        KEY,#2
  39.         SJMP        KSRE
  40. KS2:        CJNE        A,#0FBH,KS3
  41.         MOV        KEY,#3
  42.         SJMP        KSRE
  43. KS3:        CJNE        A,#0F7H,KS4
  44.         MOV        KEY,#4
  45.         SJMP        KSRE
  46. KS4:        MOV        KEY,#0FFH

  47. KSRE:        RET


  48. DELAY:        MOV    R5,#2                  
  49. DEL1:         MOV    R4,#200
  50. DEL2:         MOV    R3,#250
  51.               DJNZ   R3,[        DISCUZ_CODE_1        ]nbsp;               //500us
  52.               DJNZ   R4,DEL2                //200x500us=100ms
  53.               DJNZ   R5,DEL1
  54.               RET

  55. TAB:        DB        0FFH,0FEH,0FCH,0F8H,0F0H,0E1H,0C3H,87H,0FH,1FH,3FH,7FH

  56.         END
复制代码

Proteus7.5版本的仿真图下载(dsn文件只能用这个版本打开): 03_2 独立按键.zip (88.09 KB, 下载次数: 8)





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1