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

📄 bz.asm

📁 仪表控制开发源程序
💻 ASM
字号:

ORG     0000H
AJMP    MAIN
ORG     0003H
RETI
ORG     000BH
RETI
ORG     0013H
RETI
ORG     001BH
RETI

ORG     0020H

MAIN:

		MOV     71H,#00H
		MOV     72H,#00H
		MOV     73H,#00H

		MOV     78H,#00H
		MOV     79H,#00H
		MOV     7AH,#00H

		MOV     31H,#0
		MOV     32H,#0
		MOV     35H,#0

		SETB    P2.5
		SETB    P2.6


REL:
		SETB    P2.5
		SETB    P2.6
		MOV     R1,#0FFH
		MOV     R2,#0FFH
		ACALL   DELAY

REL1:
		JNB     P2.3,H20V
		JB      P2.4,ZERO2
		ACALL   ZERO
		MOV     71H,31H
		MOV     72H,32H
		MOV     73H,35H
		ACALL   TRAN
		MOV     R1,#05H
		MOV     7FH,#05H
		ACALL   DISPLAY
		AJMP    REL1

ZERO2:
		ACALL   GET
		ACALL   BCD5

		MOV     31H,71H
		MOV     32H,72H
		MOV     35H,73H

		ACALL   SUB

		;MOV     A,21H
		;JNZ     Q1
		;MOV     A,22H
		;CLR     C
		;SUBB    A,#06H
		;JNC     Q1
		;MOV     21H,#00H
		;MOV     22H,#00H
		ACALL   TRAN
		MOV     R1,#05H
		MOV     7FH,#05H
		ACALL   DISPLAY
		AJMP    REL1

H20V:
		CLR     P2.5
		CLR     P2.6
		MOV     R1,#0FFH
		MOV     R2,#0FFH
		ACALL   DELAY
H20VV:
		JNB     P2.3,REL
		JB      P2.4,ZZERO2
		ACALL   ZERO
		MOV     78H,31H
		MOV     79H,32H
		MOV     7AH,35H
		ACALL   TRAN
		MOV     R1,#04H
		MOV     7FH,#04H
		ACALL   DISPLAY
		AJMP    H20VV

ZZERO2:
		ACALL   GET
		ACALL   BCD5

		MOV     31H,78H
		MOV     32H,79H
		MOV     35H,7AH

		ACALL   SUB

		;MOV     A,21H
		;JNZ     Q2
		;MOV     A,22H
		;CLR     C
		;SUBB    A,#06H
		;JNC     Q2
		;MOV     20H,#00H
		;MOV     21H,#00H
		;MOV     22H,#00H
		;MOV     23H,#00H
		;MOV     24H,#00H

		ACALL   TRAN

		MOV     R1,#04H
		MOV     7FH,#04H
		ACALL   DISPLAY
		AJMP    H20VV

ZERO:
		ACALL   GET
		ACALL   BCD5
		MOV     31H,21H
		MOV     32H,22H
		MOV     35H,25H
		RET



GET:
REL2:   JNB     P0.2,REL2

		JB      P0.3,    REL22
		MOV     20H,#00H
		AJMP    REL33
REL22:  MOV     20H,#01H
REL33:  JB      P0.7,REL4
		MOV     25H,#01H
		AJMP    REL5
REL4:   MOV     25H,#00H
REL5:   JB      P0.2,REL5
		MOV     A,P0
		RR      A
		RR      A
		RR      A
		ANL     A,#0FH
		MOV     21H,A
REL6:   JNB     P0.1,REL6
		MOV     A,P0
		RR      A
		RR      A
		RR      A
		ANL     A,#0FH
		MOV     22H,A
REL7:   JB      P0.1,REL7
		MOV     A,P0
		RR      A
		RR      A
		RR      A
		ANL     A,#0FH
		MOV     23H,A
REL8:   JNB     P0.0,REL8
		MOV     A,P0
		RR      A
		RR      A
		RR      A
		ANL     A,#0FH
		MOV     24H,A
		RET


