;==========================================================
;
; Some UTL for x51 SingleChips
; 
; (C) HELIUM  
; http://helium.webz.cz/
;
; compiled with MetaLink 8051 Cross-Assembler, Version 1.2k
;==========================================================

$MOD51

;==========================================================

; nastaveni serioveho portu na 9600b/s 
; pri krystalu 24 / 11.0592 MHz
SetSerial:
	anl	TMOD, #0Fh	;
	orl	TMOD, #00100000B;
IF XTAL=24 			; 24 MHz
	mov	TH1,  #0F3h	;
	mov	TL1,  #0	;	
	orl	PCON, #80h	; plna rychlost
ELSE				; 11.0592 MHz
	mov	TH1,  #0FDh	;
	mov	TL1,  #0	;	
	anl	PCON, #7Fh	; polovicni rychlost
ENDIF
	mov	SCON, #01010000B; prijem i vysilani
;	mov	SCON, #01000000B; pouze vysilani
	setb	TR1		;	
	clr	TI		;
	clr	RI		;
	RET			;
	
;==========================================================

; vysle obsah ACC seriovou linkou
TX_ACC:	mov	SBUF, A		;
	jnb 	TI, $ 		;
	clr 	TI 		;
	RET			;

;==========================================================

; prijme (ceka na prijem) obsah seriove linky do ACC
RX_ACC:	jnb	RI, $		;
	mov	A, SBUF		;
	clr	RI		;
	RET			;

;==========================================================

; makro k zapnuti rezimu IDLE
IDLE_ON	MACRO			;
	orl PCON, #00000001B	;
ENDM				;

;==========================================================

; makro k vypnuti rezimu IDLE
IDLE_OFF MACRO			;
	anl PCON, #11111110B	;
ENDM				;

;==========================================================

; vysle obsah ACC seriovou linkou v rezimu IDLE
TXi_ACC:mov	IE, #10010000B	; povoleni preruseni RS232
	mov	SBUF, A		;
	IDLE_ON			; musi byt povoleno ES, EA a obsluha ES
	RET			;

;==========================================================