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

📄 miaobiao.asm

📁 C51单片机学习的好实例
💻 ASM
字号:
ORG     00H
START:MOV P0,#00H   ;两位七段数码管显示00
      JB  P1.0,$    ;没有键按下则重复执行本行,一旦按下,执行下一行
      CALL FILTER
      JNB P1.0,$    ;如果没有放开按键,则等待,放开后执行下一行
      MOV R0,#00H   ;设置计时指针初始值
PRESS_1:
      MOV A,R0      ;将计时指针载入累加器ACC中
      MOV P0,A      ;输出至P0,七段数码管显示
      MOV R5,#10    ;为延时1秒设定的寄存器初始值
ADD_1:
      MOV R6,#200   ;为延时设定寄存器
      CALL DELAY    ;延时子程序,其中DELAY中判断按钮是否第二次被按下
      DJNZ R5,ADD_1 ;寄存器R5完成1秒延时
      MOV A,R0      ;指针传递到ACC中
      ADD A,#01H    ;计时值加1
      DA  A          ;十进制调整
      MOV R0,A      ;把更新的计时值返回计时指针
      JMP PRESS_1   ;跳回PRESS_1,继续计时动作
PRESS_2:             ;这是处理第2次、第3次按下按钮的处理程序
      CALL FILTER    ;消除开关抖动
      JB  P1.0,PRESS_3 ;如果放开第2次按下的按钮,则跳至PRESS_3
      JMP PRESS_2      ;没有放开就循环等待
PRESS_3:
      JB  P1.0,$       ;等待第三次按按钮
      CALL FILTER      ;消除开关抖动
RELEASE:
      JB  P1.0,START  ;放开按钮后,秒表复位,跳至START清0
      JMP RELEASE
DELAY:
      MOV R7,#248     ;设置延时使用的寄存器R7,本段延时0.5ms
      JNB P1.0,PRESS_2  ;如果第2次按下按钮,就跳到PRESS_2处理程序段
      DJNZ R7,$
      DJNZ R6,DELAY
      RET
FILTER:               ;消除抖动,30ms延时子程序
      MOV R6,#60
F1:   
      MOV R7,#248
      DJNZ R7,$
      DJNZ R6,F1
      RET
      END

⌨️ 快捷键说明

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