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

📄 电动卷尺贴片段码控制程序.asm

📁 一款电动卷尺51源程序,带计算器功能,89C52设计的
💻 ASM
📖 第 1 页 / 共 5 页
字号:
     MOV    A, #20H
     LCALL  WRA
     MOV    A, #20H
     LCALL  WRA
     MOV    A, #20H
     LCALL  WRA
     CLR    FRONT
     CLR    BACK
     MOV    A,#00H
     MOV    DATA6,A
     MOV    DATA5,A
     MOV    DATA4,A
     LJMP   HCQ4
;***********************************************************************
;***********************************************************************
;      计算器功能        ***********************************************
;***********************************************************************
;***********************************************************************
CALCTER:
     SETB   P1.7
     SETB   P1.6
     LCALL  LCDON
     CALL    WR
     CLR     LCDDATA
     CALL    WRITE
     CALL    WRITE
     CALL    WRITE
     CALL    WRITE
     CALL    WRITE
     CALL    WRITE
     MOV    A, #20H
     LCALL  WRA
     MOV    A, #20H
     LCALL  WRA
     MOV    A, #20H
     LCALL  WRA
     MOV    A, #20H
     LCALL  WRA
     MOV    A, #20H
     LCALL  WRA
     MOV    A, #00H
     LCALL  WRA
     MOV    A, #20H
     LCALL  WRA
     MOV    A, #20H
     LCALL  WRA
     MOV    A, #15H
     LCALL  WRA
     MOV    A,#00H
     MOV    CALCNUM1,A
     MOV    CALCNUM2,A
     MOV    CALCNUM3,A
     MOV    CALCNUM4,A
     MOV    CALCNUM5,A
     MOV    CALCNUM6,A
     LCALL  DATA1XIANSHI
CALCTER1:
     LCALL  ANNIUJC
     JNB    CALC,HCQ50
     LCALL  POINTCL
     LCALL  DATAINPUT
     LCALL  DATA1XIANSHI
     JB     YUNSUAN,FUHAOXIANSHI
     LJMP   CALCTER1
HCQ50:
     LJMP   HCQ5
;*******************************************
FUHAOXIANSHI:
     LCALL  NUMCHULI
DATASHURU0:
     MOV    CALCNUMC,CALCNUM6
     MOV    CALCNUMB,CALCNUM5
     MOV    CALCNUMA,CALCNUM4
     MOV    CALCNUM9,CALCNUM3
     MOV    CALCNUM8,CALCNUM2
     MOV    CALCNUM7,CALCNUM1
     MOV    A,#00H
     MOV    CALCNUM1,A
     MOV    CALCNUM2,A
     MOV    CALCNUM3,A
     MOV    CALCNUM4,A
     MOV    CALCNUM5,A
     MOV    CALCNUM6,A
     NOP
     LCALL  DELAY1MS
     LCALL  DELAY1MS
     LCALL  DELAY1MS
     JNB    JIA,JIANFA
     MOV    FUHAO,#01H
     MOV    A,#2BH
     LCALL  WRA
     LJMP   DATA2INPUT
JIANFA:
     JNB    JIAN,CHENGFA
     MOV    FUHAO,#02H
     MOV    A,#2DH
     LCALL  WRA
     LJMP   DATA2INPUT
CHENGFA:
     JNB    CHENG,CHUFA
     MOV    FUHAO,#03H
     MOV    A,#2AH
     LCALL  WRA
     LJMP   DATA2INPUT
CHUFA:
     MOV    FUHAO,#04H
     MOV    A,#2FH
     LCALL  WRA
DATA2INPUT:
     LCALL  ANNIUJC
     JNB    CALC,HCQ6
     LCALL  POINTCL
     LCALL  DATAINPUT
     LCALL  DATA1XIANSHI
     JB     DENGYU,JIEGUO
     LJMP   DATA2INPUT
HCQ6:
     LJMP   HCQ5
JIEGUO:
     LCALL  NUMCHULI
     MOV    R0,#CALCNUM6
     LCALL  BTOF
     MOV    R0,#CALCNUMC
     LCALL  BTOF
     MOV    R1,#CALCNUM6
     MOV    A,FUHAO
     CJNE   A,#01H,JIANFA1
     LCALL  FADD
     AJMP   YUNSUANOUT
JIANFA1:
     CJNE   A,#02H,CHENGFA1
     LCALL  FSUB
     AJMP   YUNSUANOUT
CHENGFA1:
     CJNE   A,#03H,CHUFA1
     LCALL  FMUL
     AJMP   YUNSUANOUT
