Проблема с последовательным портом AT89S51
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Seva 27 мая 2004 г. 08:23

Необходимо запрограммировать UART на след.параметры 1200-8-N-1.
Кварц на 24MHz
Для этого я использовал таймер 1 и пишу следующее для инициализации:
SCON = 0x50; // SCON: mode 1, 8-bit UART, enable rcvr
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit reload
TH1 = 204;
TR1 = 1; // TR1: timer 1 run
TI = 1; // TI: set TI to send first char of UART

Затем в цикле пишу в SBUF.

При этом скорость на выходе оказывается примерно в 2,5 раза меньше необходимой и только путем подбора значения для TH1 удается поймать необходимую частоту - это значение равно 239.
В документации есть формула для расчета
TH1 = 256 - Fпер / (6*32*BaudRate)
SMOD1 ставлю равным 0.

Что я делаю не так?

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru