Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 6 Периферия ОК.doc
Скачиваний:
3
Добавлен:
03.08.2019
Размер:
1.76 Mб
Скачать

6.4.3. Модуль захвата входных событий

Модуль захвата входных событий объединяет два независимых канала. Он может определять появление на внешних выводах IN0 и IN1 события в виде переднего и заднего фронта импульса. В момент детектирования события на входе канала происходит защелкивание текущего содержимого регистра таймера/счётчика в 16-битных «регистрах захвата 0,1». В момент защелкивания может быть сформирован запрос прерывания по появлению события.

Тип детектируемого события выбирается установкой битов EG00 и EG01 для канала 0 и битов EG10 и EG11 для канала 1. Битами ICE0 и ICE1 разрешается формирование запроса прерывания в каналах 0 или 1 соответственно. Биты ICP0 и ICP1 являются флагами прерывания в каналах.

6.5. Программируемый генератор импульсов

Модуль программируемого генератора импульсов позволяет формировать на внешних выводах микроконтроллера импульсы, параметры которых (длительность высокого и низкого уровней) могут оперативно изменяться.

Модуль содержит два канала (ch0 и ch1), которые поддерживают три режима работы: режим двух независимых 8-битных генераторов, режим одного 8-битного генератора с 8-битным пределителем тактовой частоты и режим одного 16-битного генератора.

Каждый канал включает 8-разрядный вычитающий счётчик, два регистра перезагрузки (регистр перезагрузки высокого уровня PRLH и регистр перезагрузки низкого уровня PRLL). Счётчик тактируется, по выбору, импульсами с частотой f машинного цикла (с делением на 1, 2, 4, 8 и 16), или импульсами от таймера временной базы. Дополнительно к этому, в режиме с 8-битным пределителем, счётчик канала ch1 может тактироваться выходными импульсами канала ch0.

При включении канала на его выходе формируется низкий уровень сигнала и в счетчик загружается содержимое регистра низкого уровня PRLL. Каждый тактовый импульс декрементирует счётчик.

При отрицательном переполнении на выходе канала устанавливается высокий уровень и счётчик перезагружается из регистра PRLH. После отрицательного переполнения выход инвертируется, и счётчик перезагружается из регистра PRLL. Далее цикл повторяется до тех пор, пока канал не будет выключен. Длительность низкого (TLo) и высокого (THi) уровня на выходе канала определяется по формуле:

TLo=T(PRLL+1);

THi=T(PRLH+1), где T –период тактовых.

6.6. Модуль звукового генератора

Модуль звукового генератора формирует прямоугольные импульсы с частотой звукового диапазона (20 Гц20 кГц) –импульсы тона. Основу модуля составляют широтно-импульсный генератор (PWM) и формирователь частоты тона.

Импульсы PWM поступают на 8-битный вычитающий счётчик формирователя частоты. При обратном переполнении счётчика, изменяется состояние выходного триггера формирователя частоты и происходит перезагрузка счётчика из регистра частоты. Импульсы на выходе триггера следуют с частотой звукового тона, которая вычисляется по формуле:

fT= fPWM /[2(Nрч+1)], где fPWM –частота импульсов широтно-импульсного генератора, Nрч -содержимое регистра частоты.

Импульсы тона, проходя через внешний громкоговоритель, создают звуковые колебания. При единичном значении импульса тона на внешний вывод могут передаваться PWM-импульсы. Изменяя скважность PWM-импульсов, можно менять громкость звука установленной частоты fT. Скважность импульсов устанавливается в регистре амплитуды.

Бит TONE определяет характер выходных импульсов

модуля. При установленном бите на выход передаются импульсы тона (максимальная громкость звука), а при сброшенном –на выход поступают импульсы тона и импульсы широтно-импульсного генератора, объединенные операцией конъюнкции, т. е. громкость звука определяется скважностью импульсов PWM.

Дополнительно в модуле предусмотрена функция автоматического затухания громкости звука. После выдачи установленного числа тоновых импульсов, блок затухания декрементирует содержимое регистра амплитуды. При обнулении регистра декрементирование прекращается, но работа модуля продолжается, т. е. выдаются PWM импульсы с минимальной скважностью и формируются импульсы тона. Периодичность декрементирования устанавливается в регистре декремента. Активизация функции затухания происходит при установке бита DEC регистра управления.

Модуль звукового генератора может формировать запросы на прерывание после определённого числа импульсов тона. Блок формирования запросов прерывания содержит регистр счетчика тона. Флаг запроса прерывания устанавливается через каждые

N=(TR+1)( DR+1), где TR и DR –содержимое регистров счётчика тона и регистра декремента соответственно. При нулевых значениях в обоих этих регистрах флаг устанавливается по каждому тоновому импульсу. Сигнал запроса прерывания выдаётся модулем при установленном бите разрешения прерывания INTE.