|
Необходимо запрограммировать 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