Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
11/23/06 11:20
Read: times


 
#128445 - Kathy Quinlan's DMX
Hello everyone

I'm starting on a 8052 DMX demux, I've read kathy's article and source. The only question I have is one line of code:

JB	RB8,REC


What is she checking here?

Regards
Jeroen




BTW this is the whole code

;*************************      	 1CHANNEL        ***************************
;*************************  DMX 512 RECIVER PROGRAM  ***************************
;*************************     	11 BIT OUTPUT     ***************************
;*************************     BY KATHY QUINLAN      ***************************
;*************************    K.A.Q. ELECTRONICS     ***************************
;*************************    WRITTEN 05-09-1997     ***************************
;************************* LAST MODIFIED  26-01-2001 ***************************
;*************************      COPYRIGHT 2001       ***************************
;
;MESSAGE FROM THE CREATOR ABOUT LIFE.......
;
;... AT LEAST MY PROGRAMMING IS NOT AS BAD AS MY SPELLING. SORRY ABOUT THE 
;	COMMENT FIELDS.
;
;
;
;
$mod51					;ASM DIRECTIVE FOR USE 8051 COMMAND SET

;*************************  DATA EQU AND DEF STATEMENTS ************************

CNT1		EQU	7FH		;WE HAVE A BREAK PULSE
TEMP		EQU	7EH		;THROW RUBBISH HERE
IADDRESS	EQU	7DH		;BASE ADDRESS OF UNIT
TEMP2		EQU	7CH		;
CUR_BYTE	EQU	7BH		;CURRENT BYTE #
TIME2		EQU	7AH
DMX1		EQU	79H		;DMX BYTE 1


;************************** INTERRUPT VECTOR LIST ******************************

ORG 0000H				;RESET VECTOR
		SJMP	START		

ORG 0003H				;EXTERNAL INTERRUPT ZERO
		RETI

ORG 000BH				;TIMER ZERO OVERFLOW
		RETI

ORG 0013H				;EXTERNAL INTERRUPT ONE
		RETI
	
ORG 001BH				;TIMER ONE OVERFLOW
		RETI

ORG 0023H				;COMBINED TX AND RX INTERRUPT
		SJMP	REC_BYTE




;**************************  START OF MAIN PROGRAMM *****************************

ORG 002BH				;START OF MAIN ROUTINE
START:
		SJMP	SETUP		;SETUP CPU FOR SERIAL,ONLY AT START-UP
RUN:		SJMP	RUN		;WAIT FOR  BYTE REQUIRED

		
				

		



;**************************  SETUP ROUTINE  ************************************



SETUP:
		MOV 	R0,#7FH		;THIS + NEXT 3 LINES CLEAR ALL DATA 
		CLR	A		;LOCATIONS
CLEAR_LOOP:	MOV	@R0,A
		DJNZ	R0,CLEAR_LOOP
		MOV	CNT1,#00H	;RESET DMX STATUS REG
		MOV	PCON,#00H	;SETS BAUD RATE TO 250Kb (16 Mhz XTAL)
		MOV	SCON,#98H	;SETS UP THE SERIAL PORT (MODE 2)
		MOV	IADDRESS,P0	;LOADS UNIT BASE ADDRESS FROM DIP'S
		MOV	IE,#90H		;ENABLE RECIEVE INTERUPT
		SJMP	RUN		;RETURN TO MAIN PROGRAM



;**************************  RECIVE DMX BYTES  *********************************

REC_BYTE:
		PUSH	PSW		;PUSHED TO STOP OVER WRITE
		PUSH	ACC		;PUSHED TO STOP OVER WRITE
		CLR	RI		;CLEAR THE RECIVE FLAG
		JB	RB8,REC
		MOV	CUR_BYTE,#00H	;WE HAVE A BREAK 
		SJMP	OUTI
REC:		MOV	A,CUR_BYTE
		CJNE	A,#00H,RECD	;IF CURRENT DMX BYTE GREATER THAN 0 WE HAVE DETECTED START BYTE
		MOV	A,SBUF		;MOVES CURRENT DMX BYTE TO ACC
		CJNE	A,#00H,OUTI	;CHECK IF BYTE ZERO 
		INC	CUR_BYTE	;WE HAVE BYTE ZERO !!!!!!!
		SJMP	OUTI
RECD:		MOV	A,CUR_BYTE	;MOV CURRENT DMX BYTE TO A
		CJNE	A,IADDRESS,NOT_A	;COMP UNIT ADRESS AND CURRENT
		ACALL	OUTPUT		;GO TO SAVE BYTE ROUTINE
NOT_A:		INC 	CUR_BYTE	;INC READEY FOR NEXT DMX BYTE
OUTI:		POP 	ACC		;RETURNED FROM STACK
		POP	PSW		;RETURNED FROM STACK
		RETI			;PROC GO HOME !!!!




;************************** OUTPUT BYTE *************************************

OUTPUT:		MOV	P2,SBUF	
		RET			;JD
 
;**************************  THE END  ******************************************


END					;ASM DIRECTIVE FOR END OF FILE
</BODY></HTML>


List of 5 messages in thread
TopicAuthorDate
Kathy Quinlan's DMX            01/01/70 00:00      
   I guess...            01/01/70 00:00      
   Any help?            01/01/70 00:00      
   Any help?            01/01/70 00:00      
   DMX            01/01/70 00:00      

Back to Subject List