G1:
		MOV     A,#00H
		MOVC    A,@A+DPTR
		MOV     51H,A
		INC     DPTR
		MOV     A,#00H
		MOVC    A,@A+DPTR
		MOV     52H,A
		RET

G2:
		INC     DPTR
		MOV     A,#00H
		MOVC    A,@A+DPTR
		MOV     53H,A
		INC     DPTR
		MOV     A,#00H
		MOVC    A,@A+DPTR
		MOV     54H,A
		RET

G3:
		INC     DPTR
		MOV     A,#00H
		MOVC    A,@A+DPTR
		MOV     75H,A
		INC     DPTR
		MOV     A,#00H
		MOVC    A,@A+DPTR
		MOV     76H,A
		RET

G5:
		MOV     52H,#5
		ACALL   G6

		;DEC     DPTR
		;DEC     DPTR
		;DEC     DPTR
		;DEC     DPTR
		MOV     A,#00H
		MOVC    A,@A+DPTR
		MOV     51H,A
		INC     DPTR
		MOV     A,#00H
		MOVC    A,@A+DPTR
		MOV     52H,A
		RET

G6:
		MOV     53H,21H
		MOV     54H,22H
		MOV     21H,DPH
		MOV     22H,DPL
		MOV     51H,#0

		ACALL   SUB1
		MOV     DPH,51H
		MOV     DPL,52H
		MOV     21H,53H
		MOV     22H,54H

		RET


G4:
		ACALL   G5
		ACALL   SUB1
		MOV     R7,51H
		MOV     R6,52H

		INC     DPTR
		INC     DPTR
		INC     DPTR
		INC     DPTR
		INC     DPTR
		ACALL   G1
		MOV     21H,51H
		MOV     22H,52H

		MOV     52H,#5
		ACALL   G6


		;DEC     DPTR
		;DEC     DPTR
		;DEC     DPTR
		;DEC     DPTR
		;DEC     DPTR
		;DEC     DPTR
		ACALL   G1
		ACALL   SUB1

		MOV     R5,51H
		MOV     R4,52H
		MOV     R0,#63H

		ACALL   MUL1

		MOV     R6,63H
		MOV     R7,62H
		MOV     3EH,61H
		MOV     3FH,60H


		INC     DPTR
		ACALL   G1
		MOV     21H,51H
		 MOV     22H,52H

		MOV     52H,#5
		ACALL   G6


		;DEC     DPTR
		;DEC     DPTR
		;DEC     DPTR
		;DEC     DPTR
		ACALL   G1
		ACALL   SUB1



		MOV     R5,51H
		MOV     R4,52H

		LCALL   DIV6

		MOV     21H,R7
		MOV     22H,R6


		ACALL   G3

		MOV     A,7BH
		CJNE    A,#00H,ZZ1

		ACALL   ADD3
		RET
ZZ1:    ACALL   SUB3
		RET




BCD5:   MOV     26H,21H
		MOV     27H,22H
		ACALL   MUL10
		MOV     B,#64H
		MUL     AB
		MOV     29H,A
		XCH     A,B
		MOV     2AH,A
		MOV     26H,23H
		MOV     27H,24H
		ACALL   MUL10
		ADD     A,29H
		MOV     22H,A
		MOV     A,2AH
		ADDC    A,#00H
		MOV     21H,A
		MOV     A,20H
		CJNE    A,#01H,B1
		MOV     A,#10H
		ADD     A,22H
		MOV     22H,A
		MOV     A,#27H
		ADDC    A,21H
		MOV     21H,A
B1:     RET

MUL10:  MOV     A,26H
		ANL     A,#0FH
		MOV     B,#0AH
		MUL     AB
		MOV     28H,A
		MOV     A,27H
		ANL     A,#0FH
		ADD     A,28H
		RET

BINBCD2:MOV     R1,41H
		MOV     R2,42H
		INC     R2
		CLR     A
