Вопрос по таймерам в 8051

Предположим, что таймер 1 из 8051 закончил считать и поднял TF1. Поскольку он откатывается к 0, то в настоящее время TH1=00,TL1=00, и предположим, что бит TR1 все еще установлен. В этот момент, если мы просто очистим только TF1, будет ли он снова считать с 00? Потому что мы еще не остановили таймер.

Следующий вопрос: допустим, TF1 установлен, но TR1 сброшен, можем ли мы в этот момент загрузить TH1 и TL1, используя # адресацию (немедленно)?

Ответы (1)

В этот момент, если мы просто очистим только TF1, будет ли он снова считать с 00? Потому что мы еще не остановили таймер.

TF1установится после переполнения Таймера-1. Теперь, если вы очистите TF1, но сохраните TR1установку, таймер продолжит работать. После переполнения он перезапустится с увеличением 0x00или предварительно загруженным значением TH1(зависит от режима таймера).

Таким образом, в случае 16-битного режима таймера вам необходимо очистить оба TF1и TR1, перезагрузить регистр Timer-1 и TR1снова установить, чтобы продолжить тот же цикл.

В случае режима 8-битного таймера с автоматической перезагрузкойTF1 к суффиксу добавляется только очистка . Нет необходимости очищать TR1, так как таймер автоматически перезапускается с предварительно загруженного значения в формате TH1.

допустим, TF1 установлен, но TR1 сброшен, можем ли мы в этот момент загрузить TH1 и TL1, используя # адресацию (немедленно)?

Да, вы можете. И как только вы установите TR1, таймер начнет работать с загруженного значения. Но вы должны очистить TF1, чтобы не пропустить событие следующего переполнения таймера.

в последних двух строках вы сказали "вам следует сбросить TF1...", а должно быть "вы должны сбросить TF1.." Не так ли? Я думаю, что при поднятом TF1 таймер даже не начнет отсчет даже если установлен TR1.
Под «сбросом» подразумевается очистка. TF1 должен быть очищен. не ТР1. Установка TR1 означает, что счетчик работает независимо от значения TF1. TF1 — это не управляющий флаг, а статусный. Если вы забыли очистить TF1, вы пропустите последующие события переполнения таймера, потому что таймер фактически все еще работает внутри.