;IRDA CODE FOR MAX-3100 UART BASED
;*******************************************************
;PORT PIN DEFINITONS BIT BANGING IF
DOUT BIT P1.1
DIN BIT P1.0
SCLK BIT P1.2
CS BIT P1.3
IRQ BIT P3.2
;RAM LOCATIONS
TX1 EQU 10H
TX2 EQU 11H
RX1 EQU 12H
RX2 EQU 13H
;*******************************************************
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN: MOV SP, #70H ;INITIALIZE STACK
CLR SCLK
;INITIALIZE MAX3100 UART-IRDA MODE AT 9600 BAUD
MOV TX1, #0E4H ;HIGHT BYTE OF CONFIG -R INTS
MOV TX2, #0CAH ;9600 BAUD IRDA MODE AND TWO
STOPS
CALL UTLK
TXS:
MOV A, #55H
MOV TX1, #80H ;TX DATA
MOV TX2, A ;DATA TO IRDA
CALL UTLK
SJMP TXS
;SUBROUTINES
;UTRL TALK TO UART MAIN ROUTINE
;SEND 16 BITS FORM TX1 TX2 AND REV 16 TO RX1 RX2
UTLK: CLR CS
MOV A, TX1
CALL BYT8
MOV RX1, A
MOV A, TX2
CALL BYT8
MOV RX2, A
SETB CS
RET
;BYT8 SHIFT OUT & IN 8 BITS WITH SPI CLOCKING FROM AND TO ACC
BYT8: MOV R4, #8
SETB DIN
B8LP: RLC A
MOV DOUT, C
SETB SCLK
MOV C, DIN
CLR SCLK
MOV ACC.0, C
DJNZ R4, B8LP
RET