BB0:    MOV     @R1,A
		INC     R1
		DJNZ    R2,BB0
		MOV     A,42H
		MOV     B,#08H
		MUL     AB
		MOV     R3,A
BB3:    MOV     R0,40H
		MOV     R2,42H
		CLR     C
BB1:    MOV     A,@R0
		RLC     A
		MOV    @R0,A
		INC     R0
		DJNZ    R2,BB1
		MOV     R2,42H
		INC     R2
		MOV     R1,41H
BB2:    MOV     A,@R1
		ADDC    A,@R1
		DA      A
		MOV    @R1,A
		INC     R1
		DJNZ    R2,BB2
		DJNZ    R3,BB3
		RET

SUB:    MOV     A,35H
		CJNE    A,#00H,S1
		MOV     A,25H
		CJNE    A,#00H,S2
		CLR     C
		MOV     A,22H
		SUBB    A,32H
		MOV     3BH,A
		MOV     A,21H
		SUBB    A,31H
		JC      S3
		MOV     21H,A
		MOV     22H,3BH
		RET

S3:     MOV     A,32H
		CLR     C
		SUBB    A,22H
		MOV     22H,A
		MOV     A,31H
		SUBB    A,21H
		MOV     21H,A
		MOV     25H,#01H
		RET
S2:     MOV     A,22H
		ADD     A,32H
		MOV     22H,A
		MOV     A,21H
		ADDC    A,31H
		MOV     21H,A
		MOV     25H,#01H
		RET
S1:     MOV     A,25H
		CJNE    A,#00H,S4
		MOV     A,22H
		ADD     A,32H
		MOV     22H,A
		MOV     A,21H
		ADDC    A,31H
		MOV     21H,A
		RET
S4:     CLR     C
		MOV     A,22H
		SUBB    A,32H
		MOV     3BH,A
		MOV     A,21H
		SUBB    A,31H
		JC      S5
		MOV     21H,A
		MOV     22H,3BH
		RET
S5:     MOV     A,32H
		CLR     C
		SUBB    A,22H
		MOV     22H,A
		MOV     A,31H
		SUBB    A,21H
		MOV     21H,A
		MOV     25H,#00H
		RET

SUB1:   CLR     C
		MOV     A,22H
		SUBB    A,52H
		MOV     52H,A
		MOV     A,21H
		SUBB    A,51H
		MOV     51H,A
		RET

MUL1:   MOV     A,R6
		MOV     B,R4
		MUL     AB
		MOV     @R0,A
		MOV     R3,B
		MOV     A,R4
		MOV     B,R7
		MUL     AB
		ADD     A,R3
		MOV     R3,A
		MOV     A,B
		ADDC    A,#00H
		MOV     R2,A
		MOV     A,R6
		MOV     B,R5
		MUL     AB
		ADD     A,R3
		DEC     R0
		MOV     @R0,A
		MOV     R1,#00H
		MOV     A,R2
		ADDC    A,B
		MOV     R2,A
		JNC     LAST
		INC     R1
LAST:   MOV     A,R7
		MOV     B,R5
		MUL     AB
		ADD     A,R2
		DEC     R0
		MOV     @R0,A
		MOV     A,B
		ADDC    A,R1
		DEC     R0
		MOV     @R0,A
		RET

COMP2:
		MOV     A,20H
		CLR     C
		SUBB    A,#99H
		MOV     A,21H
		ANL     A,#0FH
		SUBB    A,#49H
		JC      LLL1
		MOV     70H,#00H
		AJMP    LLL2
LLL1:   MOV     70H,#01H
LLL2:
		MOV     20H,22H
		MOV     21H,23H
		MOV     22H,24H
		RET

COMP3:  MOV     A,70H
		CJNE    A,#00H,LA1
		MOV     A,22H
		ADD     A,#01H
		MOV     22H,A
		MOV     A,21H
		ADDC    A,#00H
		MOV     21H,A
