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

📄 jiancepan.asm

📁 一个75HZ铃流实时检测程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
			ORG		0000H
			LJMP		START					
			ORG		000BH		;TR0中断入口地址
			LJMP  		RUN
			ORG		001BH		;TR1中断入口地址
			LJMP		UARTE
			ORG		0023H		;串行通信中断入口地址
			LJMP		UART


  START: 		MOV		SP,#60H		;设置堆栈指针为60H
    			SETB		P1.2
   			SETB		P1.3
   			SETB		P1.4
   			SETB		P1.5
   			MOV		R1,#10H
   			MOV		R0,#20H
   	CLR0:		MOV		@R0,#00H
   			INC		R0
  			DJNZ		R1,CLR0
	   		MOV		R1,#10H
			MOV		R0,#80H
        CLR1:		MOV		@R0,#00H
			INC		R0
			DJNZ		R1,CLR1
  			MOV		TCON,#00H	;TR0初始化程序
			MOV		TMOD,#11H
			MOV		TH0,#3CH
			MOV		TL0,#0B0H
   			CLR		P1.0
   			CLR		P1.1			   			
  			SETB		EA			;开中断
			SETB		ET0			;允许TR0中断
			SETB		TR0
			MOV		20H,#0AH
;*******************************************************
;               	  串行通信初始化程序
;*******************************************************
			MOV		TL1,#00H
			MOV		TH1,#0EFH
			MOV		SCON,#0F0H
			SETB		ES
			SETB		PS
			SETB		ET1
			MOV		0CAH,#0DCH
			MOV		0CBH,#0FFH
			MOV		0CCH,#0DCH
			MOV		0CDH,#0FFH
			SETB		0CCH
			SETB		0CDH
			SETB		0CAH
			MOV		24H,#00H	
							
	START0:		MOV		R1,#30H
			MOV		R0,#30H	
			MOV		28H,#00H
	CR:		MOV		@R0,#00H
			INC		R0
			DJNZ		R1,CR
						
			LCALL		BOARD
			LCALL		TRUBTEST
			LCALL		DELAY500MS

			LCALL		TEST
			LCALL		STORE
			SETB		P1.2
			LJMP		START0
;****************************************************
;			故障检测服务程序
;****************************************************
TRUBTEST:		MOV		R5,#03H
	LOP1:		MOV		R4,#03H
	LOP0:		MOV  		R3,#0FH
	LOOP:		MOV		R1,#10H
			MOV		R0,#30H
	CR0:		MOV		@R0,#00H
			INC		R0
			DJNZ		R1,CR0
			MOV		DPTR,#8100H
			MOV		R1,#0FH
	RDR:		MOVX		A,@DPTR
			ANL		A,#0FH
			ORL		A,#30H
			MOV		R0,A
			INC		@R0
			DJNZ		R1,RDR

			MOV		R2,#08H
			MOV		R1,#30H
			MOV		R0,#40H
			MOV		B,R0
			LCALL		COMPARE

			MOV		R2,#04H
			MOV		R1,#40H
			MOV		R0,#40H
			MOV		B,R0
			LCALL		COMPARE

			MOV		R2,#03H
			MOV		R1,#40H
			MOV		R0,#40H
			MOV		B,R0
			LCALL		COMPARE

			MOV		R2,#01H
			MOV		R1,#40H
			MOV		R0,#40H
			MOV		B,R0
			LCALL		COMPARE

			MOV		R1,#10H
			MOV		R0,#2FH
	FD1:		INC		R0
			MOV		A,@R0
			CLR		PSW.6
			CLR		PSW.7
			SUBB		A,40H
			JZ		XIANGD1
			DJNZ		R1,FD1
XIANGD1:		MOV		A,R0			

			ANL		A,#0FH
			ORL		A,#50H
			MOV		R0,A
			INC		@R0
			DJNZ		R3,LOOP

			MOV		R2,#08H
			MOV		R1,#50H
			MOV		R0,#50H
			MOV		B,R0
			LCALL		COMPARE

			MOV		R2,#04H
			MOV		R1,#50H
			MOV		R0,#50H
			MOV		B,R0
			LCALL		COMPARE

			MOV		R2,#02H
			MOV		R1,#50H
			MOV		R0,#50H
			MOV		B,R0
			LCALL		COMPARE

			MOV		R2,#01H
			MOV		R1,#50H
			MOV		R0,#50H
			MOV		B,R0
			LCALL		COMPARE

			MOV		R1,#10H
			MOV		R0,#2FH
	FD0:		INC		R0
			MOV		A,@R0
			CLR		PSW.6
			CLR		PSW.7
			SUBB		A,40H
			JZ		XIANGD0
			DJNZ		R1,FD0
