
- •Программирование цифровой техники и микроконтроллеров управления
- •Алматы 2012
- •1 Микроконтроллеры в современном мире
- •1.1 Краткая история развития микроконтроллеров
- •1.2 Задачи и роль микроконтроллеров
- •2 Выполнение арифметических операций в мп
- •2.1 Системы счислений
- •2.2 Двоичная арифметика
- •2.3 Дополнительный код
- •2.4 Знаковый разряд
- •3 Регистры общего и специального назначения
- •3.1 Регистры portc и trisc
- •3.2 Регистр Status
- •3.3 Фиксированная (абсолютная) адресация
- •4 Косвенная адресация. Логика
- •4.1 Косвенная адресация
- •4.2 Логические функции
- •5 Маскирование. Стек
- •5.1 Маскирование
- •5.2 Счетчик команд
- •5.3 Стек
- •6 Конвейер и подпрограмма задержки
- •6.1 Конвейер
- •6.2 Программа задержки
- •6.3 Расчет времени задержки
- •7 Выполнение умножения и деления
- •7.1 Умножение и деление при помощи сдвига
- •7.2 Инструкции условных переходов
- •7.3 Целочисленное умножение
- •7.4 Целочисленное деление
- •7.5 Умножение на дробное число
- •8 Программирование клавиатуры. Дешифратор
- •8.1 Клавиатура
- •8.2 Фрагменты программы
- •8.3 Дешифратор
- •8.4 Компаратор
- •9 Основные элементы цифровой техники
- •9.1 Сумматор
- •9.2 Арифметико-логическое устройство
- •9.3 Бистабильные схемы
- •9.4 Триггеры и регистры
- •10 Структура микроконтроллера. Индикатор
- •10.1 Применение операций сдвига
- •10.2 Цифровой индикатор
- •10.2 Структурная схема мк
- •11 Прерывания и сторожевой таймер
- •11.1 Прерывания
- •11.2 Подсчет посетителей с помощью прерываний
- •11.3 Сторожевой таймер
- •12 Фактор времени и аналоговый мир
- •12.1 Модуль таймера tmr1
- •12.2 Применение таймера tmr1
- •12.3 Аналоговый мир
- •Приложение а Список некоторых сокращений
- •Список литературы
- •Содержание
- •050013, Алматы, Байтурсынова, 126
12.2 Применение таймера tmr1
Создадим программу, применяющую таймер, для автоматической окрасочной камеры, описанной в лабораторной работе «Подпрограммы». Дополнительно будем пересчитывать окрашенные детали.
Фрагменты программы. Курсивом отмечены дополнительные команды, управляющие работой таймера 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, наиболее сложной является операция аналого-цифрового преобразования. Во многих микроконтроллерах имеется встроенный модуль многоканального АЦП. А вот для формирования аналогового выходного сигнала, как правило, приходится использовать дополнительные внешние элементы
Рисунок 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’. Получившаяся ошибка 0,4285-0,375=-0.0535, называется шумом квантования.
Рисунок 12.2 - Процесс квантования