久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1399|回復: 0
打印 上一主題 下一主題
收起左側

STC-B學習板按鍵消抖計數 keil單片機ASM版

[復制鏈接]
跳轉到指定樓層
樓主
ID:603956 發表于 2019-8-26 16:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是我自己做的程序。
不喜勿噴。。

希望能對大家有所幫助
  1. $include(STC15F2K60S2.H)
  2. FOSC      EQU   11059  
  3. TCLICK    EQU   50      ;基礎定時器   uS
  4. NMAX_KEY  EQU   20      ;次
  5.                                                                
  6. DATA_TH0  EQU   256-(FOSC/120*TCLICK+50)/100  ;定時器0 工作方式2:8bit重裝、用作256uS以內定時  定時初值=(256-Fosc×定時時間/12)

  7. CLICK_50uS       BIT            00H      ;=100uS滴答信號
  8. CLICK_1mS        BIT            01H      ;=1mS  滴答信號
  9. CLICK_50mS       BIT            02H      ;=20mS 滴答信號
  10. CLICK_200mS      BIT            03H
  11. CLICK_1S         BIT            04H      ;=1S   滴答信號
  12. CLICK_1Min       BIT            05H      ;=1Min 滴答信號
  13. CLICK_1HOUR      BIT            06H

  14. KEY1             BIT            P3.2      ;按鍵及時值
  15. KEY2             BIT            P3.3
  16. KEY3             BIT            0AH
  17. KEYR             BIT            0BH
  18. KEYD             BIT            0CH
  19. KEYC             BIT            0DH
  20. KEYL             BIT            0EH
  21. KEYU             BIT            0FH   

  22. KEY1_C           BIT            10H                ;按鍵當前狀態
  23. KEY2_C           BIT            11H
  24. KEY3_C           BIT            12H
  25. KEYR_C           BIT            13H
  26. KEYD_C           BIT            14H
  27. KEYC_C           BIT            15H
  28. KEYL_C           BIT            16H
  29. KEYU_C           BIT            17H

  30. KEY1_P           BIT            18H                ;按鍵上一個狀態
  31. KEY2_P           BIT            19H
  32. KEY3_P           BIT            1AH
  33. KEYR_P           BIT            1BH
  34. KEYD_P           BIT            1CH
  35. KEYC_P           BIT            1DH
  36. KEYL_P           BIT            1EH
  37. KEYU_P           BIT            1FH         

  38. VKEY1            BIT            20H      ;按鍵事件值
  39. VKEY2            BIT            21H
  40. VKEY3            BIT            22H
  41. VKEYR            BIT            23H
  42. VKEYD            BIT            24H
  43. VKEYC            BIT            25H
  44. VKEYL            BIT            26H
  45. VKEYU            BIT            27H

  46. TIME_50uS        EQU            30H      ;100uS計數
  47. TIME_1mS         EQU            31H      ;1mS  計數
  48. TIME_50mS        EQU            32H      ;20mS 計數
  49. TIME_1S          EQU            34H      ;1S   計數
  50. TIME_1MIN        EQU            35H      ;1MIN  計數
  51. TIME_1HOUR       EQU            36H      ;1HOUR 計數

  52. SEC_1            EQU            40H
  53. SEC_10           EQU            41H
  54. MIN_1            EQU            42H
  55. MIN_10           EQU            43H
  56. HOUR_1           EQU            44H
  57. HOUR_10          EQU            45H
  58. MID_LINE         EQU            46H
  59. NO_DIS           EQU       5AH

  60. KEY_COUNTER      EQU            47H            ;按鍵消抖計數

  61. KEY1_COUNTER     EQU            48H                ;按鍵值統計
  62. KEY2_COUNTER     EQU            49H
  63. KEY3_COUNTER     EQU            4AH
  64. KEYR_COUNTER     EQU            4BH
  65. KEYD_COUNTER     EQU            4CH
  66. KEYC_COUNTER     EQU            4DH
  67. KEYL_COUNTER     EQU            4EH
  68. KEYU_COUNTER     EQU            4FH

  69. GROUP_Dis        EQU            57H     ;當前顯示數據組  :  0~N
  70. N_MaxDis         EQU            58H                ;定義最大顯示位數,可小于8、可大于8可控制顯示亮度
  71. CurDis           EQU            59H     ;變量:記錄顯示位:1~8 有效  大于8無顯示
  72. COUNT1           EQU            5BH
  73. COUNT2           EQU            5CH
  74. COUNT3           EQU            5DH
  75. COUNT4           EQU            5EH

  76. ;顯示內容定義
  77. ;GROUP_Dis=0
  78. G0_A1            EQU                        HOUR_10        ; 請具體定義它們
  79. G0_A2            EQU                        HOUR_1
  80. G0_A3            EQU                        MID_LINE
  81. G0_A4            EQU                        MIN_10
  82. G0_A5            EQU                        MIN_1
  83. G0_A6            EQU                        MID_LINE
  84. G0_A7            EQU                        SEC_10
  85. G0_A8            EQU                        SEC_1

  86. ;GROUP_Dis=1
  87. G1_A1            EQU                        NO_DIS        ; 請具體定義它們
  88. G1_A2            EQU                        NO_DIS
  89. G1_A3            EQU                        NO_DIS
  90. G1_A4            EQU                        NO_DIS
  91. G1_A5            EQU                        COUNT4
  92. G1_A6            EQU                        COUNT3
  93. G1_A7            EQU                        COUNT2
  94. G1_A8            EQU                        COUNT1

  95. ;GROUP_Dis=2
  96. G2_A1            EQU                        MID_LINE
  97. G2_A2            EQU                        MID_LINE
  98. G2_A3            EQU                        MID_LINE
  99. G2_A4            EQU                        GROUP_Dis
  100. G2_A5            EQU                        MID_LINE
  101. G2_A6            EQU                        MID_LINE
  102. G2_A7            EQU                        MID_LINE
  103. G2_A8            EQU                        SEC_1

  104. ORG   0000H
  105.         LJMP   START
  106. ORG   0003H
  107.                 RETI
  108. ORG   0013H
  109.                 RETI
  110. ;-----------------------------------------TIMER0中斷----------------------
  111. ORG   000BH
  112.         JMP   INT_T0

  113. ;---------------------------------------主程序----------------------------
  114. ORG   0100H                     
  115. START:
  116. ;-----------------------系統初始化-----------------
  117.         MOV    P0M1, #00000000B            ;00——準雙向口   01——推挽   10——高阻輸入         11——OC
  118.         MOV    P0M0, #11111111B
  119.         MOV    P2M1, #00000000B
  120.             MOV    P2M0, #00001001B
  121. ;----------------------變量初始化--------------------
  122.                 MOV   TIME_50uS,    #20
  123.         MOV   TIME_1mS,     #50
  124.         MOV   TIME_50mS,    #20   
  125.         MOV   TIME_1S,      #60
  126.                 MOV   TIME_1MIN,    #60
  127.                 MOV   TIME_1HOUR,   #24

  128.                 CLR   CLICK_50uS
  129.         CLR   CLICK_1mS        
  130.         CLR   CLICK_50mS  
  131.                 CLR   CLICK_1S
  132.                 CLR   CLICK_1Min
  133.                 CLR   CLICK_1HOUR

  134.                 CLR   VKEY1
  135.                 CLR   VKEY2
  136.                 CLR   VKEY3
  137.                 CLR   VKEYR
  138.                 CLR   VKEYD
  139.                 CLR   VKEYC
  140.                 CLR   VKEYL
  141.                 CLR   VKEYU

  142.         SETB  KEY1_P
  143.         SETB  KEY2_P
  144.         SETB  KEY3_P
  145.         SETB  KEYR_P
  146.         SETB  KEYD_P
  147.         SETB  KEYC_P
  148.         SETB  KEYL_P
  149.         SETB  KEYU_P

  150.                 MOV   KEY_COUNTER,  #NMAX_KEY

  151.                 MOV   KEY1_COUNTER, #(80H+NMAX_KEY/3*2)
  152.             MOV   KEY2_COUNTER, #(80H+NMAX_KEY/3*2)
  153.                 MOV   KEY3_COUNTER, #(80H+NMAX_KEY/3*2)
  154.                 MOV   KEYR_COUNTER, #(80H+NMAX_KEY/3*2)
  155.                 MOV   KEYD_COUNTER, #(80H+NMAX_KEY/3*2)
  156.             MOV   KEYC_COUNTER, #(80H+NMAX_KEY/3*2)
  157.                 MOV   KEYL_COUNTER, #(80H+NMAX_KEY/3*2)
  158.                 MOV   KEYU_COUNTER, #(80H+NMAX_KEY/3*2)

  159.         MOV   CurDis,       #1        ;初始顯示位       
  160.                 MOV   N_MaxDis,     #8
  161.                 MOV   GROUP_Dis,    #1
  162.                              
  163.                 MOV   SEC_1,        #0                  ;示例:其它顯示內容賦給對應變量
  164.                 MOV   SEC_10,       #0
  165.                 MOV   MIN_1,        #0
  166.                 MOV   MIN_10,       #0
  167.                 MOV   HOUR_1,       #0
  168.                 MOV   HOUR_10,      #0
  169.                 MOV   MID_LINE,     #10
  170.                 MOV   NO_DIS,       #11

  171.         MOV   COUNT4,       #5
  172.                 MOV   COUNT3,       #0
  173.                 MOV   COUNT2,       #0
  174.                 MOV   COUNT1,       #0
  175. ;------------------系統設備初始化----------------------------------
  176.         MOV   TMOD, #22H    ; C/T0 mode is 2 and C/T1 'S MOD is 2
  177.                 MOV   PCON, #80H     ;  
  178.                 MOV   TH0,  #DATA_TH0
  179.                 SETB  IT0                                             ;設置  INT0  為下降沿觸發
  180.                 SETB  IT1     
  181.         SETB  TR0                                                 ;啟動時鐘
  182.         MOV   IE,   #10000010B                    ;開中斷:                                         
  183. ;-----------------------------------主循環------------------------------------------
  184. MAINLOOP:JBC   CLICK_50uS,  C_50uS
  185.          JBC   CLICK_1mS,   C_1mS  
  186.          JBC   CLICK_50mS,  C_50mS
  187.              JBC   CLICK_1S,    C_1S
  188.              JBC   CLICK_1Min,  C_1Min
  189.                  JBC   CLICK_1HOUR, C_1HOUR
  190.                  JBC   VKEY1,       C_KEY1  
  191.                  JBC   VKEY2,       C_KEY2
  192.                  JBC   VKEY3,       C_KEY3
  193.                  JBC   VKEYR,       C_KEYR
  194.                  JBC   VKEYD,       C_KEYD
  195.                  JBC   VKEYC,       C_KEYC
  196.                  JBC   VKEYL,       C_KEYL
  197.                  JBC   VKEYU,       C_KEYU
  198.          JMP   MAINLOOP                                  
  199. ;-----------------------------------------------------
  200. C_50uS:  JMP   TASK_50uS
  201. C_1mS:   JMP   TASK_1mS  
  202. C_50mS:  JMP   TASK_50mS
  203. C_1S:    JMP   TASK_1S
  204. C_1Min:  JMP   TASK_1Min
  205. C_1HOUR: JMP   TASK_1HOUR
  206. C_KEY1:  JMP   TASK_KEY1
  207. C_KEY2:  JMP   TASK_KEY2
  208. C_KEY3:  JMP   TASK_KEY3
  209. C_KEYR:  JMP   TASK_KEYR
  210. C_KEYD:  JMP   TASK_KEYD
  211. C_KEYC:  JMP   TASK_KEYC
  212. C_KEYL:  JMP   TASK_KEYL
  213. C_KEYU:  JMP   TASK_KEYU
  214. ;-----------------------------------收到指令-------------------------
  215. NEW_COMMAND:
  216.                                                           ;請在這里計算要顯示的全部變量
  217.          JMP    MAINLOOP
  218. ;------------------------------------按鍵------------------------------
  219. TASK_KEY1:
  220.          INC    COUNT1
  221.                  MOV    A,   COUNT1
  222.                  CJNE   A,   #10,  T_KEY1_5
  223.                  MOV    COUNT1,   #0
  224.          INC    COUNT2
  225.                  MOV    A,   COUNT2
  226.                  CJNE   A,   #10,  T_KEY1_5
  227.                  MOV    COUNT2,   #0
  228. T_KEY1_1:INC    COUNT3
  229.                  MOV    A,   COUNT3
  230.                  CJNE   A,   #10,  T_KEY1_5
  231.                  MOV    COUNT3,   #0
  232. T_KEY1_2:INC    COUNT4
  233.                  MOV    A,   COUNT4
  234.                  CJNE   A,   #10,  T_KEY1_5
  235.                  MOV    COUNT4,   #0
  236. T_KEY1_5:JMP    MAINLOOP


  237. TASK_KEY2:
  238.          DEC    COUNT1
  239.                  MOV    A,   COUNT1
  240.                  CJNE   A,   #0FFH,  T_KEY2_5
  241.                  MOV    COUNT1,   #9
  242.          DEC    COUNT2
  243.                  MOV    A,   COUNT2
  244.                  CJNE   A,   #0FFH,  T_KEY2_5
  245.                  MOV    COUNT2,   #9
  246. T_KEY2_1:DEC    COUNT3
  247.                  MOV    A,   COUNT3
  248.                  CJNE   A,   #0FFH,  T_KEY2_5
  249.                  MOV    COUNT3,   #9
  250. T_KEY2_2:DEC    COUNT4
  251.                  MOV    A,   COUNT4
  252.                  CJNE   A,   #0FFH,  T_KEY2_5
  253.                  MOV    COUNT4,   #9
  254. T_KEY2_5:JMP    MAINLOOP
  255. TASK_KEY3:
  256.          JMP    MAINLOOP
  257. TASK_KEYR:
  258.          JMP    MAINLOOP
  259. TASK_KEYD:
  260.          JMP    MAINLOOP
  261. TASK_KEYC:
  262.          JMP    MAINLOOP
  263. TASK_KEYL:
  264.          JMP    MAINLOOP
  265. TASK_KEYU:
  266.          JMP    MAINLOOP
  267. ;-------------------------------------定時任務-------------------------
  268. TASK_50uS:
  269.          
  270. T50uS_1: JMP   MAINLOOP
  271. ;------------------------------  
  272. TASK_1mS:MOV    P0,     #00000000B        ;關顯示
  273.          CLR    P2.3
  274.          MOV    A,      CurDis       
  275.                         
  276.                  CJNE   A,      #0FFH,   T1mS_1
  277.                  MOV    A,      #00000001B
  278.                  MOV    R0,     GROUP_Dis
  279.                  INC    R0
  280. T1mS_0:  RR     A
  281.                  DJNZ   R0,     T1mS_0   

  282.                  MOV    P0,     N_MaxDis                   ;CurDis=0FFH時,顯示LED燈

  283.          SETB   P2.3         
  284.                  JMP    T1mS_2

  285. T1mS_1:         ANL    A,      #11111000B                 
  286.                  JNZ    T1mS_2                                          ;不顯示大于8的位數

  287.          MOV    A,      GROUP_Dis                   ;送段選
  288.                  RL     A                                                          ;選顯示組
  289.                  RL     A
  290.                  RL     A
  291.                  ADD    A,      CurDis                     
  292.                  MOV    DPTR,   #TAB_GROUP_Dis
  293.                  MOVC   A,      @A+DPTR
  294.                  MOV    R0,     A
  295.                  MOV    A,      @R0
  296.                  MOV    DPTR,   #TAB_Decode
  297.                  MOVC   A,      @A+DPTR
  298.                  MOV    P0,     A                                           ;段選 送P0口

  299.          MOV    P2,      CurDis                                         ;位選送 P2口
  300.                                   
  301. T1mS_2:  INC    CurDis                    ;確定下一次要顯示的位             
  302.                  MOV    A,      CurDis
  303.                  CJNE   A,      N_MaxDis,  T1mS_3
  304.                  MOV    CurDis, #0FFH

  305. T1mS_3:         JB     KEY1,   T1mS_4             ;處理按鍵
  306.                  DEC    KEY1_COUNTER                           ;按鍵統計
  307. T1mS_4:  JB     KEY2,   T1mS_5
  308.          DEC    KEY2_COUNTER

  309. T1mS_5:  DJNZ   KEY_COUNTER,  T1mS_END
  310.                  MOV    KEY_COUNTER,  #NMAX_KEY   ;統計次數到,重置統計次數

  311.          MOV   A,      KEY1_COUNTER           ;處理KEY1
  312.                    MOV   KEY1_COUNTER,         #(80H+NMAX_KEY/3*2)           ;重置下一輪統計初值
  313.                  RLC   A
  314.                  MOV   KEY1_C,  C                       ;得到按鍵 KEY1 當前的統計狀態
  315.                  JB    KEY1_C,  T1mS_6                   ;處理按鍵 KEY1 對應的操作(見相應流程圖)
  316.                  JNB   KEY1_P,  T1mS_7       
  317.                  CLR   KEY1_P
  318.                  SETB  VKEY1                            ;按鍵KEY1事件發生(下降沿)
  319.          JMP   T1mS_7
  320. T1mS_END: JMP    MAINLOOP
  321. T1mS_6:  JB    KEY1_P,  T1mS_7       
  322.                  SETB  KEY1_P

  323. T1mS_7:  MOV   A,      KEY2_COUNTER           ;處理KEY2
  324.                    MOV   KEY2_COUNTER,         #(80H+NMAX_KEY/3*2)           ;重置下一輪統計初值
  325.                  RLC   A
  326.                  MOV   KEY2_C,  C                       ;得到按鍵 KEY2 當前的統計狀態
  327.                  JB    KEY2_C,  T1mS_8                   ;處理按鍵 KEY2 對應的操作(見相應流程圖)
  328.                  JNB   KEY2_P,  T1mS_9       
  329.                  CLR   KEY2_P
  330.                  SETB  VKEY2                            ;按鍵KEY2事件發生(下降沿)
  331.          JMP   T1mS_9
  332. T1mS_8:  JB    KEY2_P,  T1mS_9       
  333.                  SETB  KEY2_P

  334. T1mS_9:         MOV   A,      KEY3_COUNTER           ;處理KEY3
  335.                    MOV   KEY3_COUNTER,         #(80H+NMAX_KEY/3*2)           ;重置下一輪統計初值
  336.                  RLC   A
  337.                  MOV   KEY3_C,  C                       
  338.                  JB    KEY3_C,  T1mS_A                  
  339.                  JNB   KEY3_P,  T1mS_B       
  340.                  CLR   KEY3_P
  341.                  SETB  VKEY3                           
  342.          JMP   T1mS_B
  343. T1mS_A:  JB    KEY3_P,  T1mS_B       
  344.                  SETB  KEY3_P

  345. T1mS_B:         MOV   A,      KEYL_COUNTER           ;處理KEYL
  346.                    MOV   KEYL_COUNTER,         #(80H+NMAX_KEY/3*2)           ;重置下一輪統計初值
  347.                  RLC   A
  348.                  MOV   KEYL_C,  C                       
  349.                  JB    KEYL_C,  T1mS_C                  
  350.                  JNB   KEYL_P,  T1mS_D       
  351.                  CLR   KEYL_P
  352.                  SETB  VKEYL                           
  353.          JMP   T1mS_D
  354. T1mS_C:  JB    KEYL_P,  T1mS_D       
  355.                  SETB  KEYL_P

  356. T1mS_D:         MOV   A,      KEYD_COUNTER           ;處理KEYD
  357.                    MOV   KEYD_COUNTER,         #(80H+NMAX_KEY/3*2)           ;重置下一輪統計初值
  358.                  RLC   A
  359.                  MOV   KEYD_C,  C                       
  360.                  JB    KEYD_C,  T1mS_E                  
  361.                  JNB   KEYD_P,  T1mS_F       
  362.                  CLR   KEYD_P
  363.                  SETB  VKEYD                           
  364.          JMP   T1mS_F
  365. T1mS_E:  JB    KEYD_P,  T1mS_F       
  366.                  SETB  KEYD_P

  367. T1mS_F:         MOV   A,      KEYC_COUNTER           ;處理KEYC
  368.                    MOV   KEYC_COUNTER,         #(80H+NMAX_KEY/3*2)           ;重置下一輪統計初值
  369.                  RLC   A
  370.                  MOV   KEYC_C,  C                       
  371.                  JB    KEYC_C,  T1mS_G                  
  372.                  JNB   KEYC_P,  T1mS_H       
  373.                  CLR   KEYC_P
  374.                  SETB  VKEYC                           
  375.          JMP   T1mS_H
  376. T1mS_G:  JB    KEYC_P,  T1mS_H       
  377.                  SETB  KEYC_P

  378. T1mS_H:         MOV   A,      KEYL_COUNTER           ;處理KEYL
  379.                    MOV   KEYL_COUNTER,         #(80H+NMAX_KEY/3*2)           ;重置下一輪統計初值
  380.                  RLC   A
  381.                  MOV   KEYL_C,  C                       
  382.                  JB    KEYL_C,  T1mS_I                  
  383.                  JNB   KEYL_P,  T1mS_J       
  384.                  CLR   KEYL_P
  385.                  SETB  VKEYL                           
  386.          JMP   T1mS_J
  387. T1mS_I:  JB    KEYL_P,  T1mS_J       
  388.                  SETB  KEYL_P

  389. T1mS_J:         MOV   A,      KEYU_COUNTER           ;處理KEYU
  390.                    MOV   KEYU_COUNTER,         #(80H+NMAX_KEY/3*2)           ;重置下一輪統計初值
  391.                  RLC   A
  392.                  MOV   KEYU_C,  C                       
  393.                  JB    KEYU_C,  T1mS_K                  
  394.                  JNB   KEYU_P,  T1mS_L       
  395.                  CLR   KEYU_P
  396.                  SETB  VKEYU                           
  397.          JMP   T1mS_L
  398. T1mS_K:  JB    KEYU_P,  T1mS_L       
  399.                  SETB  KEYU_P

  400. T1mS_L:         JMP    MAINLOOP

  401. TAB_GROUP_Dis:   DB   G0_A1,G0_A2,G0_A3,G0_A4,G0_A5,G0_A6,G0_A7,G0_A8
  402.                  DB   G1_A1,G1_A2,G1_A3,G1_A4,G1_A5,G1_A6,G1_A7,G1_A8
  403.                              DB   G2_A1,G2_A2,G2_A3,G2_A4,G2_A5,G2_A6,G2_A7,G2_A8

  404. TAB_Decode:         DB   03FH                        ; 0
  405.              DB   06H                        ; 1
  406.                          DB   5BH                    ; 2
  407.                          DB   4FH                        ; 3
  408.                          DB   66H                        ; 4
  409.                          DB   6DH                        ; 5
  410.                          DB   7DH                        ; 6
  411.                          DB   07H                        ; 7
  412.                          DB   7FH                        ; 8
  413.                          DB   6FH                        ; 9
  414.                          DB   40H                        ; -
  415.                          DB   00H           ; 不顯示
  416. ;------------------------------
  417. TASK_50mS:
  418.         JMP   MAINLOOP
  419. ;------------------------------
  420. TASK_1S:
  421.         INC   SEC_1
  422.                 MOV   A,        SEC_1
  423.                 CJNE  A,        #10,    T_1S_1
  424.                 MOV   SEC_1,    #0
  425.                 INC   SEC_10
  426.                 MOV   A,        SEC_10
  427.                 CJNE  A,        #6,     T_1S_1
  428.                 MOV   SEC_10,   #0
  429. T_1S_1: JMP   MAINLOOP
  430. ;------------------------------
  431. TASK_1Min:
  432.         INC   MIN_1
  433.                 MOV   A,        MIN_1
  434.                 CJNE  A,        #10,    T_1M_1
  435.                 MOV   MIN_1,    #0
  436.                 INC   MIN_10
  437.                 MOV   A,        MIN_10
  438.                 CJNE  A,        #6,     T_1M_1
  439.                 MOV   MIN_10,   #0
  440. T_1M_1:JMP   MAINLOOP
  441. ;------------------------------
  442. TASK_1HOUR:
  443.         INC   HOUR_1
  444.                 MOV   A,        HOUR_1
  445.                 CJNE  A,        #10,    T_1H_1
  446.                 MOV   HOUR_1,   #0
  447.                 INC   HOUR_10
  448.                 MOV   A,        HOUR_10
  449.                 CJNE  A,        #2,     T_1H_1
  450.                 MOV   HOUR_10,  #0
  451. T_1H_1:JMP   MAINLOOP
  452. ;--------------------------------------INT_T0--------------------------
  453. INT_T0: SETB   CLICK_50uS
  454.               DJNZ   TIME_50uS,    EXIT_T0
  455.         MOV    TIME_50uS,    #20
  456.         SETB   CLICK_1mS
  457.               DJNZ   TIME_1mS,     EXIT_T0
  458.         MOV    TIME_1mS,     #50
  459.             SETB   CLICK_50mS
  460.             DJNZ   TIME_50mS,    EXIT_T0
  461.         MOV    TIME_50mS,    #20
  462.             SETB   CLICK_1S
  463.             DJNZ   TIME_1S,      EXIT_T0
  464.         MOV    TIME_1S,      #60
  465.             SETB   CLICK_1Min
  466.             DJNZ   TIME_1MIN,    EXIT_T0
  467.         MOV    TIME_1MIN,    #60
  468.             SETB   CLICK_1HOUR                          
  469. EXIT_T0:RETI

  470.         END           
