Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программирование микропроцессорных систем управления подвижного состава железных дорог. Учебное пособие по дисциплинам «Автоматизированные и микропроц.pdf
X
- •ВВЕДЕНИЕ
- •1. Платформа Arduino UNO
- •1.1 Описание аппаратной части
- •2.1 Основы языка программирования С/С++
- •2.2 Арифметические операторы
- •2.2.1 Оператор присваивания
- •2.2.2 Сложение, вычитание, умножение и деление
- •2.2.3 Вычисление остатка от деления
- •2.3 Логические операторы
- •2.6.1 Условные операторы
- •2.6.1.1 Условный оператор if
- •2.6.1.2 Условный оператор if..else
- •2.6.1.3 Оператор switch…case
- •2.6.2 Операторы реализации циклических вычислений
- •2.6.2.1 Оператор цикла for
- •2.6.2.2 Оператор цикла while
- •2.6.2.3 Оператор цикла do...while
- •2.6.3 Оператор break
- •2.6.4 Оператор continue
- •2.6.5 Оператор return
- •2.6.6 Оператор перехода goto
- •2.7 Операции над битами
- •2.8 Составные операторы
- •2.8.1 Операторы ++ (инкремент) и – – (декремент)
- •2.8.2 Операторы += , –= , *= , /= , %=
- •2.8.3 Оператор &= и |=
- •2.9 Математические функции
- •2.9.2 Вычисление модуля числа
- •2.9.3 Ограничение числа заданным диапазоном
- •2.9.4 Масштабирование переменной
- •2.9.5 Возведение числа в степень
- •2.9.6 Вычисление квадратного корня числа
- •3. Ввод-вывод сигналов
- •3.2 Вывод дискретных сигналов digitalWrite()
- •3.3 Ввод дискретных сигналов digitalRead().
- •3.4 Ввод аналоговых сигналов analogRead()
- •3.5 Вывод аналоговых сигналов analogWrite()
- •4. Практические задания
- •5. Основы алгоритмизации
- •6. Элементы математической логики
- •7.1 Макетная плата
- •7.2 Постоянный резистор
- •7.3 Переменный резистор
- •7.4 Тактовая кнопка DTS-61N
- •7.5 Светодиод видимого спектра свечения
- •7.6 Четыре компаратора LM239N
- •7.7 Шесть логических элементов НЕ SN74HC04N
- •7.8 Приоритетный шифратор 8 в 3 SN74HC148N
- •7.9 Датчик угла поворота EXW1J-C24-AC0024L
- •7.11 Полевой транзистор IRF530NPBF
- •7.12 Дроссель Д25
- •КОНТРОЛЬНЫЕ ВОПРОСЫ
- •ИСПОЛЬЗОВАННЫЕ ИСТОЧНИКИ
- •СОДЕРЖАНИЕ

Рисунок 4.1 – Электрическая принципиальная схема
Рисунок 4.2 – Диаграммы выходных сигналов
51