CHUFA1:
     CJNE   A,#04H,YUNSUANOUT
     LCALL  FDIV
YUNSUANOUT:
     LCALL  FTOB
     MOV    CALCNUM6,CALCNUMC
     MOV    CALCNUM5,CALCNUMB
     MOV    CALCNUM4,CALCNUMA
     MOV    CALCNUM3,CALCNUM9
     MOV    CALCNUM2,CALCNUM8
     MOV    CALCNUM1,CALCNUM7
     MOV    A,CALCNUMC
     CJNE   A,#00H,CALC1
     MOV    A,CALCNUM9
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM7,A
     MOV    A,CALCNUMA
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM8,B
     MOV    CALCNUM9,A
     MOV    A,CALCNUMB
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUMA,B
     MOV    CALCNUMB,A
     MOV    CALCNUMC,#0AH
     LJMP   CALCXIANSHI
CALC1:
     CJNE   A,#01H,CALC2
     MOV    A,CALCNUM9
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM7,B
     MOV    CALCNUM8,A
     MOV    A,CALCNUMA
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM9,B
     MOV    CALCNUMA,A
     MOV    A,CALCNUMB
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUMB,B
     ADD    A,#0AH
     MOV    CALCNUMC,A
     LJMP   CALCXIANSHI
CALC2:
     CJNE   A,#02H,CALC3
     MOV    A,CALCNUM9
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM7,B
     MOV    CALCNUM8,A
     MOV    A,CALCNUMA
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM9,B
     MOV    CALCNUMA,A
     MOV    A,CALCNUMB
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUMC,A
     MOV    A,B
     ADD    A,#0AH
     MOV    CALCNUMB,A
     LJMP   CALCXIANSHI
CALC3:
     CJNE   A,#03H,CALC4
     MOV    A,CALCNUM9
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM7,B
     MOV    CALCNUM8,A
     MOV    A,CALCNUMA
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM9,B
     ADD    A,#0AH
     MOV    CALCNUMA,A
     MOV    A,CALCNUMB
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUMB,B
     MOV    CALCNUMC,A
     LJMP   CALCXIANSHI
CALC4:
     CJNE   A,#04H,CALC5
     MOV    A,CALCNUM9
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM7,B
     MOV    CALCNUM8,A
     MOV    A,CALCNUMA
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUMA,A
     MOV    A,B
     ADD    A,#0AH
     MOV    CALCNUM9,A
     MOV    A,CALCNUMB
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUMC,A
     MOV    CALCNUMB,B
     LJMP   CALCXIANSHI
CALC5:
     CJNE   A,#05H,CALC6
     MOV    A,CALCNUM9
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM7,B
     ADD    A,#0AH
     MOV    CALCNUM8,A
     MOV    A,CALCNUMA
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM9,B
     MOV    CALCNUMA,A
     MOV    A,CALCNUMB
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUMB,B
     MOV    CALCNUMC,A
     LJMP   CALCXIANSHI
CALC6:
     CJNE   A,#06H,CALC7
     MOV    A,CALCNUM9
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM7,B
     MOV    CALCNUM8,A
     MOV    A,CALCNUMA
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM9,B
     MOV    CALCNUMA,A
     MOV    A,CALCNUMB
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUMB,B
     MOV    CALCNUMC,A
     LJMP   CALCXIANSHI
CALC7:
     CJNE   A,#0EH,CALC8
CALC8:
     JNC    CALC9
     SUBB   A,#03H
     MOV    CALCNUM7,A
     MOV    CALCNUM8,#17H
     MOV    A,CALCNUMA
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM9,B
     MOV    CALCNUMA,A
     MOV    A,CALCNUMB
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUMB,B
     MOV    CALCNUMC,A
     LJMP   CALCXIANSHI
CALC9:
     CJNE   A,#41H,CALC10
     MOV    CALCNUM7,#00H
     MOV    CALCNUM8,#0F0H
     MOV    CALCNUM9,#0F0H
     MOV    CALCNUMA,#0F0H
     MOV    CALCNUMB,#0F0H
     MOV    CALCNUMC,#0F0H
     LJMP   CALCXIANSHI
CALCTER00:
     LJMP   CALCTER
CALC10:
     JC     CALCTER00
     CJNE   A,#77H,CALC11
