Está en la página 1de 35

1

Transmisin de datos por Radio Frecuencia



Di seo de Si st emas Basados en Mi cr ocont r ol ador
Uni ver si dad de Las Pal mas de Gr an Canar i a

2003 - 04


Jos Carlos Ruiz Luque
Francisco Garca Rodrguez

2

CONTENIDOS

I nt r oducci n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Component es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Desar r ol l o pr ct i co. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1 Pl aca Radi o f r ecuenci a XE1201. . . . . . . . . . . . . . . . . . . . . . . . . . 4
1. 1 Env o de un bi t cont i no. . . . . . . . . . . . . . . . . . . . . . . . 15
2 Pr ot ocol o de comuni caci ones . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2. 1 Mat er i al . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2. 2 Al gor i t mo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3 Comuni caci n por r adi of r ecuenci a. . . . . . . . . . . . . . . . . . . . . . 24
4 I ndi caci ones de uso r pi do. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5 Ampl i aci ones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6 Fi cher os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Pr ogr ama 1: Pr ot ocol o de comuni caci n. . . . . . . . . . . . . . . 27
Pr ogr ama 2: Pr ogr ama pr i nci pal . . . . . . . . . . . . . . . . . . . . . . 31
7 Bi bl i ogr af a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35




















3
Introduccin

En el desar r ol l o de l a pr ct i ca se ut i l i zar el
t r anscept or XE 1201 par a l a comuni caci n ent r e var i os
equi pos.

Se ha pl ant eado el desar r ol l o de l a pr ct i ca en f or ma
pi r ami dal , cuya base ser l a de conf i gur ar el t r anscept or y
de l a t r ansmi t i r un bi t si endo capaz de capt ar el bi t por
el r ecept or .

En cada ni vel se i r aument ando l a compl ej i dad de l a
i nf or maci n necesi t ando par a el l o un pr ot ocol o de
comuni caci n, como el r s- 232, hast a l l egar a t r asmi t i r a l a
f r ecuenci a de l as pl acas.



Componentes

Par a l a comuni caci n de r adi o f r ecuenci a:
Dos pl acas RF( r adi o f r ecuenci a) con el chi p XE1201
empot r ado

Par a el cont r ol de l a pl aca XE 1201:
Dos pi c 16f 84
Pl aca AC84


Desarrollo prctico

La el abor aci n de l a pr ct i ca se ha or i ent ado en
una j er ar qu a de et apas. A cont i nuaci n se expondr un
br eve r esumen de l as mi smas:

Pr i mer a Et apa: Env o de un bi t cont i nuo al t er nado su
val or ent r e 0 y 1 con el i nt er r upt or de l a pl aca de
desar r ol l o.

Segunda et apa: I mpl ement aci n del pr ot ocol o RS- 232.

Ter cer a et apa: Combi naci n de l as dos et apas
ant er i or es

Tr as enunci ar l as et apas de r eal i zaci n de l a pr ct i ca
se pr of undi zar en cada et apa en l os r ecur sos usados y en
el cdi go ensambl ador del pi c.
4
1 Placa Radio frecuencia XE1201

El XE1201A es un t r anscept or FSK hal f - dupl ex que oper a
en banda I SM
1
( opt i mi zada) de 433 Mhz y en banda de 300-
500Mhz.

Apl i ca l a modul aci n por despl azami ent o de f r ecuenci a
de f ase cont i nua a 2 ni vel es ( CPFSK) . La conver si n di r ect a
de l a ar qui t ect ur a del r ecept or per mi t e al chi p f i l t r ar l os
canal es.

El XE1201A i ncl uye un si ncr oni zador de bi t que gener a
dat os l i br es de i nt er f er enci a y un r el oj si ncr oni zado a l os
dat os f aci l i t ando a un mi cr ocont r ol ador adqui r i r l os dat os
si n mucha compl ej i dad. La al i ment aci n de ener g a es de
3. 5V y puede ser cont r ol ada por medi o del bus o por l os
pi ns Vcc y Vss. El XE1201A usa el est ndar I - ETS300- 220.



Fi gur a del XE1201A












1
Como ya dice la definicin de ISM en ingles esta es una banda para el uso: industial, cientfico y
mdico, en la cual no es necesaria la posesin de una licencia para poder ser utilizada. Esta banda tiene
varios rangos de frecuencias una que est en Europa en los 433 Mhz normalmente usada para los
telemandos de garajes; otra en los 850 MHz para el uso de aplicaciones que necesitan una mayor ancho
de banda como pueden ser perifricos de ordenadores (ratones, teclados, etc.) Y una alrededor de los 2,4
Ghz que puede ser usada ya par la realizacin de redes de ordenadores inalmbricas.
5

Det al l es de l a descr i pci n de l os pi nes:


6

Los pi ns que son accesi bl es al ext er i or :





Conf i gur aci n de l os pi nes de l a pl aca RF:




7
Resumen de l os val or es m ni mos, mxi mos y t i pos par a
al gunos pi ns del chi p:





8

Lgica de control a travs de 3 cables

El t r anscept or puede se conf i gur ado en var i os modos a
t r avs de l a i nt er f az del bus 3 cabl es. Est a i nt er f az
consi st e de un r egi st r o despl azador , que r ecoge cada bi t de
dat o en cada nuevo f l anco de subi da del SC ( r el oj ser i al ) .

El ci r cui t o i nt er no i ncor por ado chequea l a val i dez de
al gunas ent r adas y cuent a el nmer o de f l anco de subi da de
l a seal SC. El dat o ser t r ansf er i do desde el r egi st r o
despl azador al cor r espondi ent e r egi st r o de conf i gur aci n,
si sl o si el f l anco de subi da 16 ha si do det ect ado en el
r el oj ser i al ( SC) . Despus del deci mosext o f l anco de
subi da, se debe act i var l a seal SE ( habi l i t aci n ser i al ) .

La habi l i t aci n de l a seal SE i ndi ca que ha t er mi nado
l a conf i gur aci n del r egi st r o.




En l a f i gur a si gui ent e se nuest r a el t i empo m ni mo
necesar i o que el dat o debe est ar est abl e ant es de un f l anco
de subi da de SC en el bus ser i al .



