Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 371; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.009 с.) |