Добавление в схему переключателя

В этом подразделе мы еще немного поэкспериментируем с гибкостью микроконтроллера BASIC Stamp. Поскольку в этой демонстрации мы снова будем использовать светодиод, не спешите снимать его с макетной платы, куда он был вставлен в начале работы над разделом "Знакомимся с Basic Stamp 2". Подключите к учебной плате механический ключ, пользуясь схемой, приведенной на рис. 13.10. Можно использовать переключатель любой формы, но проще всего взять самую обычную кнопку. Обязательно вставьте в цепь резистор номиналом 10 килоом, как показано на рисунке. Если вы используете учебную плату, то на ней вывод 1 обозначен как Р1, да еще и выведен на разъем рядом с беспаечной платой.

Для чего в схеме нужен резистор 10 килоом? Он служит так называемым резистором "подтяжки" (pull-up или pull-down resistor), т.е. когда ключ разомкнут, он "подтягивает" или, как в данном случае, "стягивает" логический уровень на выводе микроконтроллера до напряжения земли (0 В). Этот резистор не дает уровню на выводе хаотически изменяться (радиолюбители говорят: "плавать") под воздействием каких-то внешних помех и наводок; в противном случае BASIC Stamp будет вести себя непредсказуемо.

А теперь давайте введем следующую экспериментальную программу:

( BS2)

OUTPUT 0 ' установка вывода 0 в качестве выхода

   ' (для управления светодиодом)

btn VAR Byte  ' определяем новую переменную "btn"

  ' (для работы с кнопкой)

loop:

BUTTON 1,0,255,250,btn,0,noSwitch  ' проверка состояния ключа

OUT0 = btn ' включаем светодиод, когда ключ замкнут

PAUSE 150  ' ждем 150 миллисекунд

OUT0 = 0   ' выключаем светодиод

noSwitch: GOTO loop  ' повтор цикла

Теперь рассмотрим, как же работает эта программа.

  • Строка 1. Прописываем в редакторе тип используемого микроконтроллера BASIC Stamp — в данном случае это BASIC Stamp 2. (Поскольку перед началом строки стоит апостроф, она трактуется как комментарий, и компьютер не предпринимает никаких действий.)
  • Строка 2. Команда OUTPUT 0 указывает микроконтроллеру использовать вывод 0 в качестве выхода. Соответственно, к этому выходу должен быть подключен светодиод (если вы до сих пор не подключили его к разъему на плате, у вас есть шанс сделать это, пользуясь подсказками, приведенными в разделе "Знакомимся с Basic Stamp 2").
  • Строка 3. В этой строке с помощью команды btn VAR Byte небольшая часть памяти микроконтроллера отводится под переменную btn. Переменной в данном случае является просто временно зарезервированное место для хранения некоторой информации. После создания переменной микроконтроллер может заполнять это место данными, а может возвращаться к ним позже и проверять текущее значение переменной.
  • Строка 4. Команда loop: как мы уже знаем из подраздела "Этап 2: программирование микроконтроллера", используется для образования цикла.
  • Строка 5. Начинается с команды BUTTON и сообщает микроконтроллеру о необходимости проверить состояние ключа, присоединенного к выводу 1. Эта команда требует наличия сразу нескольких аргументов (дополнительных данных), узнать больше о которых можно из документации к микроконтроллеру BASIC Stamp, которая обычно поставляется в комплекте с учебной платой.
  • Строки 6-8. Эти команды включают светодиод, заставляют микроконтроллер подождать в течение 150 миллисекунд, а затем выключают диод.
  • Строка 9. Переводит микроконтроллер BASIC Stamp в начало цикла, отмеченное командой loop. Этот цикл продолжается вечно — во всяком случае, до тех пор, пока никто не перепрограммирует микроконтроллер или не отключит его питание.
  • Теперь посмотрим на еще одну метку — noSwitch, которая присутствует в строках 5 и 9. При использовании с командой BUTTON (в строке 5) данная метка создает так называемое ветвление. Если ключ окажется размокнут (часть кода, названная noSwitch), микроконтроллер переходит к команде BUTTON и затем последовательно пропускает все строки программы до самого конца, т.е. не управляет светодиодом. Но если ключ будет замкнут, BASIC Stamp не перепрыгнет в конец программы, а пройдет ее шаг за шагом.

    Что же произойдет после запуска программы?

  • Если ключ разомкнут, светодиод не включается.
  • Если ключ замкнут, светодиод начинает резво мигать.
  • Да, кстати! Если ваш BASIC Stamp ведет себя не так, внимательно перепроверьте, все ли правильно подключено в вашей схеме, и правильно ли набрана учебная программа.

    Оглавление>>







    © 2008 Электроника для начинающих | Programming V.Lasto | Povered by Nano-CMS | Designer S.Gordi