микроконтроллера.
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 |
Похожие работы
Интересная статья: Основы написания курсовой работы