Курсовой по ПК3. Вариант 16 / protokol
.pdfПротокол работы программы ПК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) |