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

📄 intercom.a51

📁 mini intercom mini intercom
💻 A51
字号:
INCLUDE REG_51.PDF

	STD	EQU	P3.0
	Q3		EQU	P3.1
	Q2		EQU	P3.2
	Q1		EQU	P3.3
	Q0		EQU	P3.4	
	
	HOOK2	EQU	P3.7
	HOOK1	EQU	P1.0
	
	RING	EQU	P1.4
	TEL	EQU	P1.7
	TEL1	EQU	P1.5
	TEL2	EQU	P1.6
	


DSEG            ; This is internal data memory
ORG     20H     ; Bit adressable memory
	DTMF     DATA   20H
	D0 BIT   DTMF.0
	D1	BIT	DTMF.1
	D2	BIT	DTMF.2
	D3	BIT	DTMF.3
STACK:  DS      1       ; Stack begins here
CSEG            ; Code begins here
 
;---------==========----------==========---------=========---------
;              PROCESSOR INTERRUPT AND RESET VECTORS
;---------==========----------==========---------=========---------
 
         ORG     00H    ; Reset       
;  ---------==========----------==========---------=========---------
;  Main routine
;  ---------==========----------==========---------=========---------
			 MOV SP,STACK
			 MOV P1,#00H
			 
			 
UUP:		 CLR TEL
			 CLR TEL1
			 CLR TEL2
			 
			 SETB HOOK1
			 SETB HOOK2
			 JNB HOOK1,TTEL1
			 JNB HOOK2,TTEL4
			 AJMP UUP
			 
	
TTEL4:	AJMP TTEL2
			 

SXS11:	AJMP SXS1			 
TTEL1:	SETB TEL2						;CUT TEL 2
			SETB STD
			SETB HOOK1
DCD1:		JB HOOK1,UUP
			JNB STD,DCD1
			CALL READ
			MOV A,DTMF
			CJNE A,#01H,SXS11
			SETB STD
			JB STD,$
DCD3:		JB HOOK1,UUP
			JNB STD,DCD3
			CALL READ
			MOV A,DTMF
			CJNE A,#01H,SXS11
			SETB TEL							;GIVE RING SIGNAL
			CLR TEL2
			SETB TEL1
			NOP
			SETB RING
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CALL DELAY
			
			CLR RING
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CALL DELAY
			SETB RING
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CLR RING
			CALL DELAY
			CLR TEL
			CLR TEL1
			CLR TEL2
			CALL DELAY
			SETB HOOK1
			JNB HOOK1,$
		
uup1:			AJMP UUP

TTEL2:	SETB TEL1						;CUT TEL 2
			SETB STD
			SETB HOOK2
DCD2:		JB HOOK2,UUP1
			JNB STD,DCD2
			CALL READ
			MOV A,DTMF
			CJNE A,#01H,SXS2
			SETB STD
			JB STD,$
DCD4:		JB HOOK2,UUP1
			JNB STD,DCD4
			CALL READ
			MOV A,DTMF
			CJNE A,#02H,SXS2
			SETB TEL							;GIVE RING SIGNAL
			CLR TEL1
			SETB TEL2
			SETB RING
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CALL DELAY			
			CLR RING
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CALL DELAY
			SETB RING
			CALL DELAY
			CALL DELAY
			CALL DELAY
			CALL DELAY 
			CALL DELAY
			CLR RING
			CALL DELAY
			CLR TEL
			CLR TEL1
			CLR TEL2
			CALL DELAY
			SETB HOOK2
			JNB HOOK2,$
			AJMP UUP			
			
						 
SXS1:		SETB HOOK1				;WAIT IF OTHER NUMBER DIALLED
			JNB HOOK1,$
			CLR TEL2
			AJMP UUP
						 
			 
SXS2:		SETB HOOK2				;WAIT IF OTHER NUMBER DIALLED
			JNB HOOK2,$
			CLR TEL1
			AJMP UUP
						 			 
DELAY:
		MOV R5,#01H
REP3:	MOV R0,#0FFH
REP2:	MOV R1,#0FFH
REP1:	NOP
		DJNZ R1,REP1
		DJNZ R0,REP2
		DJNZ R5,REP3
		RET
				 
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;				READ DTMF TONES
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%		
READ:
		MOV DTMF,#00H
		SETB Q0
		SETB Q1
		SETB Q2
		SETB Q3
		JNB Q0,VB1
		SETB D0
VB1:	JNB Q1,VB2
		SETB D1		
VB2:	JNB Q2,VB3
		SETB D2
VB3:	JNB Q3,VB4
		SETB D3
VB4:	RET		
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%				 
			 
			 END
			 

⌨️ 快捷键说明

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