====== Упражнения ======
Целью является создание программы, которое выполняет описанное задание.
===== Упражнение для разминки =====
* • При нажатие на кнопку S1 загорается один LED, при нажатии на S2 два LED-а, при нажатии на S3 три LED-а.
===== Для начинающих =====
- Имитация работы светофора на пешеходном переходе. Если ни одна кнопка не нажата, то для автомобилей горит зеленый LED. После нажатия на любую кнопку, начинает мигать зеленый свет в течении трех секунд, затем на три секунды загорается желтый и на десять секунд красный и в конце начинает снова гореть зеленый LED.
- Считает нажатие кнопок. Нажатие считается законченым только тогда, когда кнопка освобождается. Результат выводится в двоичном коде на LED-ах. Максимальный результат на трех LED-ах 23-1. Зеленый LED обозначает 1. бит, желтый 2. бита, красный 3. бита.
- Нажимая на кнопку S1, загорается разом LED1 и LED3, нажимая на кнопку S2, загорается LED2, нажимая на кнопку S3, потухают все LED-ы. Операции нужно осуществлять в соответствии с изменением значений регистров (без библиотеки Домашней Лаборатории)
- Считает нажатие кнопок. Результат появляется в виде мигающего LED-а. После каждого нажатия кнопки число миганий возрастает на одно. Выбрать можно любую кнопку. Для мигания LED-а использовать нижнию функцию, параметром которой является число миганий.
- Нажимая на кнопку S1, мигает красный LED в коде Морзе „SOS“, нажимая на кнопку S2, мигает желтый LED „CQD“ и нажимая S3, мигает зеленый LED „OK“.
===== Для успевающих =====
- Каждой из трех кнопок соответствует один LED, которая загорается при нажатой кнопке. Для зажигания или гашения нужно использовать регистры и это можно сделать только с одним присвоением (намёк: использовать сдвиг разряда).
- При нажатие на кнопки в порядке S3 – S2 - S1, загорается зеленый LED. При любых других комбинациях загорается красный LED. При нажатие на каждую кнопку мигает желтый LED, что потверждает нажатие на кнопку.
- Каждому LED-у соответствует одна кнопка. Контроллер мигает LED-ом в случайном порядке и пользователь должен повторить ту же последовательность, нажимая на кнопку. Последовательность миганий с каждым разом более длинне, добавляя к предыдущей последовательности новый случайный LED. После каждого набора пользователем контролируется был ли набор правильным. Разница между наборами 2 секунды. При неправильном наборе разом мигают все LED-ы три раза. (Количество правильных наборов игрока можно вывести на LCD экран.)
- Программа измеряет время реакции. При загарании случайного LED-а пользователь должен как можно быстрее нажать кнопку под LED-ом. Время, когда загорается LED, случайное, но не менее 100 мс. Время реакции показывается в миллисекундах на LCD экране. Значение кнопок нельзя cчитать функцией фильтрации дребезга контактов, т.к. это создает лишнию задержку.
===== Вопросы =====
- В чем отличие знаков “=“ и “==“? Предоставьте два примера для доказательства отличий.
- В чем разница знаков „|“ и „||“? Предоставьте два примера для доказательства отличий.
- Напишите выражение, в котором используете уравнениe „x = x + 1“ двенадцать раз.
- Как пишите в языке Си бесконечный цикл? Предоставьте два разных варианта.
- Какого типа переменные выбираете в языке Си, чтобы представить позитивное число в пределах от 7 до 154?
- Какой регистр обозначает направление порта? Приведите пример настраивания порта входа и выхода.
- Какими методами можно ликвидировать ложные срабатывания, возникающие при дребезге контактов? Приведите пример аппаратного и программного варианта.
- Что означает термин сдвиг разряда? Приведите практический пример с пояснением.
- Почему используется у переключателя //pull-up// сопротивление? Следуя чему обозначается это сопротивление?
- Расчитайте значение сопротивления ограничивающего ток LED-а, если питание 5 В, прямое напряжение LED-а 2,7 В и ток 30 мА.