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

📄 soc080225.asm

📁 一个有关电子秤的汇编代码,和大学一起进步!
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                  MOV       R3,#01H
                  MOV       SUM3,#00H
                  MOV       SUM1,@R0
                  INC       R0
                  MOV       SUM2,@R0
                  INC       R0
PXCPP08:
                  MOV       PJB,R0
                  MOV       A,@R0
                  JNZ       PXCPP081
                  INC       R0
                  MOV       A,@R0
                  JNZ       PXCPP081
                  MOV       R4,SUM1
                  MOV       R5,SUM2
                  MOV       R6,SUM3
                  LCALL     DIV31
                  MOV       DQXS1,R4
                  MOV       DQXS2,R5
                  RET
PXCPP081:
                  MOV       R0,PJB
                  MOV       A,SUM1
                  ADD       A,@R0
                  INC       R0
                  MOV       SUM1,A
                  MOV       A,SUM2
                  ADDC      A,@R0
                  INC       R0
                  MOV       SUM2,A
                  MOV       A,SUM3
                  ADDC      A,#00H
                  MOV       SUM3,A
                  INC       R3
                  SJMP      PXCPP08
PXCPP8:
                  LCALL     PXCPT
                  MOV       A,ADAT1
                  CLR       C
                  SUBB      A,SCAD1L
                  MOV       A,ADAT2
                  SUBB      A,SCAD1H
                  JNC       PXCPP81         ;;;>=1d时判断摆动还是抖动.
                  MOV       R3,#10H
                  MOV       A,LED1
                  SETB      ACC.0           ;;;<1d时直接显示,稳定状态灯亮.
                  MOV       LED1,A
                  SETB      WDBB
PXCPP801:
                  JMP       PXCPP86
PXCPP81:
                  MOV       A,ADAT1
                  CLR       C
                  SUBB      A,SCAD2L
                  MOV       A,ADAT2
                  SUBB      A,SCAD2H
                  JC        PXCPP802        ;;;<4d时,稳定状态灯灭,直接显示.
                  LCALL     PXCPR           ;;;>=4d时判断稳定还是抖动状态
                  MOV       A,LED1
                  CLR       ACC.0           ;;;稳定状态灯灭.
                  MOV       LED1,A
                  JNB       BDB,PXCPP82     ;;;抖动时处理
                  RET
PXCPP802:
                  MOV       A,LED1
                  CLR       ACC.0           ;;;稳定状态灯灭.
                  MOV       LED1,A
                  MOV       R3,#10H
                  JMP       PXCPP86
PXCPP82:
                  MOV       R4,SUM1
                  MOV       R5,SUM2
                  MOV       R6,SUM3
                  MOV       R3,#10H
                  LCALL     DIV31
                  MOV       R0,#QUE1
                  MOV       R2,#08H
                  MOV       R3,#10H
PXCPP83:
                  MOV       PJB,R0
                  MOV       A,@R0
                  CLR       C
                  SUBB      A,R4
                  INC       R0
                  MOV       A,@R0
                  SUBB      A,R5
                  INC       R0
                  JNC       PXCPP84
                  INC       R0
                  INC       R0
                  DJNZ      R2,PXCPP83
                  SJMP      PXCPP86
PXCPP84:
                  MOV       A,@R0
                  CLR       C
                  SUBB      A,R4
                  INC       R0
                  MOV       A,@R0
                  SUBB      A,R5
                  INC       R0
                  JNC       PXCPP85
                  DJNZ      R2,PXCPP83
                  SJMP      PXCPP86
PXCPP85:
                  MOV       A,SUM1
                  MOV       R1,PJB
                  CLR       C
                  SUBB      A,@R1
                  MOV       SUM1,A
                  MOV       A,SUM2
                  INC       R1
                  SUBB      A,@R1
                  MOV       SUM2,A
                  INC       R1
                  MOV       A,SUM3
                  SUBB      A,#00H
                  MOV       SUM3,A
                  MOV       A,SUM1
                  CLR       C
                  SUBB      A,@R1
                  MOV       SUM1,A
                  MOV       A,SUM2
                  INC       R1
                  SUBB      A,@R1
                  MOV       SUM2,A
                  INC       R1
                  MOV       A,SUM3
                  SUBB      A,#00H
                  MOV       SUM3,A
                  DEC       R3
                  DEC       R3
                  DJNZ      R2,PXCPP83
PXCPP86:
                  MOV       R4,SUM1
                  MOV       R5,SUM2
                  MOV       R6,SUM3
                  LCALL     DIV31
                  MOV       06H,R5
                  MOV       05H,R4
PXCPP09:                                    ;;;;;;;;;;;;;;;;;;;;
                  MOV       DQXS1,R5        ;;;2,直接送显示
                  MOV       DQXS2,R6
                  RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PXCPT:            ;;;求最值,同时求出序列中所有数据的和.
                  MOV       R1,#QUE1
                  MOV       R0,#QUE2
                  MOV       ADMIN,R1
                  MOV       ADMAX,R1
                  MOV       MIN1,@R1
                  MOV       MAX1,MIN1
                  INC       R1
                  MOV       MIN2,@R1
                  MOV       MAX2,MIN2
                  MOV       R2,#0FH
                  MOV       SUM1,MIN1
                  MOV       SUM2,MIN2
                  MOV       SUM3,#00H
