- •Глава 1 позиционные системы счисления
- •Глава 2. Формат представления базовых данных
- •2. А положительное, b отрицательное и по абсолютной величине больше, чем а.
- •3. А положительное, b отрицательное и по абсолютной величине меньше, чем а.
- •4. А и в отрицательные.
- •Глава 2. Логические основы piCmicro
- •Элемент не
- •Элемент и
- •Элемент Исключающее или
- •Элемент или
- •Логические элементы в интегральном исполнении
- •Глава 3. Комбинационные устройства
- •Дешифраторы
- •Шифраторы
- •Мультиплексоры
- •Преобразователи кодов.
- •Сумматоры
- •Глава 4. Последовательностные устройства
- •Параллельные регистры
- •Последовательные (сдвиговые) регистры
- •Блок обработки информации алу/рабочий регистр
- •Счетчики импульсов
- •Глава 5. Запоминающие устройства Иерархия запоминающих устройств эвм
- •Иерархическая структура памяти
- •Структурная схема зу
- •Типы оперативных запоминающих устройств
- •Основные параметры запоминающих устройств
- •Микросхемы озу
- •Постоянные запоминающие устройства (пзу)
- •Флэш-память
- •Глава 6. Обработка хранимой программы
- •Режимы адресации
- •Устройство управления
- •Микроконтроллерная система
- •Глава 5. Архитектура микроконтроллера семейства p1c.
- •Регистр слова состояния status
- •Память данных
- •Параллельные порты ввода/вывода
- •Регистр таймера/счетчика tmr0
- •Eeprom память данных eedata, eeadr
- •Специальные регистры w, intcon, option
- •Глава 6. Требования языка ассемблер
- •Операнд
- •Комментарии в программах на ассемблере
- •Метка/Имя
- •Формат кодирования
- •Глава 7. Набор команд pic контроллера
- •Сложение
- •Очистка
- •Команды инкрементирования и декрементирования
- •Бит ориентированные команды
- •Вычитание
- •Глава 8. Логика и организация программ
- •Последовательное выполнение команд
- •Конструкция выбор пути
- •Команды передачи управления. Команда «нет операции»
- •Команда безусловного перехода
- •Команды условного перехода
- •Конструкция цикл
- •Косвенная адресация памяти данных
- •Глава 9. Модульное программирование
- •Временная задержка малой длительности.
- •Метод вложенных циклов
- •Временная задержка длительностью 1с.
- •10. Организация связи с оператором
Регистр слова состояния status
В регистре STATUS находятся биты стpаничной адpесации, а также биты-флаги пеpеноса, десятичного пеpеноса и нуля. Флаги – это определенные разряды регистра, которые указывают на результат выполнения операции.
Флаг переноса С (Carry-перенос) показывает, было ли переполнение предыдущей операции сложения. При выполнении операции вычитания флаг С указывает на знак результата операции:
если результат операции положительный (А─В>0 т.е. А>В), то флаг С =1,
если результат операции отрицательный (А─В<0 т.е. А<В), то флаг С =0.
Кроме того, при выполнении команд сдвига, флаг C загружается в старший или младший бит двигаемого регистра (в зависимости от направления сдвига).
Флаг десятичного переноса DC (DigitCarry) показывает, было ли переполнение младшего полубайта. Информация о наличии/отсутствии переноса из младшего полубайта полезна при работе с данными в двоично-десятичномкоде.
Рис. 5.6.Регистр слово состояния STATUS
Флаг нулевого результата Z (Zero-ноль) довольно часто используется на практике.
При выполнении операции вычитания флаг Z указывает на нулевой результат операции: А─В=0, т.е. А=В – флаг Z=1.
Флаг включения питания ─PD (PowerDown) сбрасывается при выполнении команды sleep, которая используется выключения тактового генератора и перевода в режим пониженного энергопотребления (<1 мкА).
Флаги переполнения сторожевого таймера –ТО (TimeOut>) сбрасывается при наступлении тайм-аута сторожевого таймера.
Бит RP0 (STATUS<5>) служит для изменения состояния процессора.
Память данных
На Рис.5.7. приведена упрощенная модель памяти микроконтроллера РIС16F84. Память данных можно представить в виде картотечного шкафа, который имеет два отделения (банка). Внутри каждого отделения (банка) имеется ряд папок (регистров), имеющих по 8 бит данных.
В нашей картотеке присутствуют регистры двух типов. Некоторые из них имеют названия и выполняют специальные, заранее заданные функции. Такие регистры называются регистрами специального назначения SFR (Special Function Registers). Они предназначены для управления и отслеживания состояния микроконтроллера и его отдельных узлов. В частности, регистр с адресом Н’03’ является регистром STATUS, а с адресом Н’06’ представляет собой регистр PORTB параллельного порта В, связанного с выводами микроконтроллера RB0-RB7.
Рис. 5.7. Память данных микроконтроллера РIС16F84
Во всех микроконтроллерах требуется иметь возможность управлять состоянием отдельных битов регистра как для задания отдельных опций в SFR, так и для управления ножками портов ввода/вывода. В микроконтроллерах PIC для этих целей используются следующие команды:
BCF
Команда сброса бита регистра данных (Bit Clear File) позволяет программисту сбросить любой бит в любом регистре. Например, команда BCF Н’25’,5 сбрасывает 5 бит в регистре Н’25’. Состояние остальных битов при этом не изменяется.
BSF
Команда установки бита регистра данных (Bit Set File) позволяет программисту установить любой бит в любом регистре. Например. BSF H’31’,3 устанавливает 3 бит в регистре H’31’. Состояние остальных битов при этом не изменяется.
Остальные регистры, выделенные белым цветом, программист может называть по своему усмотрению, использовать для хранения данных общего назначения. В микроконтроллере РIС16F84 имеется 68 таких регистров общего назначения GPR (General Properties Registers), расположенных по адресам 0CH…4FH.
Из 14 бит, составляющих код команды 7 зарезервировано под адрес операнда в памяти данных. Семь битов дают 27 =128 адресов, т.е. страницу или банк, вмещающий в себя 128 регистров. Для преодоления этого ограничения нужно где-то взять дополнительные биты, чтобы расширить диапазон адресов. В микроконтроллере РIС16F84 для этой цели используется 5 бит регистра STATUS, который называется RP0 (Register Page 0). Этот бит выполняет роль 8-го разряда регистра адреса, расширяя адресное пространство до 256 регистров.
При RP0=0 происходит обращение к page 0 памяти данных (регистры 00Н – 4FН),
При RP0=1 происходит обращение к page 1 памяти данных (регистры 80Н – СFН).
На самом деле использование 1 банка в микроконтроллере РIС16F84 сведено к минимуму. Все 68 регистров GPR отображены на оба банка памяти, т.е по адресу H’n’ и H’(n+80Н)’ находится один и тот же регистр.
