Разработка алгоритма работы цифрового устройства управления. Алгоритм работы устройства управления, страница 3

Алгоритмом предусмотрены следующие аварийные ситуации:

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

-  если при печати размер листа оказался меньше расчетного А4, то печать прекращается, происходит выдача листа и печать продолжается на новом листе.


4. РАЗРАБОТКА ПРОГРАММЫ ДЛЯ МИКРОКОНТРОЛЛЕРА

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

Схема подключения датчиков и исполняющих устройств к микроконтроллеру приведена на рис.8. Описание регистров, к которым подключаются датчики и исполнительные устройства,  приведены в табл.2.

Рис.8. Подключение датчиков и управляющих устройств к микроконтроллеру

Таблица 2. Описание входных/выходных регистров

Регистр

№ ножки

Датчики/устройство

Входные сигналы

RB0

6

Датчик местоположения картриджа

RB1

7

Сигнал “Печать” от компьютера

RB2

8

Кнопка “Менять картридж”

RB3

9

Датчик наличия картриджа

RB4

10

Датчик наличия бумаги в лотке

RB5

11

Датчик наличия бумаги у печатающей головки

Выходные сигналы

RA0

17

Контакты А1, В1 шаговых двигателей

RA1

18

Контакты А2, В2 шаговых двигателей

RA2

1

Контакты А3 шагового двигателя

RA3

2

Контакты В3 шагового двигателя

RA4

3

Сигнал компьютеру “Готов к печати”

RB6

12

Сигнал “нет картриджа” (светодиод)

RB7

13

Сигнал “нет бумаги” (светодиод)

Алгоритм программы для микроконтроллера приведен в Приложении 2. В целом программу можно разбить на несколько частей:

-  инициализация и настройка всех портов и регистров;

-  главная программа;

-  набор подпрограмм.

Настройки портов ввода/вывода видны из табл.2: порт А – все регистры настроены как выходы; порт В – RB0…RB5 – настроены как входы, RB6, RB7 – как выходы.

В программе используется несколько подпрограмм:

-  подпрограмма выполнения одного шага картриджа влево (STEPL) – в порт А записываются управляющие сигналы (регистры RA3, RA1, RA0 последовательно устанавливаются в 1) для шага вперед двигателя В (двигатель перемещения картриджа);

-  подпрограмма выполнения одного шага картриджа вправо (STEPR) – в порт А записываются управляющие сигналы (регистры RA3, RA0, RA1 последовательно устанавливаются в 1) для шага назад двигателя В (двигатель перемещения картриджа);

-  подпрограмма выполнения одного шага листа вперед (STEPF) – в порт А записываются управляющие сигналы (регистры RA2, RA1, RA0 последовательно устанавливаются в 1) для шага вперед двигателя А (двигатель прокрутки листа);