PXCPT1:
                  MOV       A,@R0
                  CLR       C
                  SUBB      A,MAX1
                  INC       R0
                  MOV       A,@R0
                  SUBB      A,MAX2
                  JC        PXCPT2
                  DEC       R0
                  MOV       ADMAX,R0
                  MOV       MAX1,@R0
                  INC       R0
                  MOV       MAX2,@R0
                  MOV       A,MAX1
                  ADD       A,SUM1
                  MOV       SUM1,A
                  MOV       A,MAX2
                  ADDC      A,SUM2
                  MOV       SUM2,A
                  MOV       A,SUM3
                  ADDC      A,#00H
                  MOV       SUM3,A
                  SJMP      PXCPT3
PXCPT2:
                  DEC       R0
                  MOV       A,@R0
                  CLR       C
                  SUBB      A,MIN1
                  INC       R0
                  MOV       A,@R0
                  SUBB      A,MIN2
                  JNC       PXCPT03
                  DEC       R0
                  MOV       ADMIN,R0
                  MOV       MIN1,@R0
                  INC       R0
                  MOV       MIN2,@R0
                  MOV       A,MIN1
                  ADD       A,SUM1
                  MOV       SUM1,A
                  MOV       A,MIN2
                  ADDC      A,SUM2
                  MOV       SUM2,A
                  MOV       A,SUM3
                  ADDC      A,#00H
                  MOV       SUM3,A
                  SJMP      PXCPT3
PXCPT03:
                  DEC       R0
                  MOV       A,@R0
                  ADD       A,SUM1
                  MOV       SUM1,A
                  INC       R0
                  MOV       A,@R0
                  ADDC      A,SUM2
                  MOV       SUM2,A
                  MOV       A,SUM3
                  ADDC      A,#00H
                  MOV       SUM3,A
PXCPT3:
                  INC       R0
                  DJNZ      R2,PXCPT1
                  MOV       A,MAX1
                  CLR       C
                  SUBB      A,MIN1
                  MOV       ADAT1,A
                  MOV       A,MAX2
                  SUBB      A,MIN2
                  MOV       ADAT2,A
                  RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PXCPR:            ;;;功能说明:判断QUE中是否存在递增或递减,从而判断是单摆还是抖动
                  MOV       A,ADMIN
                  CLR       C
                  SUBB      A,#83H
                  JNC       PXCPR1
                  LCALL     PXCPRR
                  JNB       BDB,PXCPR5
                  RET
PXCPR1:
                  MOV       A,ADMIN
                  CLR       C
                  SUBB      A,#9DH
                  JC        PXCPR4
PXCPR2:
                  LCALL     PXCPRL
                  JNB       BDB,PXCPR5
PXCPR3:
                  RET
PXCPR4:
                  LCALL     PXCPRR
                  JB        BDB,PXCPR3
                  SJMP      PXCPR2
PXCPR5:
                  MOV       A,ADMAX
                  CLR       C
                  SUBB      A,#83H
                  JNC       PXCPR6
                  LCALL     PXCPXR
                  RET
PXCPR6:
                  MOV       A,ADMAX
                  CLR       C
                  SUBB      A,#9DH
                  JC        PXCPR7
                  LCALL     PXCPXL
                  RET
PXCPR7:
                  LCALL     PXCPXL
                  JB        BDB,PXCPR8
                  LCALL     PXCPXR
PXCPR8:
                  RET
PXCPXL:           ;;;识别左边是否递增
                  MOV       A,ADMAX
                  ADD       A,#06H
                  MOV       R0,A
                  INC       A
                  INC       A
                  MOV       R1,A
                  MOV       R2,#02H
                  SJMP      PXCPRR1      ;;;;;;;;;;;;;;;;;;;;;;
PXCPXR:           ;;;识别右边是否递减
                  MOV       A,ADMAX
                  ADD       A,#02H
                  MOV       R1,A
                  INC       A
                  INC       A
                  MOV       R0,A
                  MOV       R2,#02H
                  SJMP      PXCPRR1
PXCPRR:           ;;;识别右边是否递增
                  MOV       A,ADMIN     ;;;识别最小值右边
                  INC       A
                  INC       A
                  MOV       R0,A
                  INC       A
                  INC       A
                  MOV       R1,A
                  MOV       R2,#02H
PXCPRR1:
                  MOV       A,@R1
                  CLR       C
                  SUBB      A,@R0
                  MOV       PJB,A
                  INC       R0
                  INC       R1
                  MOV       A,@R1
                  SUBB      A,@R0
                  JC        PXCPRR2     ;;;转入对ADMAX判断.
                  JNZ       PXCPRR01    ;;;小于时
                  MOV       A,PJB
                  JNZ       PXCPRR01
                  INC       R2          ;;;等于时
PXCPRR01:
                  INC       R0
                  INC       R1
                  DJNZ      R2,PXCPRR1

⌨️ 快捷键说明

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