La t r ansmi si n de l a conf i gur aci n a t r avs de l a
i nt er f az del bus de 3 cl aves se empi eza por el bi t ms
si gni f i cat i vo ( MSB) hast a el bi t menos si gni f i cat i vo ( LSB) .
Cada paquet e de t r ansmi si n t i ene l a si gui ent e
conf i gur aci n:

9


Registros internos

Las car act er st i cas pr i nci pal es de t r anscept or son
conf i gur adas por medi o de l a i nt er f az bus de 3 cabl es y
r egi st r os i nt er nos ( A, B, C) . Como l a f r ecuenci a de
desmodul aci n, l a habi l i t aci n del r el oj , l a f r ecuenci a
de dat o, et c. puede ser pr ogr amado. Los pr i mer os 2 bi t s D15
y D14 det er mi nan el acceso a l os r egi st r os A, B o C a
t r avs de l a si gui ent e t abl a de ver dad:



Los 3 r egi st r os son r el l enado por l os dat os A13 a A0,
B13 a B0 o C13 a C0 de acuer do a l os val or es del l os bi t s
de 15 y 14.


El registro A

Est e r egi st r o es usado par a est abl ecer el modo del
t r anscept or ( modo emi sor , modo r ecept o y modo st and- by) y
sel ecci onar l a f r ecuenci a de r ecepci n.

Se accede al r egi st r o con l o si gui ent e val or es de
en l os bi t 15 y 14:

D15 = 0
D14 = 0

For mat o de l os dat os:


10
Control de modo:

Cuando es 0, est e bi t per mi t e el cont r ol de l os 3
modos de f unci onami ent o del t r anscept or y l a act i vaci n del
chi p par a ser di r i gi do medi ant e l os pi n15 ( RxTx) y el pi n1
( EN) . Cuando es 1, el cont r ol de l os modos de
f unci onami ent o y de act i vaci n son di r i gi dos medi ant e l os
bi t s A10 y A11. En est e modo l os pi nes 15 y el pi n 1 no
t i enen ef ect o.


Modo de control con el pin15 y pin1:

En est e modo el t r anscept or puede ser apagado,
encendi do y conf i gur ado en modo emi sor o r ecept or como se
expl i ca en l a si gui ent e t abl a y f i gur a:




Di agr ama de t i empo par a el cont r ol con l os pi nes RxTx
y EN




Control de reloj:

Est e bi t i ndi ca si act i var o no el r el oj i nt er no del
XE1201A. Cuando es 1, el r el oj si empr e est a cor r i endo en
cual qui er caso de l os est ados del chi p act i vo ( bi t A11
cuando A13=1 o pi n1 cuando A13=0) . Cuando es 0, l a
act i vi dad del r el oj es det er mi nada por el bi t ( A11) .


Activar el chip:

Cuando es cer o, t odas l as seal es del XE1201A est n
desact i vadas ( except o el r el oj si el bi t A12 est a a 1) . Si n
embar go el bus de 3 cabl es puede ser pr ogr amado en modo
11
desact i vado mi ent r as Vdd est e pr esent e. Est e bi t r empl aza
el Chi p Enabl e ( pi n1) when A13=1.

RXTX:

Modo r ecept or / emi sor . Cuando es 1, el t r anscept or es
conf i gur ado como r ecept or y en modo t r ansmi sor cuando val e
0. Est e bi t r eempl aza el RxTx ( pi n15) cuando A13=1.


Sync off
Est os bi t s son usados en apl i caci ones cuando el
si ncr oni zador no es necesar i o.

1) El r ecept or est en modo nor mal per o se i gnor a el
demodul ador . La sal i da I y Q est n habi l i t adas en el
pi n 19 y pi n18 r espect i vament e. El val or A9 a A6 debe
ser :



2) El r ecept or est en modo nor mal per o el si ncr oni zador
de bi t i nt er no est par ado. Los dat os si n t r aza ( en
br ut o) est n di sponi bl es en el pi n19 ( RXD) . El CLKD
( pi n18) es i nsi gni f i cant e. En est e modo, el pr embul o
no es r equer i do par a el si ncr oni zador de r el oj del
si ncr oni zador de bi t as que el t i empo m ni mo de
r eavi var el r ecept or es accesi bl e. Los val or es de A9 a
A6 deben ser conf i gur ados como en l a t abl a si gui ent e:




Frecuencia de recepcin:

Est os bi t s son usado par a conf i gur ar el si ncr oni zador
de bi t a l a f r ecuenci a de dat o de acuer do a l a si gui ent e
f r mul a:



Donde el val or de n es un deci mal si si gno de l os bi t
A5( MSB) a A0.

Not a: Cuando el si ncr oni zador de bi t est a en bypassed,
no es necesar i o pr ogr amar l a f r ecuenci a del dat o. Los dat os
12
son r emodul ados consecuent ement e a f r ecuenci a de dat o de
ent r ada.


El registro B

Est e r egi st r o es usado par a aj ust ar l a f r ecuenci a
cent r al dur ant e l a t r ansmi si n. Se accede a t r avs:

D15 = 0
D14 = 1

For mat o de l os dat os:




Frecuencia de offset. Est os bi t s pueden ser usados par a
cal i br ar l a f r ecuenci a cent r al de osci l aci n.

Bits de test. Est os bi t s son sol o par a pr oposi t o de t est .
Debe ser conf i gur ado a 0.


El registro C

Est e r egi st r o es usado par a l a f r ecuenci a de
desmodul aci n, est abl ece l os val or es de l a ampl i f i caci n,
aj ust e de pot enci a de l a t r asmi si n y ot r as f unci ones
auxi l i ar es. Es accedi do con:

D15 = 1
D14 = 0



13

Potencia de salida en la transmisin. Puede ser aj ust ada
con el pi n13 y pi n12

Dato invertido en bit. Las t r amas de dat os r eci bi das est n
i nver t i das si el bi t est 1.

Bit de test. Est os bi t s deben est ar si empr e conf i gur ados a
C10 = 1 y C9 = 0

Habilitar el amplificador de salida transmitido. Cuando es
cer o, est a desact i va est a f unci n.

Bit de dato trasmitido (TXD). Est e bi t r epl aza el pi n 17
( TXD) cuando el bi t 13 del r egi st r o A es conf i gur ado a
1 y as per mi t e una t r ansmi si n de dat o medi ant e el
bus 3 cabl e.

