![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Фрагмент 6.4. Определение равенства чисел и его применение.
Микропроцессорные системы в электроэнергетике
Выполнил: ст.гр. Эк-13-1 Калкаманов Н.С. Проверил(а): _________________________
Алматы 2015 Маскирование Цель работы: изучение способов маскирования и практическая форма их применения. Краткие теоретические сведения Маскирование – это специальный прием программирования в цифровой технике, который базируется на побитных логических операциях. Цель маскирования одновременно изменить или проверить несколько разрядов исходного числа по маске. Правила маскирования с помощью логических операций: - логическая операция AND исходного числа и числа-маски очищает разряд в исходном числе, если в соответствующем разряде числа-маски записан 0, и не изменяет его, если в разряде маски записана единица; - логическая операция OR исходного числа и числа-маски устанавливает в разряд исходного числа 1, если в таком же разряде маски записана 1, и не изменяет его, если в этом разряде маски записан 0; - логическая операция «Исключающее ИЛИ» (XOR) исходного числа и числа-маски инвертирует содержимое бита исходного числа, если в соответствующем разряде числа маски записана 1. И не изменяет его, если в этом разряде записан 0. Часто применяется для определения равенства регистра какому-либо числу записанному в маске.
Т а б л и ц а 6.1 – Результаты маскирования
Исходные данные и задание Изучите приемы маскирования с помощью логических функций, показанные ниже. Фрагмент 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 – Варианты заданий
PORTC=B’ 11101111’, Maska OR PORTC=B’ 00001010’, Maska AND PORTC=B’ 01011010’, Maska XOR
PORTC=b’10000001’, z=1, S1 включен
Контрольные вопросы 1. Расскажите, какую реальную задачу решает ваша программа. 2. Как очистить нечетные разряды числа? 3. Какой логической функцией устанавливают в разряды единицы? 4. Какой логической функцией определяют равенство чисел? 5. Как очистить с 0 по 3 разряды? 6. Как установить с 4 по 7 разряды? 7. Зачем применяют логическую функцию Исключающее ИЛИ? 8. Укажите значение бита Z регистра STATUS после логической операции AND, если маска равна 00h? 9. Как инвертировать все нечетные биты в числе? 10. Проверка равенства определенных бит числа заданному значению? 11. Как оставить информацию только в битах 0-3 заданного числа? 12. Таблицы истинности для AND, OR, XOR. 13. Какое оборудование подключено к проверяемым битам?
|