Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Консп лек прог ЦТ и МК 2.doc
Скачиваний:
30
Добавлен:
01.05.2015
Размер:
897.54 Кб
Скачать

12 Лекция 12. Фактор времени и аналоговый мир

Цель лекции: научить студентов работать с временными факторами и обрабатывать аналоговые сигналы с применением цифровой техники.

12.1 Модуль таймера TMR1

Во многих системах ключевые операции связаны со вре­менем. Это может быть измерение длительности какого-либо события, подсчет чис­ла внешних событий или же управление внешним объектом в течение определенно­го периода времени. В качестве примера можно указать задачу измерения интервала между импульсами, формируемыми датчиком при прохождении мимо него зубцов маховика коленчатого вала двигателя. Это значение ис­пользуются для определения скорости вращения вала.

В тех случаях, когда время становится одним из важнейших критериев, для реализации указанных функций обычно используются аппаратные счетчики, а не программно – формируемые задержки.

Управляют работой таймера TMR1 регистры специального назначения PIR1, TICON, INTCON, TMR1, TMR1H, TMR1L.

TMR1 – 16-разрядный таймер/счетчик, состоящий из двух 8-разрядных регистров (TMR1H и TMR1L), доступных для чтения и записи. Счет выполняется в спаренных регистрах (TMR1H и TMR1L). Инкрементируя их значение от 0000h до FFFFh. Если добавить единицу регистр переполняется и далее считает с 0000h. При переполнении счетчика устанавливается в '1' флаг прерывания TMR1IF в регистре PIR1<0>. Само прерывание можно разрешить/запретить установкой/сбросом бита TMR1IE в регистре Р1Е1<0>.

TMR1 может работать в режимах: режим таймера, режим счетчика.

Включается TMR1 установкой бита TMR1ON в ‘1’ (T1CON<0>).

Битом TMR1CS (T1CON<1>) выбирается источник тактовых импульсов. Счетчики TMR1 инкрементируются при каждом машинном цикле.

Когда включен генератор тактовых импульсов (T1OSCEN=1), выводы RC1/T1OSI/CCP2 и РС0/T1OSO/TICK1 настроены как входы. Значение битов TRISC<1:0> игнорируется, а чтение данных с этих выводов дает результат '0'.

Управляющие биты TMR1 находятся в регистре T1CON.

Предделитель TMR1 очищается при записи в TMR1L или TMR1H.

Регистр PIE1 (адрес 8Ch) доступен для чтения и записи, содержит биты разрешения периферийных прерываний. Чтобы разрешить периферийные прерывания необходимо установить в '1' бит PEIE(INTCON<6>).

Регистр INTCON (адреса 0Вh, 8Вh, 10Вh или 18Вh) доступен для чтения и записи. Он содержит биты разрешений и флаги прерываний: переполнение TMR1; изменения уровня сигнала на выводах PORTB; внешний источник прерываний RB0/INT.

Примечание. Флаги прерываний устанавливаются при возникновении условий прерываний вне зависимости от соответствующих битов разрешения и бита общего разрешения прерываний GIE (INTCON<7>).

Регистр PIR1 доступен для чтения и записи, содержит флаги прерываний периферийных модулей.

Примечание. Флаги прерываний устанавливаются при возникновении условий прерываний вне зависимости от соответствующих битов разрешения и бита общего разрешения прерываний GIE (INTCON<7>). Программное обеспечение пользователя должно сбрасывать соответствующие флаги при обработке прерываний от периферийных модулей.

12.2 Применение таймера TMR1.

Создадим программу, применяющую таймер, для автоматической окрасочной камеры, описанной в лабораторной работе «Подпрограммы». Дополнительно будем пересчитывать окрашенные детали.

Фрагменты программы. Курсивом отмечены дополнительные команды, управляющие работой таймера.

Include <p16F877.inc>; подключаем библиотеку символов.

T_reg EQU h'20'; регистр, определяющий время задержки.

Kol_det EQU h'21'; регистр, хранящий количество окрашенных деталей.

; настройка МК опущена. Ниже настройка TMR1.

BSF STATUS, 5

CLRF TRISC

CLRF PIE1; запрещаем периферийные прерывания.

