3. Программное обеспечение микроконтроллера.


3.1. Логическая структура устройства


После включения устройства начинает работать программа начальных установок . Производится сброс всех регистров и установка начальных параметров работы программы. После чего выполнение программы останавливается и происходит ожидание ввода данных включения/выключения каналов через последовательный порт СОМ. По окончании ввода программа вновь останавливается до нажатия кнопки ПУСК. После ее нажатия сначала запускается счетчик времени а затем основной цикл вывода времени на индикатор. Программа постоянно находится в этом цикле, а отсчет времени и проверка включения/выключения каналов производится по прерыванию таймера С/Т0.

Таким образом в работу системы можно разделить на три основных части:

Включение, установка начальных параметров и ожидание ввода данных.

Ввод данных, пуск и переход к основному циклу программы.

Обработка прерывания таймера.


Первые две части работы системы можно описать следующим алгоритмом (на схеме изображена логика работы программы, далее приводится подробное описание алгоритма ее работы)


Алгоритм работы программы


[Инициализация порта и ввод данных]

M1: While (RI=0) do { };

A := SBUF;

RI :=0;

C := A.3;

R0 := 20H+A*4;

For ( i = 0 to 4) do {

While (RI=0) do { };

A := SBUF;

RI :=0;

Write (@R0, A);

R0 := R0+1; }

If (C=0) then goto M1;

While (P3.4 = 1) do { };

[Инициализация и пуск таймера]

TMOD := 1

TF0 := 0

TL0 := low(15000);

TH0 := High(15000);

ET0 := 1

TR0:= 1

[Индикация времени]

M2: A := R4;

Gosub INDRAS [блок преобразования числа в код по одной цифре

[ Для вывода на индикатор (будет описан далее)]

P1/4 := 0 ; P1.5 :=0

P1 := A

Pause 5(ms)

P1 := B

P1/5 :=1

Pause 5(ms)

A := R3;

Gosub INDRAS

P1/4 := 1 ; P1.5 :=0

P1 := A

Pause 5(ms)

P1 := B

P1/5 :=1

Pause 5(ms)

Goto M2


В программе приняты следующие соглашения – регистры R1 – R4 хранят информацию об миллисекундах, секундах, минутах и часах соответственно.

Бит С служит показателем конца ввода данных с ком-порта (1 – последний канал, ноль – не последний канал). Сохранение времени включения и выключения для нулевого канала начинается с ячейки с адресом 20Н; сначала записываются часы, затем минуты включения, затем часы и минуты выключения. Таким образом для каждого канала в памяти отводится 4 байта, общее количество оперативной памяти используемое программой 32 байта. Структура использования памяти описана в следующей таблице:


Адрес Содержимое Адрес Содержимое
20h Таймер 1 часы включения 21h Таймер 1 минуты включения
22h Таймер 1 часы выключения 23h Таймер 1 минуты выключения
24h Таймер 2 часы включения 25h Таймер 2 минуты включения
26h Таймер 2 часы выключения 27h Таймер 2 минуты выключения
28h Таймер 3 часы включения 29h Таймер 3 минуты включения
2Аh Таймер 3 часы выключения 2Bh Таймер 3 минуты выключения
2Ch Таймер 4 часы включения 2Dh Таймер 4 минуты включения
2Eh Таймер 4 часы выключения 2Fh Таймер 4 минуты выключения
30h Таймер 5 часы включения 31h Таймер 5 минуты включения
32h Таймер 5 часы выключения 33h Таймер 5 минуты выключения
34h Таймер 6 часы включения 35h Таймер 6 минуты включения
36h Таймер 6 часы выключения 37h Таймер 6 минуты выключения
38h Таймер 7 часы включения 39h Таймер 7 минуты включения
3Ah Таймер 7 часы выключения 3Bh Таймер 7 минуты выключения
3Ch Таймер 8 часы включения 3Dh Таймер 8 минуты включения
3Eh Таймер 8 часы выключения 3Fh Таймер 8 минуты выключения

При чтении из CОМ порта принята следующая расшифровка принимаемых байтов. Один блок составляет 5 байтов: первый управляющий далее идут 4 байта с данными, в следующей последовательности: Часы включения канала – минуты включения канала – часы выключения канала – минуты выключения канала. Передача данных ведется в двоичной форме. Управляющий байт использует 4 младших бита, первые три несут номер канала в двоичном коде, четвертый показывает последний канал идет или нет (1 – последний, 0 – не последний). Если канал последний, то после приема 4 следующих байтов данных связь с портом прекратится, если нет, то продолжится с приема следующего управляющего байта.


Алгоритм обработки прерывания будет выглядеть следующим образом.


TF0 := 0;

R1 := R1+1;

If (R1


Информация о работе «Регистратор дискретных сигналов»
Раздел: Информатика, программирование
Количество знаков с пробелами: 17713
Количество таблиц: 3
Количество изображений: 0

Похожие работы

Скачать
163416
8
26

... задаются в поле задания уставок. 6. Безопасность и экологичность проекта В основной части дипломного проекта рассмотрены вопросы, связанные с модернизацией релейной защиты РУ-27,5 кВ тяговой подстанции Заудинск ВСЖД. Наличие на подстанции высоковольтного оборудования и значительных по величине токов определяет выбор темы, и содержание раздела "Безопасность и экологичность проекта", связанных ...

Скачать
20627
3
1

... 1%; 16 бит Гальваническая развязка Между входами и внутренней схемой (между каналами нет) Потребляемый модулем ток от источника питания, мА 500 1060   3. Основные решения по автоматизации. В процессе нитрования пиридона показателем эффективности является концентрация азотной кислоты в реакторе, и целью управления является её поддержание на заданном уровне (Скк = Сккзд). Расход пиридона ...

Скачать
82531
7
17

... автоматическое управление электроприводом и электрическими аппаратами серийного электровоза ЭП1 в режимах тяги и торможения. При этом аппаратура МСУД обеспечивает: разгон электровоза до заданной скорости с заданной и автоматически поддерживаемой величиной тока якоря тяговых электродвигателей и последующее автоматическое поддержание заданной скорости, рекуперативное торможение до заданной скорости ...

Скачать
75453
9
4

... нельзя проводить отбор отдельных компонентов ИС по допуска, как это имело место в схемах дискретных электорадиоэлементах в ЭВМ третьего поколения. Разработка генератора на цифровых микросхемах. Для проверки и настройки цифровых интегральных микросхемах транзисторно-транзисторной логики (ТТЛ) требуются генераторы прямоугольных импульсов. Ниже описывается генератор импульсов, выполненный всего на ...

0 комментариев


Наверх