logo search
МУ ЦТ и МК для стенда 2013

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