Алгоритм действий такой
1. Настраиваю UART согласно спецификации RS-232
mov TMOD, #20H ;таймер в режим 2
mov TH1, #0fd ;скорость передачи по последовательному порту 9600 бод
mov SCON, #50H ;формат кадра: 8 бит данных, стартовый бит, стоповый бит, программируемый 9ый бит
anl PCON, #07fh ; SMOD=0 (отказываемся от удвоенной скорости передачи)
Кстати, при симуляции в протеусе, какую устанавливать частоту резонатора? 11,059 МГЦ?
2. На параллельные линии 8051 приходят данные. (Насколько я понимаю, на порт P2)
3. Пускай порт P1 отвечает за линии строб, busy, ack. Данные пришли, устанавливаем busy в 1. Тут в голове возникает путаница. Как теперь поступить? mov SBUF,P2 ? А как быть со строб импульсом? mov SBUF,P2 и после этого сразу команда clr P1.x (линия которая отвечает за строб) ? Тогда потом надо снова устанавливать P1.x (до окончания передачи данных).
4. После передачи байта устанавливается 0 на линию, отвечающую за ack (подтверждение приема байта).
5. Снимаем busy. Готовы принимать следующий байт.
Пожалуйста, поправьте меня, если где не прав. Также буду благодарен за информацию , о том как тут организовать прерывания.
Чуть позже добавлю схему в протеусе.