Desviacin de frecuencia. Est os bi t s son usado par a aj ust ar
l a desvi aci n de f r ecuenci a del modul ador .

Al act i var el t r anscept or l os r egi st r os son
i ni ci al i zados con l os si gui ent es val or es:




Cont r ol pi ns.
El r el oj par ado.
Fr ecuenci a de r ecepci n a 16 KHz DR= 16 bi t s/ s.
PA = - 12dBm.
Fdev = +/ - 125kHz.



14
Sincronizador de bit en modo receptor

El desmodul ador i nt er no del XE1201A necesi t a un
dat o de 20 bi t s si ncr oni zado par a asegur ar un cor r ect o
r el oj si ncr oni zado. El dat o de si ncr oni zaci n debe ser una
secuenci a de 0 y 1 envi ado al t er nat i vament e.

A cont i nuaci n se i l ust r a con dos f i gur a l a r ecepci n
de dat os con si ncr oni zador de bi t o bypassed.



bypassed




si ncr oni zador de bi t
15
1.1 Envo de un bit contino

En est a et apa se r eal i z l a compr obaci n del cabl e
el abor ado par a l a comuni caci n por l a i nt er f az bus de 3
cabl es, el cont r ol del modo de f unci onami ent o y de l a
act i vaci n de l as pl acas a t r avs de l os i nt er r upt or es.

Las car act er st i cas de conf i gur aci n del t r anscept or
se r eal i zar n a t r avs del bus 3 cl aves. Sl o se conf i gur a
el r egi st r o A, l os r egi st r os B y C se mant endr n con l os
val or es i ni ci al es de l a pl aca, ya que cont r ol an al gunos
par met r os que no cont r ol amos.

El ni co r egi st r o que modi f i car emos ser el A par a
compr obar l a f unci n del cdi go ensambl ador de cont r ol a l a
t r ansmi si n ser i e de conf i gur aci n del t r anscept or . La
conf i gur aci n de l os r egi st r os es l a si gui ent e:

reg 13 12 11 10 9 8 7 6 5 4 3 2 1 0
A 0 1 0 0 0 0 0 0 1 1 0 0 0 0
B 0 0 0 0 0 0 0 0 0 0 0 0 0 0
C 0 1 0 1 0 1 0 0 1 0 0 0 0 0
Tabla 1
Despus de encender y haber si do conf i gur ado por el
mi cr ocont r ol ador , el t r anscept or est en el est ado
si gui ent e: modo de cont r ol a t r avs de l as l neas
RxTx( pi n15) y EN ( pi n1) , el r el oj act i vo, f r ecuenci a de
dat os 1 kbi t s/ s, pot enci a de sal i da - 5dBm, at enuaci n de l a
pot enci a de ent r ada al ci r cui t o, y desvi aci n de f r ecuenci a
a 125 kHz. Li st o par a r ecept or o emi sor .

Tr as habl ar de l o que se va r eal i zar , y l a
conf i gur aci n de l os r egi st r os se coment ar el cdi go
necesar i o par a est a et apa.

Pr i mer o se coment ar l a conf i gur aci n de l os puer t os
par a l a comuni caci n del pi c con el t r anscept or y vi cer sa.

En est a et apa el puer t o A se conf i gur ar con l os 3 bi t
menos si gni f i cat i vo ( LSB) como ent r ada:

PORTA0: es el que cont r ol a el est ado de
f unci onami ent o de l a pl aca,
- 1: El t r anscept or act i vo.
- 0: El t r anscept or desact i vado

PORTA1: Se i ndi ca el modo de f unci onami ent o
- 1: modo t r ansmi sor .
- 0: modo r ecept or .
16

PORTA2: el val or que di sponga est e puer t o se
t endr en cuent a cuando el modo de f unci onami ent o
de l a pl aca RF est en t r ansmi sor . El val or del
puer t o se t r ansmi t i r par a el r ecept or . Los
val or es que puede t omar est e puer t o son obvi os al
hacer un bi t ( 0 o 1) .

La r i st r a de conf i gur aci n del puer t o A es en bi nar i o
0 0111 y en hexadeci mal 07

La conf i gur aci n del puer t o B es mer ament e par a l a
comuni caci n ent r e el pi c y el t r anscept or . En l a t abl a se
i ndi ca l os pi ns del cabl e de conexi n de l a i nt er f az de l a
pl aca RF con el puer t o B del pi c:

Nombre de la
linea
Pin Interfaz
placa
Pin del
puerto B
Estado
del pin
puerto b
TXD 1 0 Sal i da
RxTx 10 1 Sal i da
EN 8 2 Sal i da
DE 6 3 Sal i da
RXD 5 4 Ent r ada
SC 4 5 Sal i da
CLKD 3 6 Ent r ada
SD 2 7 Sal i da

De l a ant er i or t abl a se ext r ae l a r i st r a bi nar i a 0101
0000 par a l a conf i gur aci n del puer t o, o en hexadeci mal ,
50h.

Al saber l a conf i gur aci n de l os puer t os se i l ust r a a
cont i nuaci n di cha conf i gur aci n en el ensambl ador del pi c.

17

Se puede obser var en el cdi go que se ha puest o una
i ni ci al i zaci n al puer t o B, cuyo val or en bi nar i o es
0000 1010. El si gni f i cado de l a r i st r a, I NI , es que l as
l i neas RxTx y De est a act i vada.

El r egi st r o TRANS es un r egi st r o de 2 byt es que nos
ser vi r par a al macenar l a conf i gur aci n de l os r egi st r os
que se t r ansmi t i r por l a i nt er f az del bus ser i e de 3
cabl es ( 3- wi r e ser i al bus) . Se usa est e r egi st r o de 16 en
cont r a de uno de 8 bi t par a no pr oduci r r et r aso en l a
t r ansmi si n por el puer t o ser i e.

Las et i quet as Asup y Ai nf r epr esent a l a
conf i gur aci n de r egi st r o de est ado A que se coment
ant er i or ment e ( t abl a 1) .

La et i quet a CONT r epr esent a l a di r ecci n del
r egi st r o CONT que se coment a post er i or ment e su
f unci onami ent o en el cdi go.

