⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 可预置可逆4位计数器.asm

📁 AT89S52单片机程序50例(00-50)
💻 ASM
字号:
;可预置可逆4位计数器

      COUNT EQU 30H  ;定义计数变量COUNT的地址为30H
      ORG 0000H
START:MOV A,P3  ;处理按键K1-K4
      ANL A,#0FH
      CPL A
      MOV COUNT,A
      MOV P1,A

  SK2:JB P3.6,SK1  ;SK1的按键是否按下,否的话,跳转至SK1
      LCALL DELY10MS  ;是的话,延时10ms,用来防抖动
      JB P3.6,SK1  ;SK1是否真的按下,否的话,跳转至SK1
      DEC COUNT  ;是的话,COUNT加1
      MOV A,COUNT
      CJNE A,#16,NEXT  ;COUNT是否为16,否的话,跳转至NEXT
      MOV A,P3  ;是的话,重新初始化A
      ANL A,#0FH
      MOV COUNT,A
 NEXT:MOV P1,A

 WAIT:JNB P3.6,WAIT  ;SK1是否释放,否的话,等待
      LJMP SK2  ;是的话,跳转至SK2

  SK1:JB P3.7,SK2
      LCALL DELY10MS
      JB P3.7,SK2
      INC COUNT
      MOV A,COUNT
      CJNE A,#0FFH,NEX
      MOV A,P3
      ANL A,#0FH
      MOV COUNT,A
  NEX:MOV P1,A
WAIT2:JNB P3.7,WAIT2
      LJMP SK2

;10ms延时子程序
DELY10MS:MOV R6,#20
         MOV R7,#248
      D1:DJNZ R7,$
         DJNZ R6,D1
 RET
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -