Разработка алгоритма работы устройства
- leonvasiljew
- 21 июн. 2015 г.
- 2 мин. чтения
Разработав электронную схему системы, мы еще не будем иметь работающее устройство, так как сам по себе микропроцессор не умеет обрабатывать данные. Для его работы в контроллере нужно иметь программу, которая будет говорить, при каких условиях, что ему делать. Но вначале надо разработать алгоритм работы устройства. Для этого рассмотрим первый пример.
Из функциональной схемы (рис. 20) видим, что в устройстве присутствуют клавиатура, микропроцессор и индикатор. Из задания известно, что необходимо на индикаторе вывести цифру, которая нажата на клавиатуре. Алгоритм работы устройства приведен на рис. 25.

Рис. 25. Алгоритм работы учебного примера
После включения питания происходит начальная инициализация всех регистров, значений для вывода на индикатор и для чтения данных с клавиатуры. В каждом цикле работы контроллер считывает данные с клавиатуры и отправляет выходной сигнал на семисегментный индикатор. При нажатии на кнопку клавиатуры происходит замыкание контактов. При этом значение на входе порта изменяется. Это считывает контроллер, и значение из порта Рх заносится в регистр А. Далее это значение сравнивается с табличным и в регистр В значение заносится цифра, которую нажали на клавиатуре. Для вывода на индикатор надо получить семисегментный код цифры. Коды хранятся в виде таблицы. Получаем адрес памяти путем добавления к адресу начала таблицы полученной цифры. Дальше считываем данные по полученному адресу и отправляем их на порт Ру, к которому подключен индикатор. В итоге на индикаторе загорается нажатая нами цифра.
На рис. 26 представлен алгоритм работы стабилизирующего устройства. После включения питания в контроллере происходит инициализация: временных переменных, переменных, показывающих первоначальное положение площадки, а также цифровых и аналоговых портов. После этого контроллер будет готов к работе.

Рис.26. Алгоритм работы стабилизирующего устройства
На первом этапе контроллер управляет вращением моторов, считывая данные с модуля датчика GY-521 по оси. Полученные данные сравниваются с исходными данными. Если данные изменились, контроллер будет управлять двигателем, отвечающим за поворот этой оси. В противном случае считываются данные с датчиков для следующих осей и обрабатываются идентично.
Рассмотрим, как контроллер будет управлять двигателем. Полученное с датчика значение сравнивается с предыдущем. При их совпадении контроллер отправляет на двигатель сигнал, который останавливает вращение. Если значения не совпадают, то проверяется, в какую сторону сместились полученные данные. Таким образом, двигатели будут вращаться налево, направо или останавливаться.
Для управления положением платформы используется джойстик. Контроллер считывает данные с джойстика, которые могут варьироваться от 0 до 255. Значение нейтрального положения джойстика равно 148. Если данные с джойстика по какой-либо оси (X или Y) окажутся меньше 148, от значения положения платформы по соответствующей оси отнимается константа, в противном случае – добавляется константа. В итоге значение положения платформы по данной оси изменится. Для другой оси джойстика обработка происходит также. После завершения обработки данных с джойстика контроллер переходит на первый этап. И так бесконечно будет проходить цикл пока не будет отключено питание.
Comments