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

📄 jiancepan.asm

📁 一个75HZ铃流实时检测程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
			INC		R0
 			MOV		@R0,#0D2H
 			INC		R0
			MOV		@R0,#00H			
 			CLR		P1.3
 			CLR		P1.4
			MOV		29H,#05H

			MOV		A,B
			XRL		A,27H
			JNZ		REP10			
			JB		30H,TIME10
	REP10:		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

   	TIME10:		RET
		
 	STROE11:	MOV		@R0,0D3H
 			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		REP11	

			JB		30H,TIME11
	REP11:		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

   	TIME11:		RET

 	STROE12:	MOV		@R0,#0D4H
 			INC		R0
 			MOV		@R0,#0D3H
 			INC		R0
 			MOV		@R0,#0D2H
			INC		R0
			MOV		@R0,#00H 			
 			CLR		P1.3
 			SETB		P1.4
			MOV		29H,#05H

			MOV		A,B
			XRL		A,27H
			JNZ		REP12	

			JB		30H,TIME12
       	REP12:		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

  	 TIME12:	RET

	 STROE13:	MOV		@R0,#0D1H
 			INC		R0
 			MOV		@R0,#0D3H
 			INC		R0
 			MOV		@R0,#0D2H
 			INC		R0
			MOV		@R0,#00H			
 			CLR		P1.3
 			CLR		P1.4
			MOV		29H,#05H

			MOV		A,B
			XRL		A,27H
			JNZ		REP13			
			JB		30H,TIME13
 	 REP13:		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

   	TIME13:		RET

	 STROE14:	MOV		@R0,#0D4H
 			INC		R0
 			MOV		@R0,#0D1H
 			INC		R0
 			MOV		@R0,#0D3H
 			INC		R0
 			MOV		@R0,#0D2H
 			CLR		P1.3
 			CLR		P1.4
			MOV 		29H,#06H

			MOV		A,B
			XRL		A,27H
			JNZ		REP14							 			
			JB		30H,TIME14
  	 REP14:		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

  	TIME14:		RET

 	EXIT0:		SETB		P1.2
 			SETB		P1.3
 			SETB		P1.4
 			SETB		P1.5
 			MOV		@R0,#00H
 			MOV		2CH,#00H
 			MOV		29H,#03H
 			CLR		C
			MOV		30H,C

			MOV		A,B
			XRL		A,27H
			JNZ		REP15
			LJMP		TIME15
	REP15:		MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS
 			MOV		27H,B
	TIME15:		RET
 
;***************************************************
;			读取板位信息服务程序
;***************************************************
	BOARD:		MOV		DPTR,#8500H
			MOVX		A,@DPTR
			MOV		DPTR,#8500H
			MOVX		A,@DPTR
			MOV		2BH,A									
			MOV		DPTR,#8100H
			MOVX		A,@DPTR
			MOV		DPTR,#8100H
			MOVX		A,@DPTR
			RR		A
			RR		A
			RR		A
			RR		A
			ANL		A,#03H
			MOV		2AH,A			
			RET

	COMPARE:	MOV		A,@R1
			INC		R1
			CLR		PSW.6
			CLR		PSW.7
			SUBB		A,@R1
			JZ		EN
			JNC		EN
			MOV		A,@R1
	EN:		MOV		@R0,A
			INC		R0
			INC		R1
			DJNZ		R2,COMPARE
			MOV		R0,B
			MOV		A,@R0
			RET	
;****************************************************
;			RUNLED服务程序
;****************************************************
 	RUN:		CLR		TR0
 			DJNZ		20H,CNU0			
			CPL		P1.0				;喂狗
			CPL		P1.0
			CPL		P1.1				;点亮RUNLED			
			MOV		20H,#0AH
			MOV		TH0,#3CH
			MOV		TL0,#0B0H
			JNB		30H,CNU0									
			DJNZ		21H,CNU0
			SETB		P1.5							
			MOV		21H,#0AH
			DJNZ		22H,CNU0
			CLR		C
			MOV		30H,C
  	 CNU0:		SETB		TR0
 			RETI