A cont i nuaci n se muest r a el cdi go que pr epar a el
r egi st r o TRANS con l os val or es cor r espondi ent es par a l a
t r ansmi si n a l a pl aca RF. La t r ansmi si n se r eal i zar con
;; SIMBOLOS
E EQU 3
SC EQU 5
SD EQU 7
BIT3 EQU 3
CLKD EQU 6
TXD EQU 0
RXD EQU 4
RxTx EQU 1
EN EQU 2

CONFA EQU 07h
CONFB EQU 50h ; Configuracin del puerto B
ASup EQU 10h ; Mitad superior del registro A de xemics
AInf EQU 30h ; Mitad inferior del registro A de xemics

;estado inicial del puerto B
INI EQU 0Ah

;Registros Generales utilizados
TRANS EQU 0Ch ;tamao 2

CONT EQU 0Eh

org 0
goto inicio
org 5

; configuramos el puerto B, interfaz con la placaRF
BSF STATUS,RP0
MOVLW CONFB
MOVWF TRISB
MOVLW CONFA
MOVWF TRISA
BCF STATUS,RP0
; inicializamos el puerto B
MOVLW INI
MOVWF PORTB
18
l a f unci n t r ansmi t i r que se habl ar de el l a ms del ant e
de est a memor i a.


En el cdi go de ut i l i za un modo de di r ecci onami ent o
i ndi r ect o par a est abl ecer l os val or es de TRANS.

Si gui endo el cdi go or i gi nal vi ene el bucl e pr i nci pal
del pr ogr ama que i nt er act a con el usuar i o, i ndi cado el
usuar i o el f unci onami ent o, modo de f unci onami ent o y cuando
est o no habi l i t ado el t r anscept or .

Lo ms r el evant e del cdi go es cuando el t r anscept or
se encuent r a en modo r ecept or no se mi r a el val or del
puer t o PORTA2, debi do a que no va ser t r ansmi t i do.

A cont i nuaci n es expone el cdi go de l a f unci n
t r ansmi t i r que se quedo ant es si n habl ar de el l a:

; t r ansmi t i mos el r egi st r o A
MOVLWTRANS
MOVWF FSR
MOVLWASup
MOVWF I NDF
I NCF FSR, F
MOVLWAI nf
MOVWF I NDF
CALL t r ansmi t i r
Begin
BTFSC PORTA, 0 ; Se habilita o no el circuito?
GOTO UNO
BCF PORTB, EN ; inhibe el circuito
GOTO SIG2
UNO
BSF PORTB, EN ; se habilita el circuito
SIG
BTFSS PORTA,1 ; Se configura en el modo de ejecucin
GOTO TRANSIM
BSF PORTB, RxTx
GOTO SIG2
TRANSIM
BCF PORTB, RxTx
BTFSC PORTA, 2
GOTO UNO1
BCF PORTB, TXD
GOTO SIG2
UNO1
BSF PORTB, TXD
SIG2
GOTO begin
19


Como sabemos ya en est e punt o l a conf i gur aci n
del t r anscept or se r eal i za a t r avs de l os r egi st r os A, B,
C y se t r ansmi t e por l e bus ser i al de 3 cabl es ( 3- wi r e
ser i al bus) . Las l neas que se i nvol ucr an en est e bus son
SC ( r el oj ser i al ) , SD ( dat o ser i al ) , DE ( dat o habi l i t ado)
de l a i nt er f az de l a pl aca RF.

Se usa de nuevo un modo de di r ecci onami ent o i ndi r ect o
par a t ener acceso a l os val or es que se van a t r ansmi t i r .

Lo pr i mer o que r eal i za l a f unci n es est abl e DE a
ni vel baj o i ndi cando al t r anscept or que est amos en un ci cl o
de conf i gur aci n y r eset ea el val or del cont ador CONT a
cer o.

La t r ansmi si n se comi enza por el byt e ms
si gni f i cat i vo ( MSB) y por el MSb ( bi t ms si gni f i cat i vo) .

Tr as envi ar l os 8 bi t s que es cont r ol ado por el
cont ador CONT se t r ansmi t e el segundo byt e del r egi st r o
A. Al t er mi nar l a t r ansmi si n del l t i mo byt e se act i va
l a seal DE par a conf i r mar al t r anscept or que l a
conf i gur aci n del r egi st r o A se ha t er mi nado.



transmitir
MOVLW TRANS
MOVWF FSR
BCF PORTB,E ; Duerme el dispositivo
CLRF CONT ; Reinicia contador

B1
BCF PORTB,SC ; Conmutar a bajo el reloj
RLF INDF,F ; Rotar a izquierda TRANS
BCF PORTB,SD ; Poner seal de envo a cero
BTFSC STATUS,C ; Enviar un 1 ?
BSF PORTB,SD ; Pone seal de envo a uno
BSF PORTB,SC ; Conmutar a alto el reloj
INCF CONT,1 ; Contar rotaciones realizadas
BTFSS CONT,BIT3 ; Se ha rotado 8 veces ?
GOTO B1 ; No, volver a empezar
CLRF CONT ; Si, reiniciar contador
INCF FSR,F ; Siguiente byte

B2
BCF PORTB,SC
RLF INDF,F
BCF PORTB,SD
BTFSC STATUS,C
BSF PORTB,SD
BSF PORTB,SC
INCF CONT,1
BTFSS CONT,BIT3
GOTO B2
BSF PORTB,E ; Configuracin terminada
NOP
BCF PORTB,SC
BCF PORTB,SD
RETURN
20

2 Protocolo de comunicaciones

Ant es de comuni car cual qui er dat o ent r e l as pl acas se
hace necesar i o cr ear un pr ot ocol o de t r ansmi si n que adems
deber ser pr obado i ni ci al ment e con dos PI CS conect ados
f si cament e par a descar t ar posi bl es pr obl emas en el manej o
de l as pl acas y cent r ar nos ni cament e en el al gor i t mo.

Se ha escogi do el pr ot ocol o RS232 por ser el ms
f ami l i ar al haber t r abaj ado con l pr evi ament e. Al t r at ar se
de una pr i mer a ver si n y en est e caso i ni ci al , se modi f i c
par a que f uese l o bast ant e l ent o como par a poder obser var
vi sual ment e su f unci onami ent o y l a t r ansmi si n en cur so.





