Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
318 Микроконтроллеры AVR от азов программирования... Процедура открывания замка Эта процедура занимает строки 115 — 119. Процедура очень проста. Для открывания замка на четвертый разряд порта РВ подается единич ный сигнал, который открывает транзистор ключа VT1 (см. рис. 5.17). Реле срабатывает, и замок открывается. Подав открывающий сигнал, программа выдерживает паузу, а затем сигнал снимает. После этого замок закрывается. Длительность паузы равна одной секунде. Этого времени достаточно, чтобы открыть дверь. Подача открывающего сигнала на выход осуществляется в строке 115. В строках 116, 117 производится вызов процедуры задержки. При этом выбирается режим номер 3. Сначала в регистр data помещается код режима задержки (строка 116). Затем вызывается подпрограмма wait (строка 117). В строке 118 снимается сигнал открывания двери. В строке 119 процедура открывания замка завершается. Оператор без условного перехода, находящийся в этой строке, передает управление на начало программы. И весь процесс начинается сначала. Программа на языке СИ Возможный вариант программы кодового замка на языке СИ приведен в листинге 5.20. Программа реализует тот же самый алгоритм, что и при веденная выше программа на Ассемблере. В тексте этой программы были использованы несколько новых для нас элементов языка СИ. Рассмотрим их по порядку. #define _____ __________________________________________________ Директива присвоения символьного имени любой константе. Это классический элемент языка СИ, который поддерживается любой вер сией языка. Директива имеет два параметра. Первый параметр — имя константы. Второй параметр — ее значение. В строке 2 программы (листинг 5.20) числовой константе 0x77F присваивается имя klfree. После этого в любом месте программы, где нужно использовать число 0x77F, его можно заменить именем klfree. В качестве значения константы может выступать не только число, но и любая комбинация чисел и букв. И даже комбинация, состоящая только из букв. Применение именованных констант делает программу более наглядной. Кроме того, изменять значение такой константы становится удобнее. Достаточно заменить значение константы в одном только месте (в строке описания). И сразу же новое значение будет учтено по всей про грамме.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==