BCF STATUS, 5

CLRF T1CON; установка TMR1 в режим ожидания, тактирование TMR1 от внутреннего генератора, значение предделителя частоты =1:1.

CLRF TMR1H; очищаем старший регистр-счетчик TMR1.

CLRF TMR1L; очищаем младший регистр-счетчик TMR1.

CLRF INTCON; запрещаем прерывания от TMR1.

MOVLW b'00110000'; тактирование от внутреннего генератора

MOVWF T1CON; устанавливаем предделитель частоты =1:8.

Рабочая часть программы совпадает с программой лабораторной работы «Подпрограммы». Подпрограмма Timer заменяется подпрограммой Timer2.

GOTO$

Timer2; подпрограмма с TMR1.

MOVWF T_reg; задание времени задержки.

M_T_reg;

BCF PIR1, TMR1IF; сброс флага переполнения таймера в каждом цикле.

BSF T1CON, TMR1ON; запуск таймера TMR1.

; следующие три строки это циклы работы таймера TRM1

M_ TRM1; метка

BTFSS PIR1, TMR1IF; проверка флага перепол­нения таймера

GOTO M_ TRM1; если флага нет, то цикл TRM1 продолжается.

DECFSZ T_reg, F; уменьшаем число в регистре и проверяем на ноль.

GOTO M_T_reg; (только при Z=0) время не кончилось, повторяем цикл.

RETURN

END

12.3 Аналоговый мир

Принимая во внимание тот факт, что основной задачей цифровых микрокон­троллеров является отслеживание и управление состоянием реального окруже­ния, параметры которого, как правило, измеряются аналоговыми датчиками, нам придется рас­смотреть методы взаимодействия между аналоговым и цифровым миром. Часто все, что нам требуется, - это сравнить уровни двух аналоговых сигналов. Однако в более сложных случаях входной аналоговый сигнал необходимо преобразовы­вать в его цифровой эквивалент, т.е. выполнять аналого-цифровое преобразование (АЦП) В дальнейшем полученный двоичный код можно будет обработать привычным образом. И наоборот, если выходной сигнал должен быть аналоговым, необходимо выполнять цифро-аналоговое преобразование (ЦАП).

Из этих операций, схематично изображенных на рисунке 12.1, наиболее сложной является операция аналого-цифрового преобразования. Во многих микроконт­роллерах PIC имеется встроенный модуль многоканального АЦП. А вот для фор­мирования аналогового выходного сигнала, как правило, приходится использо­вать дополнительные внешние элементы

Рисунок 12.1. Аналоговый мир — цифровая обработка

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

На практике максимальное значение разрешающей способности, необходимое для обработки, определяется шумами и ограниченной точностью источников сигналов.

В цифровых сигналах информация представляется в виде совокупности диск­ретных символов. Так, в двоичной системе N-битное число может в лучшем случае представлять 2N уровней. Сетку (шаг) квантования можно подобрать таким образом, чтобы обеспе­чить точность, требуемую для решения каждой конкретной задачи. Так, в систе­мах передачи голоса по телефонным линиям вполне достаточно точности около 1 процента. В этом случае можно использовать 8-битное представление аналогового сиг­нала, которое даст нам 256 дискретных значений, что соответствует разрешающей способности около 0.5%. В музыкальном компакт-диске используется 16-битное представление (65 536 разрядов) — разрешающая способность около 0.0015%.

В качестве примера рассмотрим ситуацию, представленную на рисунке 12.2. В данном случае входной сигнал преобразуется в трех – битный код. Процесс квантования (оцифровки) сигнала заключается в сравнении аналогового значения со значениями фиксированного числа уровней — в данном случае восемью. В качес­тве цифрового эквивалента исходного сигнала принимается ближайший по значению уровень. На рисунке 12.2 при входном напряжении 0,4285В, его квантованное значении принимается по третьему уровню, т.е. 3/8=0,375В и выражается числом b’011’.

Рисунок 12.2. Процесс квантования

Получившаяся ошибка 0,4285-0,375=-0.0535, называется шумом квантования, и пол­ностью ее избежать невозможно. Кривая распределения ошибки приведена в нижней части рисунка, здесь символ L- число уровней.