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

📄 huibian.asm

📁 这是一个多路温度巡检仪
💻 ASM
字号:
	ORG	0000H
	AJMP	MAIN
	ORG	000BH
	LJMP	INTPT
	ORG	0013H
	LJMP	INTP0
	ORG	0030H
MAIN:	
	MOV	49H,#09H
	MOV	64H,#09H	;定时时间
	MOV	65H,#70H	;数据区指针	
	MOV	R1,#70H
	MOV	A,#09H
	MOV	R2,#04H
	LCALL	CHUSHI
	MOV	R1,#80H
	MOV	R2,#04H
	LCALL	CHUSHI
	MOV	R1,#90H
	MOV	R2,#04H
	LCALL	CHUSHI
	MOV	R1,#0A0H
	MOV	R2,#04H
	LCALL	CHUSHI
	MOV	R1,#73H
	MOV	A,#0
	MOV	R2,#04H
	LCALL	CHUSHI
	MOV	R1,#83H
	MOV	R2,#04H
	LCALL	CHUSHI
	MOV	R1,#93H
	MOV	R2,#04H
	LCALL	CHUSHI
	MOV	R1,#0A3H
	MOV	R2,#04H
	LCALL	CHUSHI


	
	ANL	TMOD,#0FH;定时器0工作在方式1
	ORL	TMOD,#01H
	MOV	TH0,#3CH;定时器初值设定
	MOV	TL0,#0B0H
	CLR	F0;清F0用户自定义标注为(用于按键中断)
	SETB	EA;开中断
	SETB	ET0;开定时器中断
	SETB	EX1;开INT1中断(按键4接的为外中断1)
	SETB	TR0;启动定时器
	
EXIT:	LCALL	KEY
	LCALL	CHANG
	LCALL	INPUT
	LCALL	DEAL
	LCALL	SHOW
	LCALL	BAOJ
	LJMP	EXIT
CHUSHI:
LP:	MOV	@R1,A
	INC	R1
	DJNZ	R2,LP
	RET
INTP0:	CPL	F0
	MOV	A,64H
	MOV	49H,A
	RETI
INTPT:	PUSH	ACC
	MOV	A,R0
	PUSH	ACC
	MOV	TH0,#3CH
	MOV	TL0,#0B0H
	MOV	R0,#60H	//定时时间
	MOV	A,@R0
	INC	A
	CJNE	A,#20,JX1
	MOV	A,0
	INC	R0
	INC	@R0
	DEC	R0
JX1:	MOV	@R0,A
	POP	ACC
	MOV	R0,A
	POP	ACC
	RETI
KEY:	MOV	4AH,#00H
	MOV	49H,#00H
	MOV	62H,#06H
	MOV	63H,#4AH
	MOV	65H,#70H
	MOV	R0,#48H
	MOV	R1,#73H
	MOV	R2,#4
CS1:	MOV	A,@R0
	MOV	@R1,A
	DEC	R0
	DEC	R1
	DJNZ	R2,CS1
	MOV	R0,#4AH
	MOV	R1,#73H

KEY1:	

	JNB	F0,CTN1
	LCALL	SHOW
	MOV	A,P3
	ANL	A,#07H
	CJNE	A,#07H,CZ1
	LJMP	KEY1
CZ1:	CALL	DL1MS
	MOV	A,P3
	ANL	A,#07H
	CJNE	A,#07H,CZ2
	LJMP	KEY1
CZ2:	
	JNB	ACC.0,K0
	JNB	ACC.1,K1
	JNB	ACC.2,K21
	
	LJMP	KEY1
K21:	LJMP	K2
CTN1:	LJMP	CTN
K0:	MOV	A,62H;存储正在设置的位数(1-6)
	DEC	A
	CJNE	A,#0,NEXT00
	MOV	A,#6
NEXT00:	MOV	62H,A 
	MOV	A,63H;当前正在设定的显示缓存区
	DEC	A
	CJNE	A,#44H,NEXT01
	MOV	A,#4AH
