Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа №3 сложение, вычитание. Логика
Цель работы: изучение инструкций ADDWF, ANDWF, IORWF, XORWF, SUBWF, RRF, RLF, а также изменения содержания бит в регистре STATUS отрезультата выполнения предыдущей инструкции.Выполнение сложения, вычитания, умножения, деления и применение логических функций. 3.1 Краткие теоретические сведения и задания для внеаудиторной подготовки
В таблице 3.1 представлены логические функции, их таблицы истинности, условные обозначения и интерпретация на электрической схеме. Все логические операции выполняются поразрядно.
Таблица 3.1 –Логические функции Y=f(X1,X2)
Логическая функция ‘ИЛИ’ (‘OR’) может применяться для включения оборудования любой из двух кнопок, расположенными в разных местах помещения. Логическая функция ‘И’ (‘AND’) может применяться в том случае, если оборудование должно включаться, при срабатывании (включении) обязательно двух контактов. Например, освещение в помещении автоматически включается при низкой освещенности и наличия в нем людей. Логическая функция ‘Исключающее ИЛИ’ (‘XOR’) может применяться, например, для управления освещением длинного тоннеля. В разных концах тоннеля устанавливаются переключатели Х1 и Х2, имеющие нормально открытый и нормально закрытый контакты. С любого конца тоннеля, изменив положение переключателя, можно включить освещение, если оно было выключено или выключить – если оно было включено. Задания для внеаудиторной подготовки Изучите формат инструкций ADDWF, SUBWF, ANDWF, IORWF, XORWF, RRF, RLF, BTFSS и BTFSC по приложению Д.
Исходные данные и выполнение программы
Изучите программу 3.1, которая выполняет различные действия с двумя константами и выводит результаты работы в регистр REZ. Программа легче читается, если в инструкциях вместо адреса регистра писать его символьное имя. В лабораторной работе №2 мы уже писали в инструкциях вместо адресов РСН их имена: PORTC, TRISC, STATUS, W и присваивали символьные имена РОН, используя R1 EQU h’21’. Указатель EQU от equal (англ.) – одинаковый, равносильный.
В микроконтроллерах PIC16F87x операция вычитания выполняется как сложение в дополнительном коде. Ниже приведены простые примеры перевода вычитаемого в дополнительный код. А) 8-10=-2 В двоичном виде: 00001000 – 00001010 Запишем 00001010 в инверсном коде: 11110101. Для получения дополнительного кода добавим 1. Получим 11110110. + 11110110 = 11111110 Результат выражен в дополнительном коде. Отнимем 1 от результата: 11111110 – 1=11111101. Инвертируем результат: 00000010=2. Б) 10-8=2 Запишем 00001000 в дополнительном коде, произведя инвертирование и потом добавление 1: 11110111 + 1 = 11111000. 11111010 + 11111000 = 00000010 = 2, при этом отметим, что произошел перенос в 8-й разряд. Задание: создать программу, позволяющую проверить результат применения инструкций логических операций и отследить реакцию содержимого разрядов 0-2 в регистре STATUS после выполнения предшествующей операции. Появление флагов (1) или их отсутствие (0) позволяет изменять работу программы при использовании инструкций BTFSS и BTFSC. Программа 3.1. Include <p16F877А.inc>; в этом файле описаны символьные имена РСН. R1 EQU h'21'; R1 - символьное имя регистра по адресу h’21’. R2 EQU h'22'; R2 - символьное имя регистра по адресу h’22’. R3 EQU h'23'; R3 - имя регистра по адресу h’23’. REZ EQU h'24'; REZ - имя регистра для записи результатов. ; Инструкции для настройки МК ORG h'00'; следующая инструкция NOP будет записана по адресу h’00’. NOP; пишется для настройки отладчика. NOP NOP ORG h'05'; следующая инструкция CLRF запишется по адресу h’05’. CLRF STATUS; очищаем регистр от мусора, выбираем нулевой банк. ; сохранить окно BSF STATUS, 5; переходим в первый банк в нём регистр TRISC. CLRF TRISC; настраиваем все биты PORTC на вывод данных. BCF STATUS, 5; возвращаемся в нулевой банк. ; Рабочая часть программы. Ввод данных MOVLW D'240'; запись константы в аккумулятор W. MOVWF R1; запись содержимого W в регистр R1. MOVLW D'130'; запись константы в аккумулятор W. MOVWF R2; запись содержимого W в регистр R2. MOVLW D'5'; запись константы в W. MOVWF R3; запись содержимого W в регистр R3.
; сохранить окно ; Выполнение вычислений MOVF R1, W; запись константы из R1 в регистр W. SUBWF R2, W; вычитание W=R2-W=R2- R1. MOVWF REZ; переслать содержимое W в регистр REZ. ; сохранить окно MOVF R2, W; запись константы из R2 в регистр W. ADDWF R1, W; W=R2+W=R1+R2. MOVWF REZ ; сохранить окно MOVF R2, W; копируем содержимое R2 в W. SUBWF R1, W; вычитание W=R1-W=R1-R2. Результат оставляем в W. MOVWF REZ; переслать содержимое W в регистр REZ ; сохранить окно MOVF R2, W; запись константы в регистр W из R2. ADDWF R3, W; W=R3+W=R2+R3. MOVWF REZ ; сохранить окно MOVF R2, W; запись константы в регистр W из R2. SUBWF R2, W MOVWF REZ ; сохранить окно MOVF R2, W; запись константы в регистр W из R2. ANDWF R1, W; операция W=R1 AND W(R2), результат в W. MOVWF REZ ; сохранить окно MOVF R2, W; запись константы в регистр W из R2. ORWF R1, W; операция W=R1 OR W(R2), результат в W. MOVWF REZ ; сохранить окно MOVF R2, W; запись константы в регистр W из R2. XORWF R1, W; операция W=R1 XOR W(R2), результат в W. MOVWF REZ ; сохранить окно RRF R1,w;деление на 2 без очистки бита С регистра STATUS. После выполнения;сдвига вправо сдвигаемый бит 0 из регистра R1 переместился в бит С регистра STATUS, а;единица из бита С регистра STATUS добавилась слева к значению регистра R1 и;сохранилась в аккумуляторе W. Значение неверно. MOVWF REZ ; сохранить окно RLF R1,w; 240*2=480, произошло переполнение регистра, в нем осталось 480-256=224,;в бите С регистра STATUS появилась 1, чтобы операция деления выполнилась верно, надо;его обнулить MOVWF REZ ; сохранить окно BCF STATUS,C RRF R1,w MOVWF REZ ; сохранить окно END; конец программы.
Данные для варианта возьмите из таблицы 3.2.
Т а б л и ц а 3.2 – Варианты задания
Оформление отчета по лабораторной работе Отчет выполняется на группу по результатам выполнения лабораторной работы в режиме MPlabSim. В вордовском файле сохраняется текст программы и через PrtSc - характерное состояние регистров в окне при пошаговом выполнении программы. В этот же файл включается таблица 3.3, данные в которую записываются при пошаговом выполнении программы в режиме MPlabSim. Отчет в формате Word сохраняется в общей папке компьютерного класса. Защита производится на следующем занятии. Т а б л и ц а 3.3 - Пример записи результатов работы команд
Создайте окно наблюдения для всех применяемых в программе регистров в необходимом формате чисел. Результаты работы всех операций с числами запишите в таблицу 3.2. Выводы 3.4.1Для получения правильного применения инструкций RRF и RLF перед ее применением необходимо обнулить бит С в регистре STATUS.
3.4.2 Деление на 2 нечетных чисел выполняется с погрешностью.
3.5 Контрольные вопросы
1. Как определить с регистрами какого банка работает программа? 2. Что выполняет инструкция ADDWF R1,F и в какой регистр помещается результат ее выполнения? 3. Что выполнят инструкция SUBWF R2,F и в какой регистр помещается результат ее выполнения? 4. Что выполняет инструкция ANDWF R1,F и в какой регистр помещается результат ее выполнения? 5. Что выполняет инструкция IORWF R1,W и в какой регистр помещается результат ее выполнения? 6. Что выполняет инструкция XORWF R2,W и в какой регистр помещается результат ее выполнения? 7. Приведите инструкции установки и сброса бита. 8. Назначение директивы ORG h’05’. 9. Приведите таблицы истинности логических операций. 10. Назовите знакомые вам устройства, в которых применяются МК. 11. На какие части делится программа? 12. В каком банке находятся созданные в программе регистры R1, R2 и REZ. 13. Какой результат мы увидим при сложении 230+60 в МК? 14. Какой результат мы увидим при вычитании 130-135 в МК? 15. Что надо делать, чтобы операции деления на 2 и умножения на 2 выполнялись верно?
Таймеры
Цель работы: изучение способов создания задержек выполнения следующей инструкции, в соответствии с реализацией управляющего алгоритма. Например, такие задержки нужны в цикле АПВ, в реализации алгоритмов АЧР и т.д. 4.1 Краткие теоретические сведения и задания для внеаудиторной подготовки Реализацию пауз между следующими друг за другом инструкциями можно осуществить созданием таймеров на основе вложенных циклов и использования периферийных устройств микроконтроллера - таймеров: ТМR0, ТМR1 и ТМR2. Задания для внеаудиторной подготовки Изучите работу таймеров ТМR0, ТМR1 и ТМR2 и назначение регистра PCL по [11] и приложению Г, а также инструкции DECF.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 270; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.82.167 (0.031 с.) |