Рисунок 4.3 – Пример монтажной схемы
pinMode(13, OUTPUT);
// Конфигурирование канала 13 микроконтроллера
// для вывода сигнала (зелёный светодиод)
}
void loop()
{
digitalWrite(12, HIGH);
// Цифровой вывод в канал 12, установка
52

// в состояние высокого уровня
digitalWrite(13, LOW);
// Цифровой вывод в канал 13, установка
// в состояние низкого уровня
delay(100);
// Задержка 100 мс
digitalWrite(12, LOW);
// Цифровой вывод в канал 12, установка
// в состояние низкого уровня
digitalWrite(13, HIGH);
//Цифровой вывод в канал 13, установка
// в состояние высокого уровня
delay(900);
// Задержка 900 мс
}
4. Набрать программу, ввести её в память микроконтроллера
и запустить. Модифицировать программу таким образом, чтобы
период вырабатываемого сигнала T составил 0,5 с, а интервал вре-
мени t
остался неизменным.
1
5. Проанализировать второй вариант программы, реализующей такой же функционал:
#define Red 12
#define Green 13
int signalOutput=HIGH;
int timeDelay, Pause, Pulse;
void setup()
{
pinMode(Red, OUTPUT);
pinMode(Green, OUTPUT);
Pulse=100;
Pause=900;
timeDelay=Pulse;
}
void loop()
{
digitalWrite(Red, signalOutput);
digitalWrite(Green, !signalOutput);
delay(timeDelay);
signalOutput=!signalOutput;
if (timeDelay == Pulse)
// Текущее состояние – «импульс»?
53

{
timeDelay=Pause;
// Если «да», то меняем на «паузу»
}
else
{
timeDelay=Pulse;
// Если текущее состояние «пауза», то меняем на
// «импульс»
}
}
6. Отметить основные отличия данного варианта программы
от предыдущего. Начертить схему алгоритма приведённой программы. Набрать программу, ввести её в память микроконтроллера
и запустить. Модифицировать программу таким образом, чтобы
необходимо было задавать период вырабатываемого сигнала T и
длительность интервала времени t
программе.
7. Выполнить модифицированный вариант программы.
8. Оформить отчёт по лабораторной работе.
Содержание отчёта
1. Наименование работы.
2. Цель работы.
3. Принципиальная схема устройства.
4. Диаграмма выходных сигналов.
5. Тексты трёх вариантов программ, снабжённые коммента-
риями.
6. Схемы алгоритмов программ.
7. Заключение по работе, в котором должно быть отражены
отличия первого и второго вариантов программы, а также
способ реализации третьего варианта.
, а интервал t2 вычислялся в
1
Ввод цифровых сигналов. Реализация
порядково – временного связывания в задачах управления.
Цель работы
Изучение методов ввода цифровых сигналов от переключате-
лей в микропроцессорную систему управления. Исследование спо-
54

соба программного подавления «дребезга» контактов переключателей. Разработка алгоритма порядково - временного связывания
событий и его программная реализация.
Краткие теоретические сведения
Важной функцией каналов цифрового ввода/вывода информации является реализация функции ввода цифровых сигналов в
микропроцессорную систему управления, что позволяет подключать разнообразные переключатели, кнопки для управления
устройством в реальном времени. Рассмотрим схему подключения
тактовой кнопки SA1 с нормально разомкнутыми контактами к
цифровому входу DI4 микроконтроллера (рисунок 4.4, а).
Для подавляющего большинства цифровых микросхем недопустимо использование «висящих в воздухе», «свободных» входов,
то есть таких входов, которые не подключены к источнику сигнала.
Причиной этого является то, что на таких «свободных» входах может индуцироваться потенциал, отличный от 0, от работающих рядом приборов, вследствие чего возможны несанкционированные
переключения в схеме и нарушения в логике работы устройства.
Для предотвращения подобных нарушений используют подключение незадействованных входов к общему проводу или источнику питания (в зависимости от логики работы схемы). Назначением резистора R1 в схеме (рисунок 4.4, а) является обеспечение
подключения используемого цифрового входа DI4 к точке с нулевым потенциалом при разомкнутых контактах кнопки SA1 («значение по умолчанию») Очевидно, что в при этом на входе DI4 содержится сигнал, соответствующий напряжению низкого уровня (уровень логического нуля, LOW). При нажатии на кнопку и, соответственно, замыкании контактов кнопки SA1, на вход DI4 поступает
напряжение источника питания (высокого уровня, логической единицы, HIGH). В данной схеме резистор R1 называется «стягивающим» (pull-down). Диаграмма, иллюстрирующая работу схемы, приведена на рисунке 4.4, б.
Возможен иной вариант включения данного резистора, позволяющий в качестве «значения по умолчанию» на цифровом входе
получить значение, равное уровню логической единицы. Соответствующая схема включения приведена на рисунке 4.5 (а). Диаграмма, иллюстрирующая работу схемы, приведена на рисунке 4.5
(б).
55

Рисунок 4.4 – Принципиальная схема подключения
тактовой кнопки со «стягивающим» (pull-down)
резистором (а) и диаграмма, иллюстрирующая
работу схемы (б)
Рисунок 4.5 – Принципиальная схема подключения
тактовой кнопки с «подтягивающим» (pull-up) резистором (а) и
диаграмма, иллюстрирующая работу схемы (б)
56

