Алгоритмом предусмотрены следующие аварийные ситуации:
- если во время печати принтером документа отключилось питание, то при следующем включении принтера происходит выдача не допечатанного листа (блок 2) и установка держателя картриджа в начальное положение (3, 9);
- если при печати размер листа оказался меньше расчетного А4, то печать прекращается, происходит выдача листа и печать продолжается на новом листе.
4. РАЗРАБОТКА ПРОГРАММЫ ДЛЯ МИКРОКОНТРОЛЛЕРА
Рис.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) для шага вперед двигателя А (двигатель прокрутки листа);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.