Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Фрагмент 6.4. Определение равенства чисел и его применение.

Микропроцессорные системы в электроэнергетике

 
 
Лабораторная работа №6 Маскирование    

 

 


Выполнил: ст.гр. Эк-13-1 Калкаманов Н.С.

Проверил(а): _________________________

 

 

Алматы 2015

Маскирование

Цель работы: изучение способов маскирования и практическая форма их применения.

Краткие теоретические сведения

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

Правила маскирования с помощью логических операций:

- логическая операция AND исходного числа и числа-маски очищает разряд в исходном числе, если в соответствующем разряде числа-маски записан 0, и не изменяет его, если в разряде маски записана единица;

- логическая операция OR исходного числа и числа-маски устанавливает в разряд исходного числа 1, если в таком же разряде маски записана 1, и не изменяет его, если в этом разряде маски записан 0;

- логическая операция «Исключающее ИЛИ» (XOR) исходного числа и числа-маски инвертирует содержимое бита исходного числа, если в соответствующем разряде числа маски записана 1. И не изменяет его, если в этом разряде записан 0. Часто применяется для определения равенства регистра какому-либо числу записанному в маске.

 

Т а б л и ц а 6.1 – Результаты маскирования

    Объекты Операция
OR (установка с 4 по 7 бит) AND (очистка с 0 по 3 бит) XOR (инверсия с 4 по 7 бит) XOR (проверка чисел на равенство)
Число       00001101
Маска       00001101
Результат        

 

Исходные данные и задание

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

Фрагмент 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, 2, 3       6, 7, 0
      2, 3, 4       7, 0, 1
      3, 4, 5       0, 2, 3
      4, 5, 6       1, 3, 4
      5, 6, 7       2, 5, 6

 

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. Какое оборудование подключено к проверяемым битам?

 

<== предыдущая лекция | следующая лекция ==>
Порядок выполнения работы. При написании программы используйте блок-схему на рисунке 5.3 | Игембаева К.С.




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.