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

📄 rs485.asm

📁 This a good program
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;=================IN THE NAME OF ALLAH===============
;GET TEMP & RPM AND COMPARE IT GIVEN VALUE ALSO SEND IT RS485
;            
;====================================================


RS	BIT     P1.1
EN	BIT     P1.0
BUZZ	BIT     P2.7

RLY1	BIT		P1.7
RLY2	BIT		P1.6
RLY3	BIT		P1.5
RLY4	BIT		P1.4

SW1	BIT		P2.3
SW2	BIT		P2.2
SW3	BIT		P2.0
SW4	BIT		P2.1

TEM_S	BIT		P3.2
RPM_S	BIT		P3.3
SENB	BIT		P3.4
SMOKE	BIT		P3.5
;===================================================
TC0_F   BIT	    08H

FLG1	BIT		00H
FLG2	BIT		01H	
FLG3	BIT		02H
;===================================================
;===================BYTE ASSIGNMENTS================

XRLOW           EQU	        30H
XRHIGH          EQU	    	31H
XRVLOW          EQU	    	32H
XRVHIGH         EQU    		33H

BCD0            EQU    		34H
BCD1            EQU    		35H
BCD2            EQU    		36H
BCD3            EQU    		37H
BCD4            EQU    		38H

TC0				EQU			39H

RPM				EQU			03AH
RPMLOW			EQU			03BH
RPMHIGH			EQU			03CH
CNT				EQU			03DH
TVAL			EQU			03EH

RBCD0			EQU			40H
RBCD1			EQU			41H
RBCD2			EQU			42H
RBCD3			EQU			43H

TBCD1			EQU			45H
TBCD2			EQU			46H
TBCD3			EQU			47H

CTBCD1			EQU			48H
CTBCD2			EQU			49H
CTBCD3			EQU			4AH
		   	
CRBCD0			EQU			4BH		
CRBCD1			EQU			4CH		
CRBCD2			EQU			4DH		
CRBCD3			EQU			4EH		

;===================================================
DATAPRT			EQU			80H
;===================================================

                ORG         00H
                JMP         INI

	       		ORG     	0003H           
        		LJMP    	EX0ISR

	        	ORG     	000BH           
        		LJMP    	T0ISR
		   	
	       		ORG     	0013H           
        		LJMP    	EX1ISR

                ORG             30H

;==============LCD INITILALIZATION==================
INI:
                MOV             R2,#50H
                MOV             R3,#0FFH
                DJNZ            R3,$
                DJNZ            R2,$-4
                CLR             RS
                SETB            EN
                MOV             DATAPRT,#01H
                CALL            CLOCK
                MOV             DATAPRT,#02H
                CALL            CLOCK
                MOV             DATAPRT,#00111100B
                CALL            CLOCK
                MOV             DATAPRT,#00001100B 
                CALL            CLOCK
;===================================================
				CLR				BUZZ
				MOV				RPM,#00H
;===================================================

	        	MOV     	TMOD,#21H
        		MOV     	IE,#087H
        		SETB    	IT0
				SETB		IT1
        		MOV     	TH0,#HIGH(-50000)
        		MOV     	TL0,#LOW(-50000)
        		MOV     	TC0,#20
        		SETB    	TR0

                MOV	     	SCON,#50H
        		MOV     	TH1,#0FDH
        		SETB    	TR1



		MOV		TVAL,#00H		
		MOV		RBCD0,#00H		
		MOV		RBCD1,#00H		
		MOV		RBCD2,#00H		
		MOV		RBCD3,#00H		

		MOV		TBCD1,#00H		
		MOV		TBCD2,#00H	
		MOV		TBCD3,#00H		

		MOV		CTBCD1,#00H		
		MOV		CTBCD2,#00H		
		MOV		CTBCD3,#00H		

		MOV		CRBCD0,#00H				
		MOV		CRBCD1,#00H				
		MOV		CRBCD2,#00H				
		MOV		CRBCD3,#00H		




;==================MAIN PROGRAM=====================
MAIN:

		CALL		INPUT_R

		CALL		CDIS
		CALL		LINE1
		CALL		LINE2
ABC:

		SETB		TR0
		JNB			TC0_F,$
		CLR			TC0_F
		MOV			A,XRVLOW
		MOV			RPMLOW,A
		MOV			A,XRVHIGH
		MOV			RPMHIGH,A
		CALL		BCD_R

		MOV			CTBCD1,BCD1
		MOV			CTBCD2,BCD2
		MOV			CTBCD3,BCD3
		CALL		LINE3
		CALL		COMP1

		MOV			A,RPM
		MOV			B,#60
		MUL			AB
		MOV			RPMLOW,A
		MOV			RPMHIGH,B
		CALL		BCD_R
		MOV			CRBCD0,BCD0
		MOV			CRBCD1,BCD1
		MOV			CRBCD2,BCD2
		MOV			CRBCD3,BCD3
		CALL		LINE4
		CALL		COMP2
		CALL		DESC
		CALL		SER
		MOV			RPM,#00H
		SJMP		ABC

;====================INPUT ROUTINE=================

INPUT_R:
		CALL		INPMSG1
A3:
		CALL		OUTMSG1	
		JB			SW1,A1
		JNB			SW1,$
		INC			TVAL