LA1:    RET

ADD3:   MOV     A,22H
		ADD     A,76H
		MOV     22H,A
		MOV     A,21H
		ADDC    A,75H
		MOV     21H,A
		RET

SUB3:   MOV     A,76H
		CLR     C
		SUBB    A,22H
		MOV     22H,A
		MOV     A,75H
		SUBB    A,21H
		MOV     21H,A
		RET

COMP4:  MOV     40H,20H
		MOV     41H,21H
		MOV     42H,22H
		MOV     A,40H
		ANL     A,#0FH
		MOV     20H,A
		MOV     A,41H
		SWAP    A
		ANL     A,#0FH
		MOV     21H,A
		MOV     A,41H
		ANL     A,#0FH
		MOV     22H,A
		MOV     A,42H
		SWAP    A
		ANL     A,#0FH
		MOV     23H,A
		MOV     A,42H
		ANL     A,#0FH
		MOV     24H,A
		RET

TRAN:   MOV     A,22H
		MOV     45H,A
		MOV     A,21H
		MOV     46H,A

		MOV     40H,#45H
		MOV     41H,#20H
		MOV     42H,#02H

		ACALL   BINBCD2

		MOV     A,20H
		XCH     A,22H
		MOV     20H,A

		MOV     A,22H
		ANL     A,#0FH
		MOV     24H,A
		MOV     A,22H
		SWAP    A
		ANL     A,#0FH
		MOV     23H,A
		MOV     A,21H
		ANL     A,#0FH
		MOV     22H,A
		MOV     A,21H
		SWAP    A
		ANL     A,#0FH
		MOV     21H,A
		RET

DISPLAY:

		;ACALL   TXD
KOVER:  JB      P3.7,KOVER
		JNB     P3.6,OOVER
		MOV     20H,#10
		MOV     21H,#0
		MOV     22H,#13
		MOV     23H,#14
		MOV     24H,#10
		AJMP    L3
OOVER:
		MOV     A,25H
		CJNE    A,#00H,L1
		MOV     A,20H
		CJNE    A,#00H,L3
		MOV     20H,#0AH
		AJMP    L3
L1:     MOV     A,20H
		CJNE    A,#00H,L2
		MOV     20H,#0BH
		AJMP    L3
L2:     MOV     20H,#0CH
L3:     MOV     R7,#05H
		MOV     R0,#20H

		SETB   P2.1


DISP0:  MOV     A,@R0
		MOV     DPTR,#DTAB
		MOVC    A,@A+DPTR
		MOV     B,A
		MOV     A,R7
		CLR     C
		SUBB    A,R1
		JNZ     D2
		MOV     A,B
		ADD     A,#01H
		MOV     B,A
D2:     MOV     A,B

		 ACALL  AB1

		INC     R0
		DJNZ    R7,DISP0

		CLR     P2.1

		ACALL   TXD

		RET
DTAB:   DB      0FCH,60H,0DAH,0F2H,66H
		DB      0B6H,0BEH,0E0H,0FEH,0F6H,00H,02H,62H,7CH ,1CH


AB1:
		MOV     R2,#08H
B2:
		RRC     A
		MOV     P2.2,C
		CPL     P2.0
		CPL     P2.0
		DJNZ    R2,B2

		RET



DIV6:   MOV     A,R5
		JNZ     BEGIN
		MOV     A,R4
		JZ      OVER
BEGIN:  CLR     A
		MOV     R3,A
		MOV     R2,A
		MOV     R1,#20H
DIV0:   ACALL   RLC6
		MOV     A,R2
		SUBB    A,R4
		MOV     R0,A
		MOV     A,R3
		SUBB    A,R5
		JC      NEXT
		INC     R6
		MOV     R3,A
		MOV     A,R0
		MOV     R2,A
