====== Упражнения ====== Целью является создание программы, которое выполняет описанное задание. ===== Упражнение для разминки ===== * • При нажатие на кнопку 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 мА.