PIC-микроконтроллеры. Все, что вам необходимо знать | страница 50
• Один цифровой выход для открытия и закрытия водяного клапана.
• Один цифровой выход для управления звуковым сигнализатором.
• Микропроцессор для вычислений, считывания входных и формирования выходных сигналов.
• • Память программ, обычно ПЗУ какого-либо типа.
• Память данных для хранения рабочих переменных программы, обычно статическое ОЗУ.
Если учесть, что для выполнения указанных задач требуется не так уж и много времени, можно задействовать дополнительные входы микроконтроллера для контроля других параметров, таких как температура и освещенность. В результате мы сможем осуществлять более комплексное управление климатической обстановкой в теплице.
Пример 3.2
Наиболее сложной проблемой, с которой приходится сталкиваться программисту, часто является собственно постановка решаемой задачи. Для этого необходимо логическое мышление, которым обладает человек и которое отсутствует у машины. Именно способность принимать решения и является отличительной чертой хорошего программиста. Эта способность складывается из опыта, капельки таланта, а также хорошего понимания решаемой задачи.
Чтобы проиллюстрировать процесс принятия решения, продумаем последовательность элементарных действий, которые должен будет выполнить робот с микроконтроллерным управлением для перехода через регулируемый пешеходный переход на улице с оживленным движением.
Решение
1. Подойти к переходу и остановиться.
2. Посмотреть на светофор.
3. Принять решение — не горит ли в нашем направлении зеленый сигнал?
4. ЕСЛИ сигнал красный, ТО перейти к шагу 2, ИНАЧЕ продолжить.
5. Посмотреть налево.
6. Едут ли машины?
7. ЕСЛИ да, ТО перейти к шагу 5, ИНАЧЕ продолжить.
8. Посмотреть направо.
9. Едут ли машины (вообще-то все машины уже должны были остановиться, но кто знает!)?
10. ЕСЛИ да, ТО перейти к шагу 5, ИНАЧЕ продолжить.
11. Перейти через дорогу — задача решена!
На Рис. 3.10 описанный алгоритм представлен в графическом виде. В этой блок-схеме прямоугольники используются для обозначения действий, ромбы — для обозначения условий, а прямоугольники со скругленными углами — для обозначения точек входа и выхода. Линии со стрелками указывают последовательность выполнения действий и дополнительно помечаются в точках принятия решений. В принципе в данном конкретном случае графическое представление алгоритма не имеет больших преимуществ по сравнению с текстовым. Однако в более сложных задачах, со множеством условий и вариантов выполнения, графическое представление может оказаться гораздо удобнее для документирования поведения системы. А когда система становится очень сложной, то и простой перечень задач, и блок-схема становятся одинаково бесполезными. В этом случае описание системы необходимо строить по иерархическому принципу, начиная с самых общих вопросов и постепенно продвигаясь к более конкретным задачам.