Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
26.05.2014
Размер:
30.11 Кб
Скачать

Протокол работы программы ПК3-16

1Этап конфигурирования – выполняется однократно при включении устройства. При этом используются следующие переменные:

1.1Запрещаются прерывания.

1.2Задается режим работы порта. При нажатии на КН1 или КН2 меняется состояние PAR. Все время текущее значение переменной PAR отображается на индикаторах. При нажатии на КН3 – конфигурирование режима работы завершается, переход к следующему шагу.

1.3Аналогичным образом задается значение переменной DIR.

1.4Задается скорость работы порта. При нажатии на КН1 SPEED увеличивается, при нажатии на КН2 – уменьшается. Все время текущее значение переменной SPEED отображается на индикаторах. При нажатии на КН3 – конфигурирование скорости завершается, переход к следующему шагу.

1.5Запись параметров. Во внешний таймер-счетчик записывается SPEED и другие команды, задающие необходимый режим работы. Выставляются параметры работы последовательного порта.

1.6Разрешаются прерывания.

2Основной этап работы – начинает выполняться после завершения этапа конфигурирования и его выполнение бесконечно циклически повторяется.

2.1На индикаторах отображается содержимое ячеек буфера, начиная с ST и предыдущие/последующие в зависимости от значения DIR.

2.2Если была нажата КН1 – ST увеличивается на один адрес.

2.3Если была нажата КН2 – ST уменьшается на один адрес.

2.4Если была нажата КН3 – ST выставляется на начало BUFF.

3Процедура приема по интерфейсу RS-232 – вешается на прерывание последовательного порта и выполняется каждый раз при возникновении этого прерывания.

3.1Принятое число анализируется, вычисляется его двухбайтовое представление для семисегментных индикаторов, и это представление записывается в буфер по адресу CUR.

3.2Если CUR уже указывает на последнюю ячейку буфера, то в CUR записать адрес, хранящийся в BUFF; в противном случае – увеличить CUR на один адрес. Таким образом организуется кольцевой буфер.

Примечание

В буфере будут храниться не сами принятые их байты, а их двухбайтовые представления, которые потом посылаются в виде команд на индикаторы. Сделано это по двум причинам:

1.Нам необходимо как-то сохранять информацию о наличие бита четности в принятой посылке. Просто в байте для этого нет места, зато в графическом представлении эта информация уже содержится.

2.Прием числа происходит только один раз, отображается же оно многократно. Соответственно, с точки зрения экономии процессорного времени, целесообразно процедуру преобразования в графический формат проводить именно на этапе приема.

 

Используемые переменные

SPEED

– число, задающее частоту срабатывания внешнего таймера-счетчика, а

PAR

следовательно и скорость работы порта (A)

– режим работы последовательного порта (прием 8 бит или 8 бит плюс бит

ST

четности), имеет два состояния (R3)

– адрес ячейки, с которой начинается отображение содержимого буфера (R4)

DIR

– направление отображения содержимого буфера (последующие ST адреса или

BUFF

предыдущие ST адреса), имеет два состояния (R2)

- указатель на начала буфера, где хранится вся принятая информация

CUR

- текущий номер ячейки, куда должно быть записано принятое число (R1)

Соседние файлы в папке Курсовой по ПК3. Вариант 16