Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПСУ новая 1.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
5.62 Mб
Скачать

Таймеры/счётчики

Два программируемых 16-битных таймера/счётчика (Т/С0 и Т/С1) могут быть использованы в качестве таймеров или счётчиков внешних событий.

При работе в качестве таймера содержимое Т/С инкрементируется в каждом машинном цикле, т.е. через каждые 12 периодов резонатора.

При работе в качестве счётчика содержимое Т/С инкрементируется под воздействием перехода из 1 в 0 внешнего входного сигнала подаваемого на соответствующий (Т0, Т1) вывод МК51. Опрос значения внешнего входного сигнала выполняется в момент времени S5Р2 каждого машинного цикла. Содержимое счетчика будет увеличено на 1 в том случае, если в предыдущем цикле был считан входной сигнал 1, а в следующем - сигнал 0. Новое (инкрементированное) значение счётчика будет сформировано в момент S3Р1 в цикле, следующем за тем, в котором был обнаружен переход сигнала из 1 в 0. Так как на распознавание требуется два машинных цикла, то максимальная частота пересчета входных сигналов равна 1/24 частоты резонатора.

На длительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входного считываемого сигнала он должен удерживать значение «1» как минимум в течение одного машинного цикла МК51.

Для управления режимами работы Т/С и для организации взаимодействия таймеров с системой прерывания используются два регистра специальных функций (РРТС и РУСТ). РРТС - определяет включение и выключение T/C, а также их режимы работы. РУСТ - управляет прерываниями от таймера при переполнении и содержит биты запуска. Используются четыре режима работы Т/С.

Режим 0. Перевод любого Т/С в режим 0 делает из него 13-разрядный счётчик делитель TL=5 и TH=8.

Режим 1. Также как режим 0 с разрядностью 16 бит.

Режим 2. В данном режиме переполнение 8-битного счётчика TL1 приводит к установке флага TF1 и автоматической перезагрузке в TL1 содержимого старшего байта ТН1 таймерного регистра, которое предварительно было задано программным путем. Т/С0 и Т/С1 работают одинаково.

Режим 3. В режиме 3 Т/С1 сохраняет неизменным своё состояние.

Т/С0 - TL0 и ТН0 функционируют как два независимых 8-битных счетчика.

Можно считать, что в режиме 3 МК51 имеет в своем составе три таймера/счётчика. В том случае, если Т/С0 используется в режиме 3, Т/С1 может или включен, или выключен, или переведён в свой собственный режим 3, или может быть использован последовательным портом в качестве генератора частоты передачи.

Последовательный порт

Через универсальный асинхронный приёмопередатчик (УАПП) осуществляется прием и передача информации, представленной последовательным кодом (младшими битами вперёд), в полном дуплексном режиме обмена.

В состав УАПП (последовательного порта) входят принимающий и передающий сдвигающие регистры, а также специальный буферный регистр (SBUF) приёмопередатчика. Запись байта в буфер приводит к автоматической переписи байта в сдвигающий регистр передатчика и инициирует начало передачи байта.

Буферный регистр приёмника позволяет совмещать операцию чтения ранее принятого байта с приёмом очередного байта. Если к моменту окончания приёма байта предыдущий байт не был считан из SBUF, то он будет потерян.

УАПП может работать в четырёх режимах.

Режим 0 (синхронный обмен). В этом режиме информация (8-бит) передаётся и принимается через внешний вывод входа приёмника (RXD). Через TXD выдаются импульсы сдвига (синхронизации), которые сопровождают каждый бит. Частота передачи f0 зависит только от частоты кварцевого резонатора fрез и равна f0=fрез/12. За один машинный цикл передаётся один бит информации.

Режим 1(асинхронный обмен). В данном режиме передаются через TXD или принимаются из RXD 10 бит информации: старт-бит (0), 8 бит данных и стоп-бит (1). Скорость приёма/передачи - величина переменная и задаётся T/C1.

Режим 2 (асинхронный обмен). В этом режиме через TXD передаются или из RXD принимаются 11 бит информации: старт-бит (0), 8 бит данных, программируемый девятый бит и стоп-бит (1). Частота передачи f2 задаётся битом SMOD. При SMOD=0 частота передачи f2=(1/64)fрез, а при SMOD=1 равна f2=(1/32)fрез.

Режим 3 (асинхронный обмен). Режим 3 совпадает с режимом 2, только частота приёма/передачи задаётся T/C1.

В режимах 1 и 3 в формировании частоты передачи кроме управляющего бита SMOD принимает участие T/C1. При этом частота передачи f1,3 зависит от частоты переполнения fOVT1 T/C1 и определяется следующим образом: f1,3=(2SMOD/32)fOVT1. Прерывание от таймера в этом случае должно быть заблокировано. Сам Т/С1 может работать и как таймер, и как счётчик событий в любом из трёх режимов.

Однако наиболее удобно использовать режим таймера с автоперезагрузкой (старшая тетрада ТMOD=0010В). При этом частота передачи определяется выражением f1,3=(2SMOD/32)(fрез/12)(256-(ТН1)). В табл. 5.5 приводится описание способов настройки Т/С1 для получения типовых частот передачи данных через УАПП.