Li nea = Li nea comuni caci n
Cont = Cont ador
21
Nt ese que el pr ogr ama no empi eza ant es de 12 mar cos
de bi t s, est a esper a t an l ar ga l a ut i l i zar emos par a
asegur ar que no se empi eza a pr ocesar en medi o de l a
t r ansmi si n de un byt e.

2.1 Material

Las pr uebas del pr ot ocol o se r eal i zan conect ando con
un cabl e al guno de l os conect or es del puer t o A de dos PI CS,
dej ando ent er ament e l i br e el B par a poder most r ar con l os
l eds el est ado de l a t r ansmi si n. En el r ecept or , adems,
se empl ea el di spl ay l ed de 7 segment os i ncor por ado en l as
t ar j et as de ent r enami ent o par a most r ar l a codi f i caci n del
nmer o envi ado.

Los dos pr i mer os swi t chs cont r ol an el f unci onami ent o
de l as pl acas. El RA0 deci de si el ci r cui t o est act i vado y
el RA1 en qu modo l o hacen.

0 Tr ansmi sor
1 Recept or

2.2 Algoritmo

La i mpl ement aci n del pr ogr ama hace uso de
i nt er r upci ones par a cont r ol ar el t i empo que ha de t ar dar un
mar co de bi t . Como st os dur an 833 mi l i segundos y
necesi t amos desbor dar var i as veces el t i mer cal cul ando
ml t i pl os de 64 mi l i segundos, podemos r esumi r l os val or es
que necesi t a t omar el cont ador segn l a par t e del pr ogr ama.

Desbor dami ent os:
01 - Esper a st ar t bi t = 64 ms
19 - Leer pr i mer BI T = 833 + 833/ 2 ms
13 - Lect ur a de bi t s = 833 ms













RSI MOVWF Temp ; Guardamos W
DECFSZ Contador,1 ; Decrementa contador. Contador = 0?
GOTO SEGUIR ; Si contador != 0 ir a Seguir
MOVLW 01h ; Continuar cede el paso
MOVWF Continuar

SEGUIR MOVLW V_TIMER0
MOVWF TIMER0 ; Recarga TMR0
BCF INTCON,TOIF ; Borra bandera de interrupcin
BSF INTCON,TOIE ; Rehabilita interrupcin RTIE
MOVFW Temp ; Restaura W
RETFIE ; Repone GIE y Retorna

END
22
La i nt er r upci n l o ni co que hace una vez l anzada, es
decr ement ar un cont ador que f i j a cunt as veces ha de
desbor dar se el t i mer ant es de poner a uno el bi t de
Cont i nuar , con l o cual l a f unci n r et ar dar conocer el
t i empo que ha de r et r asar se segn el val or que l e demos a
di cho cont ador .

De hecho, como est a es l a ni ca par t e del pr ogr ama
donde i nt er esa conser var i nt er r upci ones, l a pr opi a
subr ut i na se encar ga de act i var l as i nt er r upci ones ant es de
ent r ar y desact i var l as al sal i r .

Par a l l amar l a, l o ni co que se necesi t a es que se l e
pase en el r egi st r o W el t i empo que ha de esper ar en
ml t i pl os de 64 mi l i segundos.

















La l ect ur a de dat os se r eal i za desde una f unci n
espec f i ca que r eal i za t odas l as t ar eas necesar i as par a
capt ar el bi t .

Como quer emos t ener un dupl i cado del byt e envi ado, se
i nser t an l os bi t s uno a uno en un r egi st r o empezando por l a
i zqui er da. Segn sea un uno o un cer o, se col oca en el bi t
de desbor dami ent o de STATUS par a que l a f unci n de r ot aci n
l o col oque al f i nal de l a var i abl e.









RETARDAR
movwf Contador ; Tiempo espera (x64ms)
clrf Continuar

BANCO1
movlw b'00000111'
movwf OPCION
BANCO0
movlw V_TIMER0 ; Desbordar cada 64 ms
movwf TIMER0
movlw b'10100000'
movwf INTCON ; Activa GIE y TOIE

LOOP1 btfss Continuar,0 ; Esperar seal de continuar
goto LOOP1

movlw 00h
movwf INTCON ; Activa GIE y TOIE TMR0
LEER btfsc LINEA_IN ; Mirar la LINEA_IN
goto LEER1 ; Poner un 1
bcf STATUS,0 ; Poner un 0
rrf Dato,1 ; Rotamos y lo cargamos
return

LEER1: bsf STATUS,0 ; Ponemos bit en STATUS,0
rrf Dato, 1 ; Rotamos sin cambiar W
incf C_Paridad,1 ; Incrementar contador de paridad
return
23
El al gor i t mo i ni ci al del r ecept or es l a i mpl ement aci n
di r ect a del di agr ama puest o al pr i nci pi o de est a secci n.

En cuando al emi sor ,
si gue l a secuenci a
expuest a en est a pgi na.

Dur ant e l a cr eaci n
del pr ot ocol o, t ant o
emi sor como r ecept or
f uer on desar r ol l ados por
et apas.

En l a pr i mer a se
el udi er on l os bi t s de
par i dad. El emi sor envi aba
un byt e pr ogr amado y el
r ecept or al r ecoger l o,
l i mpi aba el puer t o B y
vol caba el byt e
r econoci do.

Luego se aadi el
cont r ol de er r or es con un
bi t de par i dad y se
envi ar on var i os byt es en
cadena. El obj et i vo er a
obser var posi bl es
pr obl emas al r eci bi r una
t r ansmi si n cont nua de
byt es, l a r ecepci n
cor r ect a del r est o de
dat os cuando se encend a
el r ecept or en medi o de
una t r ansmi si n y l a
det ecci n de er r or es
cuando desconect bamos
dur ant e un t i empo el cabl e
de dat os par a si mul ar una
al t er aci n de l a seal .




Li nea = Li nea comuni caci n
Cont = Cont ador
Cont Par = Cont ador de par i dad
24
3 Comunicacin por radiofrecuencia

Despus de depur ar el pr ot ocol o de comuni caci n, se
pr ocede a uni r el cdi go de conf i gur aci n de l as pl acas y
el de l a t r ansmi si n, as , donde ant es t en amos una uni n
f si ca con l os cabl es ent r e l os pi cs, ahor a t enemos l as
t er mi nal es RxD y TxD de l as pl acas t r anscept or as.