XIANGD0:		MOV		A,R0

			CLR		PSW.6
			CLR		PSW.7
			MOV		B,A
			MOV		A,R4
			ADD		A,#4CH
			MOV		R0,A
			MOV		@R0,B
			MOV		A,B
			DJNZ		R4,KG1
			AJMP		KG2
	KG1:		LJMP		LOP0
				
	KG2:		XRL		A,4EH
			JZ		KG0
		   	LJMP		LOP1

	KG0:		MOV		A,B
			XRL		A,4FH
			JZ		KG3
			LJMP		LOP1

	KG3:		MOV		A,B
			CLR		PSW.6
			CLR		PSW.7
			MOV		B,A
			MOV		A,R5
			ADD		A,#48H
			MOV		R0,A
			MOV		@R0,B
			MOV		A,B
			DJNZ		R5,KG5
			AJMP		KG6
	KG5:		LJMP		LOP1
	KG6:		MOV		A,B
			XRL		A,4AH
			JZ		KG7
			RET

	KG7:		MOV		A,B
			XRL		A,4BH
			JZ		KG8
			RET			

	KG8:		MOV		A,4BH
			LCALL		CHK
			RET

	CHK:		MOV		B,A
			MOV		R0,#2CH
			ANL		A,#00000001B				;检测RING
			JZ		TT0	
			SETB		40H

	TT0:		MOV		A,B					;检测24V
			ANL		A,#00000010B
			JNZ		TT1
			SETB		41H

	TT1:		MOV		A,B					;检测TONE
			ANL		A,#00000100B
			JZ		TT2
			SETB		42H

	TT2:		MOV		A,B					;AC交流检测
			ANL		A,#00001000B
			JZ		TT3
			SETB		43H

	TT3:		MOV		A,28H
			MOV		B,A

			XRL		A,#00H				;检测是否为无故障
			JZ		TT4
			LJMP		TT5

	TT4:		LJMP		EXIT0

	TT5:		MOV		A,B					;是否为 RING			
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#01H
			JZ		TMP0
			LJMP		TMP1
	TMP0:		LJMP		STROE0

	TMP1:		MOV		A,B					;是否为 24V
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#02H
			JZ		TMP2
			LJMP		TMP3
	TMP2:		LJMP		STROE1

	TMP3:		MOV		A,B					;是否为 24V+RING
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#03H
			JZ		TMP4
			LJMP		TMP5
	TMP4:		LJMP		STROE2

	TMP5:		MOV		A,B					;是否为 450HZ
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#04H
			JZ		TMP6
			LJMP		TMP7
	TMP6:		LJMP		STROE3

	TMP7:		MOV		A,B					;是否为 450HZ+RING
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#05H
			JZ		TMP8
			LJMP		TMP9
	TMP8:		LJMP		STROE4	

	TMP9:		MOV		A,B					;是否为 450HZ+24V
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#06H
			JZ		TMP10
			LJMP		TMP11
	TMP10:		LJMP		STROE5

	TMP11:		MOV		A,B					;是否为 450HZ+24V+RING
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#07H
			JZ		TMP12
			LJMP		TMP13
	TMP12:		LJMP		STROE6

	TMP13:		MOV		A,B					;是否为无AC
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#08H
			JZ		TMP14
			LJMP		TMP15
	TMP14:		LJMP		STROE7	

	TMP15:		MOV		A,B					;是否为 AC+RING
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#09H
			JZ		TMP16
			LJMP		TMP17
	TMP16:		LJMP		STROE8

	TMP17:		MOV		A,B					;是否为 AC+24V
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#0AH
			JZ		TMP18
			LJMP		TMP19
	TMP18:		LJMP		STROE9

	TMP19:		MOV		A,B					;是否为 AC+24V+RING
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#0BH
			JZ		TMP20
			LJMP		TMP21
	TMP20:		LJMP		STROE10

	TMP21:		MOV		A,B					;是否为 AC+450HZ
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#0CH
			JZ		TMP22
			LJMP		TMP23
	TMP22:		LJMP		STROE11

	TMP23:		MOV		A,B					;是否为	AC+450HZ+RING
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#0DH
			JZ		TMP24
			LJMP		TMP25
	TMP24:		LJMP		STROE12

	TMP25:		MOV		A,B					;是否为	AC+450HZ+24V
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#0EH
			JZ		TMP26
			LJMP		TMP27
	TMP26:		LJMP		STROE13

	TMP27:		MOV		A,B						;是否为	AC+450HZ+24V+RING
			CLR		PSW.7
			CLR		PSW.6
			SUBB		A,#0FH
			JZ		TMP28
			LJMP		TMP29
	TMP28:		LJMP		STROE14

	TMP29:		LJMP		EXIT0

	STROE0:		MOV		@R0,#0D4H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H						
			SETB		P1.3
			SETB		P1.4
			MOV		29H,#03H


			MOV		A,B
			XRL		A,27H
			JNZ		REP0
		
			JB		30H,TIME0
	REP0:		CLR		P1.5
			SETB		30H
			MOV		21H,#0AH
			MOV		22H,#0AH
			MOV		27H,B

			MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS

	TIME0:		RET
			
	STROE1:		MOV		@R0,#0D1H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H							
			SETB		P1.3
			CLR		P1.4
  			MOV		29H,#03H
			MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS

			MOV		A,B
			XRL		A,27H
			JNZ		REP1
		
			JB		30H,TIME1
	REP1:		CLR		P1.5
			SETB		30H
			MOV		21H,#0AH
			MOV		22H,#0AH
			MOV		27H,B
			
			MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS

  	TIME1:		RET					
	STROE2:		MOV		@R0,#0D4H
			INC		R0
			MOV		@R0,#0D1H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H						
			SETB		P1.3
			CLR		P1.4
 			MOV		29H,#04H

			MOV		A,B
			XRL		A,27H
			JNZ		REP2			
		
			JB		30H,TIME2
	REP2:		CLR		P1.5
			SETB		30H
			MOV		21H,#0AH
			MOV		22H,#0AH
			MOV		27H,B
			
			MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS

  	 TIME2:		RET

	STROE3:		MOV		@R0,#0D3H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H							
			SETB		P1.3
			SETB		P1.4
			MOV		29H,#03H

			MOV		A,B
			XRL		A,27H
			JNZ		REP3			
		
			JB		30H,TIME3
	REP3:		CLR		P1.5
			SETB		30H
			MOV		21H,#0AH
			MOV		22H,#0AH
			MOV		27H,B
			
			MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS

   	TIME3:		RET
		
		
	STROE4:		MOV		@R0,#0D4H
			INC		R0
			MOV		@R0,#0D3H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H						
			SETB		P1.3
			SETB		P1.4
  			MOV		29H,#04H


			MOV		A,B
			XRL		A,27H
			JNZ		REP4			
		
			JB		30H,TIME4
	REP4:		CLR		P1.5
			SETB		30H
			MOV		21H,#0AH
			MOV		22H,#0AH
			MOV		27H,B

			MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS

  	TIME4:		RET
				
	STROE5:		MOV		@R0,#0D1H
			INC		R0
			MOV		@R0,#0D3H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H						
			SETB		P1.3
			CLR		P1.4
			MOV		29H,#04H

			MOV		A,B
			XRL		A,27H
			JNZ		REP5
		
			JB		30H,TIME5
	REP5:		CLR		P1.5
			SETB		30H
			MOV		21H,#0AH
			MOV		22H,#0AH
			MOV		27H,B

			MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS

  	 TIME5:		RET
	
	STROE6:		MOV		@R0,#0D4H
			INC		R0
			MOV		@R0,#0D1H
			INC		R0
			MOV		@R0,#0D3H
			INC		R0
			MOV		@R0,#00H			
			SETB		P1.3
			CLR		P1.4
			MOV		29H,#05H

			MOV		A,B
			XRL		A,27H
			JNZ		REP6			
			
			JB		30H,TIME6
	REP6:		CLR		P1.5
			SETB		30H
			MOV		21H,#0AH
			MOV		22H,#0AH
			MOV		27H,B
			
			MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS

  	TIME6:		RET
			
	STROE7:		MOV		@R0,#0D2H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H							
			CLR		P1.3
			SETB		P1.4
			MOV		29H,#03H

			MOV		A,B
			XRL		A,27H
			JNZ		REP7
			JB		30H,TIME7
	REP7:		CLR		P1.5
			SETB		30H
			MOV		21H,#0AH
			MOV		22H,#0AH
			MOV		27H,B

			MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS			

	 TIME7:		RET
			
	STROE8:		MOV		@R0,#0D4H
			INC		R0
			MOV		@R0,#0D2H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H						
			CLR		P1.3
			SETB		P1.4
			MOV		29H,#04H

			MOV		A,B
			XRL		A,27H
			JNZ		REP8			
	
			JB		30H,TIME8
	REP8:		CLR		P1.5
			SETB		30H
			MOV		21H,#0AH
			MOV		22H,#0AH
			MOV		27H,B
			
			MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS

   	TIME8:		RET

	STROE9:		MOV		@R0,#0D1H
			INC		R0
			MOV		@R0,#0D2H
			INC		R0
			MOV		@R0,#00H
			INC		R0
			MOV		@R0,#00H						
			CLR		P1.3
			CLR		P1.4
			MOV		29H,#04H

			MOV		A,B
			XRL		A,27H
			JNZ		REP9			

			JB		30H,TIME9
	REP9:		CLR		P1.5
			SETB		30H
			MOV		21H,#0AH
			MOV		22H,#0AH
			MOV		27H,B
			
			MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS

	 TIME9:		RET

 	STROE10:	MOV		@R0,#0D4H
			INC		R0
			MOV		@R0,#0D1H

⌨️ 快捷键说明

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