
- •Программирование цифровой техники и микроконтроллеров управления
- •Алматы 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
9.4 Триггеры и регистры
Существует много различных реализаций бистабильных ячеек. Например, замена элементов ИЛИ-НЕ на элементы И-НЕ приведет к образованию RS-триггера, в котором активным входным сигналом является логический ноль.
Дальнейшим развитием RS-триггера является D-защелка. В этом элементе выходной сигнал (Q) повторяет входной (D), если на входе управления С присутствует активный уровень (в данном случае — высокий), и сохраняет предыдущее значение при неактивном уровне на входе управления. Таким образом, D-защелку можно рассматривать как 1-битную ячейку памяти, запоминающую значение, которое присутствует на ее входе на момент завершения импульса управления.
На рисунке 9.4 взаимное влияние входов D и С обозначается символами «C1» и «1D». Префикс «1» у D указывает на то, что этот вход зависит от любого сигнала в обозначении которого имеется суффикс «1», в данном случае от входа С, то есть фиксация значения 1D происходит по сигналу С1.
Рассмотрим триггер, тактируемый по спадающему фронту (см. рисунок 9.4), инверсный выход Q которого подключен к входу 1D. D-триггер тоже представляет собой 1-битную ячейку памяти. Однако в нем данные передаются на выход только по активному фронту сигнала на управляющем (тактовом) входе. Наборы D-триггеров обычно называются регистрами, т.е. устройствами памяти, хранящими одно слово данных.
По каждому спадающему фронту на входе С1 данные с входа 1D будут защелкиваться и появляться на выходе Q. Поскольку инверсный сигнал этого выхода подаётся обратно на вход, то в следующий раз триггер переключится в противоположное состояние. Это периодическое переключение между двумя состояниями помечено на временной диаграмме символом «Т». В результате при подаче на вход триггера сигнала некоторой частоты на его выходе будет сформирована последовательность импульсов, частота которых в 2 раза ниже. Такой триггер называют Т-триггером счетного типа или делителем на два.
Рисунок 9.4 - Т-триггер
Разумеется, Т-триггеры тоже можно каскадировать, как показано на рисунке 9.5. В данном случае 4 триггера с запуском по спадающему фронту соединены таким образом, чтобы выход N-го разряда управлял тактовым входом разряда N + 1. Соответственно, если частота сигнала на входе С равна 8 МГц, то на выходе Qa будет прямоугольный сигнал частотой 4 МГц, на выходе Qb — 2 MГц, на Qc — 1 MГц и на Qd — 0,5 МГц.
Рисунок 9.5 – Каскадирование Т-триггеров
10 Структура микроконтроллера. Индикатор
Цель лекции: применение операций сдвига, перевод чисел в двоично-десятичную систему. Рассмотрение структуры микроконтроллера.
Краткое содержание лекции. Применение операций сдвига. Вывод цифр в цифровой индикатор. Структурная схема микроконтроллера.
10.1 Применение операций сдвига
Одним из использований операций сдвига является побитовая проверка данных. Предположим, что состояние 8 кнопок мобильного телефона сохранено в регистре данных h'20' см. таблицу 10.1.
Таблица 10.1 – Состояние кнопок
Кнопка |
К7 |
К6 |
К5 |
К4 |
К3 |
К2 |
К1 |
К0 |
Состояние |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
Требуется определить самую левую разомкнутую кнопку, при этом считаем, что разомкнутой кнопке соответствует 1, замкнутой — 0. Рабочий регистр W в программе используется в качестве счетчика. Поскольку флаг переноса сбрасывается перед каждым сдвигом, вдвигается всегда логический 0. В какой-то момент значение регистра h’20’ становится равным нулю, и процесс завершается. Циклический сдвиг регистра на один бит вправо показан на рисунке 10.1.
|
|
Рисунок 10.1- Циклический сдвиг регистра на один бит вправо
П
оследовательность
сдвигов: 00101111 (0)00010111
(1)
00001011 (2)
00000101 (3)
00000010 (4)
00000001 (5)
00000000 (6). Всё на шестом шаге регистр равен
нулю (при этом Z=1),
следовательно, кнопка К5 является самой
левой разомкнутой кнопкой.
На рисунке 10.2 показана блок-схема рассмотренного алгоритма.
При сдвиге вправо во флаг переноса выдвигается самый правый (младший) бит. Мы сможем определить позицию самой правой разомкнутой кнопки, заменив команду BTFSC STATUS, Z командой BTFSC STATUS, С.
Во многих случаях циклическое выдвигание бита во флаг переноса может использоваться для побитовой проверки данных. Например, мы можем модифицировать свою программу таким образом, чтобы она подсчитывала число установленных битов в байте.