Se conect an l as pl acas si gui endo l os pasos de l a
secci n 4 sobr e uso r pi do. Luego se r epi t en l os pasos de
compr obaci n que se r eal i zar on cuando l a conexi n er a
f si ca.

Una vez sol uci onados t odos l os i nconveni ent es
sur gi dos, se deci de ampl i ar l a f unci onal i dad de l as pl acas
ut i l i zando el t ecl ado al f anumr i co, par a que esper e en un
bucl e l a pul saci n de una t ecl a que deci di r el byt e a
envi ar . Como se devuel ve el cdi go deci mal , se necesi t a
const r ui r una t abl a que l os t r aduzca al di spl ay de 7
segment os que se ut i l i zar par a most r ar l os dat os.

Como consecuenci a del uso compl et o del puer t o B, no se
puede most r ar i ndef i ni dament e el byt e r eci bi do por el
di spl ay, as que se r ecur r e a l a f unci n RETARDAR del
pr ot ocol o par a most r ar l o un cor t o t i empo mi ent r as se
deshabi l i t a el r ecept or .
CODIGONUMERO
MOVLW high CODIGONUMERO
MOVWF PCLATH
MOVF POS, W
ADDWF PCL, 1

retlw 3Fh ; cdigo del 0
retlw 06h ; cdigo del 1
retlw 5Bh ; cdigo del 2
retlw 4Fh ; cdigo del 3
retlw 66h ; cdigo del 4
retlw 6Dh ; cdigo del 5
retlw 7Dh ; cdigo del 6
retlw 07h ; cdigo del 7
retlw 7Fh ; cdigo del 8
retlw 67h ; cdigo del 9

RETLW 77h ; A
RETLW 7Ch ; B
RETLW 39h ; C
RETLW 5Eh ; D
RETLW 79h ; E
RETLW 71h ; F
25
4 Indicaciones de uso rpido

Est os son l os pasos a segui r par a empezar a usar
i nmedi at ament e l as pl acas con l os pr ogr amas i ncl ui dos.


1. Car gar el pr oyect o i ncl u do en final.hex o compi l ar l o de
l as f uent es par a car gar l o en dos pl acas de l abor at or i o
con el pi c 16F84.

2. Conect ar al zcal o de ampl i aci n un conect or adapt ado
par a i nt r oduci r l os cabl es necesar i os del conect or de l a
pl aca. Sumi ni st r ar a l as t ar j et as t r anscept or as una
t ensi n de 3, 5 vol t i os y uni r sus t i er r as con l a de l as
pl acas. Por l t i mo se debe asegur ar que se conect an
adecuadament e l as l neas por donde se t r ansmi t en l os
dat os. I ni ci al ment e l a l nea de r ecepci n est i ncl ui da
en el zcal o, per o l a t r asmi sor a se conect a a l a pat a
TxD de l as pl acas.

3. En l a pl aca dest i nada a ser l a r ecept or a, conmut ar l os
dos pr i mer os swi t chs del puer t o a ( RA0 y RA1) a uno, y
en l a t r ansmi sor a conmut ar el pr i mer o a uno y el segundo
a 0. El pr i mer o i ndi ca que se desea act i var l as pl acas y
el segundo el modo baj o el que f unci onar n.

4 Pul sar en el t ecl ado al f anumr i co una t ecl a, a
cont i nuaci n se t r ansmi t i r por r adi of r ecuenci a en un
pl azo de 13, 3 segundos el byt e pul sado. En el di spl ay de
7 segment os de l a r ecept or a j ust o ant es de most r ar se el
byt e, se act i var el punt o par a a cont i nuaci n,
exhi bi r se dur ant e 1, 5 segundos l a t ecl a pul sada.

Nt ese que como el pr ot ocol o de comuni caci ones se
i ncl uye en f or ma de l i br er a, st e puede mej or ar se si endo
l os cambi os t r anspar ent es par a el pr ogr ama pr i nci pal
si empr e y cuando se r espet en l as f unci ones expor t adas en el
i ncl ude.

El pr oyect o ocupa l a mayor par t e de l os puer t os, de
hecho ocupa t odo el puer t o B sal vo el RB4 y del A sol ament e
coge el RA4. Si n embar go, cuando no t r ansmi t e, se puede
poner en suspensi n l a pl aca y mi ent r as t ant o, t odo el
puer t o B queda l i br e.

Si se necesi t ase cambi ar l as l neas por donde se
comuni can l os dat os, exi st e una macr o par a que est o pueda
r eal i zar se si n pr obl emas.


26
5 Ampliaciones


Se pr oponen di ver sos pr oyect os par a l os que se pueden
ut i l i zar est as pl acas.

1. I nt er f az ent r e per i f r i cos del or denador como
r at ones, t ecl ados o pl acas de adqui si ci n de dat os.
Como l as seal es son di gi t al es, se pueden usar
di r ect ament e l as pat as emi sor as y r ecept or as de l as
pl acas, adems, l a comuni caci n puede ser en dos
sent i dos.


2. Cont r ol y/ o moni t or i zaci n de di sposi t i vos r emot os.


3. I mpl ement aci n de pr ot ocol os espec f i cos par a
comuni caci ones i nal mbr i cas, con cont r ol de er r or es
y ver i f i caci n de t r amas.


4. El pr ot ocol o act ual no apr ovecha el r el oj par a l eer
l os dat os envi ados, ni cambi a di nmi cament e de
f unci n par a el cont r ol de er r or es.
27
6 Ficheros

Programa 1: Protocolo de comunicacin

Esta es la implementacin de la versin simple del protocolo RS232
adaptada ya para ser usado como una librera usando memoria dinmica.

;; PROTOCOLO RS232 simple
;;
;; Programa que lee el bit que llega por una LINEA y lo procesa segn
;; las normas RS232. Trabaja con un periodo de 833ms. Espera start bit
;; escaneando cada 64ms
;;
;; Transmisor:: El retardar va despus de escribir en la lnea
;; Receptor:: El retardar va antes de leer la lnea
;;
;; Jos Carlos Ruiz Luque
;; Francisco Garca Rodrguez
;;
;; NOTAS
;; El programa principal ha de controlar que los puertos esten
;; configurados correctamente como entrada o salida

;; Clculos para el contador
;;
;; 832ms = 256x13x (TMR0 = 256 - 250,30048)
;;
;; Cuenta para esperar Sync = 100


