Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа №1. Байтовые и битовые команды. ЛогикаСтр 1 из 8Следующая ⇒
Требования к отчету. Отчет о лабораторной работе должен содержать титульный лист, задание, блок схему, текст программы, заполненную таблицу результатов и результаты работы программы в виде копий окон Watch, подобных приведенным в методических указаниях, контрольные вопросы. Лабораторная работа должна быть защищена студентом. Оборудование и программное обеспечение для проведения лабораторных работ: Windows 98 или выше, среда MPLAB, комплект УМК-7. Лабораторная работа №6. Программирование клавиатуры
Цель работы: создание программ с вводом данных клавиатурой. Клавиатура используется в реальных программах для ввода данных, инструкций, для изменения алгоритма вычислений. В лабораторной работе с клавиатуры будем подавать сигнал ’1’ в PORTD, без применения дополнительного источника питания. Сигнал будет обработан микропроцессором и будут внесены изменения в работу программы.
Изучите схему пленочной клавиатуры (рисунок 6.1). Такая схема продиктована тем, что все кнопки подключаются к одному регистру. Рисунок 6.2 – Монтажная схема подключения кнопки «1» На рисунке 6.2 приведена, в качестве примера, монтажная схема подключения кнопки с цифрой «1» к PORTD. Разряды RD7, RD6, RD5, RD4 предназначены для подачи сигнала «1». Остальные для приема сигнала. В разряде RD0 по заводской схеме всегда записана «1». Одна клемма кнопки «1» подключена к выводу RD7, а вторая клемма кнопки подключена к выводу RD3. Бит RD7 должен быть запрограммирован на вывод, а бит RD3 - на ввод. Задание на проектирование.Создать программу автоматизации окрасочной камеры по лабораторной работе «Подпрограммы», изменив её. Предусмотреть запуск камеры для окрашивания каждой детали кнопками «Пуск» и останов камеры кнопками «Стоп» по месту и с пульта оператора. Дребезг контактов клавиатуры убирается включением подпрограммы Timer. Кнопка Stop в данной программе находится в подпрограмме Timer. Выключение оборудования кнопкой здесь возможно, потому что при выполнении программы, МК практически все время находится во внутреннем цикле подпрограммы Timer. При других алгоритмах такой вариант выключения невозможен, необходимо предусмотреть прерывание.
Фрагменты программы. Добавленные команды по сравнению с лабораторной работой с таймером, выделены курсивом. ; ниже инструкции для настройки PORTD. CLRF TRISC MOVLW b'00001111' MOVWF TRISD; настраиваем PORTD: биты 0-3 на ввод, 4-7 на ввод. BCF STATUS, 5 CLRF PORTC Рабочая часть программы. MOVLW B'11110000' BSF STATUS, 5 CLRF TRISC CLRF PIE1; запрещаем периферийные прерывания. BCF STATUS, 5 CLRF T1CON; установка TMR1 в режим ожидания, тактирование TMR1 от внутреннего генератора, значение предделителя частоты =1:1. Конец алгоритма Переводим 254: 16=15 (14) 14:16=0 (14). Итак, получили 25410=FE16 Алгоритм перевода дробной части чисел из десятичной системы в другую систему. Начало алгоритма. Дробную часть числа считаем умножаемым. Начало цикла. Если умножаемое более нуля (условие цикла), то умножаем его на основание системы. Полученную целую часть произведения переносим в результат. иначе (если дробная часть равна нулю) выйти из цикла. Считать дробную часть новым умножаемым (изменение условия цикла) Конец цикла (возврат на начало цикла) Конец алгоритма Переведем дробную часть первого слагаемого 0,017 в шестнадцатеричную систему с точностью до трех шестнадцатеричных цифр, а затем округлим. Целые части чисел выделены жирным шрифтом. 0,017*16= 0,272; 0,272*16= 4,352; 0,352*16= 5,63. Таким образом, 0,01710=0,0416. Третью цифру 5, поскольку она меньше 8 отбрасываем. Дробная часть второго слагаемого 0,991*16= 15,856; 0,856*16= 13,696; 0,696*16= 11,136. Таким образом, 0,99110=FDB16, округляя до двух цифр, получим FE. В результате работы программы были получены значения, представленные в таблице 11.2.
Т а б л и ц а 11.2 – Суммирование двухбайтных дробных чисел
Результат, полученный в шестнадцатеричной системе счисления, представим в десятичной форме: Sum=1*162+15*161+15*160+0*16-12*16-2=
Результат десятичного сложения 255,017+255,991=511,008. Как видим, результаты в обоих случаях совпали с точностью до третьего знака после запятой. В блок-схеме на рисунке 11.1 предполагается, что слагаемые заданы. Фрагменты программы сложения двухбайтных чисел (до 65535). Применяемые символьные имена регистров показаны на рисунке 11.1 и в таблице 11.1. CLRF SUM_M; очищаем регистры для суммы CLRF SUM_S CLRF SUM_3 ; Первое слагаемое MOVLW h’04’ MOVWF S1_M; младший байт S1_M= h’04’ MOVLW h’FF’ MOVWF S1_S; старший байт S1_S= h’FF’ ; Второе слагаемое MOVLW h’FE’ MOVWF S2_M; младший байт S2_M=h’FE’ MOVLW h'FF' MOVWF S2_S; старший байт S2_S= h'FF' ; Сложение младших байтов MOVF S1_M, W ADDWF S2_M, W MOVWF SUM_M BTFSC STATUS, C; Если был перенос, т. е. сумма более 255, INCF SUM_S, F; только при С=1, увеличиваем байт. ; Сложение старших байтов MOVF SUM_S, W ADDWF S1_S, W BTFSC STATUS, C; был перенос? INCF SUM_3, F; только при С=1 увеличиваем третий байт суммы. ADDWF S2_S, W MOVWF SUM_S BTFSC STATUS, C; был перенос? INCF SUM_3, W; только при C=1, увеличиваем третий байт суммы GOTO$ END Задание. Выполните сложение двухбайтных чисел, используя шестнадцатеричную систему счисления по заданиям таблиц 11.3 и 11.4. Результаты занесите в таблицы 11.1 и 11.2. Т а б л и ц а 11.3 – Варианты заданий для целых чисел
Т а б л и ц а 11.4 – Варианты заданий для дробных чисел
Контрольные вопросы. 1. Что такое основание системы счисления. Какие они могут быть? 2. Как размещается число большее 255 памяти МК? 3. Приведите алгоритм перевода из десятичной системы в шестнадцатеричную систему. 4. Приведите алгоритм перевода из шестнадцатеричной системы в десятичную систему. 5. Как определяется необходимость переноса в старшие байты суммы? 6. Как выполняется программно перенос единицы в старшие байты суммы. 7. Почему при сложении двухбайтных чисел необходимо зарезервировать три регистра для суммы? 8. Какой результат сложения шестнадцатеричных чисел F+1 и FF+1? 9. Где регистрируется переполнение регистра при сложении чисел? 10. Для чего выполняется суммирование чисел? 11. Как можно ли складывать дробные числа? 12. Почему в числе 0,04516 отбросили при округлении цифру 5?
Приложение А Регистр Status В таблице А.1 показаны расположение и имена битов регистра Status, которые используются для контроля результатов арифметических и логических операций, для выбора банков и других целей. Т а б л и ц а А.1 – Биты регистра Status
В таблице А.1 приняты следующие имена: а). IRP - бит выбора банка при косвенной адресации (IRP=1 - выбор банка 2 или банка 3, IRP=0 - выбор банка 0 или 1); б). RP1, RP0 - биты выбора банка при непосредственной адресации (т.е. разряды 5 и 6). Их значения для выбора банков показаны в таблице Г.2; в). TO - флаг переполнения сторожевого таймера;
г). PD - флаг включения питания; д). Z -флаг нулевого результата. Записывается “1” при нулевом результате арифметической или логической операции; е). DC - флаг десятичного переноса или заема. Записывается “1”, если был перенос из младшего полубайта регистра в старший полубайт, актуально при выполнении команд сложения и вычитания в двоично-десятичной системе; ж). C - флаг переноса или заема. Записывается “1”, если был перенос из старшего бита регистра для команд сложения и вычитания. Вычитание выполняется с помощью сложения уменьшаемого и вычитаемого, которое представлено в дополнительном коде. Т а б л и ц а А.2 – Выбор номера банка битами RP1 и RP0
К отдельным битам регистра можно обращаться по имени или по номеру. Инструкция BTFSC STATUS, Z эквивалентна команде Внимание! Символьное имя S обозначает регистр Status. Т а б л и ц а А.3 – Значения регистра Status после команды CLRF STATUS
Приложение Б Описание инструкций МК PIC Константа в инструкциях представлена символом k. В описании инструкций указаны флаги, которые могут измениться при ее выполнении. Параметр d (dest) в инструкциях определяет, в какой регистр записывается результат. Если d=0 или отсутствует, результат сохраняется в регистре W. Если d=1, результат сохраняется в регистре f ( от слова file). В программах для параметра d вместо ‘0’ можно писать ‘w’, вместо ‘1’ можно писать ‘f’. Вместо адреса регистра в программе более удобно писать его символьное имя. Например, регистр по адресу h’21’ имеет имя R1, тогда инструкция, описанная как ADDWF f, d, в программе может быть записана двумя способами: ADDWF h’21’, W или ADDWF R1, W. Директива ORG h’00’ – это указатель для ассемблера, что код, следующий за этим выражением, начинается с нулевого адреса ЭППЗУ.
ADDLW - Сложить k с W Синтаксис: [label] ADDLW k Операнды: 0£k£255 Операция: (W) + k à (W) Изменяемые флаги: С, DC, Z
ADDWF -Сложение W и f Синтаксис: [label] ADDWF f, d Операнды: 0£f£127 Операция: (W) + (f) à (dest) Изменяемые флаги: C, DC, Z ANDLW - Побитное ' И ' k и W Синтаксис: [label] ANDLW k Операнды: 0£k£255 Операция: (W).AND. k à (W) Изменяемые флаги: Z
ANDWF -Побитное 'И’ W и f
Синтаксис: [label] ANDWF f, d Операнды: 0£f£127 Операция: (W).AND. (f) à (dest) Изменяемые флаги: Z
BCF -Очистить бит b в регистре f Синтаксис: [label] BCF f, b Операнды: 0£f£127; 0£b£7 Операция: 0 à (f<b>) Изменяемые флаги: Нет BSF -Установить бит b в регистре f Синтаксис: [label] BSF f, b Операнды: 0£f£127; 0£b£7 Операция: 1àf<b> Изменяемые флаги: Нет BTFSC -Проверить бит b в регистре f, пропустить следующую инструкцию, если b=0 Синтаксис: [label] BTFSC f, b Операнды: 0£f£127; 0£b£7 Изменяемые флаги: Нет Описание: Если бит b в регистре f равен 0, то следующая инструкция программы пропускается.
BTFSS - Проверить бит b в регистре f, пропустить, если b = 1 Синтаксис: [label] BTFSS f, b Операнды: 0£f£127; 0£b£7 Изменяемые флаги: Нет Описание: Если бит b в регистре f равен ‘1’, то следующая инструкция программы пропускается.
CALL Вызов подпрограммы Синтаксис: [label] CALL f CLRF - Очистить f Синтаксис: [label] CLRF f Операнды: 0£f£127 Операция: 00h à (f); 1 àZ Изменяемые флаги: Z Описание: Очистить содержимое регистра f и установить флаг Z=1.
COMF - Инвертировать f Синтаксис: [label] COMF f, d Операнды: 0£f£127 Операция: (-f) à (dest) Изменяемые флаги: Z Описание: Инвертировать все биты в регистре f.
DECF - Вычесть 1 из регистра f Синтаксис: [label] DECF f, d Операнды: 0£f£127 Операция: (f) - 1 à (dest) Изменяемые флаги: Z DECFSZ - Вычесть 1 из f и пропустить, если f=0 Синтаксис: [label] DECFSZ f, d Операнды: 0£f£127 Операция: (f) -1 à (dest) Изменяемые флаги: Нет Описание: Декрементировать содержимое регистра f. Если результат равен '0', то следующая инструкция программы пропускается. GOTO -Безусловный переход Синтаксис: GOTO k Операнды: 0£k£2047 Операция: Переход на метку Изменяемые флаги: Нет INCF -Прибавить 1 к f Синтаксис: label] INCF f, d Операнды: 0£f£127 Операция: (f) + 1 à (dest) Изменяемые флаги: Z IORLW -Побитное 'ИЛИ' K и W Синтаксис: [label] IORLW k Операнды: 0£k£255 Операция (W).OR.(k) à (W) Изменяемые флаги: Z
IORWF - Побитное 'ИЛИ' W и f Синтаксис: [label] IORWF f, d Операнды: 0£f£127 Операция: (W).OR.(f) à (dest) Изменяемые флаги: Z
MOVF - Переслать f Синтаксис: [label] MOVF f, d Операнды: 0£f£127 Операция: (f) à (dest) Изменяемые флаги: Z Описание: Значение d=1 используется для проверки содержимого регистра f на ноль, которое регистрируется флагом Z. MOVLW - Переслать K в W Синтаксис: [label] MOVLW k Операнды: 0£k£255 Операция: kà(W) Изменяемые флаги: Нет Описание: В неиспользуемых битах ассемблер устанавливает '0'. MOVWF -Переслать W в f Синтаксис: [label] MOVWF f Операнды: 0£f£127 Операция: (W) à (f) Изменяемые флаги: Нет NOP -Нет операции
RETURN Возврат из подпрограммы Синтаксис: [label] RETURN Операнды: Нет Операция: TOS à PC Изменяемые флаги: Нет Описание: Возврат из подпрограммы. Вершина стека TOS загружается в счетчик инструкций PC. RLF -Циклический сдвиг регистра f влево через бит C регистра STATUS Синтаксис: [label] RLF f, d Операнды: 0£f£127 Изменяемые флаги: С Описание: Выполняется циклический сдвиг влево содержимого регистра f через бит С регистра status.
RRF - Циклический сдвиг регистра f вправо через бит C регистра status Синтаксис: [label] RRF f, d Операнды: 0£f£127 Изменяемые флаги: С Описание: Выполняется циклический сдвиг вправо содержимого регистра f через бит С регистра status.
SLEEP Перейти в режим SLEEP Синтаксис: [label] SLEEP Операнды: Нет Операция: 00h à WDT; 00h à предделитель WDT; 1 à -ТО; 0 à PD Изменяемые флаги: -ТО, -PD Описание: Сбросить флаг включения питания -PD в '0'. Установить флаг -ТО переполнения WDT в '1'. Очистить таймер WDT и его предделитель. Перевести микроконтроллер в режим SLEEP и выключить тактовый генератор. SUBLW -Вычесть W из K Синтаксис: [label] SUBLW k Операнды: 0£k£255 Операция: k - (W) à (W) Изменяемые флаги: C, DC, Z SUBWF -Вычесть W из f Синтаксис: [label] SUBWF f, d Операнды: 0£f£127; dÎ [0,1] Операция: (f) –(W) à (dest) Изменяемые флаги: C, DC, Z SWAPF -Поменять местами полубайты в регистре f Синтаксис: [label] SWAPF f, d Операнды: 0£f£127 Операция: (f<3:0>) à (dest<7:4>) Изменяемые флаги: Нет XORLW- Побитное 'исключающее ИЛИ ' K и W Синтаксис: label] XORLW k Операнды: 0£k£255 Операция: (W).XOR.k à (W) Изменяемые флаги: Z XORWF - Побитное 'исключающее ИЛИ ' W и f Синтаксис: [label] XORWF f, d Операнды: 0£f£127 Операция: (W).XOR.(f) à (dest) Изменяемые флаги: Z Приложение В Модуль таймера TMR1 TMR1 - 16-разрядный таймер/счетчик, состоящий из двух 8-разрядных регистров (TMR1H и TMR1L), доступных для чтения и записи. Счет выполняется в спаренных регистрах (TMR1H и TMR1L). Инкрементируя их значение от 0000h до FFFFh. Если добавить единицу регистр переполняется и далее считает с 0000h. При переполнении счетчика устанавливается в '1' флаг прерывания TMR1IF в регистре PIR1<0>. Само прерывание можно разрешить/запретить установкой/сбросом бита TMR1IE в регистре Р1Е1<0>. TMR1 может работать в режимах: режим таймера, режим счетчика. Включается TMR1 установкой бита TMR1ON в ‘1’ (T1CON<0>). Битом TMR1CS (T1CON<1>) выбирается источник тактовых импульсов. Счетчики TMR1 инкрементируются при каждом машинном цикле. Когда включен генератор тактовых импульсов (T1OSCEN=1), выводы RC1/T1OSI/CCP2 и РС0/T1OSO/TICK1 настроены как входы. Значение битов TRISC<1:0> игнорируется, а чтение данных с этих выводов дает результат '0'. Управляющие биты TMR1 находятся в регистре T1CON. Сброс регистров TMR1 (TMR1H, TMR1L). Регистры TMR1H и TMR1L не сбрасываются в 00h при сбросе по включению питания и других видах сброса. Предделитель TMR1 очищается при записи в TMR1L или TMR1H. Регистр PIE1 (адрес 8Ch) доступен для чтения и записи, содержит биты разрешения периферийных прерываний. Чтобы разрешить периферийные прерывания необходимо установить в '1' бит PEIE(INTCON<6>). Регистр INTCON (адреса 0Вh, 8Вh, 10Вh или 18Вh) доступен для чтения и записи. Он содержит биты разрешений и флаги прерываний: переполнение TMR1; изменения уровня сигнала на выводах PORTB; внешний источник прерываний RB0/INT. Примечание. Флаги прерываний устанавливаются при возникновении условий прерываний вне зависимости от соответствующих битов разрешения и бита общего разрешения прерываний GIE (INTCON<7>). Регистр PIR1 доступен для чтения и записи, содержит флаги прерываний периферийных модулей. Примечание. Флаги прерываний устанавливаются при возникновении условий прерываний вне зависимости от соответствующих битов разрешения и бита общего разрешения прерываний GIE (INTCON<7>). Программное обеспечение пользователя должно сбрасывать соответствующие флаги при обработке прерываний от периферийных модулей. Приложение Г Карта памяти МК PIC16877 Список литературы 1. Сайт в Internet www.microchip.ru. 2. Погребинский М.П. Микропроцессорные системы управления электротехническими установками. –М.: МЭИ, 2003 3. Кохц Дитер. Измерение, управление с помощью PIC-контроллеров. Киев. Наукова думка. 2007. 4. Заец Н.И. Радиолюбительские конструкции на PIC. –М.: Солон, 2003. 5. Яценков В.С. Микроконтроллеры Microchip. Практическое руководство. – 2 –е изд. исп. и допол. – М.: Горячая линия – Телеком, 2005. 6. Катцен С. PIC микроконтроллеры. Все, что необходимо вам знать. –М.: Додека, 2008. 7. Фрунзе А.В., Фрунзе М.А. Микроконтроллеры? Это же просто. М.: ООО ИД СКИМЕН, 2003. 8. Дьяков А.Ф., Овчаренко Н.И. Микропроцессорная релейная защита и автоматика электроэнергетических систем. М.: - Издательство МЭИ, 2000. 9. А.А. Копесбаева. Микропроцессорные комплексы в системах управления. Учебное пособие. АИЭС, 2010. -124 с. 10. В. М. Тарасов. Элементы и устройства автоматики. Методические указания к выполнению лабораторных работ для студентов всех форм обучения специальности 5В070200 - Автоматизация и управление. - Алматы: АУЭС, 2011.
Содержание
Св. план 2011 г., поз.
Виталий Михайлович Тарасов
Редактор ________________ Подписано в печать ____________ Формат 60х84 1/16 Тираж _____ экз. Бумага типографская №1 Объем _____ уч. изд. л. Заказ ______ Цена тг.
Копировально-множительное бюро «Алматинский институт энергетики и связи» Требования к отчету. Отчет о лабораторной работе должен содержать титульный лист, задание, блок схему, текст программы, заполненную таблицу результатов и результаты работы программы в виде копий окон Watch, подобных приведенным в методических указаниях, контрольные вопросы. Лабораторная работа должна быть защищена студентом. Оборудование и программное обеспечение для проведения лабораторных работ: Windows 98 или выше, среда MPLAB, комплект УМК-7. Лабораторная работа №1. Байтовые и битовые команды. Логика Цель работы: изучение инструкций BSF, BCF, ADDWF, ANDWF, IORWF, XORWF, SUBWF. Выполнение сложения, вычитания, применение логических функций. Регистры, применяемые в программе, могут находиться в разных банках. Номер банка, с которым работает программа, определяется регистром специального назначения (РСН) Status, см. приложение А. Кроме того этот регистр контролирует результат выполнении операций, фиксируя переполнение и обнуление регистров. На основе этого контроля создается изменение порядка выполнения алгоритма, т.е. его ветвление. Изучите формат и назначение инструкций BSF, BCF, ADDWF, SUBWF, ANDWF, IORWF, XORWF по приложению Б. Операции сложения и вычитания выполняются в двоичном коде, причем вычитание выполняется с помощью прибавления к уменьшаемому вычитаемого, представленного в дополнительном коде. Пример. Выполняем приведенные действия, используя при вычитании числа, сложение в дополнительном коде. 240 11110000 240 11110000 + 2 ® + 00000100 - 128 ® + 01111111 - инверсия 128 242 11110100 112 101101111 - перенос в бит Carry 01110000 - результат. Как видно при вычитании было переполнение регистра, поэтому в регистре Status бит С=1. Был также перенос из 3 разряда единицы в 4-й разряд, т.е. из младшего в старший полубайт, поэтому бит DC=1. В таблице 1.1 представлены логические функции, их таблицы истинности, условные обозначения и интерпретация на электрической схеме. Все логические операции выполняются поразрядно. Логическая функция ‘ИЛИ’ (‘OR’) может применяться для включения оборудования любой из двух кнопок, расположенными в разных местах. Логическая функция ‘И’ (‘AND’) применяется в том случае, если оборудование должно включаться, при срабатывании (включении) двух контактов одновременно. Например, освещение в помещении автоматически включается при низкой освещенности и наличия в нем людей. Логическая функция ‘Исключительно ИЛИ’ (‘XOR’) применяется, например, для управления освещением длинного тоннеля. С любого конца тоннеля можно включить или выключить освещение. Изучите программу 1, которая выполняет различные действия с двумя константами и выводит результаты работы в регистр REZ. В программе инструкция ORG h’00’ – это указатель для ассемблера, что код, следующий за этим выражением, будет записан начиная с нулевого адреса электрически программируемого постоянного запоминающего устройства (ЭППЗУ). Таблица 1.1 –Логические функции Y=f(X1,X2)
Программа 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; переходим в первый банк. CLRF TRISC; настроить биты PORTC на выход. BCF STATUS, 5; возвращаемся в нулевой банк. Рабочая часть программы. CLRF REZ; записать в регистр REZ нули. CLRF R2; очистить регистр R2. MOVLW D'240'; запись константы в аккумулятор W. MOVWF R1; запись содержимого W в регистр R1. SUBWF R2, W; вычитание W=R2-W=R2-R1=0-240. MOVLW D'130'; запись константы в аккумулятор W. MOVWF R2; запись содержимого W в регистр R2. MOVLW D'5'; запись константы в W. MOVWF R3; запись содержимого W в регистр R3. MOVWF REZ; загрузить содержимое W в регистр REZ. 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. ANDWF R1, W; операция W=R1 AND W(R2), результат в W. MOVWF REZ END; конец программы. Самостоятельно продолжите программу командами для выполнения операций R2-R2, R2+R3, R1 OR R2, R1 XOR R2. Т а б л и ц а 1.2 – Варианты задания
Т а б л и ц а 1.3 - Пример записи результатов работы команд
Создайте окно наблюдения для всех применяемых в программе регистров в необходимом формате чисел. Результаты работы всех операций с числами запишите в таблицу 1.3. В отчете приведите ручной расчет операций сложения и вычитания и их влияние на Status. Контрольные вопросы 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. На какие части делится программа? 13. В каком банке находятся регистры R1, R2 и REZ. 14. Какой результат мы увидим при сложении 230+60 в МК? 15. Какой результат мы увидим при вычитании 130-135 в МК? 16. Назначение РСН TRISC и его местонахождение.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-28; просмотров: 208; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.111.85 (0.248 с.) |