A1:
		JB			SW2,A2
		JNB			SW2,$
		MOV			A,TVAL
		ADD			A,#10
		MOV			TVAL,A
A2:
		JB			SW3,A3
		JNB			SW3,$
		CALL		INPMSG2

;================================================
		MOV			R0,#40H
B4:
		CALL		OUTMSG2
		MOV			A,@R0
		JB			SW1,B1
		JNB			SW1,$
		CJNE		A,#09,B6
		MOV			A,#00H
		SJMP		B7
B6:

		INC			A
B7:
		MOV			@R0,A
B1:
		JB			SW2,B2
		JNB			SW2,$

		CJNE		A,#00,B8
		MOV			A,#09H
		SJMP		B9

B8:

		DEC			A
B9:

		MOV			@R0,A
B2:
		JB			SW3,B3
		JNB			SW3,$
		MOV			A,R0
		CJNE		A,#44H,B5
		MOV			R0,#40H
		SJMP		B3
B5:
		INC			R0
B3:				
		JB			SW4,B4
		JNB			SW4,$
		RET
;=======================================================
;============COMPARASION ROUITNE 1===================
COMP1:
		MOV			A,TBCD1
		CJNE		A,BCD3,K1
		MOV			A,TBCD2
		CJNE		A,BCD2,K1
		MOV			A,TBCD3
		CJNE		A,BCD1,K1
		CLR			FLG1
		SETB		RLY1
		RET				

K1:
		JC			K2
		CLR			FLG1
		SETB		RLY1
		RET		

K2:
		SETB		FLG1
		CLR			RLY1
		RET

;====================================================
;============COMPARASION ROUITNE 2===================
COMP2:
		MOV			A,RBCD3
		CJNE		A,BCD3,K3
		MOV			A,RBCD2
		CJNE		A,BCD2,K3
		MOV			A,RBCD1
		CJNE		A,BCD1,K3
		MOV			A,RBCD0
		CJNE		A,BCD0,K3
		CLR			FLG2
		SETB		RLY2
		RET				
K3:
		JC			K4
		CLR			FLG2
		SETB		RLY2
		RET		

K4:
		SETB		FLG2
		CLR			RLY2
		RET

;====================================================
;===============DESCISION ROUITNE====================
DESC:
		MOV			C,P3.5
		MOV			FLG3,C
		CPL			C
		MOV			RLY3,C
		MOV			R0,#03
		MOV			CNT,#00H
		MOV			A,20H
		CLR			C
K6:
		RRC			A
		JC			K5
		DJNZ		R0,K6
		SJMP		K7
K5:
		INC			CNT		
		DJNZ		R0,K6
K7:
		MOV			A,CNT
		CJNE		A,#02,K8
		SETB		BUZZ
		RET
K8:
		JC			K9
		SETB		BUZZ
		RET
K9:
		CLR			BUZZ
		RET


;===================SERIAL ROUTINE=================
SER:
		JNB			RI,C_1
		MOV			A,SBUF
		CLR			RI		
		CJNE		A,#'B',C_1
		SJMP		C_2

C_1:
		RET

C_2:
		SETB		SENB
		MOV			A,TBCD1
		ORL			A,#30H
		MOV			SBUF,A
		JNB			TI,$
		CLR			TI
		MOV			A,TBCD2
		ORL			A,#30H
		MOV			SBUF,A
		JNB			TI,$
		CLR			TI
		MOV			A,TBCD3
		ORL			A,#30H
		MOV			SBUF,A
		JNB			TI,$
		CLR			TI
		MOV			A,RBCD3
		ORL			A,#30H
		MOV			SBUF,A
		JNB			TI,$
		CLR			TI
		MOV			A,RBCD2
		ORL			A,#30H
		MOV			SBUF,A
		JNB			TI,$
		CLR			TI
		MOV			A,RBCD1
		ORL			A,#30H

		MOV			SBUF,A
		JNB			TI,$
		CLR			TI
		MOV			A,RBCD0
		ORL			A,#30H

		MOV			SBUF,A
		JNB			TI,$
		CLR			TI


		MOV			A,CTBCD3
		ORL			A,#30H

		MOV			SBUF,A
		JNB			TI,$
		CLR			TI

		MOV			A,CTBCD2
		ORL			A,#30H

		MOV			SBUF,A
		JNB			TI,$
		CLR			TI
		MOV			A,CTBCD1
		ORL			A,#30H

		MOV			SBUF,A
		JNB			TI,$
		CLR			TI

		MOV			A,CRBCD3
		ORL			A,#30H

		MOV			SBUF,A
		JNB			TI,$
		CLR			TI

		MOV			A,CRBCD2
		ORL			A,#30H

		MOV			SBUF,A
		JNB			TI,$
		CLR			TI
		MOV			A,CRBCD1
		ORL			A,#30H

		MOV			SBUF,A
		JNB			TI,$
		CLR			TI

		MOV			A,CRBCD0
		ORL			A,#30H

		MOV			SBUF,A
		JNB			TI,$
		CLR			TI

		MOV			A,20H
		MOV			SBUF,A
		JNB			TI,$
		CLR			TI


		CLR			SENB
		RET

;==============EX1 INTERUPT ROUTINE================= 

EX0ISR:
        PUSH    	ACC

⌨️ 快捷键说明

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