- •Микропроцессорные системы в электроэнергетике
- •Алматы 2013
- •Введение
- •1 Системы счислений. Карта памяти микроконтроллера
- •1.1 Краткие теоретические сведения
- •1.2 Задания
- •1.3 Контрольные вопросы
- •2 Изучение среды mplab. Управление оборудованием
- •2.1 Краткие теоретические сведения и задания для внеаудиторной подготовки
- •"Умк-mini"
- •2.2 Исходные данные
- •2.3 Выполнение проекта на умк-7
- •4.Выполним соответствующие настройки для запуска Вашего проекта:
- •6.Запуск проекта
- •2.4 Контрольные вопросы
- •3 Сложение, вычитание. Логика
- •3.1 Теоретические сведения
- •3.2 Исходные данные и выполнение программы
- •3.4 Контрольные вопросы
- •4 Операции преобразования информации
- •4.1 Теоретические сведения
- •4.2 Исходные данные и задание
- •4.3 Контрольные вопросы
- •5 Анализ информации посредством регистра состояния
- •5.1 Теоретические сведения
- •5.2 Исходные данные
- •5.3 Порядок выполнения работы
- •5.4 Контрольные вопросы
- •6 Маскирование
- •6.1 Краткие теоретические сведения
- •6.2 Исходные данные и задание
- •6.3 Контрольные вопросы
- •7 Суммирование массива информации
- •7.1 Теоретические сведения
- •7.2 Исходные данные
- •7.3 Выполнение задания
- •7.4 Контрольные вопросы
- •8 Автоматизация окрасочной камеры. Организация подпрограмм
- •8.1 Теоретические сведения
- •8.2 Задание на проектирование.
- •8.3 Выполнение задания
- •8.4 Контрольные вопросы
- •9 Программированиеклавиатуры
- •9.1 Теоретические сведения
- •9.2 Задание на проектирование
- •Фрагмент 9.1. Программирование клавиатуры.
- •9.3 Задание на выполнение
- •9.4 Контрольные вопросы
- •10 Автоматизация упаковки
- •10.1 Задание на автоматизацию упаковочной машины
- •10.2 Исходные данные
- •10.3 Выполнение задания
- •10.4 Контрольные вопросы
- •11 Программирование обработки аварийной ситуации
- •11.1 Теоретические сведения
- •11.2 Задание на проектирование и выполнение программы
- •11.3 Контрольные вопросы
- •12 Программирование таймерных функций
- •12.1 Задание на проектирование
- •12.2 Выполнение работы
- •12.3 Контрольные вопросы
- •Приложение а Системы счислений
- •Приложение б Карта памяти мк pic16877
- •Приложение в
- •Регистр Status
- •Приложение д Описание инструкций мк pic
- •Приложение е Модуль таймера tmr1
- •Список литературы
- •Содержание
- •0 50013, Алматы, Байтурсынова, 126
4.3 Контрольные вопросы
Расскажите, какую реальную задачу решает ваша программа.
Какие адреса используются для РОН?
Приведите инструкцию установки бита. Когда она применяется?
Приведите инструкцию сброса бита. Когда она применяется?
Как происходит сдвиг вправо (влево).
Как регистр Status участвует в выполнении операций сдвига?
Расскажите о применении операции сдвига.
Расскажите об операции «инверсия» и ее применении.
Расскажите об операции «обмен полубайтами» и ее применении.
Что должно быть записано в бите Carryдля правильного выполнения умножения или деления.
Как настроить PORTCна выход?
Как определить с каким банком работает программа?
Почему после деления 243 на 4 и умножения частного на 4 не было получено исходное число?
5 Анализ информации посредством регистра состояния
Цель работы: использование флагов регистра Status для анализа информации и применение результата для ветвления алгоритма. Изучение инструкций условных переходовBTFSCиBTFSS, применение их для ветвления алгоритма.
5.1 Теоретические сведения
Инструкции условных переходов BTFSCиBTFSSпроверяют состояние заданного бита в любом регистре и в зависимости от результата, пропускают или не пропускают следующую инструкцию программы. ИнструкцияBTFSCпропускает следующую инструкцию, если заданный бит сброшен. ИнструкцияBTFSSпропускает следующую инструкцию, если заданный бит установлен. На основе этого создается передача управления в другое место программы и организация циклов, см. таблицу 5.1[3,5].
Т а б л и ц а 5.1
Использование бита CARRY (C) | |
BTFSS STATUS, C GOTO METKA MOVWF R2 |
Если в бите Carry установлена единица, то пропускается следующая инструкция программы GOTO МЕТКА и сразу выполняется инструкция MOVWF R2 |
Если бит Carry сброшен, то выполняется следующая инструкция программы GOTO METKA | |
Использование бита ZERO (Z) | |
BTFSS STATUS, Z MOVF R2, W MOVWF PORTC |
Если в бите Z установлена единица, то пропускается следующая инструкция программы MOVF R2 и сразу выполняется инструкция MOVWF PORTC |
Если бит Z сброшен, то выполняется следующая инструкция программы MOVF R2, W и затем MOVWF PORTC |
В реальных программах вместо указанных инструкций пишутся инструкции, соответствующих разработанному алгоритму.
В ассемблере отсутствуют инструкции сравнения чисел, поэтому, чтобы определить, какое из чисел больше (меньше), применяют такой алгоритм:
а) Выполняют вычитание чисел. При этом в зависимости от результата, устанавливаются флаги C иZрегистраStatus, см. таблицу 5.2.
б) Далее применяют инструкции условных переходов.
В таблице 5.2 показаны значения флагов регистра Statusпри вычитании по командеSUBWFUMENSH,W, т.е.W=UMENSH-W.
Т а б л и ц а 5.2 – Регистрация событий в регистре Status
Соотношения значений в W и РОН UMENSH |
Значения флагов регистра status после выполнения вычитания | |
Флаг Z |
Флаг C | |
UMENSH-W>0 |
0 -Нулевого результата не было |
1 - был перенос из 7 бита W в бит С (при сложении в дополнительном коде) |
UMENSH-W<0 |
0 - Нулевого результата не было |
0 - не было переноса из 7 разряда W в бит С (при сложении в дополнительном коде) |
UMENSH-W=0 |
1 - был нулевой результат операции |
1- был перенос из 7 разряда W в бит С (при сложении в дополнительном коде) |
П р и м е ч а н и е – В регистр UMENSH помещается уменьшаемое число |