;****************************************************
;			串行通信服务程序
;****************************************************			
	UART:		PUSH		ACC
			PUSH		PSW
			PUSH		0F0H
			PUSH		DPL
			PUSH		DPH
			SETB		RS0
			CLR		RS1
			SETB		26H.1
			JBC		RI,REV0
			JBC		TI,SED0
			LJMP		EXIT1

	SED0:		JB		24H.2,SE0	;发送数据块长度标识
			JB		24H.3,SE1	;发送数据块内容标识
			JB		24H.4,SE2
			JB		24H.5,SE4
			JB		24H.6,SE5
			LJMP		EXIT1

	SE0:		LJMP		SED1		;发送数据块长度
	SE1:		LJMP		SED2		;发送数据块内容
	SE2:		JNB		24H.6,SE3
			LJMP		EXIT2
	SE3:		LJMP		SED3		;发送校验和低字节
	SE4:		LJMP		SED4		;发送校验和高字节
	SE5:		LJMP		EXIT2
	REV0:		JB		24H.0,REV2	;接收数据块长度标识
			JB		24H.1,RE3	;接收数据块内容标识
			LJMP		RE4
	RE3:		LJMP		REV3
	RE4:		JNB		RB8,RE0
			LJMP		RE1
	RE0:		LJMP		EXIT1

	RE1:		MOV		A,SBUF
			CJNE		A,#00H,RE6
			LJMP		RE5
	RE6:		LJMP		REV1
	RE5:		CLR		SM2
			SETB		24H.0
			MOV		R0,#80H
			MOV		R6,#00H
			MOV		R7,#00H
			MOV		TL1,#00H
			MOV		TH1,#0EFH
			SETB		TR1
			LJMP		EXIT1
	REV2:		CLR		TR1
			MOV		@R0,SBUF
			MOV		A,SBUF
			LCALL		CHECKOUT
			MOV		A,SBUF
			ADD		A,#01H
			MOV		R5,A
			CLR		24H.0
			SETB		24H.1
			MOV		TL1,#00H
			MOV		TH1,#0EFH
			SETB		TR1
			LJMP		EXIT1
	REV4:		CLR		TR1
			MOV		A,SBUF
			MOV		@R0,A
			MOV		A,SBUF
			LCALL		CHECKOUT
			MOV		R4,#02H
			MOV		TL1,#00H
			MOV		TH1,#0EFH
			SETB		TR1
			CLR		P1.2
	TEMP:		LJMP		EXIT1
	REV1:		CJNE		A,#0FFH,RE2		
			LJMP		REV5
	RE2:		LJMP		REV5
	REV5:		SETB		SM2
			MOV		24H,#00H
			CLR		TR1
			SETB		P3.4
			LJMP		EXIT1
	REV3:		JB		RB8,REV5
			CLR		TR1
			MOV		A,R5
			XRL		A,#01H
			JZ		REV6
			INC		R0
			DJNZ		R5,REV4
	REV6:		CLR		TR1
			INC		R0
			MOV		A,SBUF
			MOV		@R0,A
			MOV		TL1,#00H
			MOV		TH1,#0EFH
			SETB		TR1
			DJNZ		R4,TEMP
			MOV		A,@R0
			MOV		23H,R7
			CJNE		A,23H,TEMP
			DEC		R0
			MOV		A,@R0
			MOV		23H,R6
			CJNE		A,23H,TEMP
			CLR		REN
			SETB		SM2
			CLR		P3.4
			CLR		24H.1
			SETB		24H.2
			MOV		R6,#00H
			MOV		R7,#00H
			SETB		TB8
			MOV		SBUF,#00H
			MOV		TL1,#00H
			MOV		TH1,#0EFH
			SETB		TR1
			LJMP		EXIT1
	SED1:		CLR		TB8
			CLR		TR1
			MOV		SBUF,29H
			MOV		A,29H
			LCALL		CHECKOUT
			CLR		24H.2
			SETB		24H.3
			MOV		R5,29H
			MOV		R0,#29H
			MOV		TL1,#00H
			MOV		TH1,#0EFH
			SETB		TR1
			LJMP		EXIT1
	SED2:		CLR		TR1
			INC		R0
			MOV		SBUF,@R0
			MOV		A,@R0
			LCALL		CHECKOUT
			DJNZ		R5,SE6
			CLR		24H.3
			SETB		24H.4
	SE6:		MOV		TL1,#00H
			MOV		TH1,#0EFH
			SETB		TR1
			LJMP		EXIT1
	SED3:		CLR		TR1
			MOV		SBUF,R6
			CLR		24H.4
			SETB		24H.5
			MOV		TL1,#00H
			MOV		TH1,#0EFH
			SETB		TR1
			LJMP		EXIT1
	SED4:		CLR		TR1
			MOV		SBUF,R7
			CLR		24H.5
			SETB		24H.6
			MOV		TL1,#00H
			MOV		TH1,#0EFH
			SETB		TR1
			SETB		REN		
			LJMP		EXIT1