#include "p16f84.inc"


;; Macros
#define LINEA_OUT PORTB,0
#define LINEA_IN PORTB,4
#define V_TMR0 06h
#define BANCO1 bsf STATUS,RP0
#define BANCO0 bcf STATUS,RP0


GLOBAL Dato, Eviar, TRANSMITIR, ESTADO, RECIBIR, RSI, Contador,
Continuar, RETARDAR

udata
;; VARIABLES
Contador res 1 ; Estado del circuito
Temp res 1 ;
Continuar res 1 ; Numero ledo
Veces res 1 ; Variable para RSI
Eviar res 1 ; BYTE enviado
C_Paridad res 1 ; Contador de paridad
Dato res 1 ; BYTE recibido
Recepcion res 1 ; Indica si hubo un error
ESTADO res 1

ts2 code


28
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; RETARDAR
;;
;; Recoge en W el tiempo que pone en espera el micro en mltiplos de
;; 64 milisegundos
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RETARDAR
movwf Contador ; Tiempo espera (x64ms)
clrf Continuar

;; Preparar interrupciones
BANCO1
movlw b'00000111'
movwf OPTION_REG
BANCO0

movlw V_TMR0 ; Desbordar cada 64 ms
movwf TMR0
movlw b'10100000'
movwf INTCON ; Activa GIE y TOIE TMR0

LOOP1
btfss Continuar,0 ; Esperar seal de continuar
goto LOOP1

;; Deshabilitar interrupciones
movlw 00h
movwf INTCON ; Desactiva GIE y TOIE TMR0
return


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Leer :: Lee el dato de la linea y lo pone al final de Dato despus
;; de desplazarlo.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LEER
btfsc LINEA_IN ; Mirar la LINEA_IN
goto LEER1 ; Poner un 1
bcf STATUS,0 ; Poner un 0
rrf Dato,1 ; Rotamos y lo cargamos
return

LEER1:
bsf STATUS,0 ; Ponemos bit en STATUS,0
rrf Dato, 1 ; Rotamos sin cambiar W
incf C_Paridad,1 ; Incrementar contador de paridad
return


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; TRANSMITIR :: Transmite el byte contenido en la variable Eviar
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TRANSMITIR
clrf C_Paridad
bsf LINEA_OUT
movlw 0E1h ; Esperar 833x15 ms
call RETARDAR

;; Start bit
bcf LINEA_OUT
movlw 0Dh ; Esperar 833 ms
call RETARDAR
29

movlw 08h
movwf Veces

LOOP_BYTE ;; Envo del byte
btfss Eviar,0 ; Enviar 1 0?
goto ENVIA_0 ; 0
bsf LINEA_OUT ; 1
incf C_Paridad,f ; Incrementar contador de paridad
goto RESTAR

ENVIA_0
bcf LINEA_OUT

RESTAR
rrf Eviar,1
movlw 0Dh ; Esperar 833 ms
call RETARDAR
decfsz Veces,f
goto LOOP_BYTE


;; Bit de paridad
btfss C_Paridad,0 ; Paridad?
goto T_PAR ; PAR
bsf LINEA_OUT ; IMPAR
goto T_FIN

T_PAR
bcf LINEA_OUT

T_FIN
movlw 0Dh ; Esperar 833 ms
call RETARDAR

MOVLW 06h
MOVWF Eviar

return


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; RECIBIR :: Recoge el byte enviado por LINEA_IN y lo guarda en Dato
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RECIBIR
movlw 9Dh ; Veces que debera desbordarse
movwf Veces
clrf C_Paridad ; Resetear bit de paridad

EST01 ;; Estado 01 -- Espera start bit
movlw 01h ; Esperar 64 ms
call RETARDAR
decfsz Veces,1 ; Decrementa Veces
goto A01 ; An no es 0
incf Veces,1 ; Ya es 0
A01 btfsc LINEA_IN ; Linea ha pasado a 0?
goto EST01 ; An no
decfsz Veces,1 ; Si, Ha durado lo suficiente?
goto RECIBIR ; No

EST02 ;; Estado 02 -- Saltar start bit y leer primer dato
movlw 14h ; Esperar 833+833/2 ms (20d)
30
call RETARDAR
call LEER
movlw 07h ; Ahora tomaremos otros 7 bits
movwf Veces

EST03 ;; Estado 03 -- Leer 7 bits restantes
movlw 0Dh ; Para esperar 833 ms (13d)
call RETARDAR
call LEER
decfsz Veces,1 ; Ledo un byte?
goto EST03 ; No

bsf PORTB,7

;; Estado 04 -- Leer bit de paridad
movlw 0Dh ; Para esperar 833 ms (13d)
call RETARDAR

;; Comprobar bits de paridad
btfsc LINEA_IN
goto IMPAR ; Linea = 1
PAR btfss C_Paridad,0 ; Linea = 0
goto BIEN
goto MAL

IMPAR
Btfsc C_Paridad,0
goto BIEN

MAL movlw 00h
goto OK

BIEN movlw 01h

OK movwf ESTADO

return


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Rutina de Servicio a la Interrupcin. Estados:
;;
;; 01 - Espera start bit 64 ms
;; 19 - Leer primer BIT 833 + 833/2 ms
;; 13 - Lectura de bits 833 ms
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

RSI MOVWF Temp ; Guardamos W
DECFSZ Contador,1 ; Decrementa. Contador = 0?
GOTO SEGUIR ; Si contador != 0 ir a Seguir
MOVLW 01h ; Continuar cede el paso
MOVWF Continuar

SEGUIR
MOVLW V_TMR0
MOVWF TMR0 ; Recarga TMR0
BCF INTCON,T0IF ; Borra bandera de interrupcin
BSF INTCON,T0IE ; Rehabilita interrupcin RTIE
MOVFW Temp ; Restaura W
RETFIE ; Repone GIE y Retorna

END
31
Programa 2: Programa principal

Est e es el pr ogr ama pr i nci pal con el que se conf i gur an l as
pl acas y se env an t odos l os car act er es i nt r oduci dos por el
t ecl ado.

;; PROTOCOLO RS232 simple
;;
;; Programa que lee el bit que llega por una LINEA y lo procesa segn
;; las normas RS232. Trabaja con un periodo de 833ms. Espera start bit
;; escaneando cada 64ms
;;
;; Jos Carlos Ruiz Luque
;; Francisco Garca Rodrguez