復制代碼

按鍵消抖計數工程_ASM版.zip (79.99 KB, 下載次數: 4)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本欧美黄色片 | 久久久精品影院 | 亚洲免费三区 | 亚洲一区中文字幕在线观看 | 九九视频网| 婷婷丁香在线视频 | 国产精品视频97 | 欧美精品在线一区二区三区 | 成人在线电影在线观看 | 国产不卡一区 | 国产精品久久久久无码av | 日韩aⅴ在线观看 | 91xx在线观看 | 久草网址 | 日韩精品一区二区三区在线播放 | 国产一区二区精品在线观看 | 在线视频 中文字幕 | 国产1区2区 | 一级做a爰片久久毛片 | 天天射天天干 | 国产精品成人一区二区 | 久久免费视频网 | 精品视频免费 | 欧美日韩在线看 | 天天弄 | 九九九视频精品 | 99精品久久 | 国产一区二区免费电影 | 久久久噜噜噜久久中文字幕色伊伊 | 91精品国产欧美一区二区成人 | 日本综合在线观看 | 91精品国产综合久久久久久丝袜 | 欧美精品网站 | 农村真人裸体丰满少妇毛片 | h视频免费在线观看 | 免费三级网站 | 国产欧美日韩一区 | 国产高清视频一区 | 成人免费看黄网站在线观看 | 精品在线免费看 | 国产网站在线播放 |