;*************************************************
;			接收或发送中断退出服务程序
;*************************************************
	EXIT1:		CLR		TI
			CLR		RI
			POP		DPH
			POP		DPL
			POP		0F0H
			POP		PSW
			POP		ACC
			RETI
;***********************************************
;			最后一次中断服务程序
;***********************************************
	EXIT2:		CLR		TR1
			MOV		24H,#00H
			SETB		REN
			SETB		P3.4
			POP		DPH
			POP		DPL
			POP		0F0H
			POP		PSW
			POP		ACC
			RETI
;************************************************
;			通信超时服务程序
;************************************************
	UARTE:		CLR		TR1
			CLR		TI
			CLR		RI
			MOV		24H,#00H
			SETB		REN
			SETB		P3.4
			POP		DPH
			POP		DPL
			POP		0F0H
			POP		PSW
			POP		ACC
			RETI
;************************************************
;			计算校验和服务程序
;************************************************
     CHECKOUT:		CLR		PSW.6
     			CLR		PSW.7
			ADD		A,R6
			MOV		R6,A
			MOV		A,R7
			ADDC		A,#00H
			MOV		R7,A
			RET
;*************************************************
;			故障信息存储服务程序
;*************************************************
	STORE:		PUSH		ACC
			PUSH		0F0H
			PUSH		PSW
			PUSH		DPL
			PUSH		DPH
			CLR		RS0
			SETB		RS1
			MOV		A,25H
			JNZ		UAT
			MOV		R0,#87H
			MOV		A,@R0			
			JNZ		UA
			MOV		A,2CH
			JNZ		UA
			MOV		DPTR,#7FFAH
			MOVX		A,@DPTR

			JZ		REPET0
			LJMP		REPET
	REPET0:		LJMP		EXIT
	UA:		LJMP		UNT0
	UAT:		MOV		DPTR,#7FFAH
			MOVX		A,@DPTR
			JZ		UAT1
			AJMP		UAT0
	UAT1:		LJMP		EXIT
	UAT0:		MOV		A,29H
			SUBB		A,#02H
			JC		UAT2
			LJMP		UAT3
	UAT2:		LJMP		EXIT
	UAT3:		ADD		A,#01H
			MOV		B,A
			LCALL		STORETEST
			MOV		A,#0D5H
			MOVX		@DPTR,A
			LCALL		DELAY10MS
			MOV		A,29H
			CLR		PSW.6
			CLR		PSW.7
			SUBB		A,#02H
			JC		QQ0
			JZ		QQ0
			LJMP		QQ1
	QQ0:		LJMP		EXIT		
	QQ1:		MOV		R1,A
			MOV		R0,#2CH
			INC		DPTR
	CU0:		MOV		A,@R0
			MOVX		@DPTR,A
			LCALL		DELAY10MS
			INC		R0
			INC		DPTR
			DJNZ		R1,CU0
			LJMP		EXIT
	UNT0:		MOV		DPTR,#7FFAH
			MOVX		A,@DPTR
			JZ		EXIT
		
			MOV		B,#00H
			MOV		R0,#87H
			MOV		A,@R0
			JZ		NT0
			MOV		B,#01H
	NT0:		MOV		A,29H
			CLR		PSW.6
			CLR		PSW.7
			SUBB		A,#02H
			JC		EXIT
			ADD		A,B
			ADD		A,#06H
			XCH		A,0F0H
			LCALL		STORETEST
			ADD		A,#06H
			MOV		R1,A
			MOV		R0,#81H
	CU1:		MOV		A,@R0
			MOVX		@DPTR,A
			LCALL		DELAY10MS
			INC		R0
			INC		DPTR
			DJNZ		R1,CU1
			MOV		A,29H
			CLR		PSW.6
			CLR		PSW.7
			SUBB		A,#03H
			JC		EXIT	
			JZ		CU4
			MOV		R1,A
			MOV		R0,#2CH
			INC		R1
	CU2:		MOV		A,@R0
			MOVX		@DPTR,A
			LCALL		DELAY10MS
			INC		R0
			INC		DPTR
			DJNZ		R1,CU2
			LJMP		EXIT
	CU4:		MOV		A,2CH
			MOVX		@DPTR,A
			LCALL		DELAY10MS
			INC		DPTR
			LJMP		EXIT
	REPET:		MOV		B,#07H
			LCALL		STORETEST
			MOV		R1,#06H
			MOV		R0,#81H
	CU3:		MOV		A,@R0
			MOVX		@DPTR,A
			LCALL		DELAY10MS
			INC		R0
			INC		DPTR
			DJNZ		R1,CU3
			MOV		A,#00H
			MOVX		@DPTR,A
			LCALL		DELAY10MS
	EXIT:		MOV		DPTR,#7FFAH
			CLR		A
			MOVX		@DPTR,A
			LCALL		DELAY10MS	
  			POP		DPH
  			POP		DPL
  			POP		PSW
  			POP		0F0H
  			POP		ACC
  			RET
	STORETEST:	PUSH		ACC
			PUSH		0F0H
			MOV		DPTR,#7FF8H
			MOVX		A,@DPTR
			CLR		PSW.6
			CLR		PSW.7
			ADD		A,B
			MOV		R2,A
			INC		DPTR
			MOVX		A,@DPTR
			ADDC		A,#00H
			MOV		R3,A
			CLR		PSW.6
			CLR		PSW.7
			MOV		A,#0F7H
			SUBB		A,R2
			MOV		A,#7FH
			SUBB		A,R3
			JC		REDPTR
			MOV		DPTR,#7FF8H
			MOVX		A,@DPTR
			MOV		R4,A
			MOV		A,R2
			MOVX		@DPTR,A
			LCALL		DELAY10MS
			INC		DPTR
			MOVX		A,@DPTR
			MOV		R5,A
			MOV		A,R3
			MOVX		@DPTR,A
			LCALL		DELAY10MS
			MOV		DPL,R4
			MOV		DPH,R5
			INC		DPTR
			LJMP		STOREX
	REDPTR:		CLR		PSW.6
			CLR		PSW.7
			CLR		A
			ADD		A,B
			MOV		B,A
			MOV		DPTR,#7FF8H
			MOV		A,B
			MOVX		@DPTR,A
			LCALL		DELAY10MS
			INC		DPTR
			MOV		A,#00H
			MOVX		@DPTR,A
			LCALL		DELAY10MS
			MOV		DPTR,#0000H
	STOREX:		POP		0F0H
			POP		ACC	
			RET