В механических переключателях при включении и выключении зачастую возникает явление «дребезга» контактов, которое
проявляется в многократном последовательном замыкании и размыкании контактов, обусловленном упругими свойствами материалов, из которых изготовлены контактные элементы, их держатели и прочие элементы конструкции. На рисунке 4.6 приведена ос-
циллограмма переходного процесса, возникающего при замыкании кнопки, на которой зафиксировано явление «дребезга». Данное явление является нежелательным. Например, если в какойлибо системе реализуется счётчик нажатий кнопки (с увеличением
содержимого счётчика на 1 при каждом нажатии на кнопку), то изза явления дребезга каждое нажатие на кнопку будет вызывать
увеличение счётчика на иное, неизвестное заранее значение (так
как количество циклов разрыва контактов из-за их «дребезга» заранее неизвестно).
Рисунок 4.6 – Осциллограмма переходного процесса при
замыкании контактов
Поэтому, ввиду невозможности исключения рассматриваемого явления как такового, в цифровых, в том числе и микропроцессорных системах управления, реализуют различные способы
его подавления, которые подразделяются на аппаратные (установка фильтров) и программные, то есть алгоритмические. В данной работе использован один из возможных вариантов программного способа обработки сигнала, подавляющего «дребезг» контактов при их замыкании. Рассмотрим суть реализованного метода
применительно к одному из каналов:
57

1. В некоторый момент времени t производится опрос состоя-
ния канала цифрового ввода DI(t), связанного с переключате-
лем SA.
2. В случае, если по сравнению с моментом времени t − ∆t
зафик-
1
сировано изменение состояния канала ввода:
− ∆t
DI(t) ≠ DI(t
граммы на величину ∆t
), осуществляется задержка выполнения про-
1
= 5 мс (эмпирически выбранное время
2
протекания переходного процесса в механической системе
контактной пары).
3. Повторный опрос состояния канала цифрового ввода
+ ∆t
DI(t
).
2
4. В случае, если изменение состояния канала ввода подтвер-
ждено повторной проверкой: DI(t
) ≠ DI(t
2
− ∆t
), фиксиру-
1
+ ∆t
ется изменение состояния переключателя SA.
5. При невыполнении условия, сформулированного в п. 2, ника-
ких изменений не происходит.
В работе исследуется схема, приведённая на рисунке 4.7. Предполагается разработка алгоритма и программы переключения светодиодов индикаторов HL1, HL3 и HL5 при помощи переключателей SA1 – SA3.
Рисунок 4.7 – Принципиальная схема установки исследования спо-
соба подавления «дребезга» контактов и алгоритмов
порядково-временного связывания
58

SA1
SA2
SA3
HL1
HL3
HL5
forward
+ – – – –
+
zero
– + – – +
–
revers
– – + + –
–
В таблице 4.1 приведена взаимосвязь между состояниями светодиодов и переключателей. Допустимая последовательность переключений задана в виде графа переходов, изображённого на рисунке 4.8.
Таблица 4.1 Связь состояний индикатора и переключателей
Рисунок 4.8 – Граф допустимой последовательности
переключений
Порядок выполнения работы
1. Разработать и начертить схему алгоритма, реализующего
рассмотренный способ подавления «дребезга» контактов переключателя.
2. Разработать и начертить схему алгоритма, реализующего
граф допустимых переходов между состояниями индикаторов.
3. На макетной плате собрать схему устройства, изображённую на рисунке 4.7. На рисунке 4.9 приведён пример монтажной
схемы.
4. Изучить текст программы:
/*
Управление ТРЕМЯ программными переключателями при
помощи ТРЁХ кнопок.
Срабатывание происходит при нажатии на кнопку, и
вызывает зажигание соответствующей лампочки
*/
#define FIRST_SEGMENT_PIN 9 /
/ Установка первого вывода индикатора
#define SEGMENT_COUNT 5
// Установка числа разрядов в индикаторе
byte forward=B00001;
59

// Задание последовательности управления
// сегментами индикатора
byte revers=B10000;
// Задание последовательности управления
// сегментами индикатора
byte zero=B00100;
// Задание последовательности управления
// сегментами индикатора
Рисунок 4.9 – Монтажная схема
byte pin_forward=2;
byte pin_zero=3;
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
