Делал на AT89C2051 работу с UARTом. Там вообще все тупо до безобразия.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Звероящер 21 мая 2004 г. 14:17
В ответ на: - о, великий Гуру по передаче данных по проводам, нужен твой совет: отправлено evgenius_b 21 мая 2004 г. 12:19

Конторллер поддерживает разделение адресов по 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