;******************************************************
;			故障实时监测服务程序
;******************************************************
	  TEST:		PUSH		ACC			
	  		PUSH		0F0H
	  		JBC		26H.1,CONTIU0
			MOV		25H,#0D5H
			SETB		26H.4
			LJMP		CONTIU1
	CONTIU0:	MOV		25H,#00H
			CLR		26H.4
	CONTIU1:	MOV		R0,#87H
			MOV		A,@R0
			JZ		CONTIU2
			SETB		26H.5
			LJMP		CONTIU5
	CONTIU2:	CLR		26H.5
	CONTIU5:	MOV		A,26H
			ANL		A,#0F0H
			MOV		B,A
			MOV		DPTR,#7FFBH
			MOVX		A,@DPTR
			CJNE		A,0F0H,CONTIU3
			LJMP		CONTIU4
	CONTIU3:	MOV		DPTR,#7FFAH
			MOV		A,#0FFH
			MOVX		@DPTR,A
			LCALL		DELAY10MS
	CONTIU4:	MOV		DPTR,#7FFBH
			MOV		A,B
			MOVX		@DPTR,A
			LCALL		DELAY10MS
			POP		0F0H
			POP		ACC
			RET
;**************************************************
;			延时500MS子程序
;**************************************************	
	DELAY500MS:	MOV		R5,#38H
	DELAY2:		LCALL		DELAY10MS
			DJNZ		R5,DELAY2
			RET
;**************************************************
;			延时10MS子程序
;**************************************************
	DELAY10MS:	MOV		R7,#0AH
 	  DELOP0:	MOV		R6,#0FFH
  	 DELOP1:	NOP
   			NOP
   			DJNZ		R6,DELOP1
   			DJNZ		R7,DELOP0
   			RET

			END

⌨️ 快捷键说明

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