NEXT01:	MOV	63H,A
	LJMP	KEY1

K1:	MOV	A,63H
	CJNE	A,4AH,STEP1
	MOV	R0,#4AH
	MOV	A,@R0
	INC	A
	CJNE	A,#04H,STEP11
	MOV	A,#00H
	MOV	@R0,A
	MOV	R1,#7FH
	ANL	65H,#0FH	
	ANL	65H,#7FH
	MOV	R2,#4
	MOV	49H,#00H
	LCALL	COPY
	LJMP	KEY1

STEP11:	MOV	@R0,A
	CJNE	A,#01H,CL2
	MOV	R1,#80H
	ANL	65H,#0FH
	ANL	65H,#8FH
	MOV	R2,#4
	MOV	49H,00H
	LCALL	COPY
	LJMP	KEY1	
CL2:	CJNE	A,#02H,CL3
	MOV	R1,#90H
	ANL	65H,#0FH
	ANL	65H,#9FH
	MOV	R2,#4
	MOV	49H,00H
	LCALL	COPY
	LJMP	KEY1
CL3:	CJNE	A,#03H,CL4
	MOV	R1,#0A0H
	ANL	65H,#0FH
	ANL	65H,#0AFH
	MOV	R2,#4
	MOV	49H,#00H
	LCALL	COPY	
	LJMP	KEY1
CL4:	MOV	R1,#46H
	MOV	R2,#4
QING:	MOV	@R1,#00H
	INC	R1	
	DJNZ	R2,QING
	MOV	R1,#64H
	MOV	45H,@R1
	MOV	R1,#0B0H
	ANL	65H,#0FH
	ANL	65H,#0BFH
	MOV	@R1,45H	
	LJMP	KEY1
	
		
STEP1:	CJNE	A,#49H,STEP2
	MOV	R0,#49H
	MOV	A,@R0
	INC	A
	CJNE	A,#02H,STEP22
	MOV	A,#00
	MOV	@R0,A
	MOV	R1,65H
	MOV	R2,#4
	LCALL	COPY
	LJMP	KEY1
STEP22:	MOV	@R0,A
	MOV	A,65H
	ADD	A,#4
	MOV	65H,A
	MOV	R1,A
	MOV	R2,#4
	LCALL	COPY
	LJMP	KEY1

STEP2:	MOV	R0,A
	MOV	A,@R0
	INC	A
	CJNE	A,#0AH,STEP3
	MOV	A,#00H
STEP3:	MOV	@R0,A
	MOV	B,62H
	DEC	B
	MOV	A,65H
	ADD	A,B
	MOV	R1,A
	MOV	A,@R0
	MOV	@R1,A
	LJMP	KEY1
K2:
CTN:	RET

COPY:	MOV	R0,#45H
	MOV	B,R0
	MOV	R3,B
COPY1:	MOV	B,@R1
	MOV	@R0,B
	INC	R0
	INC	R0
	DJNZ	R2,COPY1
	MOV	B,R3
	MOV	R0,B
	RET	
CHANG:	MOV	R0,#64H;(64H)存储设定的定时时间
	MOV	A,61H;(61H)存储当前的扫描时间
	CLR	C
	SUBB	A,@R0
	JZ	HL;判断是否到换路时间
	LJMP	JS	
HL:	MOV	61H,#0
	MOV	R0,#4AH
	MOV	A,@R0
	INC	A
	CJNE	A,#04H,C1
	MOV	A,#00H
C1:	MOV	@R0,A
	SWAP	A
	MOV	R2,A
	MOV	A,P2
	ANL	A,#0CFH
	ADD	A,R2
	MOV	P2,A
JS:	CLR	P2.6;清报警
	CLR	P2.7
	RET
INPUT:	MOV	R0,#7CH
	MOV	R1,#30H
	MOVX	@R0,A
	SETB	P2.3
