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

📄 soc080225.asm

📁 一个有关电子秤的汇编代码,和大学一起进步!
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                  SETB      BDB         ;;;摆动标志,存在递增或递减时BDB=1.
                  RET
PXCPRR2:
                  CLR       BDB
                  RET
PXCPRL:           ;;;识别左边是否递减
                  MOV       A,ADMIN     ;;;识别左边
                  CLR       C
                  SUBB      A,#06H
                  MOV       R1,A
                  INC       A
                  INC       A
                  MOV       R0,A
                  MOV       R2,#02H
                  SJMP      PXCPRR1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;     int0 interrupt     ;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTRR0:
                  PUSH      ACC
                  PUSH      PSW
                  SETB      RS1
                  CLR       RS0
                  MOV       R0,#ADCD3
                  MOV       R2,#03H
                  LCALL     RD7799
                  MOV       DATD1,ADCD2
                  MOV       DATD2,ADCD3
                  SETB      ADEN
                  POP       PSW
                  POP       ACC
                  RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;      tt0 interrupt     ;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTT0:
                  PUSH      ACC
                  PUSH      PSW
                  SETB      RS0
                  CLR       RS1
                  CLR       SPK
                  MOV       TH0,#0FCH
                  MOV       TL0,#17H
                  LCALL     DISPLAY         ;;;显示
                  LCALL     FMQCTR
                  SETB      TR0
                  POP       PSW
                  POP       ACC
                  RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
READKEY:          ;;;功能说明:按键识别
                  CLR       TDB
                  CLR       GJB
                  SETB      ZERO
                  SETB      SETS
                  MOV       R5,#0FFH
                  MOV       R6,#0FFH
                  MOV       R7,#0AH
                  JNB       ZERO,RKEY1
                  JNB       SETS,RKEY5
                  RET
RKEY1:
                  SETB      SPK             ;;;开蜂鸣器
                  SETB      FMQ
RKEY01:
                  SETB      ZERO
                  JB        ZERO,RKEY3      ;;;按键释放后有效
                  DJNZ      R5,RKEY2
                  MOV       R5,#0FFH
                  DJNZ      R6,RKEY2
                  MOV       R6,#0FFH
                  DJNZ      R7,RKEY2
                  MOV       R7,#0AH
                  SETB      TDB
                  SJMP      RKEY4
RKEY2:
                  SJMP      RKEY01
RKEY3:
                  JB        TDB,RKEY4
                  LCALL     ZHILING         ;;;调用置零操作
                  RET
RKEY4:
                  LCALL     BIAODING        ;;;标定
                  RET
RKEY5:
                  SETB      SPK
                  SETB      FMQ             ;;;开蜂鸣器
RKEY05:
                  SETB      SETS
                  JB        SETS,RKEY7
                  DJNZ      R5,RKEY6
                  MOV       R5,#0FFH
                  DJNZ      R6,RKEY6
                  MOV       R6,#0FFH
                  DJNZ      R7,RKEY6
                  MOV       R7,#0AH
                  SETB      GJB
                  SJMP      RKEY7
RKEY6:
                  SJMP      RKEY05
RKEY7:
                  JNB       GJB,RKEY8
                  CLR       NET1            ;;;软件关机
RKEY8:
                  RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISPLAY:          ;;;功能说明:显示扫描.R2初始值为00H,COM初始值为01H
                  sjmp      dsp0
                  mov       p2,#01h
                  mov       p0,#0fh
                  ret
dsp0:
                  MOV       P0,#0FFH        ;;;黑屏显示
                  CJNE      R2,#07H,DSP1
                  MOV       R2,#00H         ;;;判断起始点
                  MOV       CON,#01H
DSP1:
                  MOV       A,CON
                  MOV       P2,A            ;;;送位码
                  MOV       A,#DSPL1
                  ADD       A,R2
                  MOV       R0,A
                  MOV       A,@R0
                  MOV       DPTR,#SEGTAB
                  MOVC      A,@A+DPTR
                  CJNE      R2,#01H,DSP2    ;;;
                  JNB       DDT,DSP2        ;;;小数点控制标志
                  JNB       DOT,DSP2        ;;;小于等于1t时显示小数点
                  ORL       A,#80H          ;;;显示小数点
DSP2:
                  MOV       P0,A            ;;;送段码
                  INC       R2              ;;;修正显示位
                  CLR       C
                  MOV       A,CON           ;;;修正位控制
                  RLC       A
                  MOV       CON,A
                  RET
SEGTAB:
                  DB        3FH,06H,5BH,4FH,66H,6DH        ;;;0,1,2,3,4,5    (0-5)
                  DB        7DH,07H,7FH,6FH,77H,7CH        ;;;6,7,8,9,A,b    (6-B)
                  DB        58H,5EH,79H,71H,76H,38H        ;;;C,d,E,F,H,L    (C-11)
                  DB        5CH,54H,73H,00H,40H,7FH        ;;;o,n,P,BANK,-,8 (12-17)
                  DB        50H,04H,01H,6EH,78H,3DH        ;;;r,i,_,y,t,G    (18-1D)
                  DB        1CH                            ;;;u              (1E)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
FMQCTR:           ;;;功能说明:控制蜂鸣器熄灭.
                  JNB       FMQ,FMQC1       ;;;判断蜂鸣器开否?
                  DJNZ      R3,FMQC1
                  CLR       SPK
                  CLR       FMQ
                  MOV       R3,#20H
FMQC1:
                  RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;标定设置:先输入密码,再设定分度值,置0范围;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;0跟踪范围,超载重量,空载重量,加载重量等;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BIAODING:
                  CLR       DDT
                  MOV       DSPL1,#15H      ;;;第一步设定.
                  MOV       DSPL2,#15H      ;;;显示[SEL  ]
                  MOV       DSPL3,#11H
                  MOV       DSPL4,#0EH
                  MOV       DSPL5,#05H