#include <P16F84.INC>
#include <ts2.inc>
#include <tecla.inc>


;; Macros de atajo
#DEFINE ENABLEPLACA BSF PORTA,4
#DEFINE DISABLEPLACA BCF PORTA,4
#DEFINE BANCO1 BSF STATUS,RP0
#DEFINE BANCO0 BCF STATUS,RP0


;; SIMBOLOS para configurar las placas
E EQU 3 ; Validar dato
SC EQU 5 ; Reloj serial
SD EQU 7 ; Lnea transmisin serial
BIT3 EQU 3 ;
CLKD EQU 6 ; Reloj
TXD EQU 0 ; Salida de datos
RXD EQU 4 ; Entrada de datos
RxTx EQU 1 ; Modo transmisor/receptor
EN EQU 2 ; Habilitar placa


;; Configuraciones para los registros de las placas
CONFA EQU 03h
CONFB EQU 50h ; Configuracin del puerto
ASup EQU 10h ; Mitad superior del registro A de xemics
AInf EQU 30h ; Mitad inferior del registro A de xemics
INI EQU 08h ; Configuracin inicial del puerto B


udata
;; Registros Generales utilizados
TRANS RES 2 ; Configuracion de 16 bits de la placa
CONT RES 1 ; Contador para los 8 bits
BACK RES 1 ; Guarda la configuracion del puerto B


HF code 0
goto INICIO
Inter code 4
goto RSI
CodPrin code

32
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; CODIGONUMERO
;;
;; Convierte un un nmero binario a su correspondiente codificacin
;; en el display de 7 segmentos. Utiliza W como variable de entrada y
;; salida
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CODIGONUMERO
MOVLW high CODIGONUMERO
MOVWF PCLATH
MOVF POS, W
ADDWF PCL, 1

retlw 3Fh ; cdigo del 0
retlw 06h ; cdigo del 1
retlw 5Bh ; cdigo del 2
retlw 4Fh ; cdigo del 3
retlw 66h ; cdigo del 4
retlw 6Dh ; cdigo del 5
retlw 7Dh ; cdigo del 6
retlw 07h ; cdigo del 7
retlw 7Fh ; cdigo del 8
retlw 67h ; cdigo del 9

RETLW 77h ; A
RETLW 7Ch ; B
RETLW 39h ; C
RETLW 5Eh ; D
RETLW 79h ; E
RETLW 71h ; F
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ESCRIBIR
;;
;; Vuelca el byte recibido en el display de 7 segmentos y espera 1,5 s
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ESCRIBIR
BANCO1 ; Guarda la configuracin del puerto B
movfw TRISB
movwf BACK
clrf TRISB
BANCO0

movfw Dato
movwf PORTB
movlw 17h
call RETARDAR

BANCO1
movfw BACK
movwf TRISB
BANCO0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



33
INICIO

;; Configuramos el puerto B, interfaz con la placa RF
BANCO1
MOVLW CONFB
MOVWF TRISB
MOVLW CONFA
MOVWF TRISA
BANCO0

;; Inicializamos el puerto B
MOVLW INI
MOVWF PORTB
DISABLEPLACA

;; Transmitimos el registro A
MOVLW TRANS
MOVWF FSR
MOVLW ASup
MOVWF INDF
INCF FSR, F
MOVLW AInf
MOVWF INDF
CALL transmitirConf

BEGIN
;; Se habilita o no el circuito
BTFSC PORTA, 0
GOTO UNO
DISAB LEPLACA ; inhibe el circuito
GOTO BEGIN

UNO ;; Se configura en el modo de ejecucin del transceptor
SIG
BTFSS PORTA,1
GOTO TRANSIM

bsf PORTB, RxTx ; Funcionamiento Receptor
ENABLEPLACA ; se habilita el circuito

call RECIBIR
call ESCRIBIR

GOTO BEGIN

TRANSIM

Escanear
call Key_Scan
movlw 80h
SUBWF Tecla, w
btfss STATUS, 0
goto TCOD ; Ha leido algo
btfsc STATUS, 2
goto E scanear

TCOD
call Cods_Tecla
call CODIGONUMERO
movwf Eviar
bsf OPTION_REG, NOT_RBPU

34
BANCO1
MOVLW CONFB
MOVWF TRISB
MOVLW CONFA
MOVWF TRISA
BANCO0
MOVLW INI
MOVWF PORTB

bcf PORTB, RxTx ; Se configura como emisor
ENABLEPLACA ; Se Activa la placa
call TRANSMITIR ; Se transmite el Dato
DISAB LEPLACA ; Se desactiva la placa
bcf PORTB, TXD
GOTO BEGIN


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; CONFIGURACION :: Transmitir en serie configuracin de las placas
;;
;; Enva mitad superior y luego inferior del registro de
;; configuracin de las placas a un ritmo de 5us cada
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
transmitirConf
MOVLW TRANS
MOVWF FSR
BCF PORTB,E ; Comienza la configuracin de la placa
CLRF CONT ; Reinicia contador

B1
BCF PORTB,SC ; Conmutar a bajo el reloj
RLF INDF,F ; Rotar a izquierda TRANS
BCF PORTB,SD ; Poner seal de envo a cero
BTFSC STATUS,C ; Enviar un 1 ?
BSF PORTB,SD ; Pone seal de envo a uno
BSF PORTB,SC ; Conmutar a alto el reloj
INCF CONT,1 ; Contar rotaciones realizadas
BTFSS CONT,BIT3 ; Se ha rotado 8 veces ?
GOTO B1 ; No, volver a empezar
CLRF CONT ; Si, reiniciar contador
INCF FSR,F ; Siguiente byte

B2
BCF PORTB,SC
RLF INDF,F
BCF PORTB,SD
BTFSC STATUS,C
BSF PORTB,SD
BSF PORTB,SC
INCF CONT,1
BTFSS CONT,BIT3
GOTO B2
BSF PORTB,E ; Configuracin terminada
NOP
BCF PORTB,SC
BCF PORTB,SD
RETURN

END

35
7 Bibliografa



E. Mar t n Cuenca Mi cr ocont r ol ador es PI C
Ed: Par ani nf o, 1998

También podría gustarte