CALC11:
     JC     CALCTER00
     MOV    B,A
     MOV    A,#80H
     SUBB   A,B
     MOV    CALCNUM7,A
     MOV    CALCNUM8,#18H
     MOV    A,CALCNUMA
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUM9,B
     MOV    CALCNUMA,A
     MOV    A,CALCNUMB
     MOV    B,#10H
     DIV    AB
     MOV    CALCNUMB,B
     MOV    CALCNUMC,A
CALCXIANSHI:
     LCALL  LCDON
     CALL    WR
     CLR     LCDDATA
     CALL    WRITE
     CALL    WRITE
     CALL    WRITE
     CALL    WRITE
     CALL    WRITE
     CALL    WRITE
     MOV    A, CALCNUMC
     LCALL  WRA
     MOV    A, CALCNUMB
     LCALL  WRA
     MOV    A, CALCNUMA
     LCALL  WRA
     MOV    A, CALCNUM9
     LCALL  WRA
     MOV    A, CALCNUM8
     LCALL  WRA
     MOV    A, CALCNUM7
     LCALL  WRA
     MOV    A, #20H
     LCALL  WRA
     MOV    A, #20H
     LCALL  WRA
     MOV    A, #15H
     LCALL  WRA
DATASHURU1:
     LCALL ANNIUJC
     JNB    CALC,HCQ7
     JB     YUNSUAN,DATASHURU2
     LJMP   DATASHURU1
HCQ7:
     LJMP   HCQ5
DATASHURU2:
     LJMP   DATASHURU0
;*******************************************
NUMCHULI:
     MOV    A,CALCNUM6
     ANL    A,#0F0H
     JZ     NUMCHULI1
     MOV    CALCNUM6,#00H
     MOV    A,CALCNUM5
     SWAP   A
     ADD    A,CALCNUM4
     MOV    CALCNUM5,A
     MOV    A,CALCNUM3
     SWAP   A
     ADD    A,CALCNUM2
     MOV    CALCNUM4,A
     MOV    A,CALCNUM1
     SWAP   A
     MOV    CALCNUM3,A
     LJMP   NUMCHULI7
NUMCHULI1:
     MOV    A,CALCNUM5
     ANL    A,#0F0H
     JZ     NUMCHULI2
     MOV    A,CALCNUM6
     SWAP   A
     ADD    A,CALCNUM4
     MOV    CALCNUM5,A
     MOV    CALCNUM6,#01H
     MOV    A,CALCNUM3
     SWAP   A
     ADD    A,CALCNUM2
     MOV    CALCNUM4,A
     MOV    A,CALCNUM1
     SWAP   A
     MOV    CALCNUM3,A
     LJMP   NUMCHULI7
NUMCHULI2:
     MOV    A,CALCNUM4
     ANL    A,#0F0H
     JZ     NUMCHULI3
     MOV    A,CALCNUM6
     SWAP   A
     ADD    A,CALCNUM5
     MOV    CALCNUM5,A
     MOV    CALCNUM6,#02H
     MOV    A,CALCNUM3
     SWAP   A
     ADD    A,CALCNUM2
     MOV    CALCNUM4,A
     MOV    A,CALCNUM1
     SWAP   A
     MOV    CALCNUM3,A
     LJMP   NUMCHULI7
NUMCHULI3:
     MOV    A,CALCNUM3
     ANL    A,#0F0H
     JZ     NUMCHULI4
     MOV    A,CALCNUM6
     SWAP   A
     ADD    A,CALCNUM5
     MOV    CALCNUM5,A
     MOV    CALCNUM6,#03H
     MOV    A,CALCNUM4
     SWAP   A
     ADD    A,CALCNUM2
     MOV    CALCNUM4,A
     MOV    A,CALCNUM1
     SWAP   A
     MOV    CALCNUM3,A
     LJMP   NUMCHULI7
NUMCHULI4:
     MOV    A,CALCNUM2
     ANL    A,#0F0H
     JZ     NUMCHULI5
     MOV    A,CALCNUM6
     SWAP   A
     ADD    A,CALCNUM5
     MOV    CALCNUM5,A
     MOV    CALCNUM6,#04H
     MOV    A,CALCNUM4
     SWAP   A
     ADD    A,CALCNUM3
     MOV    CALCNUM4,A
     MOV    A,CALCNUM1
     SWAP   A
     MOV    CALCNUM3,A
     LJMP   NUMCHULI7
