Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программируемые контроллеры для систем управления ч2. Г.И.Загарий, В.С. Коновалов В.С., Н.О. Ковзель, В.И. Поддубняк, А.И. / Программируемые контроллеры для систем управления ч2. Г.И.Загарий, В.С. Коновалов В.С., Н.О. Ковзель, В.И. Поддубняк, А.И. .doc
Скачиваний:
318
Добавлен:
08.08.2013
Размер:
15.9 Mб
Скачать

7.4.5 Строка состояния mplab

Строка состояния описывает информацию, представленную в табл. 7.4.1.

Таблица 7.4.1

Строка состояния MPLAB

Название окна

Исходное состояние

Описание

Следствие двойного нажатия

Положение маркера (строка, колонка) в активном окне

Ln 1 Col 1

Отображает номер строки и столбца положения маркера в активном окне

Открывает диалоговое окно "Goto"

Количество строк в файле

66

Отображают число строк в текущем текстовом файле

Нет воздействия

Изменение файла

#

Отображен символ, # если файл был изменен.

Нет воздействия

Запись – только чтение

WR

Отображает возможность записи – только чтения.

WR = файл доступен для редактирования

RO = файл доступен только для чтения

Переключение между записью и только чтением

Длина текстовой строки

NoWrap

Отображает длину текстовой строки.

Пример 1: NoWrap– не задана

Пример 2: WR 72 – задана длина 72 символа

Переключение между не заданной длиной строки и заданной длиной в 72 символа

Вставка/замена

INS

Переключение вставка/замена символа.

INS= вставка символа

OVR= замена символа

Переключение вставка/замена символа.

INS= вставка символа

OVR= замена символа

Текущий Процессор

PIC16F84

Отображает выбранный процессор

Нет воздействия

Текущий счетчик команд

pc:0x5f

Отображает текущее состояние счетчика команд

Открывает диалог изменения счетчика команд

Таблица 7.4.1 (продолжение)

Текущее значение регистра w

W:0x00

Отображает текущее значение регистра w

Нет воздействия

Биты состояния

ov Z dc c

ПРОПИСНЫЕ СИМВОЛЫ = (1)

строчные символы = (0)

Нет воздействия

Разрешение/запрет прерывания.

BkOn

Отображает текущее состояние разрешения прерывания

Переключает, разрешение прерывания

Текущее операционное окружение

Sim

Отображает текущее операционное окружение

EO= редакторMPLAB;

Sim = симулятор – MPLAB-SIM;

Si= симулятор –SIMICE;

ICE= эмулятор –MPLAB-ICE

Em = эмулятор – PICMASTER

Вызывает диалоговое окно операционного окружения

Частота процессора

4MHz

Отображается частота установленного процессора

Вызывает диалоговое окно установки частоты процессора

Текущая инструментальная строка

Edit

Отображает название текущей инструментальной строки

Нет воздействия

7.5 Пример разработки программы с использованием mplab

7.5.1 Постановка задачи и разработка алгоритма ее решения

Возьмем для примера следующую, достаточно часто встречающуюся на практике задачу, в которой необходимо измерить временной интервал между двумя импульсами в сигнале, поступающем от датчика, и выдать полученный результат в виде параллельного двоичного кода в порт ввода/вывода. Период следования входных импульсов Тидолжен удовлетворять следующим ограничениям:

Tиmin >= 10tц , Tиmax <= 500 tц , (7.1)

где tц– длительность цикла выполнения команды микроконтроллера.

Ограничения, накладываемые на Ти, диктуются: минимальная величинаTиmin– количеством команд, которые необходимо выполнить за время Ти, а максимальнаяTиmax– объемом счетчика таймера.

Для решения поставленной задачи выберем микроконтроллер PIC 16F84 с многократно электрически перепрограммируемыми пользователем ППЗУ программ и данных-констант, а также имеющим возможность работы с прерываниями. Причем, в этом микроконтроллере прерывание может возникать по целому ряду причин и в том числе при переполнении таймера/счетчикаTMR0.

Основываясь на знании особенностей архитектуры и функционирования микроконтроллера РIC 16F84, можно предложить один из возможных вариантов алгоритма решения поставленной задачи. Последовательность действий микроконтроллера при этом должка быть следующей:

1. Выполнить процедуру ожидания поступления первого импульса, например, на вывод микроконтроллера RA1 (стандартная процедура «Ожидание события»).

2. После обнаружения переднего фронта первого импульса запустить внутренний таймер/счетчик TMR0.

3. Организовать процедуру ожидания поступления второго импульса на тот же вывод RA1.

4. После обнаружения переднего фронта второго импульса прочитать код в регистре таймера/счетчика TMR0.

5. Полученный из регистра таймера/счетчика параллельный двоичный код выдать в порт RВ в сопровождении стробирующего сигнала, свидетельствующего о готовности данных на выходе микроконтроллера. Стробирующий сигнал выдать на выводRA0.

Предложенные рассуждения оформим в виде блок-схемы алгоритма реализации поставленной задачи. Эта блок-схема представлена на рис. 7.13. Блоками 2 и 3 представлена реализация процедуры ожидания переднего фронта рассматриваемого импульса, от которого начинается отсчет времени. Аналогичные действия реализуются с помощью блоков 6 и 7 для ожидания переднего фронта второго импульса, при получении которого фиксируется прошедшее время (блок 8 – прочитать код изTMR0). Блок 9 описывает вывод кода времени на выходы порта В, а блок 10 предназначен для формирования сигнала, фиксирующего наличие на выходах порта В этого кода.

Рис. 7.13. Блок-схема алгоритма измерения времени между двумя импульсами