Программируемый таймер представляет собой многофункциональный генератор, способный формировать импульсы переменой длительности или последовательность импульсов с заданным интервалом следования.
Обобщенная архитектура программируемого таймера представлена на рис. 1.
Рис. 1.  
Основным элементом архитектуры таймера является счетчик. Счетчик содержит счетный регистр, в который на этапе программирования (настройки) таймера заносится некоторое начальное значение. На вход CLK счетчика подаются счетные импульсы с тактового генератора. При поступлении каждого импульса значение счетчика уменьшается на 1. При достижении счетным регистром значения "0" наступает счетное событие, смысл которого зависит от режима работы счетчика.
Режим 1. Генерация одиночного импульса через заданный промежуток времени. Временная диаграмма работы таймера в этом режиме представлена на рис. 2.
Рис. 2.  
Представим себе, что в счетный регистр записано значение "4". Как только значение записано, начинается счет, то есть при поступлении каждого импульса на вход CLK значение счетного регистра уменьшается на 1. При достижении значением счетного регистра "0" происходит формирование одиночного импульса, длительность которого равна одному периоду сигнала CLK.
В таймере может быть предусмотрен режим автоинициализации, когда после окончания счета в счетный регистр опять заносится первоначальное значение (в нашем примере — "4") и процесс повторяется. В этом случае мы будем иметь на выходе OUT последовательность импульсов, период следования которых определяется начальным значением, заносимым в счетный регистр: .
Режим 2. Формирование импульса заданной длительности (рис. 3).
Рис. 3.  
После записи начального значения в регистр, начинается счет. Одновременно выход OUT переводится в состояние логической "1" — начинается формирование импульса на нем. При поступлении каждого импульса на вход CLK значение счетного регистра уменьшается на 1. При достижении значением счетного регистра "0" выход OUT переводится в состояние логического "0", что соответствует окончанию импульса. Таким образом, длительность импульса на выходе OUT определяется начальным значением, заносимым в счетный регистр: .