NEXT:   DJNZ    R1,DIV0
		MOV     A,R3
		RLC     A
		JC      ROUND
		MOV     A,R2
		RLC     A
		MOV     R2,A
		MOV     A,R3
		RLC     A
		SUBB    A,R5
		JC      DONE
		JNZ     ROUND
		MOV     A,R2
		SUBB    A,R4
		JC      DONE
ROUND:  ACALL   ADD1
DONE:   CLR     A
		RET
OVER:   MOV     A,#0FFH
		RET

RLC6:
		CLR     C
		MOV     A,R6
		RLC     A
		MOV     R6,A
		MOV     A,R7
		RLC     A
		MOV     R7,A
		MOV     A,3EH
		RLC     A
		MOV     3EH,A
		MOV     A,3FH
		RLC     A
		MOV     3FH,A
		MOV     A,R2
		RLC     A
		MOV     R2,A
		MOV     A,R3
		RLC     A
		MOV     R3,A
		RET

ADD1:   MOV     A,R6
		ADD     A,#1
		MOV     R6,A
		MOV     A,R7
		ADDC    A,#0
		MOV     R7,A
		RET

KPammHG:
	  ;  MOV     A,22H
	  ;  CLR     C
	  ;  SUBB    A,#97H
	  ;  MOV     A,21H
	  ;  SUBB    A,#4CH
	  ;  JNC     Q1

		MOV     A,22H
		MOV     B,#75
		MUL     AB
		MOV     63H,A
		MOV     22H,B
		MOV     A,21H
		MOV     B,#75
		MUL     AB
		ADD     A,22H
		MOV     62H,A
		MOV     A,B
		ADDC    A,#00H
		MOV     61H,A

		MOV     A,63H
		ADD     A,#32H
		MOV     63H,A
		MOV     A,62H
		ADDC    A,#00H
		MOV     62H,A
		MOV     A,61H
		ADDC    A,#00H
		MOV     61H,A

		MOV     45H,63H
		MOV     46H,62H
		MOV     47H,61H


		MOV     40H,#45H
		MOV     41H,#20H
		MOV     42H,#03H

		ACALL   BINBCD2

		MOV     20H,23H
		MOV     A,22H
		XCH     A,21H
		MOV     22H,A

		MOV     A,22H
		ANL     A,#0FH
		MOV     24H,A
		MOV     A,22H
		ANL     A,#0F0H
		SWAP    A
		MOV     23H,A

		MOV     A,21H
		ANL     A,#0FH
		MOV     22H,A
		MOV     A,21H
		ANL     A,#0F0H
		SWAP    A
		MOV     21H,A
		RET

;****   DELAY,subroutine:
;{
;       The length of delay ti-me is (R1+R1*R2)*5 machine cycles;
DELAY:
LD1:    MOV     A,R2
		MOV     R0,A    ; R2=R0;
LD2:    DEC     R0      ; R2 decreases;
		NOP
		NOP
		CJNE R0,#0H,LD2
		DEC     R1
		CJNE R1,#0H,LD1
		RET
;}

TXD:
		MOV     TMOD,#21H
		;MOV     TL1,#0EFH
		;MOV     TH1,#0EFH

		MOV     TL1,#0EFH
		MOV     TH1,#0EFH

		CLR     ET1
		SETB    TR1
		MOV     SCON,#40H
		MOV     1EH,#255


		MOV     DPTR,#CODE
		MOV     A,#0
		MOVC    A,@A+DPTR
		MOV     1FH,A
		MOV     25H,7FH
		MOV     R0,#1EH
		MOV     R7,#8
TLOOP:  MOV     A,@R0
		ACALL   SPOUT
		;MOV     C,P
		;JNC     ERROR
		INC     R0
		DJNZ    R7,TLOOP
		RET
SPOUT: ;MOV     C,P
		;CPL     C
		;MOV     ACC.7,C
		MOV     SBUF,A
WAIT:   JNB     TI,WAIT
		CLR     TI

		RET
ERROR:
		RET

CODE:   DB     128

		END

⌨️ 快捷键说明

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