- •Микропроцессорные системы в электроэнергетике
- •Алматы 2013
- •Введение
- •1 Системы счислений. Карта памяти микроконтроллера
- •1.1 Краткие теоретические сведения
- •1.2 Задания
- •1.3 Контрольные вопросы
- •2 Изучение среды mplab. Управление оборудованием
- •2.1 Краткие теоретические сведения и задания для внеаудиторной подготовки
- •"Умк-mini"
- •2.2 Исходные данные
- •2.3 Выполнение проекта на умк-7
- •4.Выполним соответствующие настройки для запуска Вашего проекта:
- •6.Запуск проекта
- •2.4 Контрольные вопросы
- •3 Сложение, вычитание. Логика
- •3.1 Теоретические сведения
- •3.2 Исходные данные и выполнение программы
- •3.4 Контрольные вопросы
- •4 Операции преобразования информации
- •4.1 Теоретические сведения
- •4.2 Исходные данные и задание
- •4.3 Контрольные вопросы
- •5 Анализ информации посредством регистра состояния
- •5.1 Теоретические сведения
- •5.2 Исходные данные
- •5.3 Порядок выполнения работы
- •5.4 Контрольные вопросы
- •6 Маскирование
- •6.1 Краткие теоретические сведения
- •6.2 Исходные данные и задание
- •6.3 Контрольные вопросы
- •7 Суммирование массива информации
- •7.1 Теоретические сведения
- •7.2 Исходные данные
- •7.3 Выполнение задания
- •7.4 Контрольные вопросы
- •8 Автоматизация окрасочной камеры. Организация подпрограмм
- •8.1 Теоретические сведения
- •8.2 Задание на проектирование.
- •8.3 Выполнение задания
- •8.4 Контрольные вопросы
- •9 Программированиеклавиатуры
- •9.1 Теоретические сведения
- •9.2 Задание на проектирование
- •Фрагмент 9.1. Программирование клавиатуры.
- •9.3 Задание на выполнение
- •9.4 Контрольные вопросы
- •10 Автоматизация упаковки
- •10.1 Задание на автоматизацию упаковочной машины
- •10.2 Исходные данные
- •10.3 Выполнение задания
- •10.4 Контрольные вопросы
- •11 Программирование обработки аварийной ситуации
- •11.1 Теоретические сведения
- •11.2 Задание на проектирование и выполнение программы
- •11.3 Контрольные вопросы
- •12 Программирование таймерных функций
- •12.1 Задание на проектирование
- •12.2 Выполнение работы
- •12.3 Контрольные вопросы
- •Приложение а Системы счислений
- •Приложение б Карта памяти мк pic16877
- •Приложение в
- •Регистр Status
- •Приложение д Описание инструкций мк pic
- •Приложение е Модуль таймера tmr1
- •Список литературы
- •Содержание
- •0 50013, Алматы, Байтурсынова, 126
6 Маскирование
Цель работы: изучение способов маскирования и практическая форма их применения.
6.1 Краткие теоретические сведения
Маскирование – это специальный прием программирования в цифровой технике, который базируется на побитных логических операциях. Цель маскирования одновременно изменить или проверить несколько разрядов исходного числа по маске.
Правила маскирования с помощью логических операций:
логическая операция ANDисходного числа и числа-маски очищает разряд в исходном числе, если в соответствующем разряде числа-маски записан 0, и не изменяет его, если в разряде маски записана единица;
логическая операция ORисходного числа и числа-маски устанавливает в разряд исходного числа 1, если в таком же разряде маски записана 1, и не изменяет его, если в этом разряде маски записан 0;
логическая операция «Исключающее ИЛИ»(XOR)исходного числа и числа-маски инвертирует содержимое бита исходного числа, если в соответствующем разряде числа маски записана 1. И не изменяет его, если в этом разряде записан 0. Часто применяется для определения равенства регистра какому-либо числу записанному в маске.
Т а б л и ц а 6.1 – Результаты маскирования
|
Объекты |
Операция | |||
|
OR (установка с 4 по 7 бит) |
AND (очистка с 0 по 3 бит) |
XOR (инверсия с 4 по 7 бит) |
XOR (проверка чисел на равенство) | |
|
Число |
10101010 |
10101010 |
10101010 |
00001101 |
|
Маска |
11110000 |
11110000 |
11110000 |
00001101 |
|
Результат |
11111010 |
10100000 |
01011010 |
00000000 |
6.2 Исходные данные и задание
Изучите приемы маскирования с помощью логических функций, показанные ниже.
Фрагмент 6.1. Установка четырех бит с помощью функции OR.
MOVLW B’10101010’; загрузить константу h’АА’ в регистр W.
MOVWF PORTC; переслать константу в PORTC.
MOVLW B’11110000’; установить маску.
IORWF PORTC, F; подаем энергию в PORTC с 4 по 7 разряды.
Фрагмент 6.2. Сброс четырех бит с помощью функции AND.
MOVLW B’10101010’; загрузить константу h’АА’ в регистр W.
MOVWF PORTC; переслать константу в PORTC.
MOVLW B’11110000’; установить маску в регистре W.
ANDWF PORTC, F; выключаем энергию в PORTC с 0 по 3 разряды.
Фрагмент 6.3. Процедура инвертирования бит.
MOVLW b’10101010’; загрузить h’АА’ в регистр W.
MOVWF R1; загрузить h’АА’ из W в R1 .
MOVLW b’11110000’; маска для инверсии с 4 по 7 бит.
XORWF R1, W; применяем логическую функцию.
MOVWF PORTC; проверяем светодиодами результат в порте С.
Фрагмент 6.4. Определение равенства чисел и его применение.
Пусть к битам регистра PORTD, настроенного на ввод информации в ЦПУ, подключены: конечный выключатель ограждения окрасочной камеры (бит 3), датчик наличия заготовок (бит 2), датчик наличия заданной температуры в камере (бит 0). В этом случае предварительная звуковая сигнализацияS1, присоединенная к нулевому битуPORTC, должна включиться при значении «1» в этих битах информации, что определяется фрагментом программы описанным ниже.
Clrf PORTC
Movlw b’11011101’; информация пересланная в PORTD.
Movwf R1; регистр хранящий информацию из PORTD.
Movlw b’00001101’; жирным выделены интересующие нас биты 0, 2, 3.
Movwf Maska; число для маски, примененной в операции XOR.
Movlw b’00001101’; маска для операции AND.
Andwf R1, W; все биты кроме 0, 2, 3 обнуляем.
Xorwf Maska, w; проверяем записаны ли в этих битах единицы.
Movlw b’10000001’; предполагаем что да, тогда надо включить сирену.
Btfss STATUS, Z; равно ли преобразованное число из PORTD маске?
Movlw b’10000000’; если Z=0 (число равно маске) не включать сирену.
Movwf PORTC
Подготовьте программу, выполняющую маскирование на основе приведенных фрагментов для варианта из таблицы 6.2. Запишите результаты в таблицу 6.1.
Не забудьте создать окно наблюдения за значениями всех регистров.
Т а б л и ц а 6.2 – Варианты заданий
|
Вариант |
Маска для AND и OR |
Число из PORTD |
Биты проверяемые на наличие 1 |
Вариант |
Число из PORTD |
Число из PORTD |
Биты проверяемые на наличие 1 |
|
1 |
11000001 |
10110011 |
1, 2, 3 |
6 |
11100110 |
00111001 |
6, 7, 0 |
|
2 |
00110010 |
10011111 |
2, 3, 4 |
7 |
01101100 |
11011100 |
7, 0, 1 |
|
3 |
01110011 |
10101001 |
3, 4, 5 |
8 |
01001111 |
10001110 |
0, 2, 3 |
|
4 |
01010100 |
01110111 |
4, 5, 6 |
9 |
00110001 |
00111001 |
1, 3, 4 |
|
5 |
10100101 |
01101101 |
5, 6, 7 |
10 |
10010111 |
01110101 |
2, 5, 6 |
