Script - Страница 39

МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА 8051 - Script

DataRate = Timer20verflowRate / 16,

где TimerOverflowRate — скорость переполнения таймера 1 или 2, SMOD = О или 1 — значение бита SMOD в регистре PCON, обеспечивающий удвоение скорости обмена данными через последовательный порт. Вторая возможность реализуется только для последовательного порта 0.

Преобразуем первое выражение, чтобы получить значение скорости переполнения для таймера! (в Гц):

Timer1OverflowRate = 32*DataRate / ( 1 + SMOD ) Период переполнения таймера 1 при этом составит (в секундах): Timed OverflowPeriod = ( 1 + SMOD ) / ( 32*DataRate )

Количество тактов, которое требуется для получения данного периода, равно:

Timer1Overflow/Cycles = ( 1 + SMOD )*ClockFrequency / ( 32*DataRate ),

где ClockFrequency -• тактовая частота микроконтроллера. Значение TimerlOverflowCycles необходимо загрузить в таймер I, чтобы получить требуемую скорость обмена DataRate. Таким образом, если требуется обеспечить скорость обмена 9600 бод, а микроконтроллер 80С320 работает на частоте 12 МГц, то полагая SMOD = 0, получаем:

Timer1OverflowCycles = 12 МГц / ( 32 * 9600 бод ) = 39,063.

Go to Top