NUMCHULI5:
     MOV    A,CALCNUM1
     ANL    A,#0F0H
     JZ     NUMCHULI6
     MOV    A,CALCNUM6
     SWAP   A
     ADD    A,CALCNUM5
     MOV    CALCNUM5,A
     MOV    CALCNUM6,#05H
     MOV    A,CALCNUM4
     SWAP   A
     ADD    A,CALCNUM3
     MOV    CALCNUM4,A
     MOV    A,CALCNUM2
     SWAP   A
     MOV    CALCNUM3,A
     LJMP   NUMCHULI7
NUMCHULI6:
     MOV    A,CALCNUM6
     SWAP   A
     ADD    A,CALCNUM5
     MOV    CALCNUM5,A
     MOV    CALCNUM6,#06H
     MOV    A,CALCNUM4
     SWAP   A
     ADD    A,CALCNUM3
     MOV    CALCNUM4,A
     MOV    A,CALCNUM2
     SWAP   A
     ADD    A,CALCNUM1
     MOV    CALCNUM3,A
NUMCHULI7:
     RET
;*******************************************
;*******************************************
;*******************************************
FENSHURU0:
     LJMP   FENSHURU
DATAINPUT:
     JB     FENSHU,FENSHURU0
     JNB    NUM0,HJX1
     CLR    NUM0
     MOV    DATASHURU,#00H
     LJMP   NUMCZ
HJX1:
     JNB    NUM1,HJX2
     CLR    NUM1
     MOV    DATASHURU,#01H
     LJMP   NUMCZ
HJX2:
     JNB    NUM2,HJX3
     CLR    NUM2
     MOV    DATASHURU,#02H
     LJMP   NUMCZ
HJX3:
     JNB    NUM3,HJX4
     CLR    NUM3
     MOV    DATASHURU,#03H
     LJMP   NUMCZ
HJX4:
     JNB    NUM4,HJX5
     CLR    NUM4
     MOV    DATASHURU,#04H
     LJMP   NUMCZ
HJX5:
     JNB    NUM5,HJX6
     MOV    DATASHURU,#05H
     CLR    NUM5
     LJMP   NUMCZ
HJX6:
     JNB    NUM6,HJX7
     MOV    DATASHURU,#06H
     CLR    NUM6
     LJMP   NUMCZ
HJX7:
     JNB    NUM7,HJX8
     MOV    DATASHURU,#07H
     CLR    NUM7
     LJMP   NUMCZ
HJX8:
     JNB    NUM8,HJX9
     MOV    DATASHURU,#08H
     CLR    NUM8
     LJMP   NUMCZ
HJX9:
     JNB    NUM9,HJX10
     MOV    DATASHURU,#09H
     CLR    NUM9
     LJMP   NUMCZ
HJX10:
     RET
;****************************************
POINTCL:
     JNB    POINT,POINT1
     MOV    DATASHURU,#0FEH
     LJMP   NUMCZ
POINT1:
     RET
;****************************************
NUMCZ:
     JB     INCM,MUCZ1
     MOV    CALCNUM6,CALCNUM5
     MOV    CALCNUM5,CALCNUM4
     MOV    CALCNUM4,CALCNUM3
     MOV    CALCNUM3,CALCNUM2
     MOV    CALCNUM2,CALCNUM1
     MOV    CALCNUM1,DATASHURU
     AJMP   MUCZ4
MUCZ1:
     MOV    CALCNUM6,CALCNUM5
     MOV    CALCNUM5,CALCNUM4
     MOV    CALCNUM4,DATASHURU
MUCZ4:
     RET
;****************************************
FENSHURU:
     CLR    FENSHU
     JNB    TWO,FENSHU2
     CLR    TWO
     MOV    A,FSDATA1
     ADD    A,#08H
     CJNE   A,#10H,FENSHU1
FENSHU1:
     JNC    FENSHU8
     MOV    FSDATA1,A
     SJMP   FENSHU8
FENSHU2:
     JNB    FOUR,FENSHU4
     CLR    FOUR
     MOV    A,FSDATA1
     ADD    A,#04H
     CJNE   A,#10H,FENSHU3
FENSHU3:
     JNC    FENSHU8
     MOV    FSDATA1,A
     SJMP   FENSHU8
FENSHU4:
     JNB    EIGHT,FENSHU6
     CLR    EIGHT
     MOV    A,FSDATA1
     ADD    A,#02H
     CJNE   A,#10H,FENSHU5
FENSHU5:
     JNC    FENSHU8
     MOV    FSDATA1,A
     SJMP   FENSHU8
FENSHU6:
     CLR    SIXTY
     MOV    A,FSDATA1
     ADD    A,#01H
     CJNE   A,#10H,FENSHU7

⌨️ 快捷键说明

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