CONTROLADOR DE BALIZA
Una idea de como realizar, un controlador para baliza (beacon).El circuito es suficientemente explicativo, y en el programa, solo se debe cambiar el texto, teniendo en cuenta que, un (1) corresponde a un punto, y tres (3) unos corresponden a una raya. mas abajo se dan algunas ideas de antenas que pueden funcionar.

PROGRAMA (Ejemplo)
;-----------------------------------------------------
;Caution: Enter the device name printed on the probe
; connected to your pod before assembling
; this code.
;-----------------------------------------------------
;
list p = 16c84,r=HEX
;Enter device name
;printed on the probe
;connected to your pod.
;------------------------------------------------------
;Please define ScratchPadRam here:
;If you are using PIC16C5X define "ScratchPadRam equ 0x10"
;else define "ScratchPadRam equ 0x20"
;-------------------------------------------------------
ScratchPadRam equ 0x0C
BYTE equ ScratchPadRam+0 ;rotation de ROT
SILEN equ ScratchPadRam+1 ;time of delay2 in seconds
SILEN1 equ ScratchPadRam+2 ;time of delay2
ROT equ ScratchPadRam+3 ;char to transmit
GUARD equ ScratchPadRam+4 ;char table
DB1 equ ScratchPadRam+5 ;used in delay
DB2 equ ScratchPadRam+6 ;used in delay
PC equ 02
STATUS equ 03
PORT_B equ 06
PORT_A equ 05
;
org 00
goto 10
;
org 04
goto 10
;
org 10
;
start
call INI_PB
comienz movlw 0
movwf GUARD
volver1 call TABLA
movwf ROT
xorlw b'11111111'
btfsc STATUS,2
goto empezar
movlw 08
movwf BYTE
volver2 btfsc ROT,7
call PUT_1
btfss ROT,7
call PUT_0
call DELAY
rlf ROT,1
decfsz BYTE,1
goto volver2
goto volver1
;
;
;
;
;
;
;
;
;
;
INI_PB
clrf PORT_A
clrf PORT_B
bsf STATUS,5
movlw b'11101111'
movwf 6
movlw b'11100'
movwf 5
movlw 0 ;carge disable interrupts.
movwf 0b
bcf STATUS,5
movlw b'00000000'
movwf PORT_B
movlw b'00011'
movwf PORT_A
retlw 0
;
; org 0 ;start address 0
;
; TEXT TO TRANSMIT: hi hi v v v de lu1dma in gf14 pwr 10w ant cros dipole k . .
. . . .
; The criteria is 1 a point, 0 a silence equal poin durance.
; 111 is a sound equal 3 points durance.
; When a char can't put in a same line o 8 bits, continue on the next line.
TABLA movf GUARD,0
incf GUARD,1
addwf PC,1
retlw b'10000000' ;E
retlw b'10000000' ;E
retlw b'10000000' ;E
retlw b'10000000' ;E
retlw b'10000000' ;E
retlw b'10000000' ;E
retlw b'00000000' ;
retlw b'10101011' ;V
retlw b'10001010' ;
retlw b'10111000' ;V
retlw b'10101011' ;V
retlw b'10000000' ;
retlw b'11101010' ;D
retlw b'00100000' ;E
retlw b'00101110' ;L
retlw b'10100010' ;
retlw b'10111000' ;U
retlw b'10111011' ;1
retlw b'10111011' ;
retlw b'10001110' ;D
retlw b'10100011' ;M
retlw b'10111000' ;
retlw b'10111000' ;A
retlw b'00001010' ;I
retlw b'00111010' ;N
retlw b'00000011' ;G
retlw b'10111010' ;
retlw b'00101010' ;F
retlw b'11100010' ;1
retlw b'11101110' ;
retlw b'11101110' ;
retlw b'10101010' ;4
retlw b'11100000' ;
retlw b'00001011' ;P
retlw b'10111010' ;
retlw b'00001110' ;O
retlw b'11101110' ;
retlw b'10101110' ;W
retlw b'00001011' ;1
retlw b'10111011' ;
retlw b'10111001' ;0
retlw b'11011101' ;
retlw b'11011100' ;
retlw b'10101110' ;W
retlw b'00000001' ;A
retlw b'01110001' ;N
retlw b'11010001' ;T
retlw b'11000000' ;
retlw b'01110101' ;C
retlw b'11010001' ;R
retlw b'01110100' ;
retlw b'01110111' ;O
retlw b'01110001' ;
retlw b'01010000' ;S
retlw b'00011101' ;D
retlw b'01000101' ;I
retlw b'00010111' ;P
retlw b'01110100' ;O
retlw b'01110111' ;
retlw b'01110001' ;L
retlw b'01110101' ;
retlw b'00010000' ;E
retlw b'00011101' ;K
retlw b'01110000' ;
retlw b'00000000' ; a partir de aqui puntos espaciados
retlw b'10000000' ;E
retlw b'10000000' ;E
retlw b'10000000' ;E
retlw b'10000000' ;E
retlw b'10000000' ;E
;q e j
; make to read 37 bytes of the table
; call beacon delay
; when sets mark dont stop until find cero(0)
; when sets space dot stop until find one (1)
; the table calls with CALL and returns with register W charged
; each call increase PC in 1
; to reed all byte and call another new.
;
; PC= micro pc
; AA= increment reg. of pc. 0<= AA <=37
;
;
empezar bsf PORT_B,4
movlw 3
movwf PORT_A
goto DELAY2
empez_1 goto comienz
;
PUT_1 bsf PORT_B,4 ;active exit
movlw 3
movwf PORT_A ;active led port_a
retlw 00
;
PUT_0 bcf PORT_B,4 ;deactive exit
movlw 0
movwf PORT_A
retlw 00
;
DELAY movlw d'160' ;delay time for 2mhz clock = 240mseg
movwf DB1
dly1 clrf DB2
decfsz DB1,1
goto dly2
retlw 0
dly2 decfsz DB2,1
goto dly2
goto dly1
;
DELAY2 movlw d'10' ; sets 9,6 seg space between beacons
movwf SILEN
p_1seg movlw d'04' ; with delay 240mseg for .96 seg
movwf SILEN1
c_delay call DELAY
decfsz SILEN1,1
goto c_delay
decfsz SILEN,1
goto p_1seg
goto empez_1
;
;
;
end
;
;