Зная серию выбранного микроконтроллера и функции, которые он должен выполнять, составим функциональную схему (Рис.2.6).
Рисунок 2.6 – Функциональная схема солнечных часов
Условные обозначения на функциональной схеме (Рисунок 2.6):
ДВ – двигатель;
ЛУ – лазерная указка;
УПТ- усилитель постоянного тока;
ИП- источник питания +5В;
КР – кварцевый резонатор;
S1-S3 – кнопки управления и регулировки.
Разработка алгоритма управления
Блок-схема алгоритма, управления двигателем солнечных часов представлена на рисунке 2.7.
Согласно блок схеме, в начале программы выполняется установка состояния портов, а также указывается вектор прерывания, который имеет две ветви:
• вектор RESET переходит при сбросе программы в начальное состояние;
• вектор INTO активизируется при нажатии кнопки "START/STOP".
Активным уровнем INTO считается нулевое состояние на выводе РВ6 микроконтроллера. Активный уровень задается программой и во время сброса не активизируется. В случае активизации INTO вызывается подпрограмма обработки вектора прерывания, которая запрещает прерывание и проверяет длительность нажатия кнопки. При выходе из подпрограммы обработки вектора прерывания разрешается общее прерывание.