|
Конторллер поддерживает разделение адресов по UARTу. Баудрэйт - переполнение таймера1. Обработка адрес имеет 9ый бит установленным, данные нет. Процедура обработки занимает байт 50-70...
Типа того:
...
WaitState:
jb F0,HaveSPort /* wait for my SPort address аnd command */
WSend: ajmp WaitState
...
HaveSPort:
Делай что хочешь с принятыми данными.
...
SportHandler:
push 0E0h ; store A in stack
jb TI,TxInterrupt
RxInterrupt:
clr RI
jnb SM2,RxI2
RxI1: mov R7,SBUF
mov A,#11100000b ; cut the address
anl A,R7 ; save address in A
rr A
swap A
cjne A,#MyAddress,SPend ; If no my address - JUMP
mov A,#00011111b ; cut the command
anl A,R7 ;
mov R7,A ; save command in R7
RxI2: setb F0
ajmp SPend
TxInterrupt:
clr TI
setb F0
SPend: pop 0E0h ; restore A from stack
reti
end
ЗЫ: Правда у меня в одном байте и адрес и команда, но так как у тебя только адрес, то будет еще проще...
E-mail: info@telesys.ru