BIAO1:
                  SETB      SETS
                  JNB       SETS,BIAO2
                  SJMP      BIAO1           ;;;按下[置零]进入下一步
BIAO2:
                  SETB      SPK
                  SETB      FMQ
                  LCALL     DSPSCAN         ;;;显示[d  **]最近设定的分度值
                  MOV       DSPL5,#0DH
                  MOV       DSPL4,#15H
                  MOV       DSPL3,#15H
                  JNB       SETS,$
                  LCALL     DELAY1
                  LCALL     DELAY1
BIAO3:
                  SETB      SETS
                  SETB      ZERO
                  JNB       ZERO,BIAO4      ;;;按下[置零],修改分度值
                  JNB       SETS,BIAO8      ;;;按下[开关],进入下一步
                  SJMP      BIAO3
BIAO4:
                  SETB      SPK
                  SETB      FMQ
                  MOV       A,DSPL1
                  CJNE      A,#00H,BIAO5
                  MOV       DSPL1,#01H
                  MOV       DSPL2,#15H
                  SETB      ZERO
BIAOD5:
                  JNB       ZERO,$
                  LCALL     DELAY1
                  LCALL     DELAY1
                  SJMP      BIAO3
BIAO5:
                  CJNE      A,#01H,BIAO6
                  MOV       DSPL1,#02H
                  MOV       DSPL2,#15H
                  SJMP      BIAOD5
BIAO6:
                  CJNE      A,#02H,BIAO7
                  MOV       DSPL1,#05H
                  MOV       DSPL2,#15H
                  SJMP      BIAOD5
BIAO7:
                  MOV       DSPL1,#00H
                  MOV       DSPL2,#01H
                  SJMP      BIAOD5
BIAO8:
                  SETB      SPK
                  SETB      FMQ
                  LCALL     SCALE           ;;;保存分度值在5045中
                  MOV       DSPL1,#15H      ;;;设定小数点有无.
                  MOV       DSPL2,#15H
                  MOV       DSPL3,#15H      ;;;显示[C ***]
                  MOV       DSPL4,#15H
                  MOV       DSPL5,#0CH
                  LCALL     DSPDOT
                  JNB       SETS,$
                  LCALL     DELAY1
                  LCALL     DELAY1
BIAO9:
                  SETB      ZERO
                  SETB      SETS
                  JNB       ZERO,BIAO10
                  JNB       SETS,BIAO12
                  SJMP      BIAO9
BIAO10:
                  SETB      SPK
                  SETB      FMQ
                  JNB       DOT,BIAO11
                  MOV       DSPL1,#12H
                  MOV       DSPL2,#13H      ;;;显示no
                  MOV       DSPL3,#15H
                  CLR       DOT
BIAOD10:
                  JNB       ZERO,$
                  LCALL     DELAY1
                  LCALL     DELAY1
                  SJMP      BIAO9
BIAO11:
                  SETB      DOT
                  MOV       DSPL1,#05H
                  MOV       DSPL2,#0EH      ;;;显示YES
                  MOV       DSPL3,#1BH
                  SJMP      BIAOD10
BIAO12:
                  SETB      SPK
                  SETB      FMQ
                  LCALL     SVDOT
                  MOV       DSPL1,#11H      ;;;开始满量程设定
                  MOV       DSPL2,#11H
                  MOV       DSPL3,#1EH      ;;;[FuLL ]
                  MOV       DSPL4,#0FH
                  MOV       DSPL5,#15H
                  JNB       SETS,$
                  LCALL     DELAY1
                  LCALL     DELAY1
BIAO13:
                  SETB      SETS
                  JNB       SETS,BIAO14
                  SJMP      BIAO13
BIAO14:
                  SETB      SPK
                  SETB      FMQ
                  SETB      DDT
                  LCALL     DSPOVL          ;;;满量程显示
                  JNB       SETS,$
                  LCALL     DELAY1
                  LCALL     DELAY1
                  MOV       R2,#05H
                  MOV       R5,#0FFH
                  MOV       R6,#20H
BIAO15:
                  SETB      ZERO
                  SETB      SETS
                  JNB       SETS,BIAO16
                  JNB       ZERO,BIAO18
                  DJNZ      R5,BIAO15
                  MOV       R5,#0FFH
                  DJNZ      R6,BIAO15
                  MOV       R6,#20H
                  LCALL     SHANSHUO
                  SJMP      BIAO15
BIAO16:
                  SETB      SPK
                  SETB      FMQ
                  DJNZ      R2,BIAO17
                  SJMP      BIAO19          ;;;设定完成
BIAO17:
                  LCALL     TTOL5           ;;;更新显示
                  MOV       R5,#0FFH
                  MOV       R6,#20H
                  JNB       SETS,$
                  LCALL     DELAY1
                  LCALL     DELAY1
                  SJMP      BIAO15
BIAO18:
                  SETB      SPK
                  SETB      FMQ
                  LCALL     ZENGYI
                  JNB       ZERO,$
                  LCALL     DELAY1
                  SJMP      BIAO17
BIAO19:
                  LCALL     OVLOAD          ;;;保存满量程
                  MOV       DSPL1,#0DH      ;;;显示[ LOAD]
                  MOV       DSPL2,#0AH      ;;;修正系数
                  MOV       DSPL3,#12H
                  MOV       DSPL4,#11H
                  MOV       DSPL5,#15H
                  JNB       SETS,$
                  LCALL     DELAY1

⌨️ 快捷键说明

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