LOOP:	JB	P2.3,LOOP
	INC	R0
	MOVX	A,@R0
	MOV	@R1,A
	DEC	R1
	INC	R0
	INC	R0
	MOVX	A,@R0
	ANL	A,#0FH
	MOV	@R1,A
	RET
DEAL:	MOV	R0,#30H	//要转换的数空间
	MOV	R1,#40H	//结果空间
	MOV	R2,#2	//转换位数
	;MOV	30H,#0FFH//
	;MOV	31H,#0FFH//
	LCALL	BCD
	MOV	R0,#45H
	MOV	R1,#40H
	MOV	R2,#2                                                
ZH:	MOV	A,@R1                                                      
	ANL	A,#0FH
	MOV	@R0,A
	INC	R0
	MOV	A,@R1
	MOV	B,#0FH
	DIV	AB
	MOV	@R0,A
	INC	R0
	INC	R1
	DJNZ	R2,ZH
	RET
BCD:	MOV	A,R0
	MOV	R6,A
	MOV	A,R1
	MOV	R7,A
	MOV	A,R2
	MOV	R5,A
	MOV	B,#8
	MUL	AB
	MOV	R3,A
	MOV	R4,#02H   
CHU:	MOV	@R1,#00H
	INC	R1
	DJNZ	R4,CHU
CS:	MOV	A,R6
	MOV	R0,A
	MOV	A,R7
	MOV	R1,A
	MOV	A,R5
	MOV	R2,A
YW:	MOV	A,@R0
	RLC	A
	MOV	@R0,A
	INC	R0
	DJNZ	R2,YW
	MOV	R4,#10H
JG:	MOV	A,@R1
	ADDC	A,@R1
	DA	A
	MOV	@R1,A
	INC	R1
	DJNZ	R4,JG
	DJNZ	R3,CS	
	RET
SHOW:	MOV	R0,#4AH	//
	MOV	R2,#6	//
	;MOV	R1,#50H//C
AGAIN:	LCALL	XIANS
	DJNZ	R2,AGAIN
	DEC	R0
	RET
XIANS:	MOV	B,R2
	DEC	B
	MOV	A,P2
	;MOV	A,@R1//C
	ANL	A,#0F8H
	ADD	A,B
	MOV	P2,A
	;MOV	@R1,A//C
	;INC	R1//C
	MOV	DPTR,#TAB
	MOV	A,@R0
	MOVC	A,@A+DPTR           
	MOV	P1,A
	;MOV	@R1,A//C
	;INC	R1//C
	LCALL	DL1MS
	RET
TAB:	DB 	0,0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H	
DL1MS:	MOV 	R7,#02H
DL1:	MOV	R6,#0FFH
DL2:	DJNZ	R6,DL2
	DJNZ	R7,DL1
	RET
BAOJ:	MOV	R0,#4AH
	MOV	A,@R0
	CJNE	A,#00H,B1
	MOV	R1,#73H
	LJMP	BJ
B1:	CJNE	A,#01H,B2
	MOV	R1,#83H
	LJMP	BJ
B2:	CJNE	A,#02H,B3
	MOV	R1,#93H
	LJMP	BJ	
B3:	MOV	R1,#0A3H
BJ:	MOV	R0,#48H
	MOV	R2,#4
CMP1:	MOV	A,@R0
	CLR	C
	SUBB	A,@R1
	JC	BJ0
	DEC	R0
	DEC	R1
	DJNZ	R2,CMP1
	LJMP	BJ1
BJ0:	SETB	P2.6
BJ1:	MOV	R0,#48H
	MOV	A,R1
	ADD	A,#47H
	MOV	R1,A
	MOV	R2,#4
CMP2:	MOV	A,@R1
	CLR	C
	SUBB	A,@R0
	JC	BJ1
	DEC	R0
	DEC	R1
	DJNZ	R2,CMP2
	LJMP	BJ3
BJ2:	SETB	P2.7
	
BJ3:	RET
	